24 1. составьте программу решения . дано трёхзначное число. вывести «да», если только его первая и третья цифры четные и «нет» в противном случае. 2. дано натуральное число. определить в нем максимальную нечетную цифру. 3. дан массив из 20 элементов, заполненный случайными числами из диапазона [-45; 55]. найти в нем сумму четных положительных элементов.
Ответы на вопрос:
1.
var
a: integer;
begin
readln(a);
if ((a mod 10) mod 2 = 0) and ((a mod 100) mod 2 = 0) then writeln('да')
else writeln('нет');
end.
2.
var
a, max: integer;
begin
readln(a);
max : = -1;
while a < > 0 do
begin
if ((a mod 10) mod 2 = 0) and ((a mod 10) mod 2 > max) then max : = (a mod 10) mod 2;
a : = a div 10;
end;
if max < > -1 then writeln(max)
else writeln('');
end.
3.
var
mas: array[0..19] of integer;
sum, i: integer;
begin
randomize;
sum : = 0;
for i : = 0 to 19 do
begin
mas[i] : = -45 + random(1 + 45 + 55);
if (mas[i] mod 2 = 0) and (mas[i] > 0) then sum += mas[i];
end;
writeln(sum);
end.
В данном фрагменте программы идёт
1) if (a[i] mod 2 <> 0) - условие: "если элемент массива нечетный, т.е. при делении на 2 есть остаток, то"
2) p:=p*a[i]; - операция умножения элементов массива. Произведение обозначено p.
3) k:=k+1; - это суммирование, сколько раз выполняется команда
Верно: for i:=7 to 25 do begin
if (a[i] mod 2 <> 0) then begin p := p*a[i]; k:=k+1; end; end;
Объяснение: все ошибки выделены жирным шрифтом.
for i:=7 to 25 do;
read (a[i])
if (a[i] mod 2 <> 0) then begin p:=p*a[i]; k:=k+1; end;
Если в программе поставить знак ; сразу после за действия do (сразу после открытие цикла), она не начнёт выполнение условия. Лишним также является read (a[i]), т.к. программе вновь не задаётся цикл, либо её чтение было уже задано до данного цикла с условием.
Если интересна программа полностью, то вот код ниже, а также скриншот с результатами. Заполнение массива задано автоматически числами от 1 до 100. Размерность массива - 25 чисел. При произведении мы всегда задаём значение переменной 1, иначе программа не начнёт операцию, при сложении присваивать значение только 0, но это необязательно.
Program zadacha;
var
a: array [1..25] of integer;
i,p,k: integer;
begin
for i:=1 to 25 do
a[i]:= Random(100); // числа от 1 до 100 будут присутствовать в массиве
writeln('Заполненный массив:'); for i := 1 to 25 do write(a[i],' ');
p:=1; k:=0;
for i:=7 to 25 do begin
if (a[i] mod 2 <> 0) then begin p := p*a[i]; k:=k+1; end; end;;
writeln;
writeln('Произведение нечетных элементов:', p);
writeln('Сколько раз выполнилось условие:', k);
end.
Популярно: Информатика
-
лямда123408.09.2020 06:19
-
matv12.02.2022 15:48
-
Кунілінгус09.01.2020 06:06
-
evenen17.04.2020 18:42
-
Andreyp288124.03.2022 19:19
-
tinkimolko29.03.2021 15:55
-
arscool30.11.2021 16:26
-
Смамойспал12329.11.2022 04:22
-
12344312304.10.2022 03:14
-
Kvasya0730.04.2022 21:03