Методические рекомендации к презентации
45 63 23 45 12
0 1 0 0 1 1
12 36 56 89 45
1 0 1 0 0 0
1 0 0 1 1 1
Двумерные
массивы
Const N=20; M=30;
Var
c: Array [1..N,1..M] Of Integer;
a: Array [1..N, 1..M] Of Real;
c[i,j]:=12;
min:= a[1,1];
b[i,j]:=i*j;
Автор разработки: Розанова Татьяна Аркадьевна,
учитель информатики МОУ СОШ №2 города Кинешмы Ивановской области
2011 – 2012 учебный год
Годовой отчёт по заработной плате
Январь
01
Февраль
02
15621,56
Март
13500,25
14800,23
03
04
10256,23
8950,11
12564,23
Апрель
11548,60
9123,65
Май
15642,23
8950,11
05
9123,65
9600,56
8950,11
9500,32
12456,32
Июнь
06
8561,45
Июль
9123,65
12541,89
10200,56
07
9600,56
8950,11
Август
9600,56
8561,45
8950,11
11256,50
7894,52
9123,65
6800,23
8561,45
9800,21
9123,65
Сентябрь
10236,32
7894,52
6452,12
9600,56
8561,45
7894,52
10236,32
Октябрь
9600,56
9800,21
12569,45
6800,50
8561,45
9800,21
Ноябрь
12569,45
10236,32
6800,50
7894,52
13156,45
7894,52
12569,45
11500,98
Декабрь
6800,50
10236,32
15156,45
9800,21
11500,98
12569,45
9800,21
10256,23
6800,50
13156,45
23450,56
6800,50
10256,23
13549,23
13156,45
22569,45
11500,98
11500,98
13549,23
7200,56
17500,62
10256,23
21400,62
10256,23
7200,56
13549,23
13549,23
22159,36
7200,56
23400,56
7200,56
9800,45
1. Сколько рублей потратило предприятие на выплату заработной платы в мае?
2. Какова годовая заработная плата 05 работника?
3. Сколько работников в сентябре имело заработную плату больше 15 000 рублей?
45 65 32 45
12 23 63 55
45 66 99 12
Работа со строками
Работа со столбцами
0 1 0 1
0 0 1 1
1 1 1 1
0 0 0 1
Двумерные массивы
3
4
Практикум
Проверь себя
Изучаем новое
1
Повторение
План работы
3
2
5
Задание на дом
Задача 1. Что можно сказать о сформированном массиве?
Задача 2. Какие изменения нужно
внести в программу, чтобы сформировать массив из вещественных чисел?
Повторение
Program P1;
Const N=6; M=3;
a=-20; b=20;
Var c: 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
c [i, j]:=Trunc (a+(b-a)*Random);
Write (c[i,j]:6);
End;
WriteLn;
End;
…
End.
Program P1;
Const N=6; M=3;
a=-20; b=20;
Var c: Array [1..N,1..M] Of Real;
i, j: Integer;
Begin
Randomize;
For i:=1 To N Do
Begin
For j:=1 To M Do
Begin
c [i, j]:= a+(b-a)*Random;
Write (c[i,j]: 6:2);
End;
WriteLn;
End;
…
End.
Ответ: двумерный целочисленный массив,
6 строк, 3 столбца.
Меню
Задача 3. Чему равен
элемент c[5,2]?
For i:=1 To N Do
For j:=1 To M Do
c [i,j]:=2*j-i;
Повторение
Задача 5. Какой массив сформирован?
For i:=1 To 4 Do
For j:=1 To 4 Do
c[i,j]:=i;
Ответ: -1.
Ответ:
i=1 1 1 1 1
i=2 2 2 2 2
i=3 3 3 3 3
i=4 4 4 4 4
Задача 4. Что выполняет фрагмент программы?
For i:=1 To N Do
For j:=1 To M Do
c[i,j]:=500+c[i,j];
Ответ: увеличивает значения всех элементов массива на 500.
Меню
7 Then z:= z+1; WriteLn (‘z=’ , z); y:=y+ Abs(c[i,j]) Вывод y Ответ: находит сумму модулей всех элементов массива. Ответ: находит количество элементов, больших 7. 7 Меню " width="640"
Задача 6. Что находит фрагмент программы?
x:=0;
For i:=1 To N Do
For j:=1 To M Do
If c[i,j]
WriteLn (‘x=’ , x);
Повторение
Задача 8. Что находит фрагмент алгоритма?
y:=0
Ответ: находит сумму элементов, меньших 5.
i:=1,N
j:=1,M
Задача 7. Что находит фрагмент программы?
z:=0;
For i:=1 To N Do
For j:=1 To M Do
If c[i,j]7 Then z:= z+1;
WriteLn (‘z=’ , z);
y:=y+ Abs(c[i,j])
Вывод y
Ответ: находит сумму модулей всех элементов массива.
Ответ: находит количество элементов, больших 7.
7
Меню
Задача 9.
Сколько элементов
массива 6×6 будет иметь положительные значения?
For i:=1 To 6 Do
For j:=1 To 6 Do
c[i,j]:=j-i;
Повторение
Задача 10.
Сколько элементов
массива 4×4 равны 1?
For i:=1 To 4 Do
For j:=1 To 4 Do
If i+j Mod 3 =0 Then c[i,j]:=0
Else c[i,j]:= 1;
j=1
j=6
j=5
j=4
j=3
j=2
j=4
j=3
j=2
j=1
+
+
+
+
0
+
i=1
-
1
0
1
+
+
+
+
0
i=1
i=2
1
0
i=3
+
0
1
+
1
i=2
-
0
+
-
i=4
1
1
0
1
-
i=3
+
-
-
0
+
i=4
1
1
-
0
1
0
-
i=5
-
-
+
Ответ:11.
-
0
i=6
-
-
-
-
8
Ответ: 15.
Меню
Массив с
Сформирован целочисленный массив с (8×5).
Изучаем
новое
- Распечатать элементы 6 строчки.
- Найти сумму элементов 2-го столбца.
- Найти количество положительных элементов в 3 строчке.
- Найти максимальный элемент в 4 столбце.
- Поменять местами элементы 2 и 4 столбцов.
j=5
j=3
j=2
j=4
j=1
i=1
i=2
i=3
i=4
i=5
i=6
i=7
i=8
9
Меню
Распечатать элементы 6 строчки
Изучаем
новое
For j:=1 To 5 Do
WriteLn (c[ 6 ,j]);
j=1
j=2
j=3
j=4
j=5
C[ 6 ,2]
C[ 6 ,5]
C[ 6 ,4]
C[ 6 ,3]
C[ 6 ,1]
i= 6
Меню
Найти сумму элементов 2-го столбца
Изучаем
новое
+ c[i, 2 ]
S:=0;
For i:=1 To 8 Do
S:=S+c [i, 2 ];
WriteLn (‘S=’ , S);
j=2
S
C[1, 2 ]
i=1
C[2, 2 ]
i=2
C[3, 2 ]
i=3
C[4, 2 ]
i=4
C[5, 2 ]
i=5
C[6, 2 ]
i=6
C[7, 2 ]
i=7
C[8, 2 ]
i=8
Меню
0} k:=0; For j:=1 To 5 Do If c[ 3 ,j]0 Then k:=k+1; WriteLn (‘k=’ , k); j=5 j=4 j=3 j=2 j=1 k C[ 3 ,3] C[ 3 ,1] C[ 3 ,2] C[ 3 ,4] C[ 3 ,5] i= 3 Меню " width="640"
Найти количество положительных элементов в 3 строчке
Изучаем
новое
+ 1 {если c[ 3 ,j]0}
k:=0;
For j:=1 To 5 Do
If c[ 3 ,j]0 Then k:=k+1;
WriteLn (‘k=’ , k);
j=5
j=4
j=3
j=2
j=1
k
C[ 3 ,3]
C[ 3 ,1]
C[ 3 ,2]
C[ 3 ,4]
C[ 3 ,5]
i= 3
Меню
Max Then Max:=c[i, 4 ]; WriteLn (‘Max=’ , Max); j=4 Max C[1, 4 ] C[2, 4 ] i=2 C[3, 4 ] i=3 C[4, 4 ] i=4 C[5, 4 ] i=5 C[6, 4 ] i=6 C[7, 4 ] i=7 C[8, 2 ] i=8 Меню " width="640"
Найти максимальный элемент в 4 столбце
Изучаем
новое
Max:=c[1,4];
For i:=2 To 8 Do
If c[i, 4 ]Max Then Max:=c[i, 4 ];
WriteLn (‘Max=’ , Max);
j=4
Max
C[1, 4 ]
C[2, 4 ]
i=2
C[3, 4 ]
i=3
C[4, 4 ]
i=4
C[5, 4 ]
i=5
C[6, 4 ]
i=6
C[7, 4 ]
i=7
C[8, 2 ]
i=8
Меню
Поменять местами элементы 2 и 4 столбцов
Изучаем
новое
For i:=1 To 8 Do
Begin
x:=c [i, 2 ];
c [i, 2 ]:=c [i, 4 ];
c [i, 4 ]:=x;
End;
j=2
j=4
x
i=1
i=2
i=3
i=4
i=5
i=6
i=7
i=8
14
Меню
Выводы
j=1 j=2 j=3 j=4
j=1 j=2 j=3 j=4
i=1 -5 0 8 -1
i=1 -5 0 8 -1
i=2 -8 7 7 4
i=2 -8 7 7 4
i=3 0 0 1 2
i=3 0 0 1 2
i=4 3 4 5 8
i=4 3 4 5 8
При работе со столбцом меняется параметр i , номер столбца определяется условием задачи
При работе со строчкой меняется параметр j , номер строчки определяется условием задачи
Меню
Что выполняет фрагмент программы в сформированном массиве?
Проверь
себя
…
For i:=1 To 5 Do
c[i, 3 ]:=c[i, 3 ]+1000;
…
-7 5 6 -4 -9
-2 -5 0 8 -1
-8 -8 7 7 4
-4 0 0 1 2
-6 3 4 5 8
Ответ: увеличивает элементы 3 столбца на 1000.
Меню
Что выполняет фрагмент программы в сформированном массиве?
Проверь
себя
…
For j:=1 To 5 Do
Write (c [ 2 ,j]:6 );
…
-7 5 6 -4 -9
-2 -5 0 8 -1
-8 -8 7 7 4
-4 0 0 1 2
-6 3 4 5 8
Ответ: распечатывает
2 строчку.
Меню
Что выполняет фрагмент программы в сформированном массиве?
Проверь
себя
…
For i:=1 To 5 Do
c[i, 4 ]:=10;
…
-7 5 6 -4 -9
-2 -5 0 8 -1
-8 -8 7 7 4
-4 0 0 1 2
-6 3 4 5 8
Ответ: элементы 4 столбца заменяет числом 10.
Меню
Что выполняет фрагмент программы в сформированном массиве?
Проверь
себя
…
S:=0;
For j:=1 To 5 Do
If c[2,j]
WriteLn (‘S=’ , S);
…
-7 5 6 -4 -9
-2 -5 0 8 -1
-8 -8 7 7 4
-4 0 0 1 2
-6 3 4 5 8
Ответ: во 2 строчке находит сумму элементов, которые меньше 6.
Меню
Что выполняет фрагмент алгоритма в сформированном массиве?
Проверь
себя
-7 5 6 -4 -9
-2 -5 0 8 -1
-8 -8 7 7 4
-4 0 0 1 2
-6 3 4 5 8
i:=1,5
с[i,3] Mod 2 =0
c[i,3]:=70
Ответ: чётные элементы третьего столбца заменяет числом 70.
Меню
Сформировать таблицу «Годовой отчёт по заработной плате» для одного из цехов некоторого предприятия.
В цехе трудится семь работников. Массив заработных плат заполнить случайным образом, диапазон взять от 6 000 рублей до 25 000 рублей с точностью до копейки.
Практикум
Январь
01
Февраль
15621,56
02
13500,25
Март
14800,23
03
Апрель
8950,11
10256,23
12564,23
04
11548,60
Май
9123,65
15642,23
05
8950,11
06
9600,56
12456,32
Июнь
9123,65
8950,11
9500,32
Июль
9123,65
8561,45
12541,89
8950,11
9600,56
07
10200,56
6800,23
Август
7894,52
8561,45
11256,50
9123,65
8950,11
9600,56
9800,21
Сентябрь
9123,65
8561,45
9600,56
7894,52
6452,12
10236,32
10236,32
Октябрь
12569,45
6800,50
8561,45
9600,56
9800,21
7894,52
8561,45
12569,45
Ноябрь
9800,21
6800,50
10236,32
13156,45
7894,52
9800,21
10236,32
7894,52
11500,98
13156,45
6800,50
12569,45
Декабрь
9800,21
11500,98
12569,45
23450,56
6800,50
10256,23
13156,45
13156,45
22569,45
6800,50
13549,23
11500,98
10256,23
11500,98
13549,23
10256,23
7200,56
17500,62
7200,56
10256,23
13549,23
21400,62
13549,23
7200,56
22159,36
23400,56
7200,56
9800,45
Вариант 1
Вариант 2
- Сколько потратило предприятие на выплату з/п в январе?
- Найти годовую з/п 07 работника.
- Сколько человек имели в декабре з/п больше 20 000 рублей?
- Сколько потратило предприятие на выплату з/п в феврале?
- Найти годовую з/п 05 работника.
- Сколько человек имели в сентябре з/п меньше 10 000 рублей?
Меню
Const N=7; M=12;
a=6000; b=25000;
Var c: Array [1..N,1..M] Of Real;
s,s1:Real ;
k, i, j: Integer ;
Begin
Randomize;
WriteLn (‘Отчёт по заработной плате’);
For i:=1 To N Do
Begin
For j:=1 To M Do
Begin
c [i, j]:= a+(b-a)*Random;
Write (c[i,j] :10:2 );
End;
WriteLn;
End;
…
Практикум,
самопроверка
Меню
20000 then k:=k+1; WriteLn (‘k=‘, k); Практикум, самопроверка Вариант 2 s:=0; For i :=1 To N Do s:=s+c[ i,2 ]; WriteLn (‘s=‘, s:10:2, ‘руб.’); s1:=0; For j :=1 To M Do s1:= s1+c[ 5,j ]; WriteLn (‘s1=‘, s1:10:2 ‘руб’); k:=0; For i :=1 to N Do If c[ i,9 ] WriteLn (‘k=‘, k); Меню " width="640"
Вариант 1
s:=0;
For i :=1 To N Do s:=s+c[ i,1 ];
WriteLn (‘s=‘, s:10:2, ‘руб.’);
s1:=0;
For j :=1 To M Do s1:= s1+c[ 7,j ];
WriteLn (‘s1=‘, s1:10:2 ‘руб’);
k:=0;
For i :=1 to N Do
If c[ i,12 ]20000 then k:=k+1;
WriteLn (‘k=‘, k);
Практикум,
самопроверка
Вариант 2
s:=0;
For i :=1 To N Do s:=s+c[ i,2 ];
WriteLn (‘s=‘, s:10:2, ‘руб.’);
s1:=0;
For j :=1 To M Do s1:= s1+c[ 5,j ];
WriteLn (‘s1=‘, s1:10:2 ‘руб’);
k:=0;
For i :=1 to N Do
If c[ i,9 ]
WriteLn (‘k=‘, k);
Меню
-4 5 6 0 0 1
-9 5 6 3 3 4
-8 5 4 4 4 4
-7 7 8 0 0 0
-9 6 5 2 0 1
-6 5 5 5 7 8
Домашнее задание
Сформировать целочисленный массив (6×6), заполненный случайным образом.
- Заменить нулями элементы третьей строчки.
- Чётные элементы второго столбца увеличить на 100, распечатать получившийся массив.
- В четвёртом столбце найти количество элементов, которые больше 40.
- *Распечатать строчку, в которой находится минимальный элемент массива (если таких элементов несколько и находятся в разных строчках, то любую из них).
- **Упорядочить вторую строчку в порядке нестрогого возрастания.
- **Сформировать одномерный массив, каждый элемент которого равен сумме элементов соответствующего столбца.
Меню
Методические рекомендации к презентации
Название презентации: «Двумерные массивы. Работа со строками и столбцами (1-й урок)».
Целевая аудитория : ученики 10-11 классов, профильные группы.
Применение презентации:
- проведение урока по теме;
- индивидуальная работа на уроке с учеником, по каким – либо причинам, пропустившим материал;
- дополнительные занятия по подготовке учеников к олимпиадам по программированию;
- довузовская подготовка;
- дистанционное обучение школьников.
Презентация состоит из 24 слайдов, 4-й слайд оформлен в виде меню, снабжён гиперссылками для перехода на соответствующий этап урока.
Слайды снабжены анимационными эффектами. Сколько эффектов на каждом слайде можно узнать по количеству небольших квадратов справа. При выполнении щелчка мыши на слайде число квадратов уменьшается. Пользователю всегда понятно, сколько осталось на слайде сделать кликов.
показывает, что далее пойдёт поясняющая (иллюстрирующая) анимация,
показывает, что далее идёт результат (ответ или строчка программы).
Учитель может использовать все анимационные эффекты на слайде, может использовать только поясняющие (розовые), а ответы проговорить с учениками только устно или программу записать с учениками на доске. Всё зависит от уровня подготовки целевой аудитории. Переход на следующий слайд в любой момент можно сделать с помощью управляющих кнопок.
Если учитель на уроке использует все слайды презентации, то можно не учитывать гиперссылки, а работать с ней, как с линейной презентацией.
Для соблюдения санитарно – гигиенических норм применения технических средств обучения на уроках учитель может использовать не все разделы презентации, он может использовать раздаточный материал.
Меню