|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.09.2012, 21:45 | #1 |
Новичок
Джуниор
Регистрация: 28.09.2012
Сообщений: 2
|
Арифмитическое переполнение при построении множества Мандельброта
По заданию необходимо построить множество Мандельброта в режиме 13h.
Программа поначалу рисует нормально множество, но почти сразу после его середины выдает ошибку: 215 Арифмитическое переполнение. Код: Program MondelbrotSet; uses crt,windos; procedure Dot(x,y:integer); begin Mem[$A000:320*y+x]:=25; end; var i,scrX,scrY:integer; x,x2,y,realY,realx:real; regs:Tregisters; BeGIN Regs.AH:=$00; Regs.AL:=$13; Intr($10,Regs); scry:=0; realY:=1; while(realY >= -1.1) do begin realx:=-2; scrx:=0; while( realx <= 1) do begin x:= realX; y:= realY; i:=0; while((x*x + y*y < 4) and (i < 80)) do begin x2:= x*x - y*y + realx; y:= 2*x*y + realy; x:=x2; i:=i+1; end; if(x*x + y*y < 4)then Dot(scrx,scry); realX:= realX + 0.011; scrx:= scrx + 1; end; realY:= realY - 0.011; scry:= scry + 1; end; readln; eND. Здесь realx,realy - координаты точки на кмплексной плоскости scrx,scry - координаты точки на экране x,y,i используются для проверки попадания точки в множество. Уже реализовал эту же программу в режиме 4h, все работает, и по идее в них различается только процедура вывода точки на экран. В чем может быть проблема ? (если что максимальные значения, принимаемые scrx и scry 273 и 191) |
28.09.2012, 22:51 | #2 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
На уровне предположения:
Код:
320*191+273=61393 - больше допустимого в типе integer. Отсюда и переполнение Попробуйте объявить переменные как longint или word
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
28.09.2012, 23:44 | #3 |
Новичок
Джуниор
Регистрация: 28.09.2012
Сообщений: 2
|
Спасибо, помогло.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка при построении Release в VC 2010 Express. | alsav22 | Общие вопросы C/C++ | 2 | 27.04.2012 22:35 |
Ошибки при построении | yugik | Visual C++ | 7 | 27.08.2010 17:58 |
Ошибка при построении в visual c++ | ghost1st | Visual C++ | 2 | 13.02.2010 22:55 |
MS Visual Studio. ошибка при построении | Backfire | Софт | 0 | 11.10.2009 18:19 |
Рекурсия при построении матрицы достигаемости | [MI_nor] | Общие вопросы C/C++ | 0 | 29.03.2009 22:16 |