Const
N = 30;
Var
a: array [1..N] of integer;
MaxEv, MaxOdd, I: integer;
begin
for i := 1 to N do
begin
write('a[', i , '] = ');
readln(a[i]);
end;
MaxEv := 0;
MaxOdd := 0;
For I := 1 to N do { перебираем все элементы массива}
if a[i] mod 2 = 0 then { проверяем делится ли текущий элемент на 2 без остатка}
begin
if a[i] > MaxEv then {если да, то проверяем больше ли найденного до этого наибольшего четного}
MaxEv := a[i]; {присваиваем новое наибольшее четное значение}
end
else
if a[i] > MaxOdd then {если нет, то проверяем больше ли найденного до этого наибольшего нечетного}
MaxOdd := a[i]; {присваиваем новое наибольшее нечетное значение}
Writeln ('MaxEv - MaxOdd = ', MaxEv, ' - ', MaxOdd, ' = ', MaxEv - MaxOdd);
end.
Поделитесь своими знаниями, ответьте на вопрос:
Напишите так: команд. лев берег пр берег
uses crt;
var a:array[1..20] of integer;
b:array[1..20] of integer;
i,j,k,min,max:integer;
begin
writeln('Первый массив: ');
for i:=1 to 20 do begin
a[i]:=random(50-10+1)+10;
write(a[i]:3);
end;
writeln;
writeln('Второй массив: ');
for j:=1 to 20 do begin
b[j]:=random(90-30+1)+30;
write(b[j]:3);
end;
writeln;
min:=60;
writeln('Первый массив в порядке возрастания: ');
for i:=1 to 20 do begin
for j:=1 to 20 do begin
if a[j]<min then begin min:=a[j]; k:=j; end;
end;
a[k]:=60;
write(min:3);
min:=60;
end;
writeln;
max:=0;
writeln('Второй массив в порядке убывания: ');
for j:=1 to 20 do begin
for i:=1 to 20 do begin
if b[i]>max then begin max:=b[i]; k:=i; end;
end;
write(max:3);
b[k]:=0;
max:=0;
end;
writeln;
end.
Насчёт среднего арифметического мне не понятно: среднее арифметическое каких повторяющихся чисел брать? В каждом массиве, или в двух массивах одновременно? И учитывать ли то, что числа в массиве могут повторяться. Именно поэтому я не включил этого в код.