Основы программирования на языке Паскаль
Методическое пособие - Компьютеры, программирование
Другие методички по предмету Компьютеры, программирование
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>