Под обработкой массива будем понимать задачи нахождения с учетом некоторых условий суммы, произведения, количества элементов, минимального, максимального элемента массива, сортировка массивов по возрастанию и убыванию и др. аналогичные задачи. Для отладки программ с массивами часто удобно использовать генераторы случайных чисел. Рассмотрим это на примерах.
Пример 11.2. Сформировать массив целых случайных целых чисел в диапазоне значений -10..10 и найти максимальный и минимальные элементы на языке Паскаль.
Текст программы
Program lr4_02;
Uses CRT;
Const n=10;
k1=10;
k2=k1*2+1;
Type vec =array[1..n] of integer;
Var
a :vec;
i, f, mi, ma :integer;
Begin
ClrScr;
Randomize;
Writeln('Исходный массив:');
For i:=1 to n do
Begin
f:=random(k2);
a[i]:=k1-f;
Write(a[i]:3,' ':3);
End;
mi:=100;
ma:=-100;
For i:=1 to n do
Begin
If a[i] > ma then ma:=a[i];
If a[i] < mi then mi:=a[i];
End;
Writeln;
Writeln('Результат:');
Writeln('ma=',ma,' ':5,'mi=',mi);
Repeat Until KeyPressed
End.
Результат работы программы:
Исходный массив:
9 6 -8 -10 8 -10 5 -9 -9 -10
Результат:
ma=9 mi=-10
Пример 11.3. Сформировать массив случайных целых чисел в диапазоне -10..10
и найти сумму отрицательных и произведение положительных элементов на языке Турбо Паскаль.
Текст программы
Program lr4_0;
Uses crt;
Const n=10;
k1=10;
k2=2*k1+1;
Type vec = array[1..n] of integer;
Var
x :vec;
f,s,i,kp :integer;
p :longint;
Begin
clrscr;
randomize;
writeln('Исходный массив:');
for i:=1 to n do
begin
f:= random(k2);
x[i]:=k1-f;
write(x[i]:4,' ':2)
end;
s:=0;
p:=1;
kp:=0;
for i:=1 to n do
begin
if x[i] < 0 then s:=s+x[i];
if x[i] > 0 then
begin
p:=p*x[i] ;
kp:=kp+1
end
end;
writeln;
writeln('Результат:');
writeln('s=',s,' ':4,'p=',p);
writeln('Количество пол. эл-в =>', kp:5);
readln;
end.
Результат работы программы:
Исходный массив:
-10 0 3 -10 9 -9 10 -3 -5 9
Результат:
s=-37 p=2430
Количество пол. эл-в => 4