![]() |
Проблема с дробями, типом real и т.д....
Вот собственно код:
Код:
dre:=(sqrt(sqr(Xc[j]-Xc[i])+sqr(Yc[j]-Yc[i]))); Пишет ошибкку что с двух сторон ":=" должен быть один тип... Что делать? Перевод всего в реал приносит в подарок кучу ошибок... Функции округления не работают(Может подключить что-то надо? Ни Floor, ни Ceil) На всякий случай(вдруг тупая ошибка)- Код:
//Проработка и нарисовка шариков |
Ответ: Проблема с дробями, типом real и т.д....
Квадратный корень (sqrt) всегда был и остается вещественной функцией, присваивать его напрямую к integer нельзя, только к real, или к integer, но через round(x:real) .
|
Ответ: Проблема с дробями, типом real и т.д....
Ок, перевёл всё в реал.
Ошибка в параметре 1(ошибка 2 раза): dre:=sqrt(sqr(Xc[j]-Xc[i])+sqr(Yc[j]-Yc[i])); DrawEllipse(xc[i], yc[i], d, d); Если во втором я понимаю, то в первом-нет( Насколько я понял, ему не нравится -sqr(Xc[j]-Xc[i])+sqr(Yc[j]-Yc[i]) (чем же это может не нравиццо?=) ) Ps. Вторую решил добавлением function round(x:real):integer; begin end; ... DrawEllipse(round(xc[i]), round(yc[i]), d, d); ... |
Ответ: Проблема с дробями, типом real и т.д....
В хэлпе к каждой функции описаны типы входных параметров. Читаем и наслаждаемся.
|
Ответ: Проблема с дробями, типом real и т.д....
Разобрался... Теперь надеюсь последняя ошибка...
Может быть у меня что-то не так, но шарики по экрану не летают. Появляется только поле и шарик в углу 0,0 Код:
program linux; PS.Я из принципов без картинок... |
Ответ: Проблема с дробями, типом real и т.д....
Цитата:
Так первая всегда будет давать 0 (точнее, неопределенное значение), а вторая ''. Или функции всетаки как-то описаны? |
Ответ: Проблема с дробями, типом real и т.д....
Прям так в коде...
Похоже я чего-то не понимаю. Где-то я такое на форуме видел. А как надо? |
Ответ: Проблема с дробями, типом real и т.д....
Ну так тело функции описать надо, чтобы она выполняла действия и возвращала значение.
Функции round в MP нет, но есть Trunc, правда она не округляет, а обрезает целую часть, но для графики можно использовать. Для перевода int в String есть встроенная функция function IntegerToString(i:integer):String. Так что никаких функций для этого самому писать не нужно. |
Ответ: Проблема с дробями, типом real и т.д....
trunc(1.5) = 2, прям как round
|
Часовой пояс GMT +4, время: 15:10. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot