Помогите найти теоретическую информацию

DJ-root

Member
Joined
Jan 9, 2005
Messages
971
Reaction score
387
Age
39
Location
Славный град-Киев
Всем большой привет. У меня есть пролему, с которой я не могу справиться. Надо сделать теоретическую чать контролько по программированию, и никак не могу найти в инете такой инфы, как мне надо для работы.
Надо точное формулирование (правила) на два следующих вопроса:
1. Правила организации и работы с циклами (привести схемы допустимого и недопустимого взаиморасположения);
2. Понятие явного и неявного способов задания циклов.
Пересмотрел книги по С, по Паскалю - не нашел. Помогите, пожалуйста. Дайте ссылку на инфу, или опишите. Очень надо.

Большое спасибо
 

XPEHOMETP

Member
Joined
Oct 21, 2005
Messages
245
Reaction score
58
Age
62
Location
С.-Петербург
Да, вопросик на засыпку! На счет правил организации цикла можно отталкиваться от того, что обычно запрещается в стандартах языков программирования. Как то:

1. Нельзя использовать в качестве переменной цикла (счетчика) дробных значений, только целые. По понятным причинам: целочисленные переменные хранятся в точном представлении, а числа с плавающей точкой - в приближенном. Из-за ошибок округления вполне может получиться, что в конце цикла счетчик равен, к примеру, 1.5000001, а его предельное значение - 1.499998. Вот и похерится в результате последний прогон цикла, который был необходим.

2. Обычно запрещается изменять в программе значения переменной цикла и параметров цикла (начального и конечного значения).

3. Также не рекомендуют для выхода из тела цикла писать оператор безусловного перехода (на точку за пределами цикла), а рекомендуется делать это оператором EXIT. Это в целях упрощения оптимизации цикла компилятором.

А вот по поводу явного и неявного задания циклов - это, как я понимаю, имеется в виду следующее. Явное задание - когда пишется в явном виде тот или иной оператор цикла. Неявное - когда оператор цикла не пишется, а цикл конструируется "вручную": задается начальное значение переменной цикла, по ходу дела оно увеличивается, чего-то там считается, затем проверка, а не превысил ли счетчик цикла своего предельного значения? Если не превысил - безусловный переход на начало цикла. Ну, понятное дело, такую фигню будут расписывать только в книжках для самых начинающих, чтобы объяснить, какая хорошая штука - стандартный оператор цикла.
 

Dilet

Member
Joined
Feb 17, 2004
Messages
62
Reaction score
4
1. Про расположение циклов.

Нельзя располагать циклы так, чтобы их тела пересекались лишь частично. На С пример явно привести не удастся, а на Байсике это выглядит так:

Правильное расположение:

FOR I = 1 TO N

A = A + B
FOR J = 1 TO M
B = B + C
NEXT J
D = D + A
NEXT I

Неправильное расположение:

FOR I = 1 TO N

A = A + B
FOR J = 1 TO M

B = B + C

NEXT I
D = D + A

NEXT J
 
Top