Программирование циклических алгоритмов
Автор: учитель информатики Горшкова Ольга Николаевна.
МОУ СОШ №4 Малоярославец Калужской области.
Программирование циклических алгоритмов
Файл: конспект урока
Тема: «Программирование циклических алгоритмов».
Цели урока:
— помочь учащимся усвоить виды циклических алгоритмов и написание программного кода по алгоритмам, проработать за компьютером решение задач на тему;
— воспитание информационной культуры учащихся, внимательности, аккуратности, дисциплинированности, усидчивости;
— развитие познавательных интересов, умения работать в программной среде Pascal, самоконтроля, умения правильно расставлять акценты.
Оборудование: Доска, компьютер, компьютерная презентация.
План урока:
I.Орг. момент. (1 мин)
II.Проверка и актуализация знаний. (4 мин)
III.Теоретическая часть. (8 мин)
IV.Практическая часть. (18 мин)
V.Д/з (2 мин)
VI.Вопросы учеников. (5 мин)
VII.Итог урока. (2 мин)
Ход урока:
I.Орг. момент.
Приветствие, проверка присутствующих, объяснение хода урока.
II.Актуализация знаний.
Мы с вами неоднократно возвращаемся к предмету программирования как аналитическому материалу, позволяющему расширить и углубить способности каждого, возможно, и заинтересовать для дальнейшего выбора специальности.
Современный человек не представляет себе жизнь без компьютера, редко вспоминая о том, что программное обеспечение было когда – то и кем – то написано, и мы с вами пользуемся плодами работы этих людей.
На этом уроке мы продолжим осваивать язык Pascal, применяя его к решению практических задач.
III. Теоретическая часть.
Итак, мы уже знакомы с программированием линейных алгоритмов и алгоритмов с ветвлением. Сегодня нам предстоит изучить создание программ, телом которых является цикл.
Цикл – это многократное повторение последовательности действий по некоторому условию. Любой цикл состоит из тела и заголовка. Тело цикла – это набор повторяющихся операторов, а условие – это логическое выражение, в зависимости от результата которого происходит повторное выполнение цикла.
Известны три типа циклических алгоритмических структур: цикл с предусловием, цикл с постусловием и цикл с параметром. Паскаль реализует все три типа циклов.
Цикл с предусловием (цикл – пока) – наиболее универсальная циклическая структура. Реализуется оператором While.
Формат оператора:
While< логическое выражение>do< тело цикла>
Пока значение логического выражения – true, выполняется тело цикла; как только условие становится false, выполнение цикла прекращается.
Если используем несколько операторов в коде, заключаем их в операторные скобки – beginи end.
Цикл с постусловием (цикл – до) имеет формат:
Repeat< тело цикла>
until< логическое выражение>
Выполняется тело цикла до тех пор, пока условие – false, как только логическое выражение принимает значение true, выполнение цикла прекращается.
Тело цикла с постусловием выполняется хотя бы один раз. Использования beginи end для ограничения составного тела цикла не требуется.
Цикл с параметром имеет два варианта записи:
1) For I:= In to Ik do < телоцикла>;
2) For I:= IndowntoIk do < телоцикла>.
Здесь I – параметр цикла – простая переменная, как правило, целого типа;
Inи Ik- выражения целого типа, определяющие начальное и конечное значение параметра.
< тело цикла> может быть простым или составным оператором.
Цикл повторяется, пока значение параметра лежит в интервале между Inи Ik. Причём эти значения вычисляются только один раз в начале выполнения цикла.
Значение параметра увеличивается на единицу (первый вариант) и уменьшается на единицу (второй вариант) при каждой итерации.
Рассмотрим решение одной задачи тремя способами.
Задача1. Вычислить сумму чётных чисел натурального ряда от 1 до N.
А)
program Project1;
vara,s,n: integer;
begin
write(‘n = ‘);
readln(n);
a:= 2;
s:= 0;
while a< =n do
begin
s:=s + a;
a:= a+2
end;
writeln(s);
readln;
end.
Б)
program Project1;
vara,s,n: integer;
begin
write('n = ');
readln(n);
a:= 2;
s:= 0;
repeat
s:=s + a;
a:= a+2
until a>n;
writeln(s);
readln;
end.
В)
program Project1;
vara,s,n: integer;
begin
write(‘n = ‘);
readln(n);
s:= 0;
for a:= 1 to n
do
begin
if a mod 2 = 0 then
s:=s + a;
end;
writeln(s);
readln;
end.
Очевидно, все три результата будут одинаковыми.
Вопросы:
Из чего состоит любой цикл?
Назвать три типа циклических алгоритмических структур.
Написать на доске формат циклических операторов.
Привести примеры задач, решаемых с использованием циклов.
IV. Практическая часть.
Сегодняшний практикум будет посвящён решению задач с написанием кода на Паскале. Необходимо продумать, какой цикл лучше всего использовать для решения той или иной задачи.
Предлагаются следующие задачи:
1.Напечатать минимальное число, большее 200, которое нацело делится на 17.
2.Гражданин 1 марта открыл счёт в банке, вложив 1000 рублей. Через каждый месяц размер вклада увеличивается на 2% от имеющейся суммы. Через сколько месяцев размер вклада превысит 1200 рублей?
3.Вычислить сумму натурального ряда от mдо n.
program Project1;
var n: integer;
begin
n:=200;
while n mod 17<>0 do
n:=n+1;
writeln(n);
readln;
end.
program Project2;
varn,s: integer;
begin
s:=1000; n:=1;
while s< =1200 do
begin
s:=1000+20*n;
n:=n+1;
end;
writeln(n-1);
readln;
end.
или
program Project2;
varn,s: integer;
begin
s:=1000; n:=1;
repeat
s:=1000+20*n;
n:=n+1;
until s>=1200;
writeln(n);
readln;
end.
program Project3;
vari,m,n,s: integer;
begin
readln(m);
readln(n);
s:=0;
for i:=m to n do begin
s:=s+i;
end;
writeln(s);
readln;
end.
V.Д/з.
Знать, что такое циклы, их разновидности и как они используются. Попробовать написать одну – две программы на задачи из учебника алгебры.
VI.Вопросы учеников.
Ответы на вопросы учащихся.
VII.Итог урока.
Подведение итога урока. Выставление оценок.
На уроке мы познакомились с программированием задач с использованием циклических алгоритмов. Научились писать небольшие программы, правильно подбирая необходимую циклическую конструкцию.
P.S. Презентация прилагается.
Слайд 1
Слайд 2
Слайд 3
Слайд 4
Слайд 5
Слайд 6