Конспект урока операторы цикла

Обновлено: 06.07.2024

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

ЗУНы, необходимые для самостоятельной работы: учащиеся должны знать понятие “команда цикла”, уметь работать в среде программирования QBasic, выполнять анализ условия задачи, производить математическую постановку задачи, составлять алгоритм и блок-схему, записывать программу.

Специальные ЗУНы: знать понятия алгоритма, блок-схемы, программы, записывать операторы и математические выражения в среде QBasic.

Мотивация: проверка на практике знаний полученных при изучении математики.

ЗУНы (новое содержание): учащиеся узнают практическое применение регулярных и итерационных циклов; умение резать задачи из курса алгебры с помощью циклов.

Новые практические приёмы: овладеют способами накопления сумм.

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

  • Воспитание толерантности.
  • Расширение кругозора.

План урока.

Название урока в поурочном планировании Основное содержание ТСО, наглядные пособия Межпредметные связи Контроль знаний учащихся Примечание
4 Команда цикла. Регулярный и итерационный циклы. Изучить команду цикла, понятия регулярного и итерационного циклов Компьютер, проектор, интерактивная доска, программное обеспечение, раздаточный материал. Математика Практическое применение навыков работы на компьютере, анализ и работа с задачами

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

Ход урока

Изучение нового материала (лекция с демонстрацией).Приложение 1

Командой повторения или циклом называется такая форма организации действий, при которой одна и та же последовательность действий повторяется до тех пор, пока сохраняется значение некоторого логического выражения. При изменении значения логического выражения на противоположное повторения прекращаются (цикл завершается).

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

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

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

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

Если в цикле изменяется простая переменная, то она является параметром цикла; если в цикле изменяется переменная с индексом, то индекс этой переменной является параметром цикла.

Для организации цикла с известным числом повторений в QBasic используется оператор FOR.

Структура цикла, организованного с помощью этого оператора, имеет вид:

For I=A to B step N

Здесь I – параметр, изменяющийся в цикле; A, B – выражения порядкового типа, обозначающие начальное и конечное значение параметра цикла. Шаг изменения параметра цикла равен N, если шаг изменения параметра N=1, то оператор step не пишется.

Порядок выполнения цикла с шагом N следующий: вычисляются значения начального и конечного значений параметра цикла; параметр I принимает начальное значение; если I меньше или равно конечному значению, исполняется тело цикла; значение параметра цикла увеличивается, т.е. I=I+N; проверяется условие A =I>=B) и при его выполнении цикл повторяется. Выход из цикла осуществляется, если I>B (I B (или A B
если А>В
то А=А-В
иначе В=В-А

Составим блок-схему алгоритма:

REM ”NOD”
CLS
INPUT “Введите А”; A
INPUT “Введите B”; B
NOD=А
WHILE NOD<>B
IF NOD>B THEN NOD=NOD-B ELSE B=B-NOD
WEND
PRINT “NOD=”; NOD
END

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

  1. Назовите отличия интерактивных и регулярных циклов
  2. Какова структура оператора цикла с параметром? Как выполняется цикл с параметром?
  3. Какого типа должен быть параметр цикла, его начальное и конечное значения в цикле с параметром?
  4. Могут ли параметр цикла, его начальное и конечное значения в цикле с параметром быть разных типов? Обоснуйте ответ.
  5. Какова структура итерационного цикла? Как выполняется этот цикл?
  6. Сколько раз исполнится фрагмент программы?

For I = 1 to -1 step 1
K = K * I
Next I

For I = -1 to 1 step 1
K = K * I
Next I

For I = 1 to -1 step -1
K = K * I
Next I

M := 123
While M > 0
M := M - 10
WEnd

  1. Для цикла с параметром запишите его полный эквивалент с помощью итерационного цикла.
  1. Задание на дом.

Дана последовательность натуральных чисел от 1 до 15. найти произведение элементов последовательности.

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

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

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

Рассмотреть понятие цикла, виды его конструкций и соответствующие им команды на языке программирования Pascal .

Развить алгоритмическое мышление.

Воспитывать у учащихся чувство взаимопомощи.

Повторение и актуализация.

Освоение нового материала.

Закрепление нового материала.

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

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

Какая геометрическая фигура обозначает в блок-схеме действие?

Прямоугольник

Какая геометрическая фигура обозначает в блок-схеме условие?

Какой оператор описывает в программе ввод данных?

Read, readln

Какой оператор описывает в программе вывод данных?

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

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

На языке программирования Pascal существуют операторы, реализующие все три типа циклов.

Имеется кнопка для перехода со слайда 3 на слайд 7.

1) Цикл с предусловием (слайд 4)

Приводится блок-схема цикла с предусловием.

While do ;

Пока условие – истинно, выполняется тело цикла. Тело цикла может быть простым или составным оператором. Если условие ложно, то тело цикла не выполняется.

2) Цикл с постусловием (слайд 5)

Приводится блок-схема цикла с постусловием.

Repeat until ;

Повторяется выполнение тела цикла до истинности условия. Тело цикла с постусловием выполняется хотя бы один раз.

3) Цикл с параметром (слайд 6)

Приводится блок-схема цикла с параметром.

for i:=In to Ik do телоцикла >;

for i:=In downto Ik do телоцикла >;

i – параметр цикла – простая переменная порядкового типа;

In – выражение того же типа, определяющее начальное значение параметра;

Ik – выражение того же типа, определяющее конечное значение параметра;

Цикл повторяется, пока значение параметра лежит в интервале между In и Ik .

4. Закрепление изученного материала.

I . Рассмотрим примеры с циклическими алгоритмами.

Сколько раз выполнится тело цикла?

ни разу

Какое значение примет переменная Х после выполнения алгоритма? (слайд 8)

while x 13

Какое значение примет переменная Х после выполнения алгоритма? (слайд 9)

while x 11

Сколько раз будет повторен цикл? Чему будут равны S , a , b ? (слайд 10 )

2 раза

S=8, a=3, b=5

Определите значение переменной S после выполнения программы (слайд 11):

Var a,S: integer;

For a:=5 downto 1 do

II . Составить блок-схему и текст программы для решения следующей задачи, используя все три типа циклов: Найти сумму натурального ряда чисел от 1 до N . (слайд 12)

1) Решение с использованием цикла с предусловием (слайд 12)

Блок-схема появляется щелчком мыши, а затем щелчком мыши и текст программы.

2) Решение с использованием цикла с постусловием (слайд 13)

3) Решение с использованием цикла с параметром (слайд 14)

5. Выполнение компьютерного теста.

Мультимедийный тест по информатике "Язык программирования Pascal. Циклы

Компьютерный тест из 9 вопросов создан в программе Microsoft Excel . Тест дает возможность выявить результаты усвоения учащимися циклических алгоритмических структур при изучении языка программирования Pascal. Задания открытого теста с вводом верного решения в поле ответа и с автоматическим выставлением оценок.

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

7. Задачи для самостоятельного решения

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

Тема урока: оператор цикла с предусловием (While) языка Паскаль.

Цель урока: закрепить умения и навыки по работе с циклическими конструкциями и освоить оператор цикла с предусловием (While) языка Паскаль.

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

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

Методы, формы, средства

Мотивация учебной деятельности

2. Повторение (опорные знания)

Индивидуальный, фронтальный опросы

Контроль по индивидуальным карточкам

4. Изложение нового материала

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

4.2 Рефлексивный этап

Первичная проверка усвоения знаний

4.3 Алгоритм Евклида

(историческая справка и математический алгоритм)

4.4 Алгоритм и программа

5. Рефлексивный этап

Первичное закрепление знаний.

Выработка навыков владения стандартным алгоритмом

Проблемное изложение. Выработка навыков владения и применения стандартных алгоритмов

Индивидуальная работа на ПК

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

Оценка работы студентов

выдача домашнего задания

объявление темы следующего занятия

1. Постановка цели.

У вас на столах имеются пронумерованные бланки с заданиями, которые нам сегодня помогут в работе.

2. Повторение (опорные знания)

2.1 Фронтальный опрос

  1. Какие виды циклических конструкций вам известны?
  2. Назовите особенности цикла с параметром (арифметического) цикла?
  3. В каких случаях предпочтительнее использовать для организации циклов оператор повтора for? Что записывается в заголовке этого оператора?
  4. Что такое тело цикла?
  5. Каким образом в операторе цикла for описывается направление изменения значения параметра цикла?
  6. Какие ограничения налагаются на использование управляющей переменной (параметра цикла) в цикле for?
  7. Может ли тело оператора цикла с параметром не выполниться ни разу?

Повторение-обобщение учителя (на экране дублируются ключевые моменты):

for := downto do - теперь начальное значение должно быть больше конечного или равно ему, иначе цикл выполняться не будет.

3. Самостоятельная работа

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

Индивидуальные карточки (четыре варианта):

Что будет на монитор после исполнения программы, фрагмент которой приведен ниже?

For i: = 1 to 7 do

Writeln (a+a: 7, k: 7: 2);

For i: = 1 to 7 do

Writeln (a+a: 4, 3*a: 5);

Write (5*a: 4, 3*a: 4);

For i: = 1 to 7 do

Writeln (c: 3, c: 3);

For i: = 1 to 7 do

Writeln (k +k: 7: 2, a*a: 4);

4. Изложение нового материала

4.1 Оператор цикла while … do

Синтаксис записи оператора: while do ;

Указанный здесь оператор (в том числе составной – что это означает?) циклически выполняется, пока справедливо указанное условие.

Условие проверяется до выполнения оператора.

  • условие пересчитывается каждый раз при входе в цикл
  • можно использовать сложные условия:
  • в качестве условия можно использовать логическую переменную:

while f do ; - в этом случае количество итераций будет зависеть от значения логической переменной f;

  • если условие на входе в цикл ложно, цикл не выполняется ни разу:
  • если условие никогда не станет ложным, программа зацикливается:

Замена цикла for на while возможна всегда

for i:=1 to 10 do begin

Замена while на for возможна только тогда, когда можно заранее рассчитать число шагов цикла.

На основании выше изложенного можно сделать вывод, что оператор while … do является универсальной итерационной циклической конструкцией .

Ученикам предлагаются примеры (на экране все дублируется). Каждая задача обсуждается.

Найти значение переменной S:

Ответы: 1) 8, 2) 6, 3) 20, 4) 0

Мы с вами будем решать самые различные группы задач с применением оператор цикла с предусловием (While). Это задачи на табулирование функций (эта тема вам уже знакома по курсу алгоритмизации), задачи, связанные с числовыми рядами, целый блок задач из теории чисел и т.д.

4.3 Историческая справка и математический алгоритм.

Очень часто для нахождения НОД (Наименьшего Общего Делителя) применяют метод, который называется алгоритмом Евклида .

Это один из самых древних алгоритмов, он описан еще в "Началах" Евклида.

Начала — главный труд Евклида , написанный около 300 г. до н. э. и посвящённый систематическому построению геометрии .

Начала — вершина античной геометрии и античной математики вообще, итог её 300-летнего развития и основа для последующих исследований.

Математический алгоритм Евклида

Пусть a и b - отличные от нуля натуральные числа.

НОД обладает следующими свойствами, на которые опирается алгоритм Евклида:

Идея алгоритма нахождения НОД: если числа равны, то это и есть искомое число, в противном случае, нужно от большего числа отнимать меньшее до тех пор, пока они не станут равными.

Пример: НОД(12, 54)

Давайте вместе нарисуем схему алгоритма, а затем составим программу нахождения НОД. Алгоритм:

x, y, a, b, NOD: Integer;

Writeln('Введите два числа');

if a>b then a:=a-b else b:=b-a;

Writeln(' NOD( ', a, ', ', b, ' )= ', NOD );

Первичное закрепление знаний. Выработка навыков владения стандартным алгоритмом.

Сейчас вам будут предложены четыре блок-схемы алгоритмов. Попробуйте увидеть в них знакомую уже нам схему. Как вам это поможет при решении предложенных задач?.

  1. Определите значение переменной m после выполнения фрагмента алгоритма.
  1. Определите значение переменной x после выполнения фрагмента алгоритма.
  1. Определите значение переменной x после выполнения фрагмента алгоритма.
  1. Определите значение переменной a после выполнения фрагмента алгоритма.

6. Практический этап.

Задача. Дана обыкновенная дробь (значения числителя и знаменателя вводятся с клавиатуры). Составить программу (используя алгоритм Евклида), которая выполнит сокращение дроби.

Вариант ответа: 15/20 =3/4

x, y, a, b: Integer;

if a>b then a:=a-b else b:=b-a;

Writeln(x,'/', y, '= ', x div a,'/', y div a);

. Обратите внимание на тождественность выражений

if a>b then a:=a-b else b:=b-a; и if a>b then a:=a mod b else b:=b mod a;

Примечание . НОД(a, b, c)= НОД(НОД(a, b), c)

  1. Найти наименьшее общее кратное (НОК) чисел n и m , если
    НОК(n, m) = n * m / НОД (n, m).

По теме: методические разработки, презентации и конспекты

Урок в 9 классе по теме: "Оператор цикла с предусловием WHILE"

Урок разработан для учащихся 9 класса. Цель урока: научить применять полученные знания при составлении программ и творческих заданий. Научить решать задачи с использованием оператором цикла WHILE. Зак.


Конспект урока информатики "Цикл с предусловием"

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


Открытый урок по информатике "В царстве условного алгоритма"

Конспект открытого урока по информатике на изучение условного оператора.


Алгоритмы с повторениями. Цикл с параметром FOR. Цикл с предусловием WHILE. Цикл с постусловием REPEAT.

Разработка урока по теме "Алгоритмы с повторениями. Цикл с параметром FOR. Цикл с предусловием WHILE. Цикл с постусловием REPEAT" (расчитан на 3 часа).

Язык программирования Python. Конспект урока №3. Цикл с предусловием WHILE
  • Для учеников 1-11 классов и дошкольников
  • Бесплатные сертификаты учителям и участникам

Тема урока: Программирование циклов. Операторы циклов.

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

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

Рассмотреть понятие цикла, виды его конструкций и соответствующие им команды на языке программирования Pascal.

Развить алгоритмическое мышление.

Воспитывать у учащихся чувство взаимопомощи.

Повторение и актуализация.

Освоение нового материала.

Закрепление нового материала.

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

2. Вопросы для повторения . (слайд 2)

Какая геометрическая фигура обозначает в блок-схеме действие?

Прямоугольник

Какая геометрическая фигура обозначает в блок-схеме условие?

Какой оператор описывает в программе ввод данных?

Read, readln

Какой оператор описывает в программе вывод данных?

3. Объяснение нового материала . (слайд 3)

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

На языке программирования Pascal существуют операторы, реализующие все три типа циклов.

Имеется кнопка для перехода со слайда 3 на слайд 7.

1) Цикл с предусловием (слайд 4)

Приводится блок-схема цикла с предусловием.

While do ;

Пока условие – истинно , выполняется тело цикла. Тело цикла может быть простым или составным оператором. Если условие ложно, то тело цикла не выполняется.

2) Цикл с постусловием (слайд 5)

Приводится блок-схема цикла с постусловием.

Repeat until ;

Повторяется выполнение тела цикла до истинности условия. Тело цикла с постусловием выполняется хотя бы один раз.

3) Цикл с параметром (слайд 6)

Приводится блок-схема цикла с параметром.

for i:=In to Ik do ;

for i:=In downto Ik do ;

i – параметр цикла – простая переменная порядкового типа;

In – выражение того же типа, определяющее начальное значение параметра;

Ik – выражение того же типа, определяющее конечное значение параметра;

Цикл повторяется, пока значение параметра лежит в интервале между In и Ik.

4. Закрепление изученного материала . (слайды 7 – 11)

I. Рассмотрим примеры с циклическими алгоритмами.

Сколько раз выполнится тело цикла? (слайд 7)

ни разу

Какое значение примет переменная Х после выполнения алгоритма? (слайд 8)

Какое значение примет переменная Х после выполнения алгоритма? (слайд 9)

Сколько раз будет повторен цикл? Чему будут равны S, a, b? (слайд 10)

2 раза

S=8, a=3, b=5

Определите значение переменной S после выполнения программы (слайд 11):

Var a,S: integer;

For a:=5 downto 1 do

II. Составить блок-схему и текст программы для решения следующей задачи, используя все три типа циклов: Найти сумму натурального ряда чисел от 1 до N. (слайд 12)

1) Решение с использованием цикла с предусловием (слайд 12)

Блок-схема появляется щелчком мыши, а затем щелчком мыши и текст программы.

2) Решение с использованием цикла с постусловием (слайд 13)

3) Решение с использованием цикла с параметром (слайд 14)

5. Выполнение компьютерного теста . (слайд 15)

Компьютерный тест из 9 вопросов создан в программе Microsoft Excel. Тест дает возможность выявить результаты усвоения учащимися циклических алгоритмических структур при изучении языка программирования Pascal. Задания открытого теста с вводом верного решения в поле ответа и с автоматическим выставлением оценок.

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

7. Задачи для самостоятельного решения (слайд 16)

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

Найти сумму квадратов от 1 до N.
(S = 1 + 4 + 9 + … + n 2 )

Найти произведение 1 ∙ 2 ∙ 3 ∙ … ∙ n.

Найти сумму 1! + 2! + 3! +…+ n!

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

Угринович Н.Д. Информатика и ИКТ: учебник для 9 класса. М.:БИНОМ. Лаборатория знаний, 2010

Семакин И.Г., Хеннер Е.К. Задачник-практикум в 2 т.: Том 1. М.: БИНОМ. Лаборатория знаний, 2010

Нажмите, чтобы узнать подробности

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

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

План

Решение задачи на ветвление.

Изучение нового материала:

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

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

I. Проверка домашнего задания

Орг. Момент. Приветствие.

Ребята, на прошлом уроке вы проходили ветвление на языке программирования. Давайте с вами решим задачу, которая называется “Сумма или квадрат”. Программа должна вычислить сумму двух вещественных чисел х и у, если х – положительное, иначе вычислить х 2 . В этой задаче, если х неположительное, у уже выводить не надо. К доске вызывается ученик

– Вот как выглядит программа:

program sum_or_square;
var
x, y: Real;
begin

Readln (x);
if x 0 then
begin
ReadLn (y);
WriteLn (x + y)
end;
else
WriteLn (x * x);
end.

– Молодцы, решили задачу правильно. А сегодня мы с вами познакомимся с циклами.

II. Изучение нового материала

– Первой остановкой в нашем путешествии по стране Программирование, полной чудес, даже опасностей была Англия, Лондон, Бейкер-Стрит, дом знаменитого сыщика Шерлока Холмса. Там мы останавливались в поисках лжи и истины.
Перенесемся из Англии конца XIX века на две тысячи лет назад – в Древнюю Грецию. Древняя Греция – страна великих ученых, поэтов и легендарных героев. Познакомимся с историей одного из них.
“. Сизиф, сын бога повелителя всех ветров Эола, был основателем города Коринфа, который в древнейшие времена назывался Эфирой.
Никто во всей Греции не мог равняться по коварству, хитрости и изворотливости ума с Сизифом. Сизиф благодаря своей хитрости собрал неисчислимые богатства у себя в Коринфе; далеко распространилась слава о его сокровищах.
Когда пришел к нему бог смерти мрачный Танат, чтобы низвести его в печальное царство Аида, то Сизиф, еще раньше почувствовав приближение бога смерти, коварно обманул бога Таната и заковал его в оковы. Перестали тогда на земле умирать люди. Нигде не совершались большие пышные похороны; перестали приносить и жертвы богам подземного царства. Нарушился на земле порядок, заведенный Зевсом. Тогда громовержец Зевс послал к Сизифу могучего бога войны Ареса. Он освободил Таната из оков, а Танат исторг душу Сизифа и отвел ее в царство теней умерших.>
Но и тут сумел помочь себе хитрый Сизиф. Он сказал жене своей, чтобы она не погребала его тела и не приносила жертвы подземным богам. Послушалась мужа жена Сизифа. Аид и Персефона долго ждали похоронных жертв. Всё нет их! Наконец приблизился к трону Аида Сизиф и сказал владыке царства умерших:
– О, властитель душ умерших, великий Аид, равный могуществом Зевсу, отпусти меня на светлую землю. Я велю жене моей принести тебе богатые жертвы и вернусь обратно в царство теней.
Так обманул Сизиф владыку Аида, и тот отпустил его на землю. Сизиф не вернулся, конечно, в царство Аида. Он остался в пышном дворце своем и весело пировал, радуясь, что один из всех смертных сумел вернуться из мрачного царства теней.
Разгневался Аид, снова послал он Таната за душой Сизифа. Явился Танат во дворец хитрейшего из смертных и застал его за роскошным пиром. Исторг душу Сизифа ненавистный богам и людям бог смерти; навсегда отлетела теперь душа Сизифа в царство теней.
Тяжкое наказание несет Сизиф в загробной жизни за все коварства, за все обманы, которые совершил он на земле. Он осужден вкатывать на высокую, крутую гору громадный камень. Напрягая все силы, трудится Сизиф. Пот градом струится с него от тяжкой работы. Все ближе вершина; еще усилие, и окончен будет труд Сизифа; но вырывается из рук его камень и с шумом катится вниз, поднимая облака пыли. Снова принимается Сизиф за работу. .
Так вечно катит камень Сизиф и никогда не может достигнуть цели – вершины горы. ”

– Ничего не скажешь – грустная история! Ведь Сизиф – в общем-то неплохой парень, во всяком случаев уме ему не откажешь! Нельзя ли помочь бедняге?
Вот что интересно – дайте прочитать древний миф программисту, и он скажет: “Ничего страшного. Речь идет о выполнении бесконечного цикла. Я и сам иногда попадаю в такое же положение и нахожу из него выход!”

– Цикл является одной из важнейших алгоритмических структур и представляет собой последовательность операторов, которая выполняется неоднократно. В программах, связанных с обработкой данных или вычислениями, часто приходится выполнять циклически повторяющиеся действия. Циклы позволяют записать такие действия в компактной форме.
Циклы принадлежат к числу управляющих операторов. Внимательный ученик мог заметить, что до сих пор мы использовали два вида операторов. Одни из них (Read, Write, оператор присваивания) только выполняли какие-либо действия, другие же управляли ходом выполнения программы (например, условный оператор). Последние и называются управляющими операторами.
Давайте познакомимся с примерами использования циклов в программах на Паскале. Рассмотрим задачу на вычисление суммы большого числа слагаемых:

– Можно было бы выбрать простое решение и записать вычисление данной суммы в строчку, употребив 99 операций деления и 99 операций сложения. Ну а если число элементов суммы равно 1000 или просто любому целому числу? Представьте себе программу с оператором, который занимает несколько страниц и содержит 999 сложений! Очевидно, простое решение здесь уже не подходит. Можно заметить, что при вычислении суммы повторяются всего три операции, причем в определенном порядке:

1. Разделить единицу на знаменатель.
2. Прибавить частное к ранее полученной сумме.
3. Увеличить на 1 значение знаменателя.

– Следовательно, задачу можно решить, например, так:

1. Присвоить переменной Sum значение, равное 0 (Sum : = 0).
2. Присвоить переменной i значение, равное 1 (i:= 1).
3. Добавить к сумме значение 1 / i (Sum := Sum + 1 / i).
4. Увеличить i на 1 (i:= i + 1).
5. Повторить шаги 3 и 4.

– Повторив операции 3 и 4 99 раз, мы получим требуемую сумму. Это пример алгоритмической конструкции “цикл”.

– В языке программирования Паскаль имеется три разновидности цикла:

Цикл с предусловием (цикл “пока” – whi1е);

Цикл с постусловием (цикл “до тех пор, пока” repeat. unti1);

Цикл с параметром (со счетчиком) (цикл “для” – for . to / downto);

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

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

– Цикл с предусловием имеет следующий вид:

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

Телом цикла может быть и группа операторов, заключенная в операторные скобки begin. end (то есть составной оператор).
Цикл с предусловием выполняется до тех пор, пока истинно условие в заголовке цикла, причем оно проверяется вначале, потом исполняется оператор. Переменным, входящим в условие, должны быть присвоены определенные значения до входа в цикл.
В теле цикла должны быть операторы, которые в какой-то момент изменят значение условия, сделав его ложным. Если этого не случится, цикл будет бесконечным. При возникновении в программе бесконечного цикла говорят, что программа “зациклилась”. Зациклившуюся программу приходится останавливать одновременным нажатием клавиш CtrL + Break, иначе она будет выполняться вечно (точнее, до первого отключения компьютера).
Задача о вычислении суммы может быть решена с использованием цикла whilе. do следующим образом:

program summa1;
const
n = 100;

var
i : Integer;
sum : Real;

WriteLn (' сумма', n, ' элементов= ' sum:10:5) ;
end.

– Цикл в этой программе работает следующим образом:

вначале i = 1, sum = 0;

значение суммы увеличивается на единицу: sum = 0 + 1;

i увеличивается на 1 i = 2;

значение суммы sum = 0 + 1 + 1 / 2, а переменной i = 3;

после выполнения данной последовательности действий необходимое число раз получаем: sum =. + 1 / 100,i = 101;

– Отметим, что в данном решении использовалась константа. Константа может иметь имя, тогда она называется именованной константой. Объявляется именованная константа в предложении описания констант, которое размещается в разделе описаний программы и имеет вид:

const имя = значение;

– Использование именованных констант преследует две цели:

сделать программу более удобной для понимания. Если, допустим, в программе часто используется число 12, то иногда удобнее один раз дать ему имя, например dozen, а затем использовать это имя;

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

2.2 Цикл с параметром (со счетчиком)

– Цикл со счетчиком имеет следующий вид:

For i := начальное_значение to
конечное_значение do .
оператор;

– Здесь переменная i, называемая управляющей переменной цикла for (или его счетчиком), является произвольным идентификатором, который объявляется как переменная целого (чаще всего) типа. Она может быть также логической или символьной (о символьном типе речь пойдет дальше). Допускаются и некоторые другие типы, но этот случай мы рассматривать не будем.
При выполнении оператора for сначала вычисляется значение выражения начальное_значение, затем вычисляется значение выражения конечное_значение, далее управляющая переменная цикла последовательно пробегает все значения от начального до конечного. В том случае, когда начальное значение оказывается больше конечного значения, тело цикла не будет выполняться вовсе. Начальное и конечное значения остаются неизменными в ходе выполнения всего цикла fог.
Параметр цикла i, если он целого типа, пробегает все значения с приращением 1, и его текущее значение не должно изменяться операторами внутри цикла. Такое изменение не запрещено правилами языка, но его последствия будут непредсказуемы. После завершения цикла параметр i считается неопределенным.

for i := начальное_значение
dоwntо конечное_значение do.
оператор;

параметр цикла меняется от начального значения до конечного с шагом – 1.

– Программа вычисления суммы с использованием цикла со счетчиком дана далее в двух вариантах (ва риант с to и вариант с downto).

program summa3;
const

i : Integeг;
sum: Real;

program summa4;
const

i : Integeг;
sum: Real;

begin
sum := 0;
foг i := n downto 1 do

WriteLn (‘Сумма ’, n, ‘элементов = ’, sum:10:5);
end.

– Самостоятельно разберите работу циклов for в обоих случаях.

– Какую разновидность цикла лучше выбрать в каждом конкретном случае?

Использовать цикл for в том случае, когда точно знаете, сколько раз должно быть выполнено тело цикла. В противном случае обратитесь к другим циклам.

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

III. Итог урока

– Итак, мы познакомились с циклами, важнейшей составной частью большинства программ. Но как нам быть с героем древнегреческого мифа? Мы выяснили, что циклическое действие, которое он выполняет, будет конечным, если существует условие, при выполнении (или невыполнении) которого цикл должен завершиться. Ограничение может быть и по числу повторений цикла. От цикла, который выполняет Сизиф, немного пользы, ведь каждый раз он повторяет одно и то же действие. Цикл в программе при каждом новом повторении выполняет действие, которое хотя бы немного отличается о предыдущего. Так, сизиф мог бы, скажем, каждый раз вкатывать на гору камень меньшего размера, чем предыдущий. Условием окончания нелегкого сизифова труда было бы в этом случае выкатыванием на гору камня, например, весом в 1 грамм. Следовательно, помочь Сизифу можно, изменив алгоритм его работы, введя в него “правильный” цикл.

– Завершим мы тему “Циклы” решением задач на следующем уроке. В каждой задаче вначале нужно придумать алгоритм, а затем написать программу.

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

– Подумайте над решением следующей задачи: дано натуральное число. Посчитать количество цифр в числе.

Читайте также: