Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2002.04.25;
Скачать: [xml.tar.bz2];

Вниз

Константные выражения   Найти похожие ветки 

 
Виктор Щербаков   (2002-03-19 13:44) [0]

procedure TForm1.Button1Click(Sender: TObject);
const a = 3 / 0;
begin
Caption := FloatToStr(a);
end;

Интересно, почему при компиляции не выдается ошибка "деление на ноль". Вместо этого при нажатии на Button1 в Caption формы появляется INF. Есть в этом какой-то смысл или просто глюк?

ЗЫ: Проверял на D5


 
DieHard   (2002-03-19 14:08) [1]

Хм, на D4 то же самое...


 
Фэ   (2002-03-19 14:10) [2]

Занятно.
3 div 0 не пропускается, однако.


 
Виктор Щербаков   (2002-03-19 14:13) [3]

Сейчас проверил на D3. Та же фигня.
Если разработчикам Borland нужен был символ для обозначения бесконечности, сделали бы его предопределенной константной как nil, true, false. Пусть программист явно его укажет.
А так, только ошибки плодить!


 
MBo   (2002-03-19 14:14) [4]

const
c=3;
d=0;
a = c / d;
e = c div d;// а эта строчка не проходит ;)


 
DieHard   (2002-03-19 14:20) [5]

А почему
const
a = Int(3);
не проходит?
Int ведь определена как дозволительная в константных выражениях


 
Виктор Щербаков   (2002-03-19 14:24) [6]

Int не разрешена.
Можно только:
Abs Chr Hi High Length Lo Low Odd Ord Pred Round SizeOf Succ Swap Trunc


 
DieHard   (2002-03-19 14:25) [7]

Извиняюсь, не заметил в хелпе слово except перед пречислением функций :)


 
DieHard   (2002-03-19 14:35) [8]

Итак, константы от Borland
1/0 = +INF
-1/0 = -INF
0/0 = -NAN
-(0/0) = +NAN


 
Фэ   (2002-03-19 14:42) [9]

Насчет NAN известно, а вот INF первый раз попалась


 
Иван Шихалев   (2002-03-19 21:20) [10]

Эти константы правда у Borland определены? А то, AFAIK, они замечательно определены в ассемблере i387, но в Pascal я их не помню.


 
Юрий Зотов   (2002-03-19 21:26) [11]

Век живи - век учись...

Интересно, а опция overflow checking {$Q+} на это как-то влияет, или нет?


 
Anatoly Podgoretsky   (2002-03-19 21:54) [12]

Виктор Щербаков © (19.03.02 13:44)

Глюка нет все нормально, ситуация разрешается на стадии компиляции, а ошибка "деление на ноль" это run-time ошибка.



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2002.04.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.007 c
1-81001
Chainik
2002-04-12 20:11
2002.04.25
наименование файла в заглавной строке формы


3-80835
MixVictor
2002-03-31 21:19
2002.04.25
Установка фильтра


1-80940
Spike_msu
2002-04-11 17:09
2002.04.25
Способы копирования!!!


1-80950
dr_neo
2002-04-11 21:54
2002.04.25
Выделение отдельных слов в тексте


1-81004
PaRL
2002-04-12 18:22
2002.04.25
Шрифты





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский