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

DJ-root

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

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

XPEHOMETP

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

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