|
Основной форум Сюда все проблемы связанные с программированием. |
11.01.2011, 22:40
|
#1
|
ПроЭктировщик
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений (для 8 пользователей)
|
ПАНИКА: деление integer на integer с результатом real
Код:
...
var
a:real;
...
a:=3/2;
drawstring(RealToString(a),1,1);
repaint;
delay(5000);
выводит на экран ЕДИНИЦУ!
Как поделить эти несчастные числа? Ищу тангенс наклона графика функции...
__________________
---
|
(Offline)
|
|
11.01.2011, 22:43
|
#2
|
Дэвелопер
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений (для 1,962 пользователей)
|
Ответ: ПАНИКА: деление integer на integer с результатом real
floating-point включен?
|
(Offline)
|
|
11.01.2011, 22:46
|
#3
|
ПроЭктировщик
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений (для 8 пользователей)
|
Ответ: ПАНИКА: деление integer на integer с результатом real
Вроде да. 0.000001 Не помню уже, кто из них как называется.
__________________
---
|
(Offline)
|
|
11.01.2011, 23:43
|
#4
|
Дэвелопер
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений (для 1,962 пользователей)
|
Ответ: ПАНИКА: деление integer на integer с результатом real
Вспомнил. Не 3/2, а 3.0/2.0
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
11.01.2011, 23:45
|
#5
|
ПроЭктировщик
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений (для 8 пользователей)
|
Ответ: ПАНИКА: деление integer на integer с результатом real
Капец... Нагородил костылей, потерял кучу памяти и времени. Помогите пожалуйста!
2.0 - это, конечно, верно, но у меня числа берутся из переменной. В первом посте 2 и 3 я взял в качестве простейшего примера.
__________________
---
|
(Offline)
|
|
11.01.2011, 23:58
|
#6
|
Дэвелопер
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений (для 1,962 пользователей)
|
Ответ: ПАНИКА: деление integer на integer с результатом real
Значит сделай переменные real, иначе никак.
|
(Offline)
|
|
12.01.2011, 00:15
|
#7
|
ПроЭктировщик
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений (для 8 пользователей)
|
Ответ: ПАНИКА: деление integer на integer с результатом real
Это мееее-е-ееедленно! Это всего лишь вспомогательная функция! Она вообще не должна влиять на скорость выполнения программы. А вызывается она раз 150 в секунду(
__________________
---
|
(Offline)
|
|
12.01.2011, 00:21
|
#8
|
Дэвелопер
Регистрация: 21.11.2009
Адрес: Киев
Сообщений: 1,699
Написано 657 полезных сообщений (для 1,962 пользователей)
|
Ответ: ПАНИКА: деление integer на integer с результатом real
Значит придумай что-то, что бы функции не приходилось делить 3 на 2.
|
(Offline)
|
|
12.01.2011, 01:22
|
#9
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: ПАНИКА: деление integer на integer с результатом real
Лол результат деления инт на инт всегда инт. Обойти никак. Можно только посоветовать использовать именованные константы для часто используемых чисел типа синуса 45°, пи и т.д., но катит только если числа не меняются. А вообще вычисление какого-нибудь синуса нагнёт процессор на намного бОльшее число тактов, чем деление 5 раз дабла на дабл.
упд
но у меня числа берутся из переменной
|
Ну тогда точно никак. Как минимум один операнд должен быть float/double
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
12.01.2011, 01:34
|
#10
|
Знающий
Регистрация: 09.10.2009
Сообщений: 340
Написано 37 полезных сообщений (для 61 пользователей)
|
Ответ: ПАНИКА: деление integer на integer с результатом real
дибильный метод, но может if a=3 then aa:=3.0
|
(Offline)
|
|
12.01.2011, 01:46
|
#11
|
ПроЭктировщик
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений (для 8 пользователей)
|
Ответ: ПАНИКА: деление integer на integer с результатом real
Сообщение от JACUK
дибильный метод, но может if a=3 then aa:=3.0
|
Так... Паника увеличивается...
В нормальном паскале / и div работают по-разному. А здесь какая-то комашня...
__________________
---
|
(Offline)
|
|
12.01.2011, 02:03
|
#12
|
Задрот
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений (для 863 пользователей)
|
Ответ: ПАНИКА: деление integer на integer с результатом real
(a*1.0)/(b*1.0)
Мое скромное предположение
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
12.01.2011, 17:04
|
#13
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: ПАНИКА: деление integer на integer с результатом real
Сообщение от ABTOMAT
Лол результат деления инт на инт всегда инт.
|
Что я делаю не так?
Это Delphi.
А в MP да, вроде никак.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
12.01.2011, 18:10
|
#14
|
Мастер
Регистрация: 03.05.2010
Адрес: Подмосковье
Сообщений: 1,218
Написано 438 полезных сообщений (для 790 пользователей)
|
Ответ: ПАНИКА: деление integer на integer с результатом real
...
var
a,xz:real;
...
xz:=3;
a:=xz/2;
drawstring(RealToString(a),1,1);
repaint;
__________________
О¯О ¡¡¡ʁɔvʎнdǝʚǝdǝu dиW
|
(Offline)
|
|
13.01.2011, 17:40
|
#15
|
[object Object]
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений (для 6,852 пользователей)
|
Ответ: ПАНИКА: деление integer на integer с результатом real
Блджад! Есть же div.
var a,b:real; begin a:= 5; b:= 2; drawstring(IntToStr(a div b),1,1); repaint;
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 23:49.
|