Writeln ('Неправильный ввод')

end;

Write ('цвет =');

Case clr of

0: writeln('red');

1: writeln('blue');

2: writeln('black');

end;

End.

Протокол работы программы:

Введите порядковый номер /0-1-2/ —> 2

цвет = black

Программирование алгоритмов циклической структуры

Понятие цикла

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

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

На данном занятии рассмотрим оператор цикла с предусловием.

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

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

Если в теле цикла требуется выполнить не один оператор, а целую последовательность операторов, то её следует заключить в операторные скобки Begin-End.

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

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

Структура:

WHILE <условие> DO <оператор>;

WHILE, DO — зарезервированные слова (пока (выпол­няется условие) делать)

<условие> — выражение логического типа

<оператор> — произвольный оператор Турбо Паскаля

Порядок работы оператора WHILE(рис. 1):

Writeln ('Неправильный ввод') - student2.ru

Рис. 1 Алгоритм циклической структуры с предусловием

Пример.

Дано натуральное число n. Подсчитать количество цифр данного числа.

Решение:

Program Example;

Var m,n:Longint;

k:integer; {счетчик цифр}

Begin

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

Readln(n); {ввод n}

m:=n;

k:=0;

white m<>0 do

Begin

lnc(k); {увеличиваем счетчик на 1}

m:=m div 10; {уменьшаем число на последнюю цифру}

end;

Writeln('B числе ',n,' — ',к:4,' цифр!'); {вывод результата}

Readln;

End.

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

BREAK — реализует немедленный выход из цикла, управление передается оператору, стоящему сразу пос­ле тела цикла.

CONTINUE — обеспечивает досрочное прохождение цикла, эквивалентна передаче управления в конец цик­лического оператора.

Оператор цикла с параметром

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

Неотъемлемым атрибутом такого цикла является переменная-счётчик (параметр-счётчик), в которой хранится информация о текущей итерации.

Структура:

For <параметр>:=<нач. знач.> to <кон. знач.> do <оператор>;

For <параметр>:=<нач. знач.> downto <кон. знач.> do <оператор>;

For, to, downto, do— зарезервированные слова.

<параметр> — параметр цикла — переменная любого порядкового типа.

<нач. знач.> — начальное значение — выражение того же типа.

<кон. знач.> — конечное значение — выражение того же типа.

<оператор> — произвольный оператор Турбо Паскаля.

Порядок работы оператора For…to(рис. 1):

Writeln ('Неправильный ввод') - student2.ru

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

В языке Pascal возможен автоинкрементный (to) или автодекрементный (downto) цикл по счётчику. В первом случае происходит увеличение переменной-счётчика (параметра-счётчика) на 1 в конце каждой итерации, во втором – уменьшение на 1. Автоинкрементный цикл продолжается, пока значение счётчика не больше заданного конечного значения, автодекрементный – пока не меньше.

Переменная-счётчик (параметр-счётчик) доступна операторам в теле цикла только на чтение. В процессе работы цикла по счётчику операторам в теле цикла не допускается изменять текущее или конечное значение счётчика. После окончания цикла переменная-счётчик (параметр-счётчик) содержит неопределённое значение.

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

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

Для преждевременного выхода из цикла – оператор Exit.

Пример.

Составить программу, которая определяет, является ли четырехзначное число «перевертышем».

Решение:

Обозначим n — вводимое число, т — дубликат числа n, а — перевертыш числа n, i — параметр цикла для со­здания «перевертыша».

Program Example2;

Var m,n,a,i:integer; {описание переменных}

Begin

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

Readln(n); {ввод n}

m:=n;

a:=0;

{создание перевертыша}

for i:=1 to 4 do begin

a:=a*10+m mod 10;

m:=m div 10;

end;

if a=n then

Наши рекомендации