Пусть у меня есть действительная переменная в, диапазон которой (-10; 10). как ограничить ее в диапазоне типа real, чтобы нельзя было использовать значения выходящие за диапазон. аналогично, если переменная тип integer. видел такой вариант var b: -10..10; но тут же не понятно к какому типу переменная относится. объясните .
Ответы на вопрос:
ответ на ваш вопрос простой: никак!
в языке паскаль есть так называемый диапазонный тип. он реализуется, как "вырезка" части диапазона базового типа. например, если базовый тип целочисленный, можно вырезать из него числа в диазахоне "от" и "до".
например, описание k: -10..10 означает, что k целочисленное и может изменять от -10 до 10. целочисленное оно потому, что константы -10 и 10 в pascalabc.net имеют тип integer. проблема же состоит в том, что в pascalabc.net контроль за выходом значения переменной за отведенные границы всего отсутствует! т.е. описание k: -10..10 - это просто "хотелка". и вы можете продолжать этого хотеть. может быть, вы подумали, что это pascalabc.net такой плохой язык? спешу разочаровать: так ведут себя все диалекты паскаля. дело в том. что проверка границ диапазона фактически должна делаться при каждой машинной операции с участием переменной диапазонного типа. и это настолько замедляет программу, что такая проверка, даже если она предусмотрена в конкретном компиляторе, по умолчанию выключена. более того, оказывается, что гораздо проще проверять выход за границы диапазона напрямую в программе!
что касается переменной типа real - с ней еще хуже: ее даже нельзя объявить в диапазонном типе, поскольку тип real не является порядковым.
как итог: проверяем if (k> =-10) and (k< =10) then < все хорошо> .
можно воспользоваться вариантом if k.between(-10,10) then
between работает и с real: if r.between(3.4,15.063) then
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
daniilnz108.10.2022 00:09
-
АмерикаСингер85208.06.2021 19:37
-
tanyapolya76ovv7hr09.05.2023 10:10
-
Diana10200412.01.2022 00:06
-
BlackCat2010102.04.2022 00:40
-
natulya2622.06.2021 11:57
-
Uchenick2002goda08.05.2020 03:09
-
anastasiyanast2917.05.2023 07:30
-
FaizTimYr02.02.2020 07:45
-
никита434227.12.2022 13:25
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.