Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
прога.doc
Скачиваний:
60
Добавлен:
21.02.2016
Размер:
207.36 Кб
Скачать

4. Реализация циклов в языках программирования. Цикл while - цикл с предусловием

Цикл WHILE (англ. "пока") - цикл, в котором условие находится перед телом цикла, а сам цикл выполняется до тех пор, пока условие не станет ложным.

Общий вид:

WHILE{условие}DO

{действия}

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

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

Цикл repeat - цикл с постусловием

Завершает тройку циклов цикл с постусловием - REPEAT (англ. "повтор"). Примечательно, что этого цикла во многих языках программирования нет - есть толькоFORиWHILE. Между тем, цикл с постусловием очень удобен.

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

Общий вид:

REPEAT

{действия}

UNTIL{условие выхода из цикла};

Есть несколько моментов, на которые стоит обратить внимание. Во-первых, в качестве условия задаётся уже условие выхода из цикла, в то время как в цикле WHILEзадаётся условие продолжения цикла. Во-вторых, при наличии нескольких команд, которые помещаются в тело цикла, заключать их в блокBEGIN .. ENDне нужно - зарезервированные словаREPEAT .. UNTILсами составляют аналогичный блок.

Цикл с постусловием, в отличие от цикла с предусловием, всегда выполняется хотя бы один раз! Но, как и цикл WHILE, при неверно написанном условии цикл станет "вечным".

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

Оператор повтора состоит из заголовка и тела цикла.

Два формата записи:

  • For <параметр цикла>: =<S1> to <S2> do <оператор>;

  • For <параметр цикла>: =<S1> downto <S2> do <оператор>;

где S1 и S2 – выражения, определяющие начальное и конечное значение параметра цикла. For… do – заголовок цикла; <оператор> - тело цикла. Тело цикла может быть простым или составным оператором.

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

Заголовок цикла For определяет:

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

  • Направление изменения значения параметра цикла (возрастание – to, убывание – downto).

5. Реализация вспомогательных алгоритмов в языках программирования.

Функции и процедуры пользователя. Формальные и фактические пара­метры. Рекурсия. (Турбо Паскаль).

Процедуры

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

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

procedure <имя> (Формальные параметры);

const ...;

type ...;

var ...;

begin

<операторы процедуры>

end;

 

Функции

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

function <имя> (Формальные параметры) : тип результата;

const ...;

type ...;

var ...;

begin

<операторы функции>

end;

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

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

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

формальные параметры – параметры, определенные в заголовке подпрограммы

фактические параметры – выражения, задающие конкретные значения при обращении кподпрограмме.

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

  procedureproc(i:integer);

begin

anweisungen1;

if bedingung then proc(i+1);

anweisungen2;

end;

  Вызов proc(1) означает, чтоprocвызывает себя раз за разом с помощьюproc(2),proc(3),.. до тех пор, пока условиеbedingungне отменит новый вызов.