Basic Pascal Tutorial/Chapter 3/FOR..DO/bg

From Free Pascal wiki
Jump to navigationJump to search

български (bg) English (en) français (fr) 日本語 (ja) 中文(中国大陆)‎ (zh_CN)

 ◄   ▲   ► 

FOR...DO цикъл

(author: Tao Yue, state: changed)

FOR ... DO е конструкция за цикъл в Pascal. Разбира се, възниква въпроса „Какво е цикъл?“.

Цикли

Цикленето означава да се повтаря прост или съставен оператор докато не се изпълни някакво предварително условие.

Има три вида цикли:

  • с фиксирано повторение - повтаря се точен брой пъти
  • с предусловие - проверява се Boolean израз, ако е TRUE се преминава към тялото на цикъла
  • с постусловие - изпълнява се тялото на цикъла и след това се проверява Boolean израз

FOR...DO Цикъл

В Pascal, цикълът с с фиксирано повторение е цикъл for. Неговата форма е:

for index := начална_стойност to крайна_стойност do
  statement;

Променливата index трябва да е от дискретен тип. Тя може да се използва в изчисления и изрази в тялото на цикъла, но нейната стойност не може да се променя (т.е. index:=5 ще предизвика програмна грешка).

В Pascal, цикълът for може да брои само със стъпка от 1. Цикълът може да се прекъсне с използването на оператора break. Пример за използването на break:

sum := 0;
for count := 1 to 100 do
begin
  sum := sum + count;
  if sum = 38 then
    break;
end;

Компютърът ще направи сумата по дългия начин и пак ще успее да завърши за по-кратко време отколкото е отнело на математика Гаус да го изчисли по неговия метод (1+100 = 101. 2+99 = 101. Виждате ли модел? Има 100 числа, така че модела се повтаря 50 пъти. 101*50 = 5050. Това не висша математика и приписването на метода на Гаус вероятно е апокрифно).

Въпрос: в горния цикъл ще се изпълни ли оператора break?

В цикъла for-to-do началната стойност трябва да е по-малка от крайната стойност иначе цикъла никога няма да се изпълни. Ако искате да броите наобратно, трябва да използвате модификацията for-downto-do:

for index := начална_стойност downto крайна_стойност do
  statement;

В цикъла for-downto-do началната стойност трябва да е по-голяма от крайната стойност иначе цикъла никога няма да се изпълни.

Виж също

While ...Do цикъл

Repeat... Until цикъл

For... in цикъл

 ◄   ▲   ►