Дать понятия циклических алгоритмов а также научить учащихся составлять циклические алгоритмы на языке Паскаль, используя операторы While, Repeat, For.
Вы уже знаете о суперспособностях современного учителя?
Тратить минимум сил на подготовку и проведение уроков.
Быстро и объективно проверять знания учащихся.
Сделать изучение нового материала максимально понятным.
Избавить себя от подбора заданий и их проверки после уроков.
Просмотр содержимого документа
«Виды циклических алгоритмов»
Дата ___________Класс ___________
Тема: «Циклические алгоритмы»
Цель: Дать понятия циклических алгоритмов а также научить учащихся составлять циклические алгоритмы на языке Паскаль, используя операторы While, Repeat, For.
Задачи:
Закрепить знания полученные на прошлых занятиях с операторами ветвления;
развитие умений использовать различные операторы цикла для решения задач;
развитие умений учащихся в выборе оптимального решения для задач циклической структуры.
Тип занятия:комбинированный
Методы обучения: объяснительно-иллюстративный, исследовательский, практический.
Оборудование и программное обеспечение:
интерактивная презентация по теме «Программирование циклических алгоритмов»;
компьютеры с инсталлированным на них пакетом Pascal ABC;
проектор и экран для демонстрации лекции;
дидактический раздаточный материал.
План урока:
Организационный момент.
Повторение ранее изученного материала.
Объяснение задания для учащихся.
Закрепление знаний.(Решение задач.)
Подведение итогов урока.
Домашнее задание
Ход занятия:
Организационный момент (проверка присутствующих, проверка готовности к работе)
Повторение ранее изученного материала
Вы уже знаете, что алгоритмы любой степени сложности состоят из трёх базовых типов алгоритмических конструкций. Назовите, пожалуйста, эти конструкции? Ответ:(следование, ветвление и цикл).
Вы умеете записывать линейные и разветвляющиеся алгоритмы на языке Паскаль. На этом уроке нам предстоит познакомиться с операторами для организации циклов. Но прежде чем мы начнём с ними знакомиться, давайте вспомним некоторые определения и понятия связанные с циклами.
Основные понятия:
алгоритмическая структура Цикл представляет собой последовательность команд, выполняемых многократно
циклические алгоритмы могут быть организованы в нескольких вариантах:
цикл со счётчиком (с параметром)
цикл с условием (предусловием и постусловием)
При разработке алгоритмов циклической структуры выделяют следующие понятия:
параметр (переменная цикла) – величина, с изменением значения которой связано многократное выполнение цикла
начальное и конечное значения параметра цикла
шаг параметра цикла - значение, на которое изменяется параметр цикла при каждом повторении
тело цикла – команды, выполняемые в цикле
З
(Цикл с предусловием)
(Цикл с постусловием)
(Цикл со счётчиком)
адание 1: Назовите разновидность цикла представленного в виде блок-схемы
Предусловие Цикл с параметром Цикл с постусловием
ЗНЗПЦ – задание начального значения параметра цикла
ЗИПЦ – закон изменения параметра цикла
Материал для работы с учащимися:
Запишите, пожалуйста, тему нашего сегодняшнего урока«Составление программ.Программирование циклических алгоритмов»
В языке программирования Pascal каждому виду циклов соответствует свой оператор.
Цикл с предусловием
Формат оператора:
whileусловиеdoоператор;
где условие – логическое выражение, управляющее числом повторений – вычисляется перед каждой итерацией.
Выполнение оператора whileзаключается в следующем: проверяется условие, - если оно выполняется (значение его – TRUE), то выполняется оператор (тело цикла), записанный после слова do, - если же условие не выполняется (значение его – FALSE), происходит выход из цикла. Процесс повторяется до тех пор, пока условие не станет ложным. Здесь в качестве условия записывается условие продолжения цикла
Цикл с постусловием
Формат оператора:
repeat
оператор1;
оператор2;
…..
операторN;
untilусловие;
где условие – логическое выражение, управляющее числом повторений; оператор1,…операторN – операторы записанные между служебными словами repeat и until . Эти операторы составляют тело цикла. Выполнение оператора REPEAT заключается в следующем: тело цикла выполняется, затем проверяется условие. Если условие не выполняется (значение его – FALSE), снова выполняется тело цикла, затем снова проверяется условие… Процесс повторяется до тех пор, пока условие не станет истинным (пока значение его не будет равно TRUE).
Здесь в качестве условия записывается условие выхода из цикла.
Цикл со счетчиком
Цикл с увеличением счетчика
Формат оператора:
forСчетчикНачальноеЗначение to КонечноеЗначениеdoОператор;
Переменная, стоящая после for в операторе цикла, называется счетчиком, параметром или [управляющей] переменной цикла. Счетчик цикла – переменная порядкового типа; начальное и конечное значения счетчика, в общем случае, - выражения того же типа, что и тип счетчика. Оператор, стоящий после слова do, - тело цикла - может быть составным.
Мы познакомились с операторами языка программирования Turbo Pascal для записи циклических алгоритмов. Воспользуемся этими операторами для решения следующей задачи:
Получить таблицу температур по Цельсию от 0 до 100 градусов и их эквивалентов по шкале Фаренгейта, используя для перевода формулу .
Запишем сначала решение данной задачи, воспользовавшись «циклом с предусловием»
Program prim1;
Var Tc:integer; {температура по Цельсию тип целый}
Tf:real; {температура по Фаренгейту тип действительный}
Begin
Tc:=0;
While Tc
Begin
Tf:=9/5*Tc+32;
Writeln(Tc,Tf); Тело Цикла
Tc:=Tc+1;
End;
End.
Запишем эту же задачу, используя «цикл со счётчиком»
Program prim2;
Var Tc:integer; {температура по Цельсию тип целый}
Tf:real; {температура по Фаренгейту тип действительный}
Begin
For Tc:=0 to 100 do
Begin
Tf:=9/5*Tc+32;
Writeln(Tc,Tf);
Tc:=Tc+1;
End;
End.
А теперь посмотрим, как наша задача решается с помощью конструкции «цикл с постусловием»
Program prim3;
Var Tc:integer; {температура по Цельсию тип целый}
Tf:real; {температура по Фаренгейту тип действительный}
Begin
Tc:=0;
Repeat
Tf:=9/5*Tc+32;
Writeln(Tc,Tf); Тело Цикла
Tc:=Tc+1;
Until Tc100 условие должно быть ложным
End.
Вы обратили внимание, что одну и ту же задачу мы записали при помощи трёх различных операторов.
Какие выводы вы можете сделать?(Можно использовать любой оператор цикла. Есть ограничения в использовании цикла For (шаг изменения параметра цикла должен быть 1 или -1. Если не известно сколько раз будет выполняться цикл, то используем While или Repeat)
Закрепление знаний.
Для закрепления материала решим следующую задачу:
Получить таблицу перевода расстояния из дюймов в сантиметры для значений
длин от 1 до 50 дюймов. (1дюйм=2,54см)
Какой тип цикла оптимален для решения данной задачи? (Ответ: цикл с параметром)
Давайте нарисуем на доске блок-схему решения этой задачи с использованием структуры цикла с параметром (со счётчиком).
Запишем программу:
Program prim1;
Var d: integer;
s:real;
begin
for d:=1 to 50 do
begin
s:=d*2.54;
writeln(d:4,s:5:2);
end;
end.
Для приведенной задачи определим, какие операторы образуют тело цикла, какая переменная является управляющей переменной цикла. Заполним таблицу:
Управляющая переменная цикла
Начальное значение
Конечное значение
Шаг изменения
Количество повторений цикла
d
1
20
1
20
Самостоятельная работа:
Переделать программу, используя другой вариант цикла (с предварительным или последующим условием). Задание выполняется на компьютерах в среде программирования Turbo Pascal (если времени недостаточно можно выполнить задание без применения компьютера).
Отчёт должен содержать:
Блок-схему алгоритма решения задачи;
Текст программы;
Результаты работы программы. (если задание выполняется на компьютере)
Пример: Напечатать все буквы латинского алфавита.
Так как буквы латинского алфавита упорядочены, то можно составить программу, где используется цикл с параметрами символьного типа:
PROGRAM Alfavit;
Var sim:char;
BEGIN
writeln(‘Латинскийалфавит’);
For sim:=‘A’ TO ‘Z’ DO
WRITE(‘ ‘,sim)
END.
Пример: Даны действительные числа. Вычислить их среднее арифметическое.
Пример: Вычислить объем каждого из нескольких шаров, а затем найти их суммарный объем. Известно, что радиус первого шара - R, радиус каждого последующего шара больше предыдущего на величину DR; радиус последнего шара - RK. Объем шара обозначим V, суммарный объем - VM. V=4/3*Pi*R3
Program Shar ;
const pi=3.14;
var
r,rk: real; (* радиус *);
v,vm: real; (* объём *);
dr:real; (* изменение радиуса *);
begin
writeln( ‘ введите начальное значение радиуса r : ‘ );
read(R);
writeln(‘ введите конечное значение радиуса rk : ‘ );
read(rk);
writeln( ‘ введите шаг изменения радиуса dr : ‘)
read(dr);
vm:=0;
while r
begin
v:=4*pi*r*r*r/3;
vm:=vm+v;
writeln(‘ r=‘ , r:6:2, ‘ ‘ :5, ‘ v=‘ , v:7:3);
r:=r+dr;
end;
Writeln (‘ **************************** ’);
Writeln(‘ общий объем VM=‘, VM:8:3)
end.
Подведение итогов
Сегодня на уроке мы создавали программы с операторами для записи циклов в языке программирования Паскаль. Применили полученные знания при решении задач. Выяснили, что подавляющее большинство задач с циклами можно решать разными способами, используя при этом один из трех операторов цикла. Часто решения, использующие различные операторы цикла, оказываются равноценными. В некоторых случаях все же предпочтительнее использовать какой-то один из операторов.
Завершите фразу:
• Сегодня я узнал…
• Я научился…
• У меня получилось …
• Было трудно…
Домашнее задание
Выучить форматы записи операторов WHILE, REPEAT…UNTIL, FOR и правила их использования.
Разработать алгоритм решения задачи в виде блок-схемы и написать программу на языке программирования Turbo Pascal. Решить задачу с использованием трёх различных типов циклов.
Задача: В чайник налили воду при температуре 20°С и поставили на газ. Каждую минуту вода нагревается на 10°С. Через какое время вода закипит.