На сей раз давайте поговорим о циклах! Цикл обусловливает повторение определенного участка кода несколько раз. Цикл бывает условным и безусловным. Сегодня мы рассмотрим два цикла: For...To..Do и Repeat..Until.
For..To..Do Самый часто используемый в прогах цикл. Повторяет кусок кода пока переменная не будет равна второй. Пример: For a:=1 to 5 do {от a=1 до 5 делать} Begin {Начало тела цикла} c:=c+a; End; {Конец тела цикла}
Этот цикл повторится 5 раз, при этом после каждого прохождения цикла а будет больше на 1. Если вместо to поставить downto, то после прохождения цикла a будет меньше чем один. Теперь давайте усложним наш калькулятор. Усложнение будет состоять в том, что мы будем спрашивать у пользователя сколько раз он хочет его запустить.
Program CALC; {Название программы} Var deistvie:string; {Обьявляем одну текстовую...}
a,b,c,kol,ckl:integer; {... и пять целочисленных}
Begin {Начало программы} WriteLn('Сколько раз считаем???'); ReadLn(kol); For ckl:=1 to kol do Begin WriteLn('Введите дейсвие[+,-,*,/,sqr] а затем два числа');
ReadLn(deistvie,a,b); {Спрашиваем числа}
If deistvie='+' then c:=a+b; {Если действие + тогда складываем} If deistvie='-' then c:=a-b; {Если действие - тогда вычитаем} If deistvie='*' then c:=a*b; {Если действие * тогда умножаем} If deistvie='/' then c:=a div b; {Если действие / тогда делим}
{При этом если переменная целочисленная} {то и делить нужно целочисленно} {Для этого используем div} If deistvie='sqr' then c:=a sqr b; {Если действие sqr тогда находим корень кв.} WriteLn(c); {Выводим результат} End;
End. {Конец программы}
С этим циклом разобрались, теперь следующий!
Repeat..Until Этот цикл выполняет то, что в его теле пока условие после Until верно. Пример: Repeat b:=b+1; If b=5 then a:=1; Until a=0;
Этот цикл будет повторятся 5 раз если b равно 0. При этом если b больше чем 5, произойдет зацикливание. Если произошло зацикливание и вы не можете выйти из программы, просто нажмите [ctrl]+[Break]! На этом я заканчиваю статью про циклы! В следующий раз будем работать с массивами. Возникнут вопросы пишите коментарии!