Циклические алгоритмы с предусловием

Билет 1. Циклический алгоритм. Блок-схемы циклов с предусловием, с постусловием и цикла с параметром. Программирование циклического процесса

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

В информатике алгоритм представляет последовательность команд, определяющих действия исполнителя. Всякий алгоритм составляется в расчете на конкретного исполнителя с учетом его возможностей. У каждого исполнителя имеется свой перечень команд, которые он может исполнить. Такой перечень называется системой команд исполнителя алгоритмов (СКИ).

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

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

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

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

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

Многократное повторение одного действия или нескольких действий называется циклом

Действие или группа действий, которые повторяются, называются телом цикла

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

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

Циклы бывают с постусловием, с предусловием и с параметром (счетчиком).

В цикле с предусловием (пока) сначала проверяется условие продолжения цикла. Свойство цикла – пока: если условие не соблюдается с самого начала, то тело цикла не выполнится ни разу.

Например, задача рисования на форме прямоугольников (неизвестно, сколько будет прямоугольников).

В цикле с постусловием (до) условие продолжения цикла проверяется после тела цикла. Свойство цикла – до: тело цикла выполнится хотя бы один раз.

Например, та же задача рисования на форме прямоугольников (неизвестно, сколько будет прямоугольников).

В цикле с параметром количество повторений определяется сразу. Например, выполнить упражнение на уроке физкультуры 20 раз.

В языке программирования циклы могут использовать команды ветвления и команду присваивания для наращивания переменной цикла (в циклах «пока» и «до»). Но чаще всего используется команда For – Next (цикл со счетчиком). Например, для рисования горизонтальных отрезков на форме:

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: На стипендию можно купить что-нибудь, но не больше. 9137 — | 7300 — или читать все.

91.146.8.87 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

Циклические алгоритмы. Цикл с предусловием.

  • размер шрифта уменьшить размер шрифта увеличить размер шрифта
  • Печать

Циклические алгоритмы. Цикл с предусловием.

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

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

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

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

Исходными данными в этом случае являются переменная N — количество чисел и сами эти числа. Значение очередного числа обозначим переменной Х. Результатом работы алгоритма станет сумма этих чисел, которую обозначим переменной S.

Читайте также:  Hp probook мигает индикатор питания

Допустимые значения переменной N должны удовлетворять условию n>0, так как количество слагаемых не может быть числом отрицательным.

Как же мы должны решать эту задачу? Сначала нужно запросить, сколько чисел нужно будет сложить и считать это число в переменную N. Затем нужно так организовать операторы, чтобы программа запрашивала очередное число и каждый раз складывала его с предыдущими; и повторяла эту группу операторов N раз.

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

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

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

· цикл со счетчиком.

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

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

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

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

На русском языке это звучит примерно так:

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

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

1. значение условия выполнения цикла должно быть определено до начала цикла;

2. если значение условия истинно, то выполняется тело цикла, после чего повторяется проверка условия. Если условие ложно, то происходит выход из цикла;

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

Вернемся к нашей задаче вычисления суммы чисел. При вычислении суммы используем следующий прием: вначале, когда еще не задано ни одно слагаемое, сумму полагают равной нулю (S:=0), а затем, получая очередное слагаемое, прибавляют его к сумме (S:=S+x) (см. программу ниже).

Очень важное значение в операторе цикла имеет так называемая переменная цикла. В нашей программе она называется i. С ее помощью мы обращаемся к пользователю за очередным числом (write (‘Введите ‘,i,’-ое число ’)) и считаем количество уже введенных чисел (i:=i+1), чтобы не запросить лишнее. Одновременно переменная цикла участвует в булевом выражении (i начало

б) Пока есть желание, возможность и здоровье делай

посещай занятия спортом

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

1. “Репка”. “Дед тянет-потянет, вытянуть не может. Позвал бабку. Бабка за дедку , дедка за репку, тянут потянут, вытянуть не могут. Позвала бабка внучку. И вытянули репку”.

2. “Курочка ряба”. “Снесла курочка яичко. Дед бил, бил, не разбил. Баба била, била, не разбила. Мышка бежала, хвостиком задела, яичко упало и разбилось”.

3. “Колобок”. “. Катится колобок по лесу. От зайца ушел, от медведя ушел, от волка ушел. Встретил лису, она его и съела”.

Читайте также:  Ce 38703 1 ошибка ps4

4. “Волк и лиса”. “. Сидит волк у проруби, хвост в воду опустил и приговаривает: “Ловись, ловись, рыбка, большая и маленькая”. Пришла за водой баба. Прогнала волка.

5. “Горшочек каши”. “. Варит горшок кашу, варит. Каша из дома на улицу потекла. Не знает мать девочки, что надо горшочку сказать. Пришла девочка, сказала: “Горшочек, не вари”. Перестал горшок кашу варить”.

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

Продолжим изучение цикла с предусловием на примере решения следующей задачи.

Задача. Найти сумму чисел в непустой последовательности.

Рассмотрим алгоритм решения. Пусть нам дана такая последовательность чисел:

3, -4, 0, 5, 19, -20, 6, 2

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

1 2 3 4 5 6 7 8

3, -4, 0, 5, 19, -20, 6, 2

Получилось, что всего у нас чисел восемь, на первом месте стоит число 3, на втором — число (-4), на третьем — число 0 и т.д. Тогда переменная цикла i будет пробегать числа от 1 до 8, становясь на каждом шаге больше на 1 и запрашивая каждый раз очередное число. Поэтому общая схема цикла будет выглядеть так:

Здесь N — количество чисел последовательности (в нашем случае 8), х — член последовательности, i — порядковый номер очередного члена последовательности. Просмотрим, как будет работать этот цикл.

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

Если Вам не совсем понятно, что происходит при выполнении этого оператора, Вам нужно вспомнить, как происходит присваивание значение переменной: сначала вычисляется значение выражения в правой части (в нашем случае Summa+x, т.е, значение переменной Summa увеличиваем на х), а затем присваиваем это значение переменной с именем, записанным в левой части (Summa). Таким образом, в переменной Summa собирается сумма всех считанных чисел.

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

Загрузить презентацию (329,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 используя различные варианты цикла

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

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