![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
read div real
Ezorcist © (2007-12-23 19:37:00)Почему delphi не признает такой код:
var a,b:real; c:integer;
begin
c:=a div b;
end;
и как это проще обойти?
Дуболом (2007-12-24 14:07:00) [1]> DiamondShark © (23.12.07 22:27) [9]
Зачем так кактегорично? Очень удобная операция, для периодических функций. Или период функции всегда целое число? Например, необходимо найти значене синуса 10 или 100.
Германн (2007-12-24 02:02:00) [2]Всё - флуд, пока автор не озвучит задачу. Имхо.
AndreyV (2007-12-23 23:56:00) [3]> [11] AndreyV © (23.12.07 23:46)
Извиняюсь, конечно
double fmod(double x, double y);
AndreyV (2007-12-23 23:46:00) [4]> [7] DiamondShark © (23.12.07 21:51)
c++
double modf(double x, double *pint);
The remainder of (3.141593 / 2.718282) is 0.423311
palva (2007-12-23 23:39:00) [5]> математическое понятие ОСТАТОК определено только в целых числах.
Ну не совсем так. Многочлены, к примеру, тоже можно делить с остатком.
Кольца в которых есть понятие деления с остатком называется евклидовыми.
Например, кольцо целых гауссовых чисел, (то есть комплексных чисел вида m + i n, где m и n - целые) является евклидовым.
Ну а когда Basic после преобразования в Basic.NET так поменял правила целочисленного деления, то я тоже удивился. Ведь в старом бейсике тоже можно было делить действительные числа с остатком. Но раньше аргументы перед применением операции приводились к целым числам и остаток получался целым. В нетовской версии бейсика это не так. Поэтому исчезла совместимость версий. Одна и та же формула в разных бейсиках даст разный результат.
DiamondShark (2007-12-23 22:27:00) [6]У меня сейчас тоже нет VB.NET, но если в нём эта операция выполняется именно так, то это совершенно уникальный язык, т.к. математическое понятие ОСТАТОК определено только в целых числах.
Таким образом, в VB.NET существует совершенно уникальная операция, не определённая ни в классической арифметике, ни в одном другом ЯП.
palva (2007-12-23 22:02:00) [7]
> и чему равно пи МОД е?
Равно пи минус е. А пи \ е равно единице. Но это вы сами пробуйте. У меня под рукой нет установки VB.NET
DiamondShark (2007-12-23 21:51:00) [8]
> и Mod работают также и для плавающих типов
Очень интересно.
и чему равно пи МОД е? Результат точно целое число? ;)
DiamondShark (2007-12-23 21:44:00) [9]
> и остаток от деления в случае нецелых чисел?
Никак.
palva (2007-12-23 21:43:00) [10]Переходите на Basic .NET.
Там операции \ и Mod работают также и для плавающих типов.
В простом бейсике они работали только в целой области.
> по правилам языка, целочисленное деление div применимо только
> к целым числам (логично, да?)
Не логично. Логично, чтобы целым был результат.
Григорьев Антон (2007-12-23 21:19:00) [11]
> Ezorcist (23.12.07 21:06) [3]
> А как определить целое от деления и остаток от деления в
> случае нецелых чисел?
Целое - Int(a/b)
Остаток - a-Int(a/b)*b
Элементарная математика...
Ezorcist (2007-12-23 21:06:00) [12]
> соблюдать правила языка
>
А как определить целое от деления и остаток от деления в случае нецелых чисел?
DrPass (2007-12-23 20:12:00) [13]
> Почему delphi не признает такой код
по правилам языка, целочисленное деление div применимо только к целым числам (логично, да?)
> и как это проще обойти?
соблюдать правила языка
No_Dead (2007-12-23 19:58:00) [14]F1
Operator Operation Operand types Result type Example
div integer division integer integer Total div UnitSize