Заполнить массив двадцатью случайными числами в пределах от 1 до 99, распечатать их в одну строку, а на следующей строке распечатать тот же массив в обратном порядке, выделив цветом числа, кратные трём.
program massiv1;
uses crt;
var
a:array[1..20] of integer;
i:integer;
begin
randomize; clrscr;
for i:=1 to 20 do
begin
a[i]:=1+random(99); write(a[i],’ ’);
end;
writeln;
for i:=20 downto 1 do
begin
if a[i] mod 3=0 then
textcolor(12)
else
textcolor(15);
write(a[i],’ ’);
end;
end.
Следующая программа вводит с клавиатуры десять чисел, располагает их в одну строку и печатает на следующей строке, каких чисел больше, чётных или нечётных, и на сколько.
Перед циклом проверки и распечатки переменные kc и kn (количество чётных и количество нечётных) обнулим. Чётным элемент массива является в том случае, если делится на два без остатка, то есть, остаток (mod) при делении на 2 равен 0. В этом случае мы увеличиваем (inc) счётчик чётных чисел на 1. Если это не так, увеличиваем на 1 счётчик нечётных чисел.
program massiv2;
var
n:array[1..10] of integer;
i,kc,kn:integer;
begin
for i:=1 to 10 do
begin
write(’N[’,i,’]=’); readln(n[i]);
end;
writeln;
kc:=0; kn:=0;
for i:= 1 to 10 do
begin
write(n[i],’ ’);
if n[i] mod 2=0 then inc(kc) else inc(kn);
end;
if kc>kn then
writeln(’Чётных больше на ’,kc-kn)
else
if kn>kc then
writeln(’Нечётных больше на ’,kn-kc)
else
writeln(’Чётных и нечётных поровну’);
end.
Два массива заполнены двадцатью случайными числами в пределах от 1 до 5. Программа заполняет третий массив элементами, совпадающими в первых двух массивах, а на месте остальных ставит нули.
program massiv3;
var
a,b,c:array[1..20] of integer;
i:integer;
begin
randomize;
for i:=1 to 20 do
begin
a[i]:=1+random(5); write(a[i]:3);
end; writeln;
for i:=1 to 20 do
begin
b[i]:=1+random(5); write(b[i]:3);
end; writeln;
for i:=1 to 20 do
begin
if a[i]=b[i] then c[i]:=a[i] else c[i]:=0;
write(c[i]:3);
end;
end.
В этой программе при распечатке массивов мы не использовали, как раньше, пробел для разделения чисел, а указали после двоеточия, сколько знаков предоставить для числа. Это удобно, когда массивы располагаются на нескольких строках: числа будут столбиком друг под другом.
Чтобы найти максимальный элемент массива, заводим переменную max, в которую помещаем сначала первый элемент. Каждый следующий сравниваем с max, и если он больше, то его запоминаем в max вместо хранящегося там числа. После просмотра всех элементов в max остаётся
program poisk_max;
var
a:array[1..20] of integer;
i,max:integer;
begin
randomize;
for i:=1 to 20 do
begin
a[i]:=1+random(99); write(a[i],’ ’);
end; writeln;
max:=a[1];
for i:=2 to 20 do
if a[i]>max then max:=a[i];
writeln(’Наибольший элемент массива = ’,max);
readln;
end.
наибольшее число.
Минимальный элемент находят так же, только ищут число, меньшее, чем min.
Иногда кроме самого значения максимального элемента нужно найти и место, где он располагается. Для этого в цикле поиска, найдя число большее, чем было найдено раньше, нужно запомнить не только его само, но и его номер, как показано в следующем фрагменте: