Почему в Pascal « ((a2 and a1)>0) » не работает в отличии от «(a1>0) and (a2>0)»?
Почему в Pascal " ((a2 and a1)>0) " не работает в отличии от "(a1>0) and (a2>0)" ?
Исходный код:
Строка 12: поменяйте скобочные комментарии и все поймете primat.org/index/0-128?AAw5mbbUiFiljrxrQuXbUacfPP3w
Для примера:
На входе 3, 5 или 4, 4
На выходе 6 или 5
Скобки придумали для явного задания порядка действий. Каких таких действий? А вот: (a1>0) and (a2>0) Паскаль - язык со строгой статической типизацией, это значит, что если по одну сторону оператора сравнения стоит число (нуль), то и по другую должно стоять число. Нельзя сравнивать, например, число и строку - для них не определены операции сравнения.
Результатом операции сравнения является булево значение. Для булевых значений определён оператор and. Всё в порядке.
((a2 and a1)>0) Если a2 и a1 - числа, оператор and для них не определён.