Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.01.27;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.011 c
15-1197887433
Дмитрий
2007-12-17 13:30
2008.01.27
Пожалуйста помогите с Pascal


15-1198224803
vajo
2007-12-21 11:13
2008.01.27
Как узнать поддерживает ли материнка HDD большого объема?


1-1193097403
ggg
2007-10-23 03:56
2008.01.27
Проблема с печатью формы


2-1199041662
DmT
2007-12-30 22:07
2008.01.27
использование стандартного ввода/вывода для конс. приложений


1-1193213006
kyn66
2007-10-24 12:03
2008.01.27
Подобие EkRtf для Excel