Виды циклических алгоритмов

Дата ___________ Класс ___________

Тема: «Циклические алгоритмы»

Цель: Дать понятия циклических алгоритмов а также научить учащихся составлять циклические алгоритмы на языке Паскаль, используя операторы While, Repeat, For.

Задачи:

  • Закрепить знания полученные на прошлых занятиях с операторами ветвления;

  • развитие умений использовать различные операторы цикла для решения задач;

  • развитие умений учащихся в выборе оптимального решения для задач циклической структуры.

Тип занятия: комбинированный

Методы обучения: объяснительно-иллюстративный, исследовательский, практический.

Оборудование и программное обеспечение:

  • интерактивная презентация по теме «Программирование циклических алгоритмов»;

  • компьютеры с инсталлированным на них пакетом Pascal ABC;

  • проектор и экран для демонстрации лекции;

  • дидактический раздаточный материал.

План урока:

  1. Организационный момент.

  2. Повторение ранее изученного материала.

  3. Объяснение задания для учащихся.

  4. Закрепление знаний.(Решение задач.)

  5. Подведение итогов урока.

  6. Домашнее задание

Ход занятия:

  1. Организационный момент (проверка присутствующих, проверка готовности к работе)

  1. Повторение ранее изученного материала

Вы уже знаете, что алгоритмы любой степени сложности состоят из трёх базовых типов алгоритмических конструкций. Назовите, пожалуйста, эти конструкции? Ответ:(следование, ветвление и цикл).

Вы умеете записывать линейные и разветвляющиеся алгоритмы на языке Паскаль. На этом уроке нам предстоит познакомиться с операторами для организации циклов. Но прежде чем мы начнём с ними знакомиться, давайте вспомним некоторые определения и понятия связанные с циклами.

Основные понятия:

  • алгоритмическая структура Цикл представляет собой последовательность команд, выполняемых многократно

  • циклические алгоритмы могут быть организованы в нескольких вариантах:

    • цикл со счётчиком (с параметром)

    • цикл с условием (предусловием и постусловием)

При разработке алгоритмов циклической структуры выделяют следующие понятия:

  • параметр (переменная цикла) – величина, с изменением значения которой связано многократное выполнение цикла

  • начальное и конечное значения параметра цикла

  • шаг параметра цикла — значение, на которое изменяется параметр цикла при каждом повторении

  • тело цикла – команды, выполняемые в цикле

З

(Цикл с предусловием)

(Цикл с постусловием)

(Цикл со счётчиком)

адание 1: Назовите разновидность цикла представленного в виде блок-схемы

Предусловие Цикл с параметром Цикл с постусловием

ЗНЗПЦ – задание начального значения параметра цикла

ЗИПЦ – закон изменения параметра цикла

Материал для работы с учащимися:

Запишите, пожалуйста, тему нашего сегодняшнего урока «Составление программ. Программирование циклических алгоритмов»

В языке программирования Pascal каждому виду циклов соответствует свой оператор.

Цикл с предусловием

Формат оператора:

while условие do оператор;

где условие – логическое выражение, управляющее числом повторений – вычисляется перед каждой итерацией.

Выполнение оператора while заключается в следующем: проверяется условие, — если оно выполняется (значение его – TRUE), то выполняется оператор (тело цикла), записанный после слова do, — если же условие не выполняется (значение его – FALSE), происходит выход из цикла. Процесс повторяется до тех пор, пока условие не станет ложным. Здесь в качестве условия записывается условие продолжения цикла

Цикл с постусловием

Формат оператора:

repeat

оператор1;

оператор2;

..

операторN;

until условие;

где условие – логическое выражение, управляющее числом повторений; оператор1,…операторN – операторы записанные между служебными словами repeat и until . Эти операторы составляют тело цикла. Выполнение оператора REPEAT заключается в следующем: тело цикла выполняется, затем проверяется условие. Если условие не выполняется (значение его – FALSE), снова выполняется тело цикла, затем снова проверяется условиеПроцесс повторяется до тех пор, пока условие не станет истинным (пока значение его не будет равно TRUE).

Здесь в качестве условия записывается условие выхода из цикла.

Цикл со счетчиком

Цикл с увеличением счетчика

Формат оператора:

for Счетчик  НачальноеЗначение to КонечноеЗначение do Оператор;

Цикл с уменьшением счетчика

Формат оператора:

for Счетчик  НачальноеЗначение downto КонечноеЗначение 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. Закрепление знаний.

Для закрепления материала решим следующую задачу:

Получить таблицу перевода расстояния из дюймов в сантиметры для значений

длин от 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 (если времени недостаточно можно выполнить задание без применения компьютера).

Отчёт должен содержать:

  1. Блок-схему алгоритма решения задачи;

  2. Текст программы;

  3. Результаты работы программы. (если задание выполняется на компьютере)

Пример: Напечатать все буквы латинского алфавита.

Так как буквы латинского алфавита упорядочены, то можно составить программу, где используется цикл с параметрами символьного типа:

PROGRAM Alfavit;

Var sim:char;

BEGIN

writeln(‘Латинский алфавит’);

For sim:=‘A’ TO ‘Z’ DO

WRITE(‘ ‘,sim)

END.

Пример: Даны действительные числа. Вычислить их среднее арифметическое.

{ среднеарифметическое}

Program CA;

var i:integer; { параметр цикла}

n: integer; { количество чисел}

s :real; { вводимое число}

t: real; { среднее арифметическое}

begin

t:=0;

writeln(‘введите количество чисел’);

read(n);

for i:=1 to n do

begin

write(‘введите число ‘);

read(s);

t:=t+s;

end;

t:=t/n;

writeln(‘——————————————’);

writeln(‘среднее арифметическое=’, t:5:2);

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.

      1. Подведение итогов

Сегодня на уроке мы создавали программы с операторами для записи циклов в языке программирования Паскаль. Применили полученные знания при решении задач. Выяснили, что подавляющее большинство задач с циклами можно решать разными способами, используя при этом один из трех операторов цикла. Часто решения, использующие различные операторы цикла, оказываются равноценными. В некоторых случаях все же предпочтительнее использовать какой-то один из  операторов.

Завершите фразу:

•       Сегодня я узнал…

•       Я научился…

•       У меня получилось …

•       Было трудно…

      1. Домашнее задание

  • Выучить форматы записи операторов WHILE, REPEAT…UNTIL, FOR и правила их использования.

  • Разработать алгоритм решения задачи в виде блок-схемы и написать программу на языке программирования Turbo Pascal. Решить задачу с использованием трёх различных типов циклов.

Задача: В чайник налили воду при температуре 20°С и поставили на газ. Каждую минуту вода нагревается на 10°С. Через какое время вода закипит.

Интересный материал? Поделиться с другими:
Всё для учителя