Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КОМП. НАУКИ_1сем.doc
Скачиваний:
6
Добавлен:
05.11.2018
Размер:
902.14 Кб
Скачать
      1. Оператор цикла for с параметром

Оператор FOR выполняет одни и те же действия определенное количество раз, известное перед началом его выполнения.

FOR параметр_цикла := начальное_значение TO конечное_значение DO

оператор

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

Например, оператор for i:='a' to 'z' do write(i) выводит все буквы латинского алфавита.

Особенности цикла FOR:

  1. Начальное_значение и конечное_значение вычисляются один раз до начала выполнения цикла.

  2. Тело цикла не выполнится ни разу, если начальное_значение превосходит конечное_значение.

  3. После каждого выполнения тела цикла параметр_цикла увеличивается на 1.

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

Вторая форма цикла FOR:

FOR параметр_цикла := начальное_значение DOWNTO конечное_значение DO оператор

На каждом шаге параметр_цикла уменьшается на 1. Цикл выполняется, пока параметр_цикла > или = конечное_значение.

Например, цикл for i:=10 downto 5 do write(i:3) выдаст 10 9 8 7 6 5

      1. Вложенные циклы

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

For i:=1 to 2 do {Внешний цикл}

begin

for j:=1 to 3 do {Внутренний цикл}

write(i:4, j:2);

writeln

end;

Эти вложенные циклы выведут следующие две строки:

1 1 1 2 1 3

2 1 2 2 2 3

      1. Взаимозаменяемость циклов различных видов

В простых случаях повторяющиеся действия можно реализовать с помощью циклов всех видов. Например, выполнить некоторый оператор S при i [a, b] с шагом =1:

  1. for i:=a to b do S;

  2. i=a; while i<=b do begin S; i:=i+1 end;

  3. i=a; repeat S; i:=i+1 until i>b;

Замечание. Условие в цикле repeat получается логическим отрицанием условия цикла while:

while условие do оператор;

repeat оператор until not условие;

      1. Дополнительные конструкции переходов для циклов

Досрочный выход из цикла любого вида

Выход реализован в виде стандартной процедуры break, которая передает управление первому оператору, непосредственно следующему за циклом

Переход на новое повторение цикла

Переход выполняется стандартной процедурой continue, которая прекращает текущую итерацию цикла и передает управление на начало цикла для выполнения очередной итерации, например:

      1. «Вечные» циклы

  1. while true do оператор;

  2. repeat оператор until false

В «вечных» циклах для выхода из цикла используется оператор break.

  1. Простейшие алгоритмы

    1. Вычисление суммы и произведения

При вычислении суммы и произведения используется прием накопления:

  1. Задать начальные значения суммы и произведения: sum:=0; prod:=1;

  2. Повторять для всех слагаемых X и сомножителей Y: sum:=sum + X; prod:=prod * Y; Конец повторения

Если надо суммировать не все числа, а только удовлетворяющие определенному условию, например, принадлежащие отрезку [1,10], то это условие надо проверять перед суммированием:

Если (x>=1) и (x<=10), то sum:=sum+x;