Массивы. Решение задач на языке программирования Паскаль
Цели урока:
Образовательный аспект: обеспечить формирование и использование учащимися знаний о массивах, видах и характеристиках массивов, основных операциях над элементами массива. Показать формат описания одномерного массива на языке программирования Pascal.
Развивающий аспект: развивать алгоритмическое мышление; навыки формализации при решении информационных задач с помощью средств языка программирования; умение выделять в информационных моделях параметры для автоматической обработки на компьютере; навыки самостоятельной работы.
Воспитательный аспект: восприятие компьютера как инструмента обработки информации, воспитание чувства коллективизма и ответственности друг за друга.
Оборудование: компьютерный класс, мультимедийный проектор, экран, доска, опорные листы, карточки с номерами (1 .. n и 1..m, где n - количество девочек, m - количество мальчиков в классе), самоклеющиеся карточки для рефлексии.
Программное обеспечение: интегрированная инструментальная оболочка программы Turbo Pascal 7.0, офисная программа M.S. Power Point, презентация «Массивы», файл C:\basket.pas
Тип урока: изучение нового материала.
Краткий конспект основных этапов.
1. Выход на тему урока, целеполагание.
Посмотрите внимательно на экран, перед вами лексическое значение одного слова французского происхождения, которое я выписала из большого энциклопедического словаря. (Текст на слайде:)
- (слово французского происхождения, обозначающее мощный или сплошной) совокупность множества однородных по каким-либо признакам объектов, предметов, данных и т.п., например: жилой…, лесной…, горный…, информационный…
Скажите, какое это слово? Оно будет главным в теме нашего урока.
(Массив). Да, действительно это слово - массив, а тема урока – «Одномерные массивы».
Давайте попробуем вместе составить план урока.
О чём бы хотели узнать здесь и сейчас? (учащиеся отвечают).
Таким образом, сегодня на уроке вы узнаете: (слайд с планом урока)
1. Что такое массив в языке программирования?
2. Какие характеристики имеет массив?
3. Какие операции можно производить с элементами массива?
4. Как описать массив на языке Pascal?
2. Работа над понятием «массив».
Но давайте ещё раз обратимся к лексическому значению слова массив.
Какие, по – вашему, слова определяют сущность понятия массив? (совокупность, множества, однородные).
А где ещё вы сталкиваетесь с определением «однородные»? (в русском языке - однородные члены предложения.) Подберите синонимы к этому слову. (одинаковые, однотипные).
Другими словами можно сказать, что массив – это множество однотипных объектов, имеющих общее название (имя). В жизни мы часто сталкиваемся с такими множествами. Например (слайд с примерами):
Назовите окружающие вас в кабинете объекты, которые можно объединить в массивы. (окна, столы, компьютеры, члены жюри, ученики класса)
Как правило, массивы содержат большое количество данных, которые необходимо где-то сохранить и обработать. И сделать это может? (компьютер).
В компьютерной программе массив- это набор однотипных данных, хранящихся в памяти и имеющих имя.
3. Какие характеристики имеет массив?
Массив имеет следующие характеристики:
имя - название массива;
индекс - номер элемента в массиве;
элемент - каждое значение в массиве;
размер - количество элементов в массиве.
Существуют различные виды массивов по размерности, в школьном курсе вы познакомитесь с двумя – одномерными и двумерными (слайд с видами массивов). Перед вами на экране примеры объектов, представляющих такие массивы (на слайде изображения шкафа с одинаковыми ящиками и зрительный зал).
Назовите их характеристики.
Имя массива? (шкаф)
Индексы ? (номера ящика)
Элемент массива? (содержимое ящика)
Размер? (5)
Имя массива? (кинозал)
Индексы? (номер ряда, номер места)
Элемент массива? (человек, занимающий место)
Размер? (количество рядов, количество мест в ряду)
А сейчас давайте немного поиграем и создадим массивы, элементами которых будете вы сами.
Возьмите на столе карточки с номерами и создайте два массива:
• девочки 9а
• мальчики 9а
(учащиеся пересаживаясь, должны образовать 2 ряда: девочки и мальчики и выбрать карточку с номером, соответствующим его месту в ряду)
Определите размеры ваших массивов? (называют количество девочек и мальчиков) Значение 1-го элемента? Значение последнего элемента? (называют соответствующие фамилии). Ваш индекс в массиве?(называют свой номер)
Таким образом, мы с вами разобрались с характеристиками массива.
4. Какие операции можно производить с элементами массива?
А теперь подумайте, какие операции можно выполнить над элементами массива?
Обратитесь, пожалуйста, к . Заполните таблицу. Продолжите список операций над массивами различных типов данных. На предыдущих уроках вы изучили типы данных языка программированияPascal.
Скажите, чем отличается строковый тип от числового? (учащиеся отвечают)
Поставьте знак «+», если операция применима к соответствующему типу данных и знак «- », если нет. Через 2 минуты, вы назовёте свои варианты основных операций над массивами (самостоятельная работа в течение 2-х минут, затем учащиеся называют операции и их применимость, идёт коллективное обсуждение ответов).
Сравните свои ответы с тем, что вы видите на слайде, скорректируйте (слайд с таблицей операций над массивами). Какую особенность вы заметили? Да, действия над элементами массива зависят от типа данных.
Теперь вы знаете о массивах если ещё ни всё, то многое.
Вы знаете, что массив – это…, его характеристики…, основные операции…(фронтальный опрос). Можно перейти к последнему пункту составленного нами плана урока:
5.Как описать массив на языке Pascal?
Вспомните, в каком разделе программы описываются переменные, константы? (в разделе Var).
Массив также задаётся в разделе Var. Запишите формат описания:
Имя массива: array [размер] of тип данных;
(где array и of – ключевые слова, размер: [начальный индекс . . конечный индекс ])
Пример:spisok:array [1..5] ofstring; (массив с именем spisok может вместить 5 элементов строкового типа).
Обратитесь к опорному листу. Внимательно изучите таблицу условных обозначений элементов массива вPascal и попытайтесь самостоятельно описать массивы, выполняя задания 1 и 2. (время выполнения 3-4 минуты).
Сравните свои результаты с образцом, исправьте ошибки (слайд с правильными ответами).
Итак, план урока по всем пунктам выполнен? Но?… Хотели бы вы прямо сейчас проверить свои знания на интересной для вас практической задаче?
6. Применение знаний на практике. Работа с ПК,
Думаю, что да. Ребята, я знаю, что в вашей школе любят играть в баскетбол и есть сборная команда. Давайте вместе создадим программу, отбирающую кандидатов в её состав из числа учащихся, рост которых превышает 170 см.
Какие данные нам для этого необходимы? (фамилии учащихся и их рост в сантиметрах).
Как вы думаете, эти данные будут храниться в одном массиве или двух? (предлагаются варианты, идёт обсуждение).
Необходимы два массива: строковый для ввода фамилий и числовой для значений роста учеников. И третий массив для хранения результата: фамилий кандидатов в сборную школы.
Запишите, пожалуйста, на обратной стороне карточек с номерами свой примерный рост в сантиметрах. Разделитесь на две группы, разработайте и дайте словесное описание алгоритма решения этой задачи ( через 1-2 минуты представитель от каждой группы озвучивает вариант алгоритма, после общего обсуждения выбирается оптимальный вариант).
Обратите внимание, что в предложенном алгоритме решения данной задачи встречается уже известная вам операция «выбор по условию».
Как реализовать на языке Pascal эту операцию, а также ввод данных в массив и вывод из него вы узнаете на последующих уроках, поэтому эту часть программы написала я сама, и ошибок в алгоритмическом разделе нет, тем не менее, программа не работает. В чём тут дело? Я уверена, что знания, полученные вами сегодня, помогут устранить ошибку, и компьютер выведет на экран список учащихся вашего класса, кандидатов в сборную школы.
Займите свои рабочие места за компьютерами. Запустите инструментальную оболочку программы Turbo Pascal 7.0 и откройте файл по адресу C:\basket.pas. Сделайте эту программу работоспособной.
(Текст программы на языке Pascal:
program basket;
uses crt;
var
N,i,k:integer;
BEGIN
Clrscr;
writeln('Введите количество учеников');
readln(N);
writeln('Введите фамилию и рост ученика');
for i:=1 to N do
begin
write('fam[',i,']= ');
read(fam[i]);
write('rost[',i,']= ');
readln(rost[i]);
end;
k:=0;
for i:=1 to N do
if rost[i]>=170 then begin
k:=k+1;
kom[k]:=fam[i];
end;
if k=0 then
writeln('кандидатов нет')
else
writeln('Список претендентов в сборную школы');
Writeln;
for i:=1 to k do
writeln(kom[i]);
readln
end. )
(ученики, советуясь и помогая друг другу, дописывают недостающие строки программы враздел var
fam:array[1..10] of string;
rost:array[1..10] of integer;
kom:array[1..10] of string; ,
вводят данные и получают результат)
Так почему не работала программа? (учащиеся отвечают) Правильно. Потому что в ней не были описаны массивы. Вы полноправно можете считать себя соавторами этой программы.
7. Подведение итогов урока.
Давайте подведём итог нашего урока. Снова обратитесь к Опорному листу. На полях напротив каждого вопроса, рассмотренного на уроке, поставьте соответствующий знак:
«+» всё понятно «!» хочу узнать больше
«?» остались вопросы «- » не понял (а)
Это позволит вам и вашему учителю своевременно решить проблемы по этой теме и обеспечить удовлетворение интереса к ней.
А теперь закройте на несколько секунд глаза и представьте себе массив. Попробуйте нарисовать его образ на карточке. Подойдите к доске и приклейте свою карточку в соответствующую колонку. (доска расчерчена на 4 колонки, в оглавлении которых знаки «+», «?», «!»,«- » )
Я вижу, что наше сотрудничество было интересным и плодотворным. Желаю вам дальнейших успехов в изучении Информатики, ведь в наш непростой информационный век, согласитесь, этот предмет можно назвать «окном» в новый мир.