Циклы |
Здравствуйте, гость ( Вход | Регистрация )
Циклы |
Adelya |
22.6.2010, 11:44
Сообщение
#1
|
Школьник Группа: Продвинутые Сообщений: 13 Регистрация: 22.6.2010 Город: Уфа |
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
Сообщение
#2
|
Доцент Группа: Преподаватели Сообщений: 3 840 Регистрация: 27.9.2007 Из: Старый Оскол Город: Москва Учебное заведение: МФТИ/МАИ Вы: другое |
Почему? Условие же not b, a не b! Цикл выполняется, когда b = false, 4 раза и получается.
|
Adelya |
22.6.2010, 15:49
Сообщение
#3
|
Школьник Группа: Продвинутые Сообщений: 13 Регистрация: 22.6.2010 Город: Уфа |
|
граф Монте-Кристо |
22.6.2010, 16:00
Сообщение
#4
|
Доцент Группа: Преподаватели Сообщений: 3 840 Регистрация: 27.9.2007 Из: Старый Оскол Город: Москва Учебное заведение: МФТИ/МАИ Вы: другое |
Да, но ведь b не присваивается значение true. В цикле while проверяется условие. Если оно равно true, тогда цикл повторяется, нет - прекращается.
|
Adelya |
22.6.2010, 16:07
Сообщение
#5
|
Школьник Группа: Продвинутые Сообщений: 13 Регистрация: 22.6.2010 Город: Уфа |
Спасибо))) Поняла теперь!
|
Текстовая версия | Сейчас: 2.5.2024, 21:47 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru