Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 04.10.2012
Сообщений: 13

Ошибка в программе. Графика

26.02.2014, 18:32. Показов 1672. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Program1.pas(25) : Ошибка времени выполнения: Значение было недопустимо малым или недопустимо большим для Int32.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
uses
  graphabc;
 
var
  x1, y1, x2, y2, n: integer;
  s: string;
 
procedure Grafic(x1, y1, x2, y2: integer);
var
  xr, yr, i: integer;
  hx, hy, x, y: real;
  s: string;
begin
  hx := (x2 - x1) / WindowWidth;
  hy := (y1 - y2) / WindowHeight;
  for xr := 0 to WindowWidth do
  begin
    x := x1 + hx * xr;
    y := sin(x);
    yr := round((y1 - y) / hy);
    putpixel(xr, yr, clblack);
  end;
  yr := round(y1 / hy);
  line(0, yr, WindowWidth, yr);
  xr := round(-x1 / hx);
  line(xr, 0, xr, WindowHeight);    
  yr := round(y1 / hy);
  xr := round((x2 - x1) / hx);
  line(xr, yr, xr - 14, yr - 8);
  line(xr, yr, xr - 14, yr + 8);
  textout(xr - 10, yr + 12, 'X');
  xr := round(-x1 / hx);
  line(xr, 0, xr - 8, 14);
  line(xr, 0, xr + 8, 14);
  TextOut(xr + 10, 2, 'Y'); 
  i := 0;  
  while xr < WindowWidth do 
  begin
    line(xr, yr + 5, xr, yr - 5);
    str(i, s);
    TextOut(xr - 4, yr + 7, s); 
    i := i + 1;
    xr := round((i - x1) / hx); 
  end;
  xr := round(-x1 / hx);
  i := 0;
  while xr > 0 do 
  begin
    line(xr, yr + 5, xr, yr - 5);
    str(i, s);
    TextOut(xr - 4, yr + 7, s); 
    i := i - 1;
    xr := round((i - x1) / hx); 
  end;
  xr := round(-x1 / hx);
  yr := round(y1 / hy);
  i := 0;
  while yr > 0 do 
  begin
    line(xr + 5, yr, xr - 5, yr);
    str(i, s);
    if i <> 0 then TextOut(xr + 10, yr - 6, s);
    i := i + 1;
    yr := round((y1 - i) / hy);
  end;
  xr := round(-x1 / hx);
  yr := round(y1 / hy); 
  i := 0;
  while yr < WindowHeight do 
  begin
    line(xr + 5, yr, xr - 5, yr);
    str(i, s);
    if i <> 0 then TextOut(xr + 10, yr - 6, s);
    i := i - 1;
    yr := round((y1 - i) / hy);
  end;
end;
 
begin
  readln(x1, y1);
  readln(x2, y2);
  Grafic(x1, y1, x2, y2);
  readln(n);
  readln(s);  
  while (s <> 'e') or (s <> 'E') do 
  begin
    if (s = 'W') or (s = 'w') then begin ClearWindow; Grafic(x1, y1 + n, x2, y2 + n); end;
    if (s = 'A') or (s = 'a') then begin ClearWindow; Grafic(x1 - n, y1, x2 - n, y2); end;
    if (s = 'S') or (s = 's') then begin ClearWindow; Grafic(x1, y1 - n, x1, y2 - n); end;
    if (s = 'D') or (s = 'd') then begin ClearWindow; Grafic(x1 + n, y1, x2 + n, y2); end;
    if (s = '+') then begin ClearWindow; Grafic(x1 div 2, y1 div 2, x1 div 2, y2 div 2); end;
    if (s = '-') then begin ClearWindow; Grafic(x1 * 2, y1 * 2, x1 * 2, y2 * 2); end;
    readln(s);
  end;
end.
Суть программы. Строит график( в данном случае y=sin(x) ) на координатной плоскости(вся рисовка в процедуре). Вводятся координаты левого верхнего и правого нижнего углов прямоугольника в мировой системе координат. Всю ту часть графика, которая оказалась в этом прямоугольнике выводим на экран. Далее "реализуется" его движение/зумирование. readln(n) - на сколько сдвинуть график. И вот в этом проблема. График выполняет только одну из шести команд - движение вверх, притом только один раз. Далее выползает данная ошибка. Помогите. Заранее спасибо.
Пояснение переменных:xr, yr - координаты в экранной системе координат.
x1, y1, x2, y2 - координаты прямоугольника.
hx, hy - специальные числа для перевода из мировой в экранную систему координат. Проще говоря, во сколько пикселей переходит единичный отрезок.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.02.2014, 18:32
Ответы с готовыми решениями:

Ошибка в программе построения графика
имеется программа для постоениия графика функции y = 1 / (x+1). но при запуске пишет exitcode 201 вот сам код uses graph; const ...

Графика в программе на С++
Доброго времени суток, меня интересует такой вопрос: У меня есть готовая консольная программа и мне нужно её графическое оформление. Я...

Графика: комментарии к программе
Люди помогите разобраться с этой процедурой, я в информатике полный 0, если есть время можите подробной описать что она делает, и что...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.02.2014, 18:32
Помогаю со студенческими работами здесь

Построение графика в программе C++ Builder 6
Есть задание написать код программы интерполяции и что бы в итоге показало 2D график на плоскости которого находятся точки, а через них...

Можно ли организовать в программе-функции форматирование графика
Подскажите, можно ли организовать в программе-функции форматирование графика? Т.е. нужно реализовать изменение параметров графика...

Как в программе определить диапазон данных графика?
Здравствуйте! Помогите, пожалуйста. Мне нужно в программе на VBA определять ссылки на источники данных, по которым построен график, (для...

Залипает графика в программе!Проблемы с совместимостью графического интерфейса
Ребят, вот я девочка,мне объяснить проблему будет сложно. И возможно я может даже не правильно выбрала раздел, поскольку первый раз пишу на...

Вычерчивание графика в турбобейсике. что у меня не так в программе
Составила программу для 1-го варианта. Сами графики не вычерчиваются. Что не так? Какие изменения нужно внести в программу, чтобы строились...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru