Какой из операторов языка pascal используется для записи цикла с постусловием

Операторы цикла

Вы уже умеете организовать цикл при помощи оператора while. Напомним, что при выполнении этого оператора компьютер проверяет значение условия. Если условие истинно, то исполнительная часть оператора while будет повторяться до тех пор, пока это условие не примет значение False. Если значение условия есть False в самом начале, то тело цикла while вообще не будет выполняться.

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

Есть небольшое отличие в организации цикла repeat по сравнению с while: для выполнения в цикле repeat нескольких операторов не следует помещать эти операторы в операторные скобки begin . end. Зарезервированные слова repeat и until действуют как операторные скобки.

Конструкция repeat . until работает аналогично циклу while. Различие заключается в том, что цикл while проверяет условие до выполнения действий, в то время как repeat проверяет условие после выполнения действий. Это гарантирует хотя бы одно выполнение действий до завершения цикла.

a) repeat
read (Number);
Sum := Sum+Number;
until Number=-1

b) repeat
i := i+1;
writeln (Sqr(i));
until i>=10

Задача. Определить, является ли введенное число простым.

Алгоритм решения этой задачи будет следующий. При помощи операции mod проводим проверку всех целых чисел от 2 до введенного числа Number. Мы проверяем, является ли очередное проверяемое число делителем нашего числа (значит, остаток от деления введенного числа на проверяемое число равен нулю). Если такой делитель найден, значит, цикл досрочно завершает свою работу на некотором i-том шаге. Если делитель не найден, значит, цикл проверил все числа, и значение переменной цикла i будет равно конечному значению, т.е. Number. Поэтому, после записи цикла следует анализ значения переменной i и выводится соответствующее сообщение.

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

Цикл не может продолжаться бесконечно, так как любое число всегда делится само на себя.

Program Prostoe;
Uses
Crt;
Var
i, <возможный делитель>
Number : integer; <исследуемое число>
Begin
ClrScr;
writeln (‘Какое число должно быть проверено? ‘);
read (Number);
i := 1;
repeat
i := i+1;
until Number mod i = 0;
if Number=i
then
writeln (Number,’ является простым’)
else
writeln (Number,’ делится на ‘,i);
readln;
End.

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

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

Тест по теме "Программирование циклов"

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

Варианты ответов
  • Следование
  • Рекурсия
  • Цикл
  • Ветвление
Вопрос 2

Какое служебное слово в языке Pascal следует перед условием цикла с постусловием?

Варианты ответов
  • repeat
  • while
  • until
  • do
Вопрос 3

Какой из операторов языка Pascal используется для программирования цикла с предусловием?

Варианты ответов
  • while
  • if
  • for
  • repeat
Вопрос 4

Как называется последовательность действий, содержащаяся в цикле?

Варианты ответов
  • Операторный блок цикла
  • Тело цикла
  • Заголовок цикла
  • Условие цикла
Вопрос 5

Сколько раз будет выполнен описанный цикл?

Запишите число:

Вопрос 6

Какой из операторов языка Pascal используется для записи цикла с постусловием?

Варианты ответов
  • while
  • for
  • if
  • repeat
Вопрос 7

Какой оператор в языке Паскаль предназначен для реализации цикла с заданным числом повторений?

Варианты ответов
  • while
  • for
  • if
  • repeat
Вопрос 8

Какие операторы не могут быть выполнены в теле цикла с указанным заголовком?

for i :=1 to n do

Выберите несколько из 4 вариантов ответа:

Варианты ответов
  • i:=i-1;
  • t:=i+2;
  • n:=n-1;
  • t:=n-i;
Вопрос 9

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

Язык программирования Паскаль. Решение задач с применением операторов цикла

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

2. Актуализация знаний и умений учащихся.

Повторение материала начнём с выполнения теста по теме “Циклы” в программе

(Учитель раздаёт тест , распределяет варианты. Учащиеся выполняют тест, получают предварительные оценки. Приложении 1 )

И/или для повторения материала можно использовать устный опрос учащихся. — Какой процесс называется циклическим?

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

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

— Какие типы циклических структур и операторы цикла в Паскале вы знаете?

1) с определённым числом повторений (цикл с параметром, или цикл со счетчиком, или цикл “Для”);

2) с неопределенным числом повторений; здесь различают цикл с предусловием (цикл “Пока”) и цикл с постусловием (цикл “До”).

В Паскале существуют следующие операторы цикла: с предусловием WHILE, с постусловием REPEAT, с параметром FOR.

— Как работают эти операторы? В чём их особенности? Когда лучше применять тот или иной оператор?

Примерные ответы учащихся:

Оператор цикла с предусловием (цикл “Пока”) WHILE является наиболее общим по сравнению с другими конструкциями и имеет формат:

WHILE <выражение булёвского типа> DO <оператор>;

Выполняется данный оператор так: сначала вычисляется значение булёвского выражения (т.е. условие, стоящее после слова WHILE, проверяется на истинность). Если оно имеет значение TRUE, то выполняется оператор, стоящий после слова DO, затем условие проверяется вновь и т.д. Как только на очередном шаге условие не выполняется (значение булёвского выражения становится равным FALSE), то выполнение оператора цикла прекращается. Если выполняемый оператор не изменяет значения переменных, входящих в условие, то условие всегда будет истинным, и цикл будет выполняться вечно, при этом говорят, что программа зацикливается. Если же при первой проверке условия оно сразу оказывается ложным, то оператор цикла не выполняется вообще.

Если в цикле нам необходимо выполнять больше, чем один оператор, то применяется составной оператор, т.е. несколько операторов заключаются в операторные скобки BEGIN … END [1].

При построении программ со структурой цикла WHILE:

1) начальное значение логического выражения должно быть определено перед вхождением в цикл, т.е. перед WHILE;

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

3) логическое выражение в заголовке цикла WHILE, чтобы цикл закончился, должно принять значение FALSE.

В операторе REPEAT (цикл “До”) используется так называемое постусловие , т.е. значение логического выражения, управляющее выходом из цикла, проверяется после выполнения операторов, содержащихся внутри оператора REPEAT. Оператор имеет вид:

UNTIL <выражение булёвского типа>;

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

При построении циклов с использованием REPEAT этому оператору должен предшествовать оператор присваивания начального значения параметру цикла.

В данном операторе слова REPEAT и UNTIL служат операторными скобками, и BEGIN…END использовать не требуется [1].

Синтаксическая запись цикла с параметром (цикл “Для”) имеет два варианта:

1) с возрастанием переменной цикла:

FOR <идентификатор> := <выражение> TO <выражение> DO <оператор>;

2) с убыванием переменной цикла:

FOR <идентификатор> := <выражение> DOWNTO <выражение> DO <оператор>;

Идентификатор и оба выражения должны быть одного и того же порядкового типа.

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

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

Значения выражений определяются один раз, при входе в оператор FOR, и сохраняются на протяжении всего процесса выполнения. После задания переменной цикла присваивается начальное значение. Затем происходит проверка, не превосходит ли содержимое переменной цикла конечного значения. Если не превосходит, выполняются операторы, образующие тело цикла. Далее значение переменной цикла увеличивается на единицу, и процесс проверки и выполнения операторов повторяется. Так происходит до тех пор, пока проверка не даст результата TRUE. В этом случае цикл завершается, и осуществляется переход на оператор, следующий за FOR.

Поскольку оператор цикла FOR сам изменяет значения переменой цикла, её нельзя менять другими способами, например, присваиванием ей какого-либо значение в теле цикла.

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

— Какие этапы решения задач на компьютере вы знаете?

1. Постановка задачи.

2. Формализация (составление математической модели).

3. Разработка алгоритма.

4. Составление программы.

5. Ввод и отладка программы.

6. Получение результатов.

3. Практическая работа. Самостоятельное решение задач на компьютере.

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

Также учащимся предлагается построить блок-схемы к задачам. Данное задание выполняется с помощью Панели Рисования в программе MS Word или в векторном графическом редакторе.

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

4. Проверка решений задач. Подведение итогов. Выставление оценок.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *