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

Величина входного массива может быть до 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; {начать новую строку}

for j:=1 to 7 do

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

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

for j:=1 to 7 do

write(' ',b[j]); writeln;

writeln('результирующий массив с');

for i:=1 to 5 do

write(' ',c[i]);

readln; END.

Программа вводит матрицу А размером 5х7 и вектор размером 7 элементов, затем их перемножает по правилу Сi = Сi + a[i,j]b[j] и выводит пять элементов массива С.

Заметим, что для вычисления каждого с необходимо каждый элемент строки массива a умножить на соответствующий по индексу элемент массива b, а затем все эти произведения сложить. таким образом, количество элементов массива с будет равно количеству строк матрицы a (и, соответственно, количеству элементов массива b).

Program Prim29a;

Var i,j,n,m:integer; a:array[1..50,1..70] of integer;

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

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

BEGIN writeln('ввести количество строк и столбцов');

readln(n,m);

for i:=1 to n do

for j:=1 to m do

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

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

for j:=1 to m do

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

readln(b[j]); end;

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

begin c[i]:=0;

for j:=1 to m do

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

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

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

for i:=1 to n do

Begin writeln; {начать новую строку}

for j:=1 to m do

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

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

for j:=1 to m do

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.