Написать программу построения графика функции. Вывод графика осуществлять в созданном на экране окне , в другом окне выполнить вывод уравнения функции с конкретными значениями параметров. Выполнить смену 3-х экранов с различными значениями параметров. Цепная линия:
Добавлено через 4 мин. там наверное плохо видно формулу:
Lapp
17.05.2007 10:47
Глянь здесь: Построение любого графика Я не совсем понял про окна: это на одном экране? Если так, то можно использовать SetViewPort.
AlexSt
20.05.2007 22:37
Написать программу построения графика функции. Вывод графика осуществлять в созданном на экране окне , в другом окне выполнить вывод уравнения функции с конкретными значениями параметров. Выполнить смену 3-х экранов с различными значениями параметров. Цепная линия:
Гость
22.05.2007 15:08
ну может поможите?
Ozzя
22.05.2007 15:22
В ФАК'е Альтаир выкладывал код для построения графика любой ф-ции. Ищи.
volvo
22.05.2007 15:23
Ну а в чем проблема? Это у тебя обычный график, не параметрический...
Тему "Построение любого графика" видел? Подставляешь туда свою функцию, и она чертит тебе график... Если надо 3 штуки - в цикле...
Lapp
22.05.2007 17:05
!
ALexSt, дублировать темы - твое хобби? Оно не приветствуется тут..
AlexSt
26.05.2007 0:40
как записать эту формулу на паскале?
Tan
26.05.2007 0:49
y := A * (Exp(x/2) - Exp(-x/2)) / 2; Это гиперболический синус ?
AlexSt
26.05.2007 0:53
Спасибо, а вот про ГИПЕРсинус не имею никакого понятия, в задании ф-ция значится как цепная линия
AlexSt
26.05.2007 15:30
я подставил в задачку Альтаира по построению любой функции свою, получилась какая-то ерунда. Вот оно:
x,y,a:real;{extended;} i:integer; function f(a,x:real):real; begin y:=a*(exp(x/2)+exp(-x/2))/2 end; Begin grDriver:=Detect; InitGraph(grDriver, grMode, 'c:\bp\bgi\'); for i:=OXYminX to OXYmaxX do putpixel(zcrtX+i,zcrty,colorOXY); {} for i:=OXYminY to OXYmaxY do putpixel(zcrtX,zcrty-i,colorOXY); {}
x:=lgr; {} while x<=pgr do {} begin readln(x); readln(a); f(a,x);; if x<>2 then begin y:=abs(x/(x-2))-1; {} y:=f(a,x); writeln(y:1:8); {} putpixel(zcrtx+trunc(x*mtrX),zcrty-trunc(y*mtrY),colorg) end; {} x:=x+shag; end; readkey; closegraph; end.
И, ещё может подскажите что такое A в формуле, как сделать три окна! на одном экране(lapp писал что через SetViewPort - но как?)&( я даже не пойму что именно должно в них быть), зачем делать смену экранов? Пожалуйста напишите в пустые фигурные скобки в проге что там происходит!
x,y,a:real;{extended;} i:integer; function f(a,x:real):real; begin y:=a*(exp(x/2)+exp(-x/2))/2; f:=y; end; Begin grDriver:=Detect; InitGraph(grDriver, grMode, 'c:\bp\bgi\'); for i:=OXYminX to OXYmaxX do putpixel(zcrtX+i,zcrty,colorOXY); {} for i:=OXYminY to OXYmaxY do putpixel(zcrtX,zcrty-i,colorOXY); {}
x:=-5; {} {readln(x);} readln(a);
while x<=5 do {} begin {f(a,x);;} if x<>2 then begin {y:=abs(x/(x-2))-1; {} y:=f(a,x); {writeln(y:1:8); {} putpixel(zcrtx+trunc(x*mtrX),zcrty-trunc(y*mtrY),colorg) end; {} x:=x+shag; end; readkey; closegraph; end.
AlexSt
27.05.2007 0:47
а то ли "рисует"? я не думаю что тут 3 "окна"!
volvo
27.05.2007 0:53
Про цикл никогда не слышал?
Что, большая проблема зациклить приведенный код, и изменять A внутри этого цикла? Все равно, НИКТО не сможет решить эту задачу именно так, как это нужно тебе... Потому что ВСЕГДА ты будешь недоволен: тут пиксель не в том месте зажегся, тут шрифт не тот, здесь окно должно быть не сверху, а снизу, ну и т.д.
AlexSt
27.05.2007 1:27
Ну, извините. Зачёт послезавтра, а мне нужно точное решение. Volvo, ты думаешь "3 окна" в условии это 3 варианта изменения параметра(я не знаю что имеется ввиду под тремя окнами).
Ozzя
29.05.2007 13:42
Цитата(AlexSt @ 26.05.2007 22:27)
Ну, извините. Зачёт послезавтра, а мне нужно точное решение. Volvo, ты думаешь "3 окна" в условии это 3 варианта изменения параметра(я не знаю что имеется ввиду под тремя окнами).
Графические окна - SetViewPort. Тебе же Lapp сказал уже.
Гость
4.06.2007 18:55
подскажите плииз! как в паскале степени и корни изображауться??