Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2012, 22:21   #1
GamBitFRK
Пользователь
 
Регистрация: 17.12.2011
Сообщений: 78
По умолчанию Арифметическое переполнение

Код:
uses crt, graph;
const N = 200;
var gd, gm : integer;
    x, y : array [1..N] of integer;
    dx, dy : integer;
    i : integer;
    x1, y1, x2, y2 : integer;
begin
  gd := detect;
  initgraph ( gd, gm, '' );
  randomize;
  setbkcolor (8);
  x1 := 250; y1 := 180;
  x2 := 340; y2 := 300;

  setfillstyle ( 1, 14 );
  bar ( 100, 300, 500, 310 );
  bar ( 160, 300, 165, 400 );
  bar ( 440, 300, 445, 400 );

  setfillstyle ( 1, 11 );
  bar ( x1, y1, x2, y2 );
  line ( x1-1, y1-30, x1-1, y2+1 );
  line ( x2+1, y1-30, x2+1, y2+1 );
  line ( x1-1, y2+1, x2+1, y2+1 );
  line ( x1-1, y1-1, x2+1, y1-1 );
  ellipse ( x1+(x2-x1)div 2, y1-30, 0, 360, (x2-x1) div 2, 4 );

  for i := 1 to N do begin
    x[i] := x1 + random (x2-x1);
    y[i] := y1 + random (y2-y1);
    putpixel ( x[i], y[i], 0 );
  end;

  repeat
    for i := 1 to N do putpixel ( x[i], y[i], 11 );
    for i := 1 to N do begin
      dx := 2 - random (5);
      dy := 2 - random (5);
      if ( x[i] + dx > x1 ) and ( x[i] + dx < x2 ) then x[i] := x[i] + dx;
      if ( y[i] + dy > y1 ) and ( y[i] + dy < y2 ) then y[i] := y[i] + dy;
    end;
    for i := 1 to N do putpixel ( x[i], y[i], 1 );
    delay (600);
  until keypressed;

  closegraph;
end.
GamBitFRK вне форума Ответить с цитированием
Старый 09.05.2012, 22:22   #2
GamBitFRK
Пользователь
 
Регистрация: 17.12.2011
Сообщений: 78
По умолчанию

В строках присваивания dx dy вылезает арифметическое переполнение ( в турбо паскале)
GamBitFRK вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переполнение stas45rus Паскаль, Turbo Pascal, PascalABC.NET 1 11.01.2012 20:54
С++ Найти среднее арифметическое положительных и среднее арифметическое отрицательных чисел, минимальное по модулю число. Юрик 530 Помощь студентам 4 03.12.2011 16:26
Циклы. Арифметическое переполнение. sqr Паскаль, Turbo Pascal, PascalABC.NET 5 09.11.2011 01:18
Арифметическое переполнение hasana Помощь студентам 2 04.11.2010 18:08
Переполнение стека NoHeart Общие вопросы Delphi 8 08.11.2009 16:03