Тема: «Составление программ с циклической структурой»
Вид занятия: практическое
Тип урока: урок усвоения знаний, умений, навыков
Цели урока:
Образовательная: Дать понятия циклических алгоритмов: цикл с предусловием; цикл с постусловием; цикл с параметром Рассмотреть структуры циклических алгоритмов и их блок – схемы; научиться разрабатывать простейшие циклические алгоритмы, записывать их в графическом представлении, реализовать алгоритмы в виде программ на языке Турбо Паскаль.
Развивающая: Способствовать развитию познавательного интереса к изучаемой дисциплине, любознательности студентов, развитие мыслительных способностей, памяти, внимания, умения сравнивать и анализировать.
Воспитательная: Воспитание внимательности, собранности; привитие навыков самостоятельной работы.
Методы обучения: информационно-развивающий (беседа, объяснение), наглядно-иллюстративный (демонстрация слайдов), репродуктивный (решение задач).
Межпредметные связи: дисциплины «Математика», «Программирование»
Внутрипредметные связи:
темы «Алгоритмы и способы их описания», «Составление линейных, разветвляющихся алгоритмов».
Обеспечение урока:
Наглядные пособия:
Раздаточный материал:
ТСО:
Ход урока
Организационный момент (1 – 2 мин):
2. Проверка знаний по пройденному материалу (10-15 мин)
Тестирование, проверка блок-схем (домашнее задание).
Повторить понятие алгоритма, основные конструкции алгоритмического языка.
Уметь разрабатывать математическую модель, алгоритм и блок схему решения задачи.
Иметь понятие о языках программирования и их назначении.
Уметь работать в среде программирования.
Знать структуры программы.
Уметь записывать выражения, содержащие числовые и символьные величины.
Знать структуры операторов и особенности их работы.
Уметь применять операторы при написании программ с линейными и ветвящимися структурами.
Уметь на компьютере создавать и запускать программы на отладку.
3. Сообщение темы, цели и плана урока (3 - 5 мин)
4. Актуализация опорных знаний (5 мин.)
Устная работа с презентацией (сл. 2-6)
5. Изучение и освоение нового материала (35 -40 мин)
Большинство практических задач требует многократного повторения одних и тех же действий, т. е. повторного использования одного или нескольких операторов.
Пусть требуется ввести и обработать последовательность чисел. Если чисел всего пять, можно составить линейный алгоритм. Если их тысяча, записать линейный алгоритм можно, но очень утомительно и нерационально. Если количество чисел к моменту разработки алгоритма неизвестно, то линейный алгоритм принципиально невозможен.
Другой пример. Чтобы найти фамилию человека в списке, надо проверить первую фамилию списка, затем вторую, третью и т.д. до тех пор, пока не будет найдена нужная или не будет достигнут конец списка. Преодолеть подобные трудности можно с помощью циклов.
Циклом называется многократно исполняемый участок алгоритма (программы). Соответственно циклический алгоритм — это алгоритм, содержащий циклы.
Различают два типа циклов: с известным числом повторений и с неизвестным числом повторений. При этом в обоих случаях имеется в виду число повторений на стадии разработки алгоритма.
Существует 3 типа циклических структур:
Цикл с предусловием;
Цикл с постусловием;
Цикл с параметром;
Иначе данные структуры называют циклами типа «Пока», «До», «Для».
Графическая форма записи данных алгоритмических структур:
Цикл с предусловием (иначе цикл пока) имеет вид:
Форматы записи операторов алгоритма | Блок-схема | Форматы записи операторов на Паскале |
Пока (условие) нц серия команд кц | | while условие do begin серия команд; end; |
где
условие – выражение логического типа.
Цикл может не выполняться ни разу, если значение логического выражения сразу же оказывается ложь.
Студент в первый день выучил 5 английских слов. В каждый следующий день он выучивал на 2 слова больше, чем в предыдущий. Сколько английских слов.
Program slova;
Var a,d,s:integer;
Begin
A:=5; d:=1; s:=5;
While d
Begin
D:=d+1;
A:=a+2;
S:=s+a;
end;
Writeln(‘ В 10 день ученик выучил ‘,a);
Writeln(‘За 10 дней ученик выучил ‘,s);
Readln
End.
Серия команд, находящихся между begin и end, выполняются до тех пор, пока условие истинно.
Для того чтобы цикл завершился, необходимо, чтобы последовательность инструкций между BEGIN и END изменяла значение переменных, входящих в условие.
Цикл с параметром (иначе цикл для) имеет вид:
Форматы записи операторов алгоритма | Блок-схема | Форматы записи операторов на Паскале |
Для i от а до b шаг h делай Нц Серия команд кц | | h = +1 for i:= a to b do begin серия команд end; h = -1 for i:= b downto a do begin Cерия команд; end; |
где
i- параметр цикла;
a – начальное значение цикла;
b- конечное значение цикла;
h-шаг изменения параметра.
Структура данного цикла иначе называют циклом i раз.
Эта команда выполняется таким образом: параметру i присваивается начальное значение а, сравнивается с конечным значением b и, если оно меньше или равно конечному значению b, выполняется серия команд. Параметру присваивается значение предыдущего, увеличенного на величину h - шага изменения параметра и вновь сравнивается с конечным значением b.
Пример.
Вычислить произведение чисел от 1 до 5 используя различные варианты цикла
Математическая модель:
Р= 1· 2· 3· 4· 5=120
Составим алгоритм в виде блок-схемы.
Проверка условия происходит в несколько шагов: проверка условия и выполнение команд на одной из ветвей. Поэтому в трассировочной таблице записываются не команды алгоритма, а отдельные операции, выполняемые компьютером на каждом шаге.
Шаг первый: Р присваивается значение один.
Шаг второй: i присваивается значение один.
Шаг третий: при i равном единице проверяем условие один меньше или равен пяти, да, условие истинно, значит Р присваивается значение один умноженное на один, будет два. Для i: один плюс один, будет два.
Шаг четвертый: при i равном двум проверяем условие два меньше или равен пяти, да, условие истинно, значит Р присваивается значение 2 умноженное на один, будет 2. Для i: два плюс один, будет три.
Шаг пятый: при i равном трем проверяем условие три меньше или равен пяти, да, условие истинно, значит Р присваивается значение два умноженное на три, будет шесть. Для i: три плюс один, будет четыре.
Шаг шестой: при i равном четырем проверяем условие четыре меньше или равен пяти, да, условие истинно, значит Р присваивается значение шесть умноженное на четыре, будет двадцать четыре. Для i: четыре плюс один, будет пять.
Шаг седьмой: при i равном пяти проверяем условие пять меньше или равен пяти, да ,условие истинно, значит Р присваивается значение двадцать четыре умноженное на пять, будет сто двадцать. Для i: пять плюс один, будет шесть.
Шаг восьмой: при i равном шести проверяем условие шесть меньше или равен пяти, нет, условие ложно, тогда мы выходим из цикла, а в результате получаем последнее значение равное сто двадцати.
Program Pr1;
Var i: integer;
Begin
P:=1;
i:=1;
While i
begin
P:=P*i;
i:=i+1;
end;
Write (‘P=’, P);
end.
Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько амеб будет через 3, 6, 9, 12,..., 24 часа.
Program Ameba;
Var K, n, s: integer;
Begin
S:=1;
For k:=1 to 8 do begin
n:=k*3;
S:=s*2;
Writeln(n,' ч.', 'кол-во амеб -',s); end;
End.
Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый день он увеличивал дневную норму на 10% нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за 7 дней?
Var
S, x: real;
k: integer;
Begin
X:=10; S:=0;
For k:=1 to 7 do begin
S:=S+x;
X:=x+x*0.1;
End;
Writeln('S=', S:7:3);
End.
На языке программирования Паскаль шаг изменения параметра может быть равным одному или минус одному.
Если между begin и end находится только один оператор, то операторные скобки можно не писать. Это правило работает для цикла типа «Пока» и «Для».
Рассмотрим пример решения задач с использованием данных структур
Для цикла с постусловием построим блок-схему и трассировочную таблицу. (слайд16)
В результате получаем последнее значение равное сто двадцати на седьмом шаге
И для Цикла с параметром построим блок-схему и трассировочную таблицу.
В результате получаем последнее значение равное сто двадцати на шестом шаге
Задача:
Вывести на экран числа от 1 до 5 в:
a) прямом порядке;
b) обратном порядке.
Математическая модель:
a) 1 2 3 4 5;
b) 5 4 3 2 1.
Блок-схема и программа решения задачи представлена для чисел в прямом порядке и обратном порядке.
Запишем рассмотренные алгоритмы на языке программирования Паскаль.
6. Практическая работа ( 20 мин)
«Составление программ с циклической структурой на языке Турбо Паскаль»
Задание | Алгоритм решения на Паскале |
Студент в первый день выучил 5 английских слов. В каждый следующий день он выучивал на 2 слова больше, чем в предыдущий. Сколько английских слов. В рабочей тетради записать сколько слов выучил студент в 10 день. | Program slova; Var a,d,s:integer; Begin A:=5; d:=1; s:=5; While d Begin D:=d+1; A:=a+2; S:=s+a; end; Writeln(‘ В 10 день ученик выучил ‘,a); Writeln(‘За 10 дней ученик выучил ‘,s); Readln End. |
Вычислить произведение чисел от 1 до 5 используя различные варианты цикла. В рабочую тетрадь записать результат | Program Pr1; Var i: integer; Begin P:=1; i:=1; While i begin P:=P*i; i:=i+1; end; Write (‘P=’, P); end. |
Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько амеб будет через 3, 6, 9, 12,..., 24 часа. В тетрадь записать количество амеб. | Program Ameba; Var K, n, s: integer; Begin S:=1; For k:=1 to 8 do begin n:=k*3; S:=s*2; Writeln(n,' ч.', 'кол-во амеб -',s); end; End. |
Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый день он увеличивал дневную норму на 10% нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за 7 дней? В тетрадь записать сколько км пробежит спортсмен за 7 дней. | Program Sportsmen; Var S, x: real; k: integer; Begin X:=10; S:=0; For k:=1 to 7 do begin S:=S+x; X:=x+x*0.1; End; Writeln('S=', S:7:3); End. |
| |
Дополнительные задания |
Написать программу, которая нарисует пингвина | |
Написать программу с помощью цикла, которая выводит таблицу квадратов первых десяти целых положительных чисел. Ниже представлен рекомендуемый вид экрана во время работы программы: Таблица квадратов ------------------------------------ Число Квадрат 1 1 2 4 3 9 … … 10 100 | Program exemple; Var a:integer; Begin Writeln(‘таблица квадратов’); Writeln(‘________________’); Writeln(‘число квадрат’); Writeln(‘________________’); For a:=1 to 10 do Writeln(a,’ ‘,sqr(a)); Readln End. |
Сто раз написать свое имя на экране в строчку | Program Z_1; Var i: integer; Begin For i: = 1 to 100 do Write (‘Имя ’); Readln End. |
7. Подведение итогов занятия (2 мин.)
И так мы рассмотрели следующие вопросы:
Алгоритмическая структура цикл;
Виды алгоритмических структур:
Цикл с предусловием;
Цикл с послеусловием;
Цикл с параметром;
Рассмотрели способы записи данных структур;
Разобрали примеры решения задач с помощью этих структур.
8. Сообщение домашнего задания (2 – 3 мин.)
Оценочный лист
Фамилия студента | Тестирование | Блок-схема | Устная работа | Работа на уроке | Практическая работа | Итог |
Арсентьева Юлия | | | | | | |
Бижанова Алина | | | | | | |
Габдуллина Диана | | | | | | |
Гафурова Анна | | | | | | |
Григорьева Надежда | | | | | | |
Дмитриева Анастасия | | | | | | |
Есболова Аяужан | | | | | | |
Кадыров Чингиз | | | | | | |
Карагушина Альбина | | | | | | |
Кочанова Яна | | | | | | |
Лебедева Анастасия | | | | | | |
Милкин Григорий | | | | | | |
Смагина Любовь | | | | | | |
Чупахин Антон | | | | | | |
Шалабаева Алсу | | | | | | |
Щербакова Елена | | | | | | |
Список использованной литературы
Программы для общеобразовательных учреждений. Информатика 2-11 класс. / Составитель М. Н. Бородин. – 2-е изд., М. Бином. Лаборатория знаний, 2007.- 463 с.: ил.
Информатика и ИКТ. Базовый курс: Учебник для 9 класса / И. Г. Семакин, Л. А. Залогова, С. В. Русаков, Л. В. Шестакова.-3-е изд.- 2-е изд., М.: Бином. Лаборатория знаний, 2007.- 359 с.: ил.
Преподавание базового курса информатики в средней школе: Методическое пособие / И. Г. Семакин, Т. Ю. Шеина. – 2-е изд., исп. И доп.- М.: Бином. Лаборатория знаний, 2004.- 540 с.: ил.
Задачник-практикум. Том 1. под ред. И. Г. Семакина - М. Бином. Лаборатория знаний, 2007.- 309 с.: ил.
Задачник-практикум. Том 2. под ред. И. Г. Семакина М. Бином. Лаборатория знаний, 2007.- 294 с.: ил.
http://pas1.ru/file Программирование для начинающих.
http://www.pascal7.ru/ Все о языке программирования Turbo Pascal.
http://tp7.info/ Сайт о языке программирования Turbo Pascal.
15