Цель: способствовать формированию у обучающихся
навыков заполнения и обработки двумерных массивов.
Ход урока:
1. Проверочная работа: «Двумерные массивы»:
- 5-7 мин. отводиться на выполнение проверочной работы.
- Самопроверка. Обучающиеся проверяют свои работы, сверяясь с
правильными ответами на экране проектора, и сами выставляют себе оценки.
- Учитель собирает работы для дальнейшего анализа степени
усвоения материала.
2. Постановка задачи с элементами проблемного обучения.
Что это такое?
2х2=4
2х3=6
2х4=8
2х5=10
2х6=12
2х7=14
2х8=16
2х9=18
2х10=20 |
3х2=6
3х3=9
3х4=12
3х5=15
3х6=18
3х7=21
3х8=24
3х9=27
3х10=30 |
4х2=8
4х3=12
4х4=16
4х5=20
4х6=24
4х7=28
4х8=32
4х9=36
4х10=40 |
5х2=10
5х3=15
5х4=20
5х5=25
5х6=30
5х7=35
5х8=40
5х9=45
5х10=50 |
6х2=12
6х3=18
6х4=24
6х5=30
6х6=36
6х7=42
6х8=48
6х9=54
6х10=60 |
7х2=14
7х3=21
7х4=28
7х5=35
7х6=42
7х7=49
7х8=56
7х9=63
7х10=70 |
8х2=16
8х3=24
8х4=32
8х5=40
8х6=48
8х7=56
8х8=64
8х9=72
8х10=80 |
9х2=18
9х3=27
9х4=36
9х5=45
9х6=54
9х7=63
9х8=72
9х9=81
9х10=90 |
Предполагаемый ответ обучающихся:
таблица умножения.
А это, что такое?
|
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
2 |
4 |
6 |
8 |
10 |
12 |
14 |
16 |
18 |
3 |
6 |
9 |
12 |
15 |
18 |
21 |
24 |
27 |
4 |
8 |
12 |
16 |
20 |
24 |
28 |
32 |
36 |
5 |
10 |
15 |
20 |
25 |
30 |
35 |
40 |
45 |
6 |
12 |
18 |
24 |
30 |
36 |
42 |
48 |
54 |
7 |
14 |
21 |
28 |
35 |
42 |
49 |
56 |
63 |
8 |
16 |
24 |
32 |
40 |
48 |
56 |
64 |
72 |
9 |
18 |
27 |
36 |
45 |
54 |
63 |
72 |
81 |
Предполагаемый ответ учащихся –
тоже таблица умножения, но в другом виде.
Комментарии учителя: таблица умножения,
представленная в матричной форме, называется "Матрица Пифагора”.
А как ей пользоваться? По какому алгоритму, получаются значения в
матрице Пифагора?
Предполагаемый ответ учащихся –
номер столбца нужно умножить на номер строки.
Задание: Сформировать, средствами языка
программирования Turbo Pascal, матрицу Пифагора и
вывести ее на экран монитора.
Давайте, формализуем постановку нашей задачи.
Каким типом данных в Turbo Pascal, можно
представить матрицу Пифагора?
Предполагаемый ответ учащихся
– двумерным массивом.
В каких числовых приделах будут изменяться индексы этого двумерного
массива?
I – Номер строки от 2 до 9,
J – Номер столбца так же от 2 до 9.
Какая формула будет использоваться для заполнения элементов
двумерного массива?
Предполагаемый ответ учащихся-
a[I,J]:=I*J.
Таким образом,
Формализованная постановка задачи: Дан двумерный
массив, номера строк и столбцов, которого изменяются от 2 до 9.
Заполнить данный массив по формуле I*J и вывести
значения его элементов на экран по строкам.
Этапы построения программы:
- Описать двумерный массив A (индексы строк изменяются от 2 до
9, индексы столбцов изменяются от 2 до 9) и переменные для индексов
I,J.
- Заполнить массив по формуле A[I,J]:=I*J.
- Вывести на экран двумерный массив А построчно.
Program xx;
uses crt;
var
a:array[2..9,2..9] of integer;
i,j:integer;
begin
clrscr;
for i:=2 to 9 do
for j:=2 to 9 do
a[i,j]:=i*j;
for i:=2 to 9 do
begin
for j:=2 to 9 do
write(a[i,j]:3);
writeln;
end;
readkey end.
Обратите внимание, что мы сначала для заполнения используем два
цикла, причем один цикл вложен в другой. Затем точно такие же циклы
используем для вывода значений элементов массива.
Можно ли оптимизировать алгоритм?
Для оптимизации алгоритма можно данные вложенные циклы использовать
только один раз, а не два. Для этого нужно после вычисления значения
элемента массива, осуществить его вывод на экран. Тем самым количество
строк алгоритма не изменится, но сократится время выполнения программы,
что является в программировании очень важным.
Фрагмент программы |
Оптимизированный фрагмент
программы |
for i:=2 to 9 do
for j:=2 to 9 do
a[i,j]:=i*j;
for i:=2 to 9 do
begin
for j:=2 to 9 do
write(a[i,j]:3);
writeln;
end; |
for i:=2 to 9 do
begin
for j:=2 to 9 do
begin
a[i,j]:=i*j;
write(a[i,j]:3);
end;
writeln;
end; |
ПРИЛОЖЕНИЯ СКАЧИВАЙ ВВЕРХУ СТРАНИЦЫ
|