Помощь - Поиск - Пользователи - Календарь
Полная версия: RE: Почему...
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
Arya
Вы меня не правлиьно поняли
Я знаю что можно использовать тип ворд понимаешь
Это просто такая задачка изи класса
очевидное-невероятное. Там че хошь делай хоть поставиь
{$R+,Q+} все равно цикл выполняется вечно... Почему?
Nightmare
1. Тип Byte имеет диапозон допустимых значений от 0 до 255 включительно.
2. По условию выхода из цикла значение должно превышать 255.
3. Увеличение переменной, при значении 255 ( 0FFh ) даёт 0 и флаг переноса, который в данном случае не обрабатывается.
Arya1
     С таким красивым занумерованным ответом я не согласен
опция {$R+} или {$Q+}(не помню точно какая одна следит за ДДЗ а другая за корректностью обращения к массивам) следит за диапазоном допустимых значений и в случае выхода за пределы допустимых значений должна возникать ошибка
APAL
Это выдержки из хелпа, но не знаю насколько это поможет... :

Код

$R: Проверка диапазона
_______________________
Включает и выключает генерацию кода проверки диапазона.

Синтаксис:             {$R+} или {$R-}
Значение по умолчанию: {$R-}
Тип:                   Локальная
Команда меню:          Options|Compiler|Range Checking

Состояние $R+:
В состоянии $R+:
- Все индексы массивов и строк проверяются на принадлежность
  допустимым пределам
- Все присваивания скалярным и поддиапазонным переменным проверяются  на принадлежность заданным диапазонам

Если проверка принадлежности диапазону не выдерживается, то программа
завершается и выводится сообщение об ошибке времени выполнения.

$R+ не влияет на процедуры Inc и Dec.

Включение проверки диапазона замедляет вашу программу и делает ее больше.

Используйте эту опцию при отладке, затем выключите ее, если уверены, что в вашей программе нет ошибок.



P.S.: Я только не понял, это что, уже дело принципа - заставить машину выдать ошибку?
AlaRic
Arya: еще одно такое название темы - забаню!  >:(
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.