Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
 Аватар для Works
0 / 0 / 0
Регистрация: 14.01.2021
Сообщений: 8

Ошибка при вычислении в условии, ругается при рисовании

17.01.2021, 18:53. Показов 1425. Ответов 2

Студворк — интернет-сервис помощи студентам
В коде что скину нижу есть данная строка
z:= ((limit * j/n)*(limit * j / n)-(limit * i / n)*(limit * i / n));

её мне нужно преобразовать в данный вид

z:= (((limit * j/n)*(limit * j / n)-(limit * i / n)*(limit * i / n))/(limit * j / n));

Однако паскаль сразу же ругается при попытке запустить процедуру рисования графика, в чём проблема?
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
uses graphABC;
const
Width:integer=800;
Height:integer=1000;
cameraz:double=2.0;  //расстояние до наблюдателя
n:integer=60;        //количество точек
limit:double=4;      //пределы расчёта
var
  u:integer;
procedure MouseDown(x,y,mb:integer);
var
  i, j, size:integer;
  z, k:double;
begin
    Window.Clear;
    clearwindow(clYellow);
    for i:=-n to n do //начало цикла для проекции
     begin
      for j:=-n to n do 
        begin
          if ((limit * j/n)*(limit * j / n)-(limit * i / n)*(limit * i / n)  > 2) then 
          begin
            z:= (((limit * j/n)*(limit * j / n)-(limit * i / n)*(limit * i / n)) /(limit * j / n));
            k:= cameraZ / (cameraZ + z);
            size:= 4;
            if (z < 0.2) then size:= 5
            else if (z < 0.6) then size:= 4
            else if (z < 2) then size:= 3;
            x:= round(400 + i * 500 * k / n); // координаты
            y:= round(400 + j * 500 * k / n); //           точек на экране
            Rectangle(x, y, x + size, y + size);
          end;
        end;
     end;
end;
 
begin
  SetWindowSize(Width,Height);
  clearwindow(clYellow);
  setbrushcolor(clred);
  OnMouseDown:=MouseDown;
 
end.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.01.2021, 18:53
Ответы с готовыми решениями:

Не могу понять в чем ошибка при вычислении в Базе данных при составлении Запроса
Всем привет! Нужна ваша помощь! Недавно начал осваивать Access и не знаю всех тонкостей. На работе поставили задачу по созданию...

ошибка при рисовании!!!
два участка кода которые рисуют график функции среднего температурного лагорифмического потока :umnik: пересмотрел много литературы ни...

Ошибка при обновлении данных в БД из DataGridView при определенном условии
Собственно проблема в следующем... в приложение добавил обновление БД из dgv. Сделано по примеру, как в видео _sB0A6FIhUM На...

2
257 / 149 / 70
Регистрация: 29.07.2018
Сообщений: 1,249
17.01.2021, 19:34
Works, У вас на 32 строку ругается
Кликните здесь для просмотра всего текста

Подробная информация об использовании оперативной
(JIT) отладки вместо данного диалогового
окна содержится в конце этого сообщения.

************** Текст исключения **************
System.OverflowException: Значение было недопустимо малым или недопустимо большим для Int32.
в System.Convert.ToInt32(Double value)
в PABCSystem.PABCSystem.Round(Double x)
в Program1.Program.MouseDown(Int32 x, Int32 y, Int32 mb) в E:\PABCWork.NET\Program1.pas:строка 32
в GraphABC.ABCControl.OnMouseDown(Object sender, MouseEventArgs e)
в System.Windows.Forms.Control.OnMouseDown (MouseEventArgs e)
в System.Windows.Forms.Control.WmMouseDown (Message& m, MouseButtons button, Int32 clicks)
в System.Windows.Forms.Control.WndProc(Mes sage& m)
в System.Windows.Forms.NativeWindow.Callba ck(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,060
18.01.2021, 04:42
Лучший ответ Сообщение было отмечено Works как решение

Решение

Ругается на 30 строку:
Pascal
30
           x:= round(400 + i * 500 * k / n); // координаты
Ошибка происходит при значениях i=-36 и j=-54
при которых x пытаетесь округлить значение ≈1,3510·1018,
в то время, как можно максимум ≈2,15·109
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.01.2021, 04:42
Помогаю со студенческими работами здесь

Ошибка при рисовании в движке
https://drive.google.com/open?id=1sNdyuWQhFffIG5iI1Jee7uaXeyqH-8x8 - движок и пример (на котором он тестируется). Не рисует движущийся...

Ошибка при рисовании рёбер
Проблема заключается в стрелочках, которые рисуются на ребрах графа. Во первых во время рисования каждая стрелка почему то дублируется и...

Ошибка при рисовании сферы
Помогите, пожалуйста! Только начинаю разбирать с OpenGL и решила разобрать пример программы рисования сферы. При компиляции появляются...

Ошибка при рисовании на канве
Сразу скажу, с графикой раньше вообще не работал. В моей программе используется несколько потоков(нитей). Один поток принимает данные в...

Ошибка переполнения при рисовании на PictureBox
Всем привет, помогите разобраться с кодом. Постоянно выдает ошибку overflow. Заранее спасибо! Private Sub Command1_Click() ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
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
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru