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

Вчера мы узнали о понятии циклы в паскале в общих чертах, сегодня узнаем о каждом из циклов в паскале поподробней и увидим как они задаются. Будем разбирать цикл while с предусловием, цикл for с параметром и цикл repeat — until с постусловием.

1. Цикл с параметром в Паскале — FOR

Цикл FOR задаёт определённое условие по которому программа будет работать до его выполнения, допустим нужно нам 5 (или n) раз зациклить программу, то это легко сделать с помощью данного цикла. У цикла FOR есть характерная черта — счетчик который обычно обозначается буквой i или j.

Внешний вид цикла с параметром в паскале:

for i:= 1 to n do // присваиваем i сначала одному, потом двум, трем, . n

После 1-го прохода переменной i присваиваем 1, после второго присваиваем 2 и так до тех пор, пока не дойдем до n. to — это до .. в порядке возрастания, также есть downto — до .. в порядке убывания.

Блок — схема цикла с параметром:

2. Цикл с предусловием в Паскале — WHILE

простейшая программа в Паскале

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

Структура цикла с предусловием:

WHILE DO begin end;

— логическое выражение, истинность которого проверяется вначале выполнения циклического оператора;

— любые выполняемые операторы языка.

Порядок выполнения цикла:

Пока условие истинно выполняется тело цикла. Как только условие становится ложно выполнение цикла прекращается.

Блок — схема цикла с предусловием:

Паскаль - Урок 6: Циклы while, for, repeat

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

Задача: вычислить сумму ряда 1+1.5+2+2.5+3+3.5+ .. + 30

var sum:real; n:real; BEGIN sum:=0; n:=1; while n

3. Цикл с постусловием — Repeat — until.

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

Читайте также:
Кто создал программу компас 3д

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

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

#4. Циклы For, While, repeat на PascalABC.net

Блок — схема цикла с постусловием:

Формат записи, структура цикла:

REPEAT UNTIL ;
Program test2; Var b:Real; Begin b:=100; Repeat b:=b/2; Until b

Выводы:

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

2. Цикл с предусловием выполняется до тех пор, пока условие выполнения не станет ложным, и продолжается, если условие истинно.

3. Цикл с постусловием выполняется до тех пор, пока условие не станет истинно, если условие ложно, цикл продолжается.

Источник: zedpost.ru

Циклы в Паскале

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

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

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

Блок-схемы циклов

Цикл for

Часто цикл for называют циклом со счетчиком. В Pascal этот цикл используется, когда число повторений не связано с тем, что происходит в теле цикла. То есть количество повторений известно заранее.

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

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

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

Цикл for существует в двух формах:

for счетчик := начало to конец do тело;

for счетчик := начало downto конец do тело;

Если между начальным и конечным значением счетчика указано ключевое слово to, то на каждом шаге цикла значение счетчика будет увеличиваться на единицу. Если же указано downto, то значение счетчика будет уменьшаться на единицу.

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

Количество итераций цикла for известно именно до его выполнения, но не до выполнения всей программы. Так в примере ниже, количество выполнений цикла определяется пользователем. Значение присваивается переменной, а затем используется в заголовке цикла. Но когда оно используется, уже точно известно, сколько раз цикл выполнится.

var i, n: integer; begin write(‘Количество знаков: ‘); readln(n); for i := 1 to n do write(‘*’); writeln; end.

Примеры выполнения кода:

Количество знаков: 5 *****
Количество знаков: 13 *************

Цикл while

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

Если оно возвращает true , то тело цикла выполняется, если false – то нет.

Когда тело цикла было выполнено, то ход программы снова возвращается в заголовок цикла. Условие выполнения тела снова проверяется (находится значение логического выражения). Тело цикла выполнится столько раз, сколько раз логическое выражение вернет истину. Поэтому очень важно в теле цикла предусмотреть изменение переменной, которая используется в заголовке цикла, таким образом, чтобы когда-нибудь обязательно наступала ситуация логической лжи. Иначе произойдет так называемое зацикливание — одна из самых неприятных ошибок в программировании.

var sum, n: integer; begin sum := 0; while sum < 100 do begin readln(n); sum := sum + n; end; writeln(‘Сумма: ‘, sum); end.

Читайте также:
Лучшие программы для Apple TV

Примеры выполнения кода:

45 23 12 31 Сумма: 111
50 91 Сумма: 141

Цикл repeat

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

В таком случае используется цикл repeat – цикл с постусловием.

В цикле repeat логическое выражение стоит после тела цикла. Причем, в отличие от цикла while , здесь всё наоборот: в случае true происходит выход из цикла, в случае false – его повторение.

var sum, n: integer; begin sum := 0; repeat readln(n); sum := sum + n; until sum > 100; writeln(‘Сумма: ‘, sum); end.
35 71 Сумма: 106

Источник: pas1.ru

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

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

Program TextGame; uses winCrt; var y,x: real; Begin Writeln (‘Куда пойти? право-1, прямо-2, лево-3’); Read (y); if (y=1) then writeln (‘Вы вошли в лес. Куда идти дальше? В глубь-1, Назад-2’); if (y=1) then read (x); if (x=1) then writeln (‘Вы вышли к землянке’); if (x=2) then тут я хочу сделать так чтоб при нажатии 2 т.е. Назад, программа начиналась сначала т.е. самый первый вопрос: Куда идти? есть вариант что можно просто переписать код на эту ветку, но это глупо и слишком много; if (y=2) then writeln (‘Вы вышли на поляну’); if (y=3) then writeln (‘Вы вышли к ручью’); end.

делал repeat
until x=0;
помогло, но при возврате к вопросу: куда идти? при нажатии любой цифры он выдавал «Вы вышли к землянке» каждый раз, без разницы на какую цифру я нажал. Прошу помочь.

___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 22.07.2011 в 15:31 .

Источник: www.programmersforum.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru