Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для Daniels
0 / 0 / 0
Регистрация: 28.06.2010
Сообщений: 5

Составление кода графика, изменяющего форму при смене параметра R

28.06.2010, 19:45. Показов 1240. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Не могли бы вы мне помочь с графикой в паскале.
нужно написать программу, которая по введенному значению аргумента вычисляет значение функции, заданной в виде графика (сделать для одного из приведенных графиков). параметр R вводится с клавиатуры. график изменяется в зависимости от введенного значения таким образом, что начальная точка графика остаётся фиксированной, размер и угол наклона отрезков не изменяются, участки графика остаются соединёнными.
График
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.06.2010, 19:45
Ответы с готовыми решениями:

Создание компонента, изменяющего форму
Стартовал топик на делфи ответа нет:( может тут люди добрее. Хочу написать компонент изменяющий форму полностью. Потихоньку...

Виджет меняет форму при смене фонового цвета
Пишу виджет на рабочий стол, состоящий из одного TextView с текстом (API 16+). Создаю shape.xml для скругления углов TextView-а. На...

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

2
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
29.06.2010, 11:20
Лучший ответ Сообщение было отмечено Daniels как решение

Решение

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
uses crt,graph;
function F(x,r:real):real;
begin
if x<-5*r/3 then F:=-r
else if(x>=-5*r/3)and(x<-r) then F:=3*(x+r)/2
else if(x>=-r)and(x<r) then F:=sqrt(r*r-x*x)
else if (x>=r)and(x<8*r/3)then F:=3*(x-r)/5
else F:=r;
end;
var xc,yc,i,px,py:integer;
    x,r,y,m,w,x1,dx,y1:real;
    s:string;
begin
clrscr;
write('Vvedite radius r=');
readln(r);
write('Vvedite argumet x=');
readln(x);
y:=F(x,r);
xc:=0;
initgraph(xc,yc,'');
xc:=getmaxX div 2;
yc:=getmaxY div 2;
if abs(x)>8*r/3 then w:=abs(x)+3
else w:=8*r/3+3;
m:=(xc-30)/w;
setbkcolor(15);{цвет фона}
setcolor(8);{цвет линий}
line(0,yc,getmaxX,yc);{оси}
line(xc,0,Xc,getmaxY);
for i:=1 to round(w)+1 do{максимальное количество засечек в одну сторону}
  begin
    line(xc-3,yc+round(i*m),xc+3,yc+round(i*m));{засечки на оси У}
    line(xc-3,yc-round(i*m),xc+3,yc-round(i*m));
    line(xc+round(i*m),yc-3,xc+round(i*m),Yc+3); {засечки на оси Х}
    line(xc-round(i*m),yc-3,xc-round(i*m),Yc+3);
  end;
{подпись радиуса}
str(r:0:1,s);
outtextXY(xc-round(r*m)+3,yc+10,'-'+s);
outtextXY(xc+round(r*m)+3,yc+10,s);
outtextXY(xc+5,yc-round(r*m)-10,s);
outtextXY(xc+5,yc+round(r*m)+1,'-'+s);
{подписи точек изгиба}
str(5*r/3:0:1,s);
outtextXY(xc-round(5*r*m/3)+3,yc+10,'-'+s);
str(8*r/3:0:1,s);
outtextXY(xc+round(8*r*m/3)+3,yc+10,s);
{штриховые линии}
setlinestyle(2,0,1);
line(xc,yc-round(r*m),xc+round(8*r*m/3),yc-round(r*m));
line(xc+round(8*r*m/3),yc,xc+round(8*r*m/3),yc-round(r*m));
line(xc,yc+round(r*m),xc-round(5*r*m/3),yc+round(r*m));
line(xc-round(5*r*m/3),yc,xc-round(5*r*m/3),yc+round(r*m));
{центр}
outtextXY(xc+5,yc+10,'0');
{подписи концов осей}
outtextXY(getmaxX-10,yc-10,'X');
outtextXY(xc-10,10, 'Y');
setcolor(8);
{график}
x1:=-w;
dx:=0.001;
while x1<=w do
   begin
     x1:=x1+dx; {наращиваем х}
     px:=xc+round(x1*m); {изменение по оси Х}
     y1:=F(x1,r); {график в реальных координатах}
     py:=yc-round(y1*m);{в экранных}
     putpixel(px,py,8);
   end;
{точка}
setcolor(12);
line(xc+round(x*m),yc,xc+round(x*m),yc-round(y*m));
setlinestyle(0,0,3);
circle(xc+round(x*m),yc-round(y*m),1);
str(x:0:1,s);
outtextXY(50,50,'x='+s);
str(y:0:3,s);
outtextXY(120,50,'y='+s);
readln
end.
1
 Аватар для Daniels
0 / 0 / 0
Регистрация: 28.06.2010
Сообщений: 5
29.06.2010, 18:10  [ТС]
Спасибо огромное! Ценю за помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.06.2010, 18:10
Помогаю со студенческими работами здесь

"Едет" картинка графика при смене типа
Добрый день. Коллеги, помогите в решении - знаний не много - понять не могу в чем дело... сайт на джумле, я инклудом подключаю скрипт...

Найти все значения параметра b и c, при которых прямая касается графика параболы
Найти все значения параметра b и c, при которых прямая y=2x+2b касается графика параболы f(x)=x2+bx+c, в точке с координатами (2;0).

Корректное отображение списка изменяющего размер при пересечении с другим списком
Доброго дня, Есть список изменяющий высоту при наведении (из этой темы) и все хорошо до момента когда он перекрывает другой список. ...

Добавить на форму компоненты при помощи кода
заинтересовался вопросом - можно ли как-то добавить на форму компоненты при помощи кода? (например, при нажатии на кнопочку на форму...

Составление графика
Помогите составить график, сделал все задания но в этом не получается


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Контроль уникальности заводского номера - вариант №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
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru