Тип урока: Лекция, 11 класс (2 часа)
Цель урока:
- Опираясь на представление данных, необходимость их описания перед использованием в программе, сформировать осознанное отношение к понятию тип данных
- Через опыт, ассоциации, знания учащихся классифицировать типы данных в языке программирования Qbasic, ввести понятие массива и обозначить основные алгоритмы работы с ним
План лекции:
- Понятие массива. Тип. Размерность. Оператор DIM.
- Алгоритм создания массива.
- Способы заполнения массива.
- Основные формулы, используемые в задачах с массивами.
Ход урока
I. Актуализация знаний, умений и навыков. Определение темы урока.
На доске:
1) | 2) | 3) | |||||||||||||||
|
|
|
Повторим, какие типы данных используем при решении алгоритмов? (ответ: целые, вещественные, текстовые)
Попробуем узнать объект изучения на уроке.
Да. Это таблицы. Часто в повседневной практике нам приходится их использовать. Попробуйте определить преимущества оформления и восприятия информации в виде таблицы. Это, конечно, компактность, определённость структуры и тематики, наглядность. Всё это не осталось незамеченным и определило возможность использования представления информации в виде таблиц и в компьютере. Можно ли определить таблицу знакомыми нам простыми типами данных? (ответ: нет). Поэтому таблицы в системе программирования получили название: массивы – это новый более сложный тип данных.
II. Целеполагание.
III. Лекция.
1. Примерные вопросы к классу для определения основных понятий по 1 пункту плана:
- попробуйте определить, что же такое массив?
- если создадим все три массива в компьютере, как обратиться к каждому из них, к элементам одного массива?
- как отличить элементы одного массива?
- чем отличаются друг от друга массивы?
- сколько чисел достаточно, чтоб определить место каждого элемента
Из беседы с учащимися делаем вывод:
Массив – это последовательность однородных данных, обозначенных одним именем.
Одно данное от другого отличается индексом. Индекс – это порядковый номер элемента в массиве.
Массивы отличаются друг от друга по имени, типу и размерности.
Имя массива, как и имя переменной должно начинаться с латинской буквы, допустимо использование и цифр.
Тип массива определяется типом данных: целые, вещественные или текстовые и обозначается привычным видом - %, ! (или без знака), $.
Размерность – это количество чисел, однозначно определяемых положение элемента в массиве. Массивы бывают одномерные, двумерные, трёхмерные и т.д. (многомерные). Мы будем использовать только одно- и двухмерные, при этом, для одномерного массива в скобках указывается одно число – количество элементов, а для двумерного два числа через запятую – количество строк и столбцов.
Полное имя массива состоит из: имени типа (размерности).
Запишем полные имена для наших массивов, записанных на доске:
А(5) | К2%(2,3) | Р$(4) |
2. Как же организовать массив на языке программирования?
Давайте построим все этапы создания привычной для нас таблицы в тетради:
- Определяем структуру таблицы, размер строк, столбцов в зависимости от данных.
- Строим таблицу.
- Заносим в неё данные.
Аналогично организуем работу и с массивами.
Прежде, чем использовать таблицу в программе, надо дать компьютеру указание, чтобы он зарезервировал место в памяти. Для этого служит оператор DIM (по-английски: dimension – размер).
Формат: DIM полные имена массивов через запятую.
Для нашего примера: DIM А(5), К2%(2,3), Р$(4)
DIM – невыполняемый оператор, обычно ставится в начале программы (чтоб улучшить её читаемость), до первого обращения к элементам массива.
Какой алгоритм поможет нам заполнить массив элементами? Конечно, циклический, т.к. способ ввода данных одного массива будет одинаков для каждого элемента. Циклический алгоритм поможет и вывести массив на экран.
Алгоритм создания массива
- До обращения к элементам массива зарезервировать в памяти компьютера место оператором DIM.
- С помощью цикла ввести элементы массива.
- С помощью цикла вывести элементы массива.
Учесть и следующее: если в массиве количество строк и столбцов (или элементов) определено величиной переменной, а не постоянной, то ввести значения переменных необходимо до оператора DIM (мы сначала решаем сколько элементов в таблице, а затем уже её чертим).
Задача 1. Создать одномерный массив.
Аргументы: массив A(N)-вещ N-цел (к-во элементов массива) А(I) – вещ (элементы массива) Промежуточная величина: I-цел (индекс элементов, управляющая переменная цикла) Результат: A(I)-вещ Блок-схема: рис. 1 |
Программа REM создание одном. массива CLS INPUT «введи к-во элементов»; N DIM A(N) FOR I=1 TO N PRINT «введи»;I; «элемент» INPUT A(I) NEXT I FOR I=1 TO N PRINT A(I) NEXT I END |
Рис. 1
Для получения двумерного массива необходимо дать понятие вложенных циклов.
Это можно сделать на примере работы часов.
Задача 2. Создать двумерный массив.
Аргументы: массив К%(3,5) – цел К%(I,J) – цел Промеж. вел: I, J –цел Результат: К%(I, J) - цел Блок-схема: рис. 2 |
REM создание двумерного массива CLS DIM К%(3,5) FOR I=1 TO 3 FOR J=1 TO 5 INPUT K%(I,J) NEXT I NEXT J FOR I=1 TO 3 FOR J=1 TO 5 PRINT K%(I,J); NEXT I NEXT J END |
ПРАКТИКУМ НА ПК
Цель: Увидеть на экране создание массива.
А) Одномерный массив:
- горизонтальное и вертикальное положение элементов массива;
- разные способы вывода элементов (например, –2 4 5 7 или А(1)=-2, А(2)=4 и т.д.)
Б) Двумерный массив:
- каким образом идёт заполнение массива (по строчкам)
- необходимость разделителя в конце PRINT
- необходимость пустого PRINT
3. Способы заполнения массива
Вопросы для водной беседы.
- Какой способ ввода элементов использовался в рассмотренных задачах? (С помощью оператора INPUT)
- Удобен ли он для ввода элементов массива? Почему? (Неудобен, т.к. ввод значений элементов происходит через клавиатуру, а если массив большой? Кроме этого невозможно соединить цикл ввода и вывода, т.к. нарушится наглядность вывода элементов на экран, программа получается громоздкой)
Конечно, способ ввода элементов массива через INPUT не единственный. Рассмотрим их.
На доске три алгоритма создания массива. Составить к каждому блок-схему.
1) | 2) | 3) | |
CLS DIM А%(8) FOR I=1 TO 8 А%(I)=INT(RND(1)*10) ? А%(I) NEXT I |
CLS DIM B(10) FOR X=1 TO 10 B(X)=X/2+3 ? B(X) NEXT X |
CLS DIM К$(2,3) FOR A=1 TO 2 FOR B=1 TO 3 READ K$(A,B) ? K$(A,B); |
NEXT В ? NEXT А DATA Ж, Л, О DATA Е, З, Р |
Определите способы ввода элементов каждого массива. Оцените их удобства и преимущества.
Итак, способы вода элементов:
- Через клавиатуру, с помощью оператора INPUT.
- С помощью счётчика случайного числа RND.
- По формуле.
- Через операторы READ и DATA.
ПОМНИТЬ!
- 1 способ: не соединять цикл ввода и вывода – это нарушает читаемость массива.
- 2 способ: удобнее RND использовать с функцией INT, что уменьшает количество цифр в числе. Регулировать отрезок используемых чисел домножением RND.
- 3 способ: в формулах использовать переменные, значения которых изменяются в ходе работы цикла (например, управляющую переменную), с одинаковыми числами работать монотонно.
- 4 способ: данные операторы удобнее использовать для создания массива, заранее определённого условием задачи. Недопустимо использование массива, количество элементов которого определено переменной.
ПРАКТИКУМ.
Цель: рассмотреть создание массива разными способами ввода элементов, отработать навыки грамотного использования каждого из способов.
4. Основные формулы, используемые в задачах с массивами.
ДО ЦИКЛА | В ЦИКЛЕ |
Сумма элементов | |
S=0 | S=S+A(I) |
Произведение элементов | |
P=1 | P=P*A(I) |
Подсчёт количества элементов | |
К=0 | К=К+1 |
Нахождение максимума (минимума) | |
М=А(1) | если А(I)>М (A(I)<M), то М=А(I) |
Формула обмена (перестановка элементов местами) | |
Место формулы в алгоритме зависит от условия задачи. | |
С=A(I), A(I)=B(I), B(I)=C |
ПРАКТИКУМ.
Цель: закрепить знания, отработать умения и навыки по теме: «Массив» при решении задач.
По теме предлагается провести:
- проверочную работу с целью проверки усвоения понятия массива, размерности и способов ввода элементов;
- зачет.
Примерные алгоритмы, решение которых можно рассмотреть:
- Заменить элементы массива с чётными номерами на их квадраты, а с нечётными – увеличить на номер элемента в массиве.
- Найти сумму элементов в каждой строке двумерного массива.
- В массиве найти количество элементов, превосходящих число х.
- В двумерном массиве найти максимальный элемент и вывести его индексы на экран.
- Фамилии участников олимпиады хранятся в одном массиве, а количество баллов – в другом. Составить программу, которая будет печатать фамилию победителя, если он набрал 100 баллов.