Урок алгоритмы с циклом

Урок алгоритмы с циклом thumbnail

Синдеева Ю. И. 9 класс АЛГОРИТМИЗАЦИЯ

Цели урока:

  • определить роль и масштабность циклических алгоритмов в повседневной жизни;

  • показать необходимость автоматизации циклических алгоритмов;

  • сформулировать определения цикла и циклического алгоритма и необходимость их использования для компактности и понятности записи алгоритма;

  • рассмотреть структуру цикла с предисловием, его работу и блок-схему;

  • научить составлять циклические алгоритмы и исполнять их формально;

  • научить анализировать фрагменты, содержащие циклы.

Задачи урока:

Воспитательная

-развитие познавательного интереса к теме;

– формирование коммуникативных качеств: обсуждение ситуаций, умение слушать, высказывать свои суждения и аргументировать их.

Образовательная

-дать представление о циклических алгоритмах;

– научить составлять циклические алгоритмы и исполнять их формально;

– научить анализировать фрагменты, содержащие циклы;

– научить составлять блок-схемы к алгоритмам, содержащим цикл с предусловием и по блок-схеме «читать» алгоритм.

Развивающая

– развивать мышление, память, кругозор, умение анализировать ситуации;

– формирование у учащихся умения вести полемику, аргументировать свою точку зрения.

Форма урока: лекция

План урока.

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

  2. Объяснение нового материала.

  3. Закрепление нового материала в ходе решения задач.

  4. Рефлексия.

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

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

  2. Объяснение нового материала.

В течение дня, недели, месяца …нам приходиться выполнять однообразные действия, причем многократно. Так, изо дня в день мы совершаем алгоритм, который условно можно назвать «Моя рабочая неделя». Действительно, каждый день (за исключением выходных), мы после пробуждения совершаем утренние процедуры, завтракаем, идем в школу (на работу), приходим из неё, обедаем, отдыхаем, делаем уроки, гуляем, ужинаем, ложимся спать…И так все 5 дней, каждую неделю, за исключением каникул!

Мы циклически повторяем одни и те же действия каждый день. И если делать это без отдыха или перерыва, то можно сойти с ума, или, говорят компьютерным языком «зациклиться»!

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

Определение

Цикл – это последовательность операторов, которая может выполняться более одного раза.

Определение

Циклический алгоритм – это алгоритм, содержащий один или несколько циклов.

Существуют удобные конструкции для организации циклов:

  • цикл с предусловием;

  • цикл с постусловием;

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

Познакомимся с первым из них – оператором цикла с предусловием ПОКА.

Циклы с предусловием используются тогда, когда выполнение цикла связано с некоторым логическим условием. Оператор цикла с предусловием имеет две части: условие выполнения цикла и тело цикла.

Общая форма записи следующая:

ПОКА <условие>

НЦ

Серия команд (тело цикла)

КЦ

При выполнении оператора ПОКА определенная группа команд выполняется до тех пор, пока определенное в операторе ПОКА булево условие истинно. Если условие сразу ложно, то группа операторов не выполнится ни разу.

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

Вспомним, как Том Сойер красил забор. Тетушка Поли тогда сказала Тому: «Крась до тех пор, пока забор не кончится». Тем самым она определили ему условие. В чем же состояли действия Тома?

hello_html_2a6ccc86.jpg Он подошел к правому краю забора,

– окунул кисть в ведро с краской,

– покрасил доску, повторяются

– передвинулся вправо,

– окунул кисть в ведро с краской,

– покрасил доску,

– передвинулся вправо, … и т.д.

Мы видим, что три действия повторяются многократно, и если бы мы записывали этот алгоритм линейно, то он был бы слишком громоздким (количество досок в заборе не малое!)

Поэтому целесообразно оформить этот алгоритм с использованием цикла с предусловием.

Аhello_html_m349cdcd4.jpgЛГ покраска забора

НАЧ

Подойти к правому краю забора

ПОКА забор не окончен

НЦ

окунул кисть в ведро с краской,

покрасил доску,

передвинулся вправо

КЦ

Пойти гулять

КОН.

Заметим, что условие могло быть и другим. Например,

ПОКА не позовут обедать

Пhello_html_692d435f.pngОКА не кончится краска

ПОКА не устанешь и т.д.

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

НАЧ

Подойти к правому краю забора

ПОКА забор не окончен (да, мы только к нему подошли)

НЦ

окунул кисть в ведро с краской,

покрасил доску,

передвинулся вправо (действия выполнились первый раз)

КЦ

Далее исполнитель идет в проверку условия.

ПОКА забор не окончен (да, покрашена только 1 доска)

Значит, снова будет выполняться тело цикла, т.е. последовательность из трех повторяющихся команд.

hello_html_m72366c2f.pngНЦ

окунул кисть в ведро с краской,

покрасил доску,

передвинулся вправо (действия выполнились второй раз)

КЦ

Далее исполнитель снова идет в проверку условия.

ПОКА забор не окончен (да, покрашено только 2 доски)

Значит, снова будет выполняться тело цикла, т.е. последовательность из трех повторяющихся команд.

НЦ

окунул кисть в ведро с краской,

покрасил доску,

передвинулся вправо (действия выполнились третий раз)

Кhello_html_3d2c196b.pngЦ

Далее исполнитель снова идет в проверку условия.

ПОКА забор не окончен (нет, он окончен, и мы покрасили все три доски, т.е. условие не выполняется).

  • Если условие уже не выполняется, то исполнитель уходит за цикл и выполняет команды за циклом.

В частности, это команда

«Пойти гулять».

На этом выполнение алгоритма закончено.

Заметим, что действие за циклом выполняется всего один раз.

Читайте также:  Цикл крайон в россии

Этих действий могло быть несколько, например,

«Отнести ведро в сарай»

«Помыть руки»

«Пойти обедать»…, но, тем не менее, они выполнятся однократно, т.к. находятся за циклом.

Составим блок-схему для этого алгоритма.

Подойти к правому

краю забора

Вопросы: В какой ещё алгоритмической структуре встречается условие? Чем действия этой структуры отличаются от работы цикла с предусловием?

Рассмотрим несколько примеров.

  1. Вы пошли в школьный буфет купить булочку. По дороге Вам встретился Злоумышленник и предложил воспользоваться таким алгоритмом для покупки булочки:

АЛГ булочка

НАЧ

ПОКА не исчезло чувство голода

НЦ

купить булочку

КЦ

Съесть булочку

КОН

Вопросы: Удастся ли Вам полакомиться булочкой? Что нужно изменить в алгоритме?

2) Вам задали решить на завтра 10 задач по физике. Идя домой, Вы встретили Злоумышленника и он опять-таки предложил Вам свой алгоритм:

АЛГ задачки

НАЧ

ПОКА не решены все задачи

НЦ

Решить одну

Пойти гулять

КЦ

КОН.

Вопрос: На завтра Вы получили «2». Почему? Что надо исправить в предложенном алгоритме?

ВЫВОД: месторасположение команды (в цикле или за ним) имеет большое значение и влияет на результат алгоритма.

А теперь рассмотрим не словесные задачи, а математические.

III. Закрепление нового материала в ходе решения задач.

Задача 1. Вычислить сумму однозначных чисел.

Заметим, что такую задачу мы взяли для простоты формального исполнения. Аналогичным образом решаются задачи на нахождение суммы любого ряда чисел.

ОБСУЖДЕНИЕ.

1. Какие числа нам придется складывать? (1, 2, …9)

2. Какие переменные для этого нам понадобятся? (N- для записи всех чисел и S- для их суммы)

3. Какого типа эти переменные? (натуральные, но в дальнейшем выясниться, что их тип целый)

4. Сколько раз мы должны будем складывать числа между собой? (Девять)

5. Если мы будем проделывать одно и то же действие девять раз, то какой структурой целесообразно воспользоваться? (Циклом)

АЛГ сумма однозначных чисел

АРГ N: цел

РЕЗ S: цел

НАЧ

S:=0 {обнуление ячейки S}

N:=0 {первое однозначное число}

ПОКА N<10

НЦ

N:=N=+1 {формула перехода к следующему элементу}

S:=S+N {формула суммирования}

КЦ

КОН.

ОБСУЖДЕНИЕ (продолжение)

6. Какие команды относятся к «телу цикла»? (N:=N=+1 и S:=S+N)

7. Что произойдет, если команды в «теле цикла» поменяем местами? (сумма вычисляется неправильно)

8. Внесем некоторые изменения в начальные присваивания.

Пусть S:=0; N:=1. Что изменится?

9. Каким образом нужно изменить команды в «теле цикла», чтобы алгоритм работал правильно? (поменять местами)

10. Можно ли записать в качестве условия N 9? (Да)

Задача 2. Составить алгоритм, вычисляющий сумму двузначных чисел от 20 до 45 включительно.

АЛГ сумма двузначных чисел

АРГ N: нат

РЕЗ S: цел

НАЧ

S:=0 {обнуление ячейки S}

N:=20 {первое двузначное число из предлагаемых}

ПОКА N<46

НЦ

S:=S+N {формула суммирования}

N:=N=+1 {формула перехода к следующему элементу}

КЦ

КОН.

Задание.1) Исполните формально данный алгоритм для чисел от 20 до 25.

  1. Изобразите блок-схему для этого алгоритма.

IV. РЕФЛЕКСИЯ

– Что для вас было информативно?

– Что было трудным?

– Что произвело впечатление, удивило?

– Чему научился?

– Дома я сделаю…

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

1. Повторить теоретический материал.

2. Вычислить сумму S= 12+22+32+…+252

3. Используя Задачу 1 из занятия, составьте алгоритм нахождения произведения однозначных чисел.

4. В первый день спортсмен пробегает 10 км, а в каждый следующий на 2 км больше, чем в предыдущий. Сколько км. пробежит спортсмен за неделю? Составить алгоритм решения задачи и исполнить его формально.

Источник

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

Ход урока

I. Актуализация знаний

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

II. Теоретический материал урока

Большинство практических задач требует многократного повторения одних и тех же действий, т. е. повторного использования одного или нескольких операторов. (Презентация)

Пусть требуется ввести и обработать последовательность чисел. Если чисел всего пять, можно составить линейный алгоритм. Если их тысяча, записать линейный алгоритм можно, но очень утомительно и нерационально. Если количество чисел к моменту разработки алгоритма неизвестно, то линейный алгоритм принципиально невозможен.

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

Циклом называется многократно исполняемый участок алгоритма (программы). Соответственно циклический алгоритм — это алгоритм, содержащий циклы.

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

Существует 3 типа циклических структур:

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

Иначе данные структуры называют циклами типа «Пока», «До», «Для».

Графическая форма записи данных алгоритмических структур:

Читайте также:  Чему равен один цикл сна

Цикл с предусловием (иначе цикл пока) имеет вид:

Форматы записи операторов алгоритмаБлок-схемаФорматы записи операторов на Паскале
Пока (условие)
нц
серия команд
кц
while условие do
begin
            серия команд;
end;

где

условие – выражение логического типа.

Цикл может не выполняться ни разу, если значение логического выражения сразу же оказывается ложь.

Серия команд, находящихся между begin и end, выполняются до тех пор, пока условие истинно.

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

Цикл с постусловием (иначе цикл до) имеет вид:

Форматы записи операторов алгоритмаБлок-схемаФорматы записи операторов на Паскале
В алгоритмическом языке нет команды которая могла бы описать данную структуру, но ее можно выразить с помощью других команд (Например, ветвления). repeat серия команд
until
условие

где

условие – выражение логического типа.

Обратите внимание:

Последовательность инструкций между repeat и until всегда будет выполнено хотя бы один раз;

Для того чтобы цикл завершился, необходимо, чтобы последовательность операторов между repeat и until изменяла значения переменных, входящих в выражение условие.

Инструкция repeat, как и инструкция while, используется в программе, если надо провести некоторые повторяющиеся вычисления (цикл), однако число повторов заранее не известно и определяется самим ходом вычисления.

Цикл с параметром (иначе цикл для) имеет вид:

Форматы записи операторов алгоритмаБлок-схемаФорматы записи операторов на Паскале
Для 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.

На языке программирования Паскаль шаг изменения параметра может быть равным одному или минус одному.

Если между begin и end находится только один оператор, то операторные скобки можно не писать. Это правило работает для цикла типа «Пока» и «Для».

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

Пример.

Вычислить произведение чисел от 1 до 5 используя различные варианты цикла

Математическая модель:

Р= 1· 2· 3· 4· 5=120

Составим алгоритм в виде блок-схемы.

Для проверки правильности алгоритма заполним трассировочную таблицу.

ШагОперацияРiПроверка условия
1P:=11  
2i:=1;11 
3i<=5
P:=P*I
i:=i+1
111<=5, да (истина)
4i<=5
P:=P*I
i:=i+1
222<=5, да (истина)
5i<=5
P:=P*I
i:=i+1
633<=5, да (истина)
6i<=5
P:=P*I
i:=i+1
2444<=5, да (истина)
7i<=5
P:=P*I
i:=i+1
12055<=5, да (истина)
8i<=5
P:=P*I
i:=i+1
  6<=5, нет (ложь)

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

Шаг первый: Р присваивается значение один.

Шаг второй: 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<=5 do
       begin
           P:=P*i;
           i:=i+1;
       end;
Write (‘P=’, P);
end.

Для цикла с постусловием построим блок-схему и трассировочную таблицу. (слайд16)

В результате получаем последнее значение равное сто двадцати на седьмом шаге

И для Цикла с параметром построим блок-схему и трассировочную таблицу. (слайд17)

В результате получаем последнее значение равное сто двадцати на шестом шаге

Задача:

Вывести на экран числа от 1 до 5 в:

  1. прямом порядке;
  2. обратном порядке.

Математическая модель:

  1. 1 2 3 4 5;
  2. 5 4 3 2 1.

Блок-схема и программа решения задачи представлена для чисел в прямом порядке и обратном порядке.

(слайд 21)

Запишем рассмотренные алгоритмы на языке программирования Паскаль.

Читайте также:  Что такое менстуационный цикл

(слайд 22)

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

И так мы рассмотрели следующие вопросы:

  1. Алгоритмическая структура цикл;
  2. Виды алгоритмических структур:
    1. Цикл с предусловием;
    2. Цикл с послеусловием;
    3. Цикл с параметром;
  3. Рассмотрели способы записи данных структур;
  4. Разобрали примеры решения задач с помощью этих структур.

Источник

Конспект урока информатики в 9 классе.

Тема: Циклический алгоритм.

Цели:

  • Общеобразовательные:

– проверить знания по теме «разветвляющийся алгоритм»;

– познакомиться с понятием цикла;

– рассмотреть виды циклов;

– применить изученный материал на практике при решении задач.

  • Развивающая:

– развитие логического мышления учащихся.

  • Воспитательные:

– формирование информационной культуры учащихся.

Тип урока: Комбинированный.

Коммуникативная задача: взаимообмен информацией между учителем и учащимися.

Программное обеспечение:

  • система подготовки презентаций Microsoft PowerPoint.
  • текстовый процессор  Microsoft Word
  • Система программирования TURBO PASCAL.

Аппаратное обеспечение: рабочее место учителя, ученика, видеопроектор.

План урока.

Этап урока

время

1

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

2-3 мин.

2

Опрос по теме

«Разветвляющиеся алгоритмы»

10-15 мин.

3

Изучение нового материала «Циклические алгоритмы»

 3.1 Теория.

 3.2  Практика. Решение задач.

10 мин.

15 мин.

4

Зарядка для глаз

2 мин

5

Итог урока, домашнее задание.

5 мин.

Ход урока.

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

     Приветствие, объявление темы, постановка целей.

  1. Опрос по теме «Разветвляющиеся алгоритмы».                                            Учащиеся работают в парах, отвечая на вопросы, сформулированные в электронной презентации, подготовленной к уроку.

Вопросы для повторения

  • Разветвляющийся алгоритм –  …

   алгоритм, в котором действие может идти по одному из нескольких заранее предусмотренных путей.

  • При однократном выполнении разветвляющегося алгоритма существуют действия,…

   которые не выполняются.

  • Виды ветвлений:…

   полное, неполное, вложенное

  • Синтаксис условного оператора:

   If Then       [Else ];

  • Другие операторы:

        Readln(a,b); Writeln(‘мне ’,s, ‘лет’)

  • Запишите условный оператор, в котором значения переменной С вычисляется по формуле

   А+В,    если А- чётное и

   А*В,     если А- нёчетное.

IF A mod 2 = 0 Then C:=A+B

                           Else C:=A*B;

  • Имеется условный оператор

   IF d10 THEN Writeln(‘УРА!’)

                   ELSE Writeln(‘ЖАЛЬ!’);сделайте замену

1. IF d=10 THEN Writeln(‘УРА!’)

                  ELSE Writeln(‘ЖАЛЬ!’);

2. IF not (d=10) THEN Writeln(‘УРА!’)

                          ELSE Writeln(‘ЖАЛЬ!’);

3. IF not (d=10) THEN Writeln(‘ЖАЛЬ!’)

                          ELSE Writeln(‘УРА!’);

4. IF not (d10) THEN Writeln(‘ЖАЛЬ!’)

                            ELSE Writeln(‘УРА!’);

  • Какими будут значения переменных j и k

  после выполнения условного оператора

  IF j>k THEN j:=k-2 ELSE k:=k-2;

  если исходные значения переменных равны

  1. j=3, k=5;            j=3, k=3
  2. j=3, k=3;            j=3, k=1
  3. j=3, k=2;            j=1, k=2
  • Чему равны значения переменных А и В

после выполнения последовательности

действий

A:= 15 div (16 mod 7)

B:=34 mod A * 5 – 29 mod 5 *2

А = 7,  В = 22

     3. Изучение нового материала «Циклические алгоритмы»

         3.1 Теория.

          На этом этапе ведется беседа учителя с учащимися, которая сопровождается  

          электронной презентацией «Циклический алгоритм».

          У учащихся имеется раздаточный материал «Циклические алгоритмы»

  1. Практика. Решение задач.

Учащиеся вместе с учителем составляют алгоритм решения следующей задачи: найти сумму всех двузначных чисел.

     

Далее учащимся предлагается самостоятельно составить программу.

Program zadacha1;

Var j:integer; s:longint;

Begin

S:=0;

 FOR J:=10 TO 99 DO

 S:=S+J;

 Writeln(‘Сумма всех двузначных чисел:’, S);

 Readln;

 End.

На следующем шаге учащиеся модифицируют программу так, чтобы  

     выводилась сумма четных двузначных чисел.

Program zadacha2;

Var j:integer; s:longint;

Begin

S:=0;

 FOR J:=10 TO 99 DO

 IF J MOD 2 = 0 THEN S:=S+J;

 Writeln(‘Сумма всех четных двузначных чисел:’, S);

 Readln;

 End.

После  вновь предлагается изменить программу, используя цикл с предусловием WHILE

Program zadacha3;

Var j:integer; s:longint;

Begin

 S:=0; J:=10;

 WHILE J100  DO

 Begin

 S:=S+J; J:=J+1

 End;

 Writeln(‘Сумма всех двузначных чисел:’, S);

 Readln;

 End.

В тетради фиксируются алгоритмы и программы решения задач.

     6. Итог урока.

          На этом этапе подводятся итоги, выставляются оценки, задается домашнее

          задание.

Циклические алгоритмы

Алгоритм, в котором некоторая последовательность действий может повторяться неоднократно, называется циклическим.

Последовательность действий, которая может выполняться в цикле неоднократно, называется телом цикла.

Виды циклов

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

Синтаксис оператора

While do

;

   Блок операторов выполняется пока условие принимает значение истина

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

 Цикл с параметром.

Синтаксис оператора

Repeat

;

Until ;

   Блок операторов выполняется до тех пор, пока условие принимает значение ложь

Синтаксис оператора

For J:=Nz to Kz do

;

или

For J:= Kz dowto Nz do

;

Блок операторов выполняется

            |Kz-Nz+1| раз

Источник