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

Вниз

read div real   Найти похожие ветки 

 
Ezorcist   (2007-12-23 19:37) [0]

Почему delphi не признает такой код:

var a,b:real; c:integer;
begin
c:=a div b;
end;

и как это проще обойти?


 
No_Dead   (2007-12-23 19:58) [1]

F1
Operator Operation         Operand types Result type Example
div         integer division integer          integer Total div UnitSize


 
DrPass ©   (2007-12-23 20:12) [2]


> Почему delphi не признает такой код

по правилам языка, целочисленное деление div применимо только к целым числам (логично, да?)

> и как это проще обойти?

соблюдать правила языка


 
Ezorcist   (2007-12-23 21:06) [3]


> соблюдать правила языка
>

А как определить целое от деления и остаток от деления в случае нецелых чисел?


 
Григорьев Антон ©   (2007-12-23 21:19) [4]


> Ezorcist   (23.12.07 21:06) [3]
> А как определить целое от деления и остаток от деления в
> случае нецелых чисел?

Целое - Int(a/b)
Остаток - a-Int(a/b)*b

Элементарная математика...


 
palva ©   (2007-12-23 21:43) [5]

Переходите на Basic .NET.
Там операции \ и Mod работают также и для плавающих типов.
В простом бейсике они работали только в целой области.

> по правилам языка, целочисленное деление div применимо только
> к целым числам (логично, да?)

Не логично. Логично, чтобы целым был результат.


 
DiamondShark ©   (2007-12-23 21:44) [6]


> и остаток от деления в случае нецелых чисел?

Никак.


 
DiamondShark ©   (2007-12-23 21:51) [7]


> и Mod работают также и для плавающих типов

Очень интересно.
и чему равно пи МОД е? Результат точно целое число? ;)


 
palva ©   (2007-12-23 22:02) [8]


> и чему равно пи МОД е?

Равно пи минус е. А пи \ е равно единице. Но это вы сами пробуйте. У меня под рукой нет установки VB.NET


 
DiamondShark ©   (2007-12-23 22:27) [9]

У меня сейчас тоже нет VB.NET, но если в нём эта операция выполняется именно так, то это совершенно уникальный язык, т.к. математическое понятие ОСТАТОК определено только в целых числах.
Таким образом, в VB.NET существует совершенно уникальная операция, не определённая ни в классической арифметике, ни в одном другом ЯП.


 
palva ©   (2007-12-23 23:39) [10]

> математическое понятие ОСТАТОК определено только в целых числах.
Ну не совсем так. Многочлены, к примеру, тоже можно делить с остатком.
Кольца в которых есть понятие деления с остатком называется евклидовыми.
Например, кольцо целых гауссовых чисел, (то есть комплексных чисел вида m + i n, где m и n - целые) является евклидовым.

Ну а когда Basic после преобразования в Basic.NET так поменял правила целочисленного деления, то я тоже удивился. Ведь в старом бейсике тоже можно было делить действительные числа с остатком. Но раньше аргументы перед применением операции приводились к целым числам и остаток получался целым. В нетовской версии бейсика это не так. Поэтому исчезла совместимость версий. Одна и та же формула в разных бейсиках даст разный результат.


 
AndreyV ©   (2007-12-23 23:46) [11]

> [7] DiamondShark ©   (23.12.07 21:51)


c++
double modf(double x, double *pint);

The remainder of (3.141593 / 2.718282) is 0.423311


 
AndreyV ©   (2007-12-23 23:56) [12]

> [11] AndreyV ©   (23.12.07 23:46)


Извиняюсь, конечно
double fmod(double x, double y);


 
Германн ©   (2007-12-24 02:02) [13]

Всё - флуд, пока автор не озвучит задачу. Имхо.


 
Дуболом   (2007-12-24 14:07) [14]

> DiamondShark ©   (23.12.07 22:27) [9]

Зачем так кактегорично? Очень удобная операция, для периодических функций. Или период функции всегда целое число? Например, необходимо найти значене синуса 10 или 100.



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

Форум: "Начинающим";
Текущий архив: 2008.01.27;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.021 c
3-1190350616
Mery
2007-09-21 08:56
2008.01.27
StartTransaction.


2-1198854646
Антон Шестаков
2007-12-28 18:10
2008.01.27
Блокировка *.db файла


15-1197973347
Начинающий
2007-12-18 13:22
2008.01.27
Посоветуйте хорошую книгу по delphi для начинающего..


15-1197963583
Slider007
2007-12-18 10:39
2008.01.27
С днем рождения ! 18 декабря 2007 вторник


15-1198096562
Tirael
2007-12-19 23:36
2008.01.27
почем сбрасывается пароль





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский