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

Отобразить на графике вертикальные линии через точки на оси Х

16.12.2017, 18:21. Показов 4506. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как правильно описать положение точки, через которую нужно провести вертикальную линию? Мне нужно отобразить на графике пределы интегрирования, которые, проходя через кривую, дадут замкнутую фигуру, которую нужно заштриховать. Линии то проводятся (зеленые), но точки программа не правильно находит на графике - они прижаты к оси Y, хотя я задаю [-10;10]. Не могу ошибку найти:
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
uses graphABC;
function F(x:real):real;
begin
F:=4*x*x*x+43*x*x+404*x+1269;
end;
 
var x,mx,my:real;
    gx,gy,a,b,ymx,x0,y0,i,a1,b1:integer;
    s:string;
begin
gx:=900;
gy:=700;
setwindowsize(gx,gy);  //устанавливает размер клиентской части графического окна.
centerwindow;  //устанавливает графическое окно в центре экрана.
a:=-5;
b:=5;
ymx:=1270;
a1:=-10;
b1:=10;
x0:=gx-200;//начало координат в правый нижний угол опустим
y0:=gy-200;
mx:=(x0-30)/-a;//масштаб по Х: отступаем от края на 30 пикселей и делим на 5
my:=(y0-50)/ymx;//по Y
line(0,y0,gx,y0);//ось Х
line(x0,0,x0,gy);  //ось Y
for i:=1 to trunc(-a*5) do//создаем ось Х
 begin
  line(gx, y0, gx - 10, y0 + 10);//стрелка на координате x
  line(gx, y0, gx - 10, y0 - 10);//стрелка на координате x
  line(x0-round(i*mx/5),y0-3,x0-round(i*mx/5),y0+3); //засечки
   textout(x0 - round(i * mx / 5) - 5, y0 + 10, floattostr(-i / 5));//подписи
   textout(x0 + round(i * mx / 5) - 5, y0 + 10, floattostr(i / 5));//подписи
 end;
for i:=1 to trunc(ymx/50)+1 do//создаем ось Y
 begin
  line(x0, 0, x0 - 10, 10);//стрелка на координате y 
  line(x0, 0, x0 + 10, 10);//стрелка на координате y
  line(x0-3,y0-round(i*my*50),x0+3,y0-round(i*my*50)); //засечки на оси Y
    textout(x0 + 15, y0 - round(i * my * 50) - 5, inttostr(i * 50)); //подписи
    textout(x0 + 15, y0 + round(i * my * 50) - 5, inttostr(-i * 50)); //подписи
 end;
//центр
textout(x0+5,y0,'0');
//подписи концов осей
textout(15,y0-25,'X');
textout(x0+10,10, 'Y');
//линии через точки а и в
 
 
//график
SetPenWidth(5); 
 
x:= a1;
setpencolor(clgreen);
 Line(x0+trunc(a1), 0, x0+trunc(a1), gy); // линия через х=а
x:= b1;
setfontcolor(clgreen);
Line(x0+trunc(b1), 0, x0+trunc(b1), gy); // линия через точку х=в
 
setpencolor(clRed);
x:=a;
 
i:=0;
while x<=b do
 begin
 
  x:=x+0.001;
  if F(x)>=-300 then
   begin
   
    inc(i);
    if i=1 then moveto(x0+round(x*mx),y0-round(F(x)*my))
    else lineto(x0+round(x*mx),y0-round(F(x)*my));
   end;
 end;
//название
setfontsize(12);
setfontcolor(clBlue);
textout(50,10,'y=4*х^3+43х^2+404*x+1269');
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.12.2017, 18:21
Ответы с готовыми решениями:

Циклом генерируются точки на оси Х, нужно отобразить их на графике
Циклом генерируются точки на оси Х, нужно отобразить их на графике. Подскажите как это сделать и куда смотреть?

Как в графике отобразить точки пересечения, а также сумму точки x+y
Как в графике отобразить точки пересечения? А также также рядом указать сумму точки x+y как в примере. То есть пример точки 31=30+1 или...

Отобразить на графике только точки, не соединяя их между собой
pycture, я написал рисовалку. Но в ней идет соединение всех точек линией. Как сделать, чтобы на графике отображались только полученные...

22
0 / 0 / 1
Регистрация: 23.09.2017
Сообщений: 64
07.01.2018, 18:52  [ТС]
Студворк — интернет-сервис помощи студентам
Спасибо, вы очень помогли. Для построения блок схем пользуетесь ли вы какой-нибудь программой, создающей схемы по ГОСТу из исходного кода? Много времени отнимает построение. Особенно, если поменял что-то в программе, начинаешь схему править и вся конструкция распадается.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
07.01.2018, 20:08
Я пользуюсь редактором блок-схем по коду, но это не по ГОСТу.
0
Модератор
10445 / 5737 / 3406
Регистрация: 17.08.2012
Сообщений: 17,454
09.01.2018, 15:23
Я пользуюсь Diagram Designer, чертит практически по ГОСТу (вкладка Flowchart), может экспортировать диаграммы во многие графические форматы. Однако, эта программа не создаёт блок-схем по коду. Зато создавать и редактировать блок-схемы в ней удобно: при перемещении термов связи между ними не разрываются, поэтому что-либо удалить, передвинуть или поменять - это без проблем. Единственное неудобство: часто приходится делать линию связи из 2..3 сегментов (один сегмент чертим со стрелкой, в свойствах остальных сегментов стрелку убираем), поскольку в этой программе не полностью реализована автотрассировка линий связи, а хендлов в середине линии не предусмотрено.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.01.2018, 15:23
Помогаю со студенческими работами здесь

Найти и отобразить на графике точки экстремума функции z = f (x, y) в замкнутой области D
Всем доброго дня. Помогите пожалуйста с программированием в matlab. Найти и отобразить на графике точки экстремума функции z = f (x,...

На графике отметить асимптоты, точки экстремума, точки перегиба, точки пересечения с осями координат
Что-то выходит не совсем правильный график. clc; clear all; close all; l = -10; r = 10; N = 1000;

QCustomPlot. Позиция точки на нарисованном графике, выделение областей на графике
Доброго времени суток! Необходима помощь сообщества. Для ведущейся работы назрела необходимость создания интерфейса для работы с графиками...

Будет ли прямая, проходящая через 2 точки, параллельна оси
Помогите пожалуйста 1. Создайте структуру, описывающую точку в двумерной системе координат (x, y). С помощью этой структуры задайте две...

Уравнение симметричной отн оси параболы через 2 точки
Подскажите, как реализовать. По известным двум точкам, лежащим в одной плоскости(сечении вдоль z) нужно описать уравнение параболоида...


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru