Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Образовательный студенческий форум _ Информатика / Программирование _ Циклы

Автор: Adelya 22.6.2010, 11:44

const b:boolean=false;
a:integer=42;
begin
while not b do begin
b:=abs(a)<4;
a:=a div 5+2;
writeln('*');
end;
end.



Вопрос: сколько раз выполнится цикл?

Я ввела программу в паскаль, получилось, что 4 раза.
Я не понимаю, каким образом 4? Ведь цикл должен выполняться, когда b=true.
Разве нет???
Посмотрите пожалуйста.
Заранее спасибо))

Автор: граф Монте-Кристо 22.6.2010, 12:05

Почему? Условие же not b, a не b! Цикл выполняется, когда b = false, 4 раза и получается.

Автор: Adelya 22.6.2010, 15:49

Цитата(граф Монте-Кристо @ 22.6.2010, 12:05) *

Почему? Условие же not b, a не b! Цикл выполняется, когда b = false, 4 раза и получается.

Так ведь вначале задано, что B=false, а потом они говорят про not B,т.е. про B=true. Разве нет?
Объясните пожалуйста, что я не так поняла...

Автор: граф Монте-Кристо 22.6.2010, 16:00

Да, но ведь b не присваивается значение true. В цикле while проверяется условие. Если оно равно true, тогда цикл повторяется, нет - прекращается.

Автор: Adelya 22.6.2010, 16:07

Спасибо))) Поняла теперь!

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)