
Примеры
Пример 1. Найти сумму и количество положительных элементов массива
program summa_massiv;
var
a : array [1..10] of integer;
I : byte; S: integer;
begin
Write('Введите массив');
for i:= 1 to 10 do Read(a[i]); // ввод элементов массива
S:=0;n:=0; // переменной S и n присваивается значение 0
for i:=1 to 10 do if a[i]>0 then
begin
S:=S+ a[i];
n:=n+1;
End;
WriteLn ('S =', S:6:3, ' n =', n );
end.
Пример 2. Найти максимальный и минимальный элементы массива
program max-min;
var
a : array [1..10] of integer;
i : byte; max, min: integer;
begin
write('введите массив');
for i:= 1 to 10 do read(a[i]); // ввод элементов массива
max:=a[1]; // переменной max присваивается значение первого элемента массива
for i:=2 to 10 do if max < a[i] then max:= a[i];
min:= a[1]; // переменной min присваивается значение
первого элемента массива
for i:=2 to 10 do if min > a[i] then min:= a[i];
writeln ('максимальный элемент массива =', max);
writeln ('минимальный элемент массива =', min);
end.
Пример 3. Сортировка элементов массива по возрастанию (методом "пузырька").
program sortirovka;
var x: array [1..10] of real;
i, j: byte; buffer : real;
begin
writeln('Введите массив'); // вывод комментария
for i:=1 to 10 do read(x[i]); // ввод элементов массива
for i:= 1 to 9 do
for j:= i+1 to 10 do if x[i] >= x[j] then
begin
buffer:= x[i];
x[i]:= x[j];
x[j]:= buffer;
end;
for i:=1 to 10 do write(‘ ’,x[i]:6:3); // вывод отсортированного массива
end.
Сначала сравнивается 1-ый и 2-ой элементы массива. Если 2-й элемент меньше 1-го, то они меняются местами. Этот процесс повторяется для каждой пары 2-х соседних элементов массива, пока все элементы не будут обработаны. За один "проход" массива самый большой элемент встанет на старшее n место. Далее алгоритм повторяется, причем на р "проходе" первые (n-p) элементов сравниваются со своими правыми соседями. Если на очередном "проходе" перестановок не было, то алгоритм свою работу закончил. Таким образом, самые "легкие" элементы в процессе исполнения алгоритма постепенно "всплывают".
Пример 4. Создать массив В их положительных элементов массива А
program massiv;
var
a, в : array [1..10] of integer; i, n : byte;
begin
write('введите массив')
for i:= 1 to 10 do read(a[i]); // ввод элементов массива
n:=0;
for i:=1 to 10 do if a[i]>0 then
begin
n:=n+1;
b[n]:= a[i];
end;
for i:= 1 to n do write (' ‘,b[i] );
end.
Пример 5. Найдите максимальные элементы каждой строки матрицы и выведите их на экран.
program max_strok;
var i,j,m,n,imax,jmax: byte;
a: array[1..10,1..10] of integer;
begin
Read(n,m);
for i:=1 to n do
for j:=1 to m do Read(a[i,j]);
for i:=1 to n do
begin
imax:=i; jmax:=1;
for j:=2 to m do
begin
if a[imax,jmax]<a[i,j] then
begin
imax:=i;
jmax:=j;
end;
end;
Writeln (‘ max[’,I,’]=’,a[imax,jmax]);
end;
end.
Минимальные элементы строк массива находятся аналогично, только в условии меняется знак a[imin,jmin]>a[i,j].
Пример 6. Найдите суммы элементов строк матрицы и выведите их на экран в виде одномерного массива.
program sum_strok;
var i,j,m,n: byte;
a: array[1..10,1..10] of integer;
s: array[1..10] of integer;
begin
Read(m,n);
for i:=1 to n do
for j:=1 to m do Read(a[i,j]);
for i:=1 to n do
begin
s[i]:=o;
for j:=1 to m do s[i]:= s[i]+ a[i,j];
end;
for i:=1 to n do Write(‘ ‘,s[i]);
end.
Произведение элементов строк матрицы находится аналогично, только начальным значениям произведений присваивается p[i]:=1.
Пример7. Транспонируйте матрицу (n,m) и выведите ее на экран:
program transport;
var i,j,n,m : byte;
a: array[1..3,1..3] of integer;
begin
for i:=1 to n do
for j:=1 to m do Read(a[i,j]);
for j:=1 to m do
begin
for i:=1 to n do Write(a[i,j],’ ‘);
WriteLn;
end;
end.
Пример 8. Выведите элементы главной диагонали квадратичной матрицы (3х3) на экран.
Program diagon;
Var i,j :byte;
a: array[1..3,1..3] of integer;
begin
for i:=1 to 3 do
for j:=1 to 3 do Read(a[i,j]);
for i:=1 to 3 do
for j:=1 to 3 do If i=j then Write(a[i,j],’ ‘);
end.
Пример 9. Написать программу, которая в каждой строке матрицы сортирует элементы по возрастанию.
program sort;
var a:array[1..5,1..5] of real;
c: real;I,j,k:byte;
begin
writeln(‘ Введите матрицу ’);
for i:=1 to 5 do
for j:=1 to 5 do read(a[i,j]);
for i:=1 to 5 do
begin
for j:=5 downto 1 do
begin
for k:=2 to i do
begin
c:=A[i,k-1];
if c>A[i,k] then begin
A[i,k-1]:=A[i,k];
A[i,k]:=c;
End;
end;
end;
end;
for i:=1 to 5 do
begin
for j:=1 to 5 do write(A[i,j],’ ‘);
writeln;
end;
end.