ОБРАБОТКА ДВУМЕРНОГО МАССИВА

advertisement
ОБРАБОТКА
ДВУМЕРНОГО
МАССИВА
Что делает данная программа?
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. Вывести полу-ченный массив на
экран.
Итог урока
Повторили и закрепили навыки решения
задач по теме «Обработка двумерных
массивов»
Рассмотрели основные ошибки при
решении задач по теме «Обработка
двумерных массивов»
Download