![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 27.02.2009
Сообщений: 7
|
![]()
Друзья, объясните почему здесь выскакивает ошибка переполнения. Ведь значение 640000 присваивается переменной x типа longint и входит в диапазон значений.
Код:
Код:
|
![]() |
![]() |
![]() |
#2 |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
![]()
ray13 В Free Pascal все работает.
В TP действительно говорит о переполнении. Думаю, здесь дело в приведении типов, т.к. если переменную r сделать типа longint, ошибка исчезает.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 06.12.2008
Сообщений: 613
|
![]()
объясняю: турбо паскаль считает так - он сначала выполняет выражение в правой части присваивания, а потом правую часть присваивает левой, то есть сначала есть переменная "r" - она возводится в квадрат функцией sqr - эта функция имеет такой же тип, как и тип переменной, поэтому, возводя в квадрат, вы получаете значение, находящееся за границей типа integer и получаете сообщение об ошибке
Код:
Последний раз редактировалось capta1n; 27.02.2009 в 02:12. |
![]() |
![]() |
![]() |
#4 | |
Регистрация: 27.02.2009
Сообщений: 7
|
![]()
спасибо! стало ясно.
но вот момент Цитата:
но при write(r) выводиться старое значение 800. 2Sazary: можно поподробнее про приведение типов. в чем тут логика? Последний раз редактировалось ray13; 27.02.2009 в 02:22. |
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 06.12.2008
Сообщений: 613
|
![]()
простите, я ошибся немного с объяснением, перечитайте снова.
|
![]() |
![]() |
![]() |
#6 | |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
![]() Цитата:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 27.02.2009
Сообщений: 7
|
![]()
2capta1n: то есть sqr возвращает результат того же типа integer что и заданный аргумент r, а т.к. результат выходит за рамки Integerа - вылетает ошибка. то есть ошибка в выполнении самой функции и к операции присваивания она не имеет отношения. я правильно понял?
2Sazary: подобные ситуации - это глюк Турбо Паскаля? |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 06.12.2008
Сообщений: 613
|
![]()
правильно поняли, да, а я первый раз наговорил чушь, простите
|
![]() |
![]() |
![]() |
#9 | |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
![]() Цитата:
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
|
![]() |
![]() |
![]() |
#10 |
Регистрация: 27.02.2009
Сообщений: 7
|
![]()
спасибо за помощь! буду читать теорию)
кстати в тему особенностей компилятора, такой код срабатывает и выдает верный ответ Код:
Последний раз редактировалось ray13; 01.03.2009 в 21:59. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Nero - ошибка драйвера DMA. ошибка CRC | NecRoMat | Софт | 5 | 09.05.2012 01:29 |
Функция проверки переполнения в Delphi | TimeChip | Общие вопросы Delphi | 14 | 31.01.2009 17:04 |
Ошибка переполнения стека | Cannibal | Общие вопросы Delphi | 1 | 01.12.2008 21:32 |
ошибка "Переполнения" | Tanuska___:) | БД в Delphi | 0 | 08.10.2008 12:58 |
Ошибка переполнения стека из-за использования рекурсий | Morrigan13 | Помощь студентам | 5 | 02.04.2008 08:04 |