Оберон-клуб «ВЄДАsoft»

Твердыня модульных языков
Текущее время: 16 июн 2025, 16:01

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Составное условие в операторе IF
СообщениеДобавлено: 29 май 2017, 05:10 
Не в сети

Сообщения: 116
Откуда: Каменск-Уральский
В Бейсике, если надо было проверить одновременно несколько условий можно было писать так
Код: "OBERON"
  1. IF a = f AND b = t AND c = 5 THEN
, а в Обероне 2 есть что-нибудь подобное AND, OR?


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 29 май 2017, 16:14 
Не в сети
Администратор
Аватара пользователя

Сообщения: 189
Код: "OBERON"
  1. IF (a = f) & (b = t) & (c = 5) THEN

Так наверно...

Код: "OBERON"
  1. AND -> &
  2. OR -> OR
  3. NOT -> ~


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 29 май 2017, 19:07 
Не в сети
Аватара пользователя

Сообщения: 1019
Откуда: Днепропетровская обл.
Верно. Маленько дополню. Скобки в сложно-составном условии обязательны (операции сравнения имеют меньший приоритет, чем логические &, OR) для большей наглядности, так решил Вирт.


Вернуться к началу
 Профиль  
Ответить с цитатой  
СообщениеДобавлено: 30 май 2017, 19:37 
Не в сети
Администратор
Аватара пользователя

Сообщения: 273
Откуда: Россия
И еще одно уточнение: операции & и OR вычисляются по сокращенной схеме. Это значит, что если по левому операнду можно установить значение выражения, то правый операнд вообще не вычисляется. Например,
Код: "OBERON"
  1. IF (k>=0) & (M[k]>0) THEN...
При отрицательном k условие (k>=0) ложно, поэтому всё условие (k>=0) & (M[k]>0) считается ложным, и программа даже не пытается извлечь элемент M[k]. Если бы конъюнкция вычислялась по полной схеме (сначала оба аргумента, а потом от них "логическое И"), то возникла бы ошибка "индекс за пределами массива", потому что в M нет элементов по отрицательному индексу.
Аналогично для дизъюнкции (OR) - если левый операнд даёт TRUE, то результат операции - TRUE, на второй параметр даже и не смотрим.


Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
© VEDAsoft Oberon Club