![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Xelix |
![]()
Сообщение
#1
|
Гость ![]() |
Код Program LR10; Uses CRT,graph; Procedure GrOnScr; Var y,x:real; expo:real; i,i2:integer; yscr:integer; dr,rm:integer; Begin dr:=detect; InitGraph(dr,rm,'D:\TP7\BIN'); MoveTo(0,240); LineTo(640,240); Moveto(320,0); LineTo(320,480); MoveTo(0,240); SetLineStyle(0,Solidln,1); yscr:=0; i:=1; Repeat [b]yscr:=Round((7*sqr(i)*(exp(-5*i)))*480/640+240);[/b] If i<=640 Then LineTo(i,yscr); PutPixel(Random(640),Random(480),Random(5)); Delay(500); PutPixel(Random(640),Random(480),Random(5)); i:=i+1; Until keypressed; End; Begin GrOnScr; ReadKey; End. В выделенной строке компилятор выдаёт ошибку floating point overflow. Что делать? |
![]() ![]() |
Гость |
![]()
Сообщение
#2
|
Гость ![]() |
НО тут же подэкспоненциальное выражение максимум выходит -3200! О каком переполнении reala может идти речь? Может можно как-то заменить именно эту функуцию через логарифм например? Лично мне кажется, что тут всё же паскаль ругается из-за того, что i-переменная типа интеджер. Так как же её перевести в real?
|
мисс_граффити |
![]()
Сообщение
#3
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
Лично мне кажется, что тут всё же паскаль ругается из-за того, что i-переменная типа интеджер. Так как же её перевести в real? Угу. Именно так и есть, конечно. Маленьких интеджеров (до 18) паскаль не боится, а потом пугается и решает в real не переводить - мало ли что. А то, что вылетает на примерно 10^39, а граница диапазона real'а - 1.7*10^38 - совпадение! Как ты думаешь, если процедура получает и возвращает результат типа real, внутри нее вычисления на каком типе ведутся? Цитата Попробуй поменять тип с Real на Double Тип чего? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
![]() ![]() |
![]() |
Текстовая версия | 25.06.2025 6:55 |