Основные алгоритмы при работе с матрицами
Во всех фрагментах программ используется матрица А(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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!