Yurijnd.com
Четверг, 06.02.2025, 20:02
Меню сайта

Вход на сайт

Поиск

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • Статистика

    Онлайн всего: 6
    Гостей: 6
    Пользователей: 0

    Delphi. Pascal
    Урок 5. Циклы в Object Pascal

    Циклы

    Инструкция for

    Вариант 1 (с увеличением счетчика):

    for Счетчик:=НачальноеЗначение to КонечноеЗначение do
    begin
    { здесь инструкции }
    end;
    

    Если НачальноеЗначение > КонечноеЗначение, то инструкции между begin и end не выполняются.

    Примечание: если между begin и end находится только одна инструкция, то слова begin и end можно не писать.

    Вариант 2 (с уменьшением счетчика):

    for Счетчик:=НачальноеЗначение downto КонечноеЗначение do
    begin
    { здесь инструкции }
    end;
    

    Если НачальноеЗначение < КонечноеЗначение, то инструкции между begin и end не выполняются.

    Примечание: если между begin и end находится только одна инструкция, то слова begin и end можно не писать.

    В языке Pascal существует два вида циклов (один с двумя разновидностями, так что можно считать, что и три). Первый из двух - это цикл for. Он используется тогда, когда нам заранее известно, сколько раз цикл должен прокрутится (например, нам надо ввести ровно 10 чисел). Второй из двух типов (в нем два подтипа - while и until) - это цикл, который может прокрутиться заранее неизвестое число раз (пример его использования - это запрос у пользователя пароля. Заранее неизвестно, сколько раз пользователь будет вводить неправильный пароль). Рассмотрим все циклы на примерах.

    Цикл for:

    var
     k, i, sum: Integer;
    ...
     Readln(k); //читаем k
     sum:=0; //обнуляем сумму
     for i:=1 to k do
     sum:=sum+i;
     Writeln('sum=',sum);

    В этом примере мы запрашиваем у пользователя число k, и затем подсчитываем сумму всех чисел от 1 до k.

    Если нам надо объединить несколько операторов в теле цикла, то мы их пишем внутри begin - end.

    Инструкция repeat

    repeat
    { инструкции }
    until Условие;
    

    Сначала выполняются инструкции цикла, которые расположены между repeat и until. Затем вычисляется значение выражения Условие, и если оно равно False, то инструкции цикла выполняются еще раз. И так до тех пор, пока значение выражения Условие не станет равным True.

    Пример на цикл until:

    var
     password: String;
    ...
     repeat
     Readln(password); //читаем пароль
     until (password='Secret');
     Writeln('OK');

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

    Инструкция while

    while Условие do
    begin
    { инструкции )
    end;
    

    Сначала проверяется Условие, если оно истинно, то выполняются инструкции между begin и end. Затем снова проверяется Условие. Если оно выполняется, то инструкции цикла выполняются еще раз. И так до тех пор, пока Условие не станет ложным.

    Примечание: если между begin и end находится только одна инструкция, то слова begin и end можно не писать.

    Пример на цикл while:

    var
     k, i, factorial: Integer;
    ...
     factorial:=1;
     Readln(k); //читаем k
     i:=1;
     while i<=k do
     begin
     factorial:=factorial*i;
     i:=i+1;
     end;
     Writeln(k, '!=', factorial);
     ReadLn

    В данном примере подсчитывается факториал введенного пользователем числа k (т. е. произведение всех чисел от 1 до k. Факториал обозначается !).

    Циклы типа while выполняются до тех пор, пока условие после слова while истинно. Как следствие из этого, они могут не выполнится ни разу (если в условии сразу стоит ложь).

    Copyright MyCorp © 2025
    Сделать бесплатный сайт с uCoz