Основные алгоритмы при работе с матрицами



Во всех фрагментах программ используется матрица А(4,4).

Пусть требуется ввести в память компьютера числовые данные массива а(4,4). В этом случае фрагмент блок-схемы и программы имеет следующий вид:

Фрагмент блок-схемы Фрагмент программы writeln('введите матрицу a[4,4]'); for i:=1 to 4 do {цикл по строкам} for j:=1 to 4 do {цикл по столбцам}       readln(a[i,j]);  

Аналогичную структуру имеет блок-схема и программа вывода массива, только в этом случае телом цикла служит блок (оператор) вывода:

Фрагмент блок-схемы Фрагмент программы       writeln('матрица a[4,4]');    for i:=1 to 4 do   begin     for j:=1 to 4 do           write(a[i,j]:6:1);      writeln; end;

Пример. Дана матрица А[4,4]. Ввести матрицу с клавиатуры, найти максимум 2-ой строки, положительный минимум всей матрицы и поменять их местами, вывести на экран измененную матрицу.

Блок-схема Программа program matrica; uses crt; var a:array[1..4,1..4]of real; max,min,t:real; jmax,imin,jmin,i,j:integer; begin clrscr(); writeln('введите a[4,4]');    for i:=1 to 4 do     for j:=1 to 4 do         readln(a[i,j]); writeln('матрица a[4,4]');    for i:=1 to 4 do begin     for j:=1 to 4 do         write(a[i,j]:6:1);      writeln; end; max:=-10000; for j:=1 to 4 do if a[2,j]>max then begin max:=a[2,j]; jmax:=j; end; writeln('max=',max,'jmax=',jmax); min:=10000; for i:=1 to 4 do for j:=1 to 4 do    if (a[i,j]<min) and (a[i,j]>0) then       begin         min:=a[i,j];         imin:=i;         jmin:=j;       end; writeln('min=', min:4:1, 'imin=', imin:3, 'jmin=', jmin:3); t:=a[imin,jmin]; a[imin,jmin]:=max; a[2,jmax]:=t; writeln('измененния матрица a[4,4]');    for i:=1 to 4do   begin     for j:=1 to 4         write(a[i,j]:6:1);      writeln; end; end.

Далее приводятся различные фрагменты программ для матрицы а[4,4], матрица заполняется не целыми числами (типа real).

Найти сумму положительных элементов 3-го столбца.

Фрагмент блок-схемы Фрагмент программы s:=0;  for i:=1 to 4 do    if a[i,3]>0 then    s:=s+a[i,j];  writeln('s=',s:4:1); Примечание: в разделе Var s:real;

Произведение элементов главной диагонали.

Фрагмент блок-схемы Фрагмент программы p:=1; for i:=1 to 4 do for j:=1 to 4 do    if(i=j) then       p:=p*a[i,j]; writeln('p=',p:4:2); Примечание: в разделе Var p:real;

Количество отрицательных элементов во всей матрице.

Фрагмент блок-схемы Фрагмент программы k:=0; for i:=1 to 4 do for j:=1 to 4 do    if a[i,j]<0 then       k:=k+1;  writeln('k=',k:4); Примечание: в разделе Var k:integer;

Поменять местами 2-ю и 4-ю строки.

Фрагмент блок-схемы Фрагмент программы for j:=1 to 4 do  begin tmp:=a[2,j]; a[2,j]:=a[4,j]; a[4,j]:=tmp;  end; Примечание: в разделе Var tmp:real;

Вычислить суммму по формуле для элементов 4-го столбца .

Фрагмент блок-схемы Фрагмент программы Sum:=0; for i:=1 to 4 do Sum:=Sum+sin(a[i,4]); writeln('Sum=',Sum:4:3); Примечание: в разделе Var Sum:real;

 

Описание лабораторных работ

При выполнении лабораторных работ студенты закрепляют навыки, полученные в течение семестра (лекции, консультации, самостоятельная работа). Лабораторные работы выполняются до сдачи зачета (экзамена).


Дата добавления: 2019-09-13; просмотров: 272; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!