Матрицы
1 2 5 9
1 2 1 0
5 6 9 3
0 2 4 1
7 8 9 5
2 0 1 1
6 5 0 8
1 2 3 2
4 5 6 7
итого
7 5 3 6
5 4 5 3
5 9 7 6
4 5 8 0
2 3 0 9
0 4 5 0
Обработка всех столбцов или всех строк матрицы, отдел. фрагментов матрицы
Обработка отдельных строк матрицы
Обработка отдельных столбцов матрицы
Обработка всех элементов матрицы
Автор разработки: Розанова Татьяна Аркадьевна,
учитель информатики МБОУ школы №2 городского округа Кинешма Ивановской области
2016-2017 учебный год
Отчёт о продажах (код товара 2045)
01
Январь
Февраль
11
02
Март
6
03
14
10
9
17
Апрель
04
21
11
Май
11
8
05
10
20
13
15
Июнь
5
06
11
11
20
22
Июль
07
10
8
13
9
Август
16
14
9
9
12
20
61
8
Сентябрь
8
13
13
13
14
15
9
9
18
75
15
13
7
Октябрь
10
20
Ноябрь
21
10
12
97
17
9
20
12
19
23
14
Декабрь
112
10
8
18
10
25
101
11
10
15
22
19
12
20
13
82
18
18
18
18
12
75
20
15
20
23
10
14
123
19
99
20
15
21
110
13
129
29
139
- Сколько товара продано за год?
- Сколько товара продано в феврале?
- Сколько товара за год продал 04 магазин?
- Сколько магазинов в августе продало не менее 20 штук товара?
- В каком месяце продано всех больше товара?
Итоги контрольной работы
1 ученик
1
2 ученик
2
1
3 ученик
1
3
1
4 ученик
4
1
0
1
5 ученик
1
1
1
0
5
1
1
1
1
6
6 ученик
1
0
1
0
7
7 ученик
1
1
1
8 ученик
1
1
8
1
1
1
1
1
1
0
1
0
0
1
1
9 ученик
0
10 ученик
0
1
0
1
8
1
1
1
1
1
1
1
0
11 ученик
1
7
1
1
1
0
1
1
3
0
1
1
0
1
0
10
1
0
1
1
1
1
7
0
0
1
8
0
5
1
1
0
7
1
1
7
1
0
0
7
0
6
1
1
1
1
1
4
8
1
8
0
7
9
0
5
6
4
7 0 4
0 1 2
4 5 0
11
3
9
7 0 4
0 1 2
4 5 0
План
Обработка отдельных фрагментов матрицы
Обработка всех строк или всех столбцов матрицы
7 0 4
0 1 2
4 5 0
7 0 4
0 1 2
4 5 0
Обработка отдельных строк или столбцов матрицы
7 0 4
0 1 2
4 5 0
Обработка всех элементов матрицы
S=23
Матрица (двумерный массив) – это прямоугольная таблица, составленная из элементов одного типа (чисел, строк и т. д.). Каждый элемент матрицы имеет два индекса – номер строки и столбца.
Объявление и заполнение матрицы
program P1;
const N=3; M=4;
var A:array [1..N,1..M] of integer;
i, j: integer;
Begin
randomize;
for i:=1 to N do
begin
for j:=1 to M do
begin
A [i, j]:=random(20)+80;
write (A[i,j]:4);
end;
writeln;
end;
…
end.
j=1 j=2 j=3 j=4
i=1 85 90 98 81
i=2 98 87 97 94
i=3 80 90 91 82
Возможный вариант матрицы А
90 then k:= k+1; Для перебора всех элементов матрицы используется двойной цикл " width="640"
j=1 j=2 j=3 j=4
i=1 85 90 98 81
i=2 98 87 97 94
i=3 80 90 91 82
Обработка всех элементов матрицы
Нахождение суммы всех элементов матрицы
s:=0;
for i:=1 to N do
for j:=1 to M do
s:=s+A[i,j];
Нахождение количества элементов матрицы, больших 90
k:=0;
for i:=1 to N do
for j:=1 to M do
if A[i,j]90 then k:= k+1;
Для перебора всех элементов матрицы используется двойной цикл
Обработка отдельных строк и отдельных столбцов матрицы
j=1 j=2 j=3 j=4
i=1 -5 0 8 -1
i=2 -8 7 7 4
i=3 0 0 1 2
i=4 3 4 5 8
j=1 j=2 j=3 j=4
i=1 -5 0 8 -1
i=2 -8 7 7 4
i=3 0 0 1 2
i=4 3 4 5 8
При работе со столбцом меняется параметр i , номер столбца определяется условием задачи
При работе со строчкой меняется параметр j , номер строчки определяется условием задачи
Обработка отдельных строк и отдельных столбцов матрицы
Найдём сумму элементов 3-го столбца
s:=0;
for i:=1 To 4 do
s:=s+A [i, 3 ];
writeln (‘s=’ , s);
j=1 j=2 j=3 j=4
i=1 -5 0 8 -1
i=2 -8 7 7 4
i=3 0 0 1 2
i=4 3 4 5 8
0 then k:=k+1; writeln (‘k=’ , k); j=1 j=2 j=3 j=4 i=1 -5 0 8 -1 i=2 -8 7 7 4 i=3 0 0 1 2 i=4 3 4 5 8 " width="640"
Обработка отдельных строк и отдельных столбцов матрицы
Найдём количество положительных элементов во второй строчке
k:=0;
for j:=1 to 4 do
if A[ 2 ,j]0 then k:=k+1;
writeln (‘k=’ , k);
j=1 j=2 j=3 j=4
i=1 -5 0 8 -1
i=2 -8 7 7 4
i=3 0 0 1 2
i=4 3 4 5 8
max then max:=A[i, 4 ]; writeln (‘max=’ , max); j=1 j=2 j=3 j=4 i=1 -5 0 8 -1 i=2 -8 7 7 4 i=3 0 0 1 2 i=4 3 4 5 8 " width="640"
Обработка отдельных строк и отдельных столбцов матрицы
Найдём максимальный элемент в 4-м столбце
max:=A [1,4];
for i:=2 To 4 Do
if A[i, 4 ]max then max:=A[i, 4 ];
writeln (‘max=’ , max);
j=1 j=2 j=3 j=4
i=1 -5 0 8 -1
i=2 -8 7 7 4
i=3 0 0 1 2
i=4 3 4 5 8
Обработка отдельных строк и отдельных столбцов матрицы
Переставим вторую и четвёртую строчки, используя вспомогательную переменную c
for j:=1 to 4 do
begin
c:=A [ 2 ,j];
A [ 2 ,j]:=A [ 4 ,j];
A [ 4 ,j]:=c;
end;
j=1 j=2 j=3 j=4
i=1 -5 0 8 -1
i=2 -8 7 7 4
i=3 0 0 1 2
i=4 3 4 5 8
Обработка всех строк и всех столбцов матрицы
Найдём сумму элементов в каждом столбце матрицы
for j:=1 to 4 do
begin
D [j]:=0;
for i:=1 to 4 do
D [j]:=D [j]+ c [i,j];
end;
for i:=1 to 4
writeln (D [j]);
end.
j=1 j=2 j=3 j=4
i=1 -5 0 8 -1
i=2 -8 7 7 4
i=3 0 0 1 2
i=4 3 4 5 8
-10 11 21 13
Обработка всех строк и всех столбцов матрицы
Найдём количество отрицательных элементов в каждой строке матрицы
for i:=1 to 4 do
begin
D [i]:=0;
for j:=1 to 4 do
if a[i,j]
then D [i]:=D [i]+1;
end;
for i:=1 to 4
writeln (D [i]);
end.
j=1 j=2 j=3 j=4
i=1 -5 0 8 -1 2
i=2 -8 7 7 4 1
i=3 0 0 1 2 0
i=4 3 4 5 8 0
Практикум
Январь
01
02
11
Февраль
6
03
Март
14
9
04
Апрель
17
10
05
8
11
11
Май
21
06
5
15
Июнь
20
10
13
07
10
20
11
22
Июль
8
11
12
14
Август
9
16
13
9
9
13
14
Сентябрь
8
13
20
13
8
15
7
Октябрь
9
18
13
15
9
20
17
21
10
Ноябрь
10
12
9
8
Декабрь
20
19
14
10
23
12
10
11
22
10
25
15
18
20
19
12
13
18
18
18
12
15
18
20
10
23
14
20
20
19
15
13
21
29
Сформировать таблицу
«Отчёт о продажах»
за год для некоторого предприятия.
У предприятия семь магазинов. Матрицу продаж заполнить случайным образом
(диапазон взять от 5 до 30).
Найти
- Сколько товара продано за год первыми тремя магазинами?
- Сколько товара продано в мае?
- Сколько месяцев в году 03 магазин продавал не более 10 штук товара?
- Распечатать, сколько каждый магазин продал товара за год.
- В каком месяце всех меньше продали товара?
const N=12; M=7;
a=5; b=31;
var c: array [1..N,1..M] of integer;
d: array [1..M] of integer;
z: array [1..N] of integer;
s,s1 :integer;
k, min, kmin, i, j : integer;
begin
randomize;
writeln (‘Отчёт о продажах’);
for i:=1 to N do
begin
for j:=1 to M do
begin
c [i, j]:= random(b-a)+a;
write (c[i,j] :4 );
end;
writeln;
end;
…
writeln(' Найдём сумму элементов трёх первых столбцов матрицы ');
s:=0;
for i:=1 to N do
for j:=1 to 3 do
s:= s+c [i, j];
writeln ('s=',s);
writeln;
writeln( 'Найдём сумму элементов 5 строчки матрицы ');
s1:=0;
for j:=1 To 7 do
s1:=s1+c [ 5 ,j];
writeln ('s1=' , s1);
writeln;
writeln(' Сколько элементов в 3 столбце ');
k:=0;
for i:=1 to N do
if c [i, 3 ]
writeln ('k=' , k);
writeln;
writeln(' Распечатаем суммарный массив продаж для данных семи магазинов ');
for j:=1 to M do
begin
d[j]:=0;
for i:=1 to N do
d[j]:=d[j]+ c [i, j];
end;
for j:=1 to M do
write(d[j]:4);
writeln;
writeln(' Выясним, в каком месяце всех меньше продали товара ');
for i:=1 to N do
begin
z[i]:=0;
for j:=1 to M do
z[i]:=z[i]+ c [i, j];
end;
for i:=1 to N do
write(z[i]:4);
writeln;
min:=z[1];
kmin:=1;
for i:=1 to N do
if z[i]
begin
min:=z[i];
kmin:=i;
end;
writeln('kmin=',kmin);
end.
Домашнее задание
§67, задачи 1, 3, 10
Применение презентации
- УМК : К.Ю. Поляков и Е.А. Еремин. Информатика. Углублённый уровень: учебник для 10 класса: в 2 ч. – М.: БИНОМ. Лаборатория знаний, 2013.
- Класс : 10, 11 (для повторения), подготовка к олимпиадам, конкурсам по программированию.
- Раздел программы : «Алгоритмизация и программирование».
- Тема : «Матрицы».
- Цель презентации : формирование умений обрабатывать матрицы.