Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование_заоч_2.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
105.47 Кб
Скачать

Примеры

Пример 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.