Основы программирования на языке Паскаль

Методическое пособие - Компьютеры, программирование

Другие методички по предмету Компьютеры, программирование

Program Prim26a; Var i,j,k:integer; a:array[1..4,1..4] of integer; b:array[1..4] of integer; BEGIN for i:=1 to 4 do

for j:=1 to 4 do

Begin writeln(ввести a[,i,,,j,]);

readln(a[i,j]); end; { ввести массив а }

{ вывести элементы массива а }

for i:=1 to 4 do Begin writeln; { перевести курсор на новую строку }

for j:=1 to 4 do

write(a[i,j], ); { вывести элементы в одну строку }

end;

k:=1;

for i:=1 to 4 do

for j:=1 to 4 do

if i=j then Begin b[k]:=a[i,j]; k:=k+1; end;

{отыскиваем и заносим в b[1] a[1,1]}

{меняем k и заносим в b[2] a[2,2] и т.д.}

writeln( на главной диагонали лежат элементы:);

writeln(a[1,1]=,b[1], a[2,2]=,b[2], a[3,3]=,b[3], a[4,4]=,b[4]);

readln;

END.

Эта программа отличается от предыдущей тем, что она вначале вводит массив А, затем его распечатывает в виде

a11 a12 a13 a14

a21 a22 a23 a24

a31 a32 a33 a34

a41 a42 a43 a44

а после выводит результаты в том же виде, что и программа Prim26, т.е.

Program Prim26b;

Var i,j,k,n:integer;

a:array[1..40,1..40] of integer;

b:array[1..40] of integer;

BEGIN writeln(введите размерность массива);

readln(n);

for i:=1 to n do

for j:=1 to n do

Begin writeln(введите a[,i,,,j,]);

readln(a[i,j]); end;

{ вывести элементы массива а }

for i:=1 to n do

Begin writeln; {перевести курсор на новую строку}

for j:=1 to n do

write(a [i , j], ); {вывести элементы в одну строку}

end;

k:=1;

for i:=1 to n do

for j:=1 to n do

if i=j then Begin b[k]:=a[i , j]; k:=k+1; end;

{отыскиваем и заносим в b[1] a[1,1]}

{меняем k и заносим в b[2] a[2,2] и т.д.}

writeln( на главной диагонали лежат элементы:);

for k:=1 to n do

write( a[,k,,,k,]=,b[k]);

readln;

END.

Эта программа работает так же, как и предыдущая, но с массивами и с переменными измерениями.

Величина входного массива может быть до 40 строк и 40 столбцов. Чтобы это обеспечить, в разделе Var описываем массив a: array [1..40,1..40] of integer; а затем в программе вводим по запросу n, которое будет определять, с матрицей какой величины мы будем работать конкретно (n должно быть в диапазоне 1-40). Далее все циклы программы работают от 1 до n, т.е. машина решит задачу для массива введенной размерности n.

Program Prim27;

Var i,j,k,n:integer;

a:array[1..40,1..40] of integer;

b:array[1..40] of integer;

BEGIN writeln(ввести n); readln(n);

for i:=1 to n do

for j:=1 to n do

Begin writeln(ввести a[,i,,,j,]);

readln(a[i,j]); end;

{ вывести элементы массива а }

for i:=1 to n do

Begin writeln; {перевести курсор на новую строку}

for j:=1 to n do

write(a[i,j], ); {вывести элементы в одну строку}

end;

k:=1;

for i:=1 to n do

for j:=1 to n do

if i+j-1=n then Begin b[k]:=a[i,j]; k:=k+1; end;

{отыскиваем и заносим в b[1] a[1,1]}

{меняем k и заносим в b[2] a[2,2] и т.д.}

writeln;

writeln( на дополнительной диагонали лежат элементы:);

for k:=1 to n do

write(b[k], );

readln;

END.

Программа Prim 27 работает аналогично программе Prim 26b, однако выводит элементы, лежащие на дополнительной диагонали.

Program Prim28;

Var i,j,min,m,n,k:integer;

a:array[1..20,1..10] of integer;

b:array[1..10] of integer;

BEGIN writeln(ввести m,n); readln(m,n);

for i:=1 to m do {m количество строк }

for j:=1 to n do {n количество столбцов}

Begin writeln(ввести a[, i ,, , j,]);

readln(a[i , j]); end;

{ вывести элементы массива а }

for i:=1 to m do

Begin writeln;

for j:=1 to n do

write(a[i,j], ); end;

min:=32767; {максимальное integer, чтобы в последующем сравнивать}

{и заносить в min все элементы a[i,j], которые меньше min}

for i:=1 to m do

for j:=1 to n do

if a[i , j]<min then Begin min:=a[i , j]; k:=i; end;

writeln( строка, содержащая наименьший элемент);

for j:=1 to n do

write( a[, k ,,, j ,]=,a[k , j]);

readln; END.

Программа Prim 28 находит в массиве строку размером до 20х10, содержащую наименьший элемент.

Program Prim29;

Var i,j:integer; a:array[1..5, 1..7] of integer;

b:array[1..7] of integer;

c:array[1..5] of integer;

BEGIN for i:=1 to 5 do

for j:=1 to 7 do

begin writeln(введите a[,i,,,j,] элемент матрицы а);

readln(a[i,j]); end;

for j:=1 to 7 do

begin writeln(введите b[,j,] элемент вектора b);

readln(b[j]); end;

for i:=1 to 5 do {начало перемножения матрицы на вектор}

begin c[i]:=0;

for j:=1 to 7 do

c[i]:=c[i]+ a[i,j]*b[j]; end;

{конец перемножения матрицы на вектор}

writeln(распечатка массива а);

for i:=1 to 5 do

begin writeln; {начать нов?/p>