ОБРАБОТКА ДВУМЕРНОГО МАССИВА Что делает данная программа? p:=1; k:=0; for i:=1 to n do for j:=1 to m do begin if a[i,j]<>0 then p:=p*a[i,j]; if a[i,j]=0 then k:=k+1; end; writeln(p); writeln(k); Группы классических ошибок при решении задач по теме “Массивы”: I. Алгоритмические: 1. отсутствие составного оператора (begin - end) отсутствие ввода необходимых данных, отсутствие вывода результата 3. нарушение порядка действий в алгоритме II. Синтаксические ошибки: 1. неверная запись ключевых слов, операторов языка Pascal 2. неверно расставлены разделители (точка с запятой, запятая, двоеточие) III. Ошибки описания: 1. переменных 2. массивов 3. описание не всех переменных IV. Несогласование типов переменных V. Ошибки в оформлении процедур ввода/вывода VI. Неверная организация цикла с параметром VII. Неверное использование условного оператора и логических переменных VIII Ошибки при организации значения переменной с помощью оператора присваивания 2. В прямоугольной матрице поменять местами столбцы с порядковыми номерами k и l. Вывести полученную матрицу на экран. Укажите ошибки var a : array[1..10, 1..10] of integer; i,j,k,l:integer; b:real; Begin For I = 1 to n do For J = 1 to m do readln(a[i,j]) writeln(k,l); for I = 1 to n do; for J = 1 to m do; b:=a[i,k]; a[i,k]:=a[i,l]; a[i,l]:=b; Writeln(a[i,j]); end. В прямоугольной матрице поменять местами столбцы с порядковыми номерами k и l. Вывести полученную матрицу на экран. var a : array[1..10, 1..10] of integer; var a : array[1..10, 1..10] of integer; i,j,k,l:integer; i,j,n,m,k,l:integer; b:real; b:integer; Begin Begin For I = 1 to n do Readln(n,m); For J = 1 to m do readln(a[i,j]) For I: = 1 to n do writeln(k,l); for I = 1 to n do; For J := 1 to m do readln(a[i,j]); for J = 1 to m do; writeln(k,l); b:=a[i,k]; for I : = 1 to n do begin a[i,k]:=a[i,l]; b:=a[i,k]; a[i,l]:=b; a[i,k]:=a[i,l]; Writeln(a[i,j]); a[i,l]:=b; end. end; For I: = 1 to n do begin For J := 1 to m do write(a[i,j]); writeln; end; end. Определить минимальный элемент среди положительных элементов прямоугольной матрицы. var a : areey[1..10, 1..10] of real; min,i:integer; Begin For I = 1 to n do For J = 1 to m do readln(a[i,j]) a[1,1]:=min; for I = 1 to n do for J = 1 to m do if (a[i,j]>min)or (a[i,j]>0) then begin min:=a[i,j]; writeln(‘минимал.полож.элем=’,min); end; end. Определить минимальный элемент среди положительных элементов прямоугольной матрицы. var a : areey[1..10, 1..10] of real; min,i:integer; Begin For I = 1 to n do For J = 1 to m do readln(a[i,j]) a[1,1]:=min; for I = 1 to n do for J = 1 to m do if (a[i,j]>min)or (a[i,j]>0) then begin min:=a[i,j]; var a : array[1..10, 1..10] of real; i,j,n,m:integer; min:real; Begin Readln(n,m); For I: = 1 to n do writeln(‘минимал.полож.элем=’,min); For J := 1 to m do readln(a[i,j]); end; end. min:=a[1,1]; for I : = 1 to n do for J : =1 to m do if (a[i,j]<min) and (a[i,j]>0) then min:=a[i,j]; writeln(‘мин.пол.элем=’,min); end. Определить среднее арифметическое всех элементов прямоугольной матрицы с элементами целого типа var a:aray[1..10, 1..10] of integer; I,S,K:integer; Begin For I = 1 to n do For J = 1 to m do readln(a[i,j]) S:=0; K:=0; for I = 1 to n do; for J = 1 to m do; S:=S+A[I]; K:=K+1; SR:=S/K; Wrateln(‘ср.арифм.=,’SR); end. Определить среднее арифметическое всех элементов прямоугольной матрицы с элементами целого типа var a:array[1..10, 1..10] of integer; i,j,n,m,S,K:integer; sr:real; Begin Readln(n,m); For I: = 1 to n do For J := 1 to m do readln(a[i,j]); S:=0; K:=0; for I : = 1 to n do for J: = 1 to m do Begin S:=S+A[i,j]; K:=K+1; End; SR:=S/K; Writeln(‘ср.арифм.=,’SR); end. var a:aray[1..10, 1..10] of integer; I,S,K:integer; Begin For I = 1 to n do For J = 1 to m do readln(a[i,j]) S:=0; K:=0; for I = 1 to n do; for J = 1 to m do; S:=S+A[I]; K:=K+1; SR:=S/K; Wrateln(‘ср.арифм.=,’SR); end. Домашнее задание Задание 1 Дана прямоугольная матрица. Положительные элементы матрицы увеличить на 5, а отрицательные - уменьшить на 5. Вывести полученный массив на экран. Задание 2 Дана квадратная матрица. Заменить элементы матрицы, расположенные выше главной диагонали, на число 1, а элементы, расположенные ниже главной диагонали на число 0. Вывести полу-ченный массив на экран. Итог урока Повторили и закрепили навыки решения задач по теме «Обработка двумерных массивов» Рассмотрели основные ошибки при решении задач по теме «Обработка двумерных массивов»