Sign in Join
Wiki copytemporary

Basic Pascal Tutorial/Chapter 3/FOR..DO/bg: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

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

OldNewLine
1+## FOR...DO цикъл
2+
3+*(author: Tao Yue, state: changed)*
4+
5+FOR ... DO е конструкция за цикъл в Pascal. Разбира се, възниква въпроса „Какво е цикъл?“.
6+
7+### Цикли
8+
9+Цикленето означава да се повтаря прост или съставен оператор докато не се изпълни някакво предварително условие.
10+
11+Има три вида цикли:
12+
13+- с фиксирано повторение - повтаря се точен брой пъти
14+- с предусловие - проверява се Boolean израз, ако е TRUE се преминава към тялото на цикъла
15+- с постусловие - изпълнява се тялото на цикъла и след това се проверява Boolean израз
16+
17+### FOR...DO Цикъл
18+
19+В Pascal, цикълът с с фиксирано повторение е цикъл for. Неговата форма е:
20+
21+``` pascal
22+for index := начална_стойност to крайна_стойност do
23+ statement;
24+```
25+
26+Променливата index трябва да е от **дискретен** тип. Тя може да се използва в изчисления и изрази в тялото на цикъла, но нейната стойност не може да се променя (т.е. `index:=5` ще предизвика програмна грешка).
27+
28+В Pascal, цикълът `for` може да брои само със стъпка от 1. Цикълът може да се прекъсне с използването на оператора *break*. Пример за използването на break:
29+
30+``` pascal
31+sum := 0;
32+for count := 1 to 100 do
33+begin
34+ sum := sum + count;
35+ if sum = 38 then
36+ break;
37+end;
38+```
39+
40+Компютърът ще направи сумата по дългия начин и пак ще успее да завърши за по-кратко време отколкото е отнело на математика Гаус да го изчисли по неговия метод (`1+100 = 101. 2+99 = 101`. Виждате ли модел? Има 100 числа, така че модела се повтаря 50 пъти. `101*50 = 5050`. Това не висша математика и приписването на метода на Гаус вероятно е апокрифно).
41+
42+Въпрос: в горния цикъл ще се изпълни ли оператора break?
43+
44+В цикъла `for-to-do` началната стойност трябва да е по-малка от крайната стойност иначе цикъла никога няма да се изпълни. Ако искате да броите наобратно, трябва да използвате модификацията `for-downto-do`:
45+
46+``` pascal
47+for index := начална_стойност downto крайна_стойност do
48+ statement;
49+```
50+
51+В цикъла `for-downto-do` началната стойност трябва да е по-голяма от крайната стойност иначе цикъла никога няма да се изпълни.
52+
53+## Виж също
54+
55+[[Basic Pascal Tutorial/Chapter 3/WHILE..DO/bg|While ...Do цикъл]]
56+
57+[[Until/bg|Repeat... Until цикъл]]
58+
59+[[for-in loop/bg|For... in цикъл]]
60+
61+---
62+*From the Free Pascal wiki, page "Basic Pascal Tutorial/Chapter 3/FOR..DO/bg", as it stood on 2022-08-20 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history