Написать программу построения графика функции. Вывод графика осуществлять в созданном на экране окне , в другом окне выполнить вывод уравнения функции с конкретными значениями параметров. Выполнить смену 3-х экранов с различными значениями параметров.
Цепная линия:
Добавлено через 4 мин.
там наверное плохо видно формулу:
Эскизы прикрепленных изображений
Глянь здесь: http://forum.pascal.net.ru/index.php?s=&showtopic=2729&view=findpost&p=23770
Я не совсем понял про окна: это на одном экране? Если так, то можно использовать SetViewPort.
Написать программу построения графика функции. Вывод графика осуществлять в созданном на экране окне , в другом окне выполнить вывод уравнения функции с конкретными значениями параметров. Выполнить смену 3-х экранов с различными значениями параметров.
Цепная линия:
Эскизы прикрепленных изображений
ну может поможите?
В ФАК'е Альтаир выкладывал код для построения графика любой ф-ции. Ищи.
Ну а в чем проблема? Это у тебя обычный график, не параметрический...
Тему "Построение любого графика" видел? Подставляешь туда свою функцию, и она чертит тебе график... Если надо 3 штуки - в цикле...
! | ALexSt, дублировать темы - твое хобби? Оно не приветствуется тут.. |
y := A * (Exp(x/2) - Exp(-x/2)) / 2;
Это гиперболический синус ?
Спасибо, а вот про ГИПЕРсинус не имею никакого понятия, в задании ф-ция значится как цепная линия
я подставил в задачку Альтаира по построению любой функции свою, получилась какая-то ерунда. Вот оно:
program grafshit;
Uses Graph,crt;
const shag=0.0001;
lgr = -50;
pgr = 50;
zcrtX=320;
zcrty=240;
mtrX=10;
mtrY=10;
colorG=15;
colorOXY=4;
OXYminX=-200;
OXYmaxX=200;
OXYminY=-200;
oxymaxY=200;
Var grDriver : Integer;
grMode : Integer;
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.
Что-то рисует
program grafshit;
Uses Graph,crt;
const shag=0.0001;
lgr = -50;
pgr = 50;
zcrtX=320;
zcrty=240;
mtrX=10;
mtrY=10;
colorG=15;
colorOXY=4;
OXYminX=-200;
OXYmaxX=200;
OXYminY=-200;
oxymaxY=200;
Var grDriver : Integer;
grMode : Integer;
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.
а то ли "рисует"? я не думаю что тут 3 "окна"!
Про цикл никогда не слышал?
Что, большая проблема зациклить приведенный код, и изменять A внутри этого цикла? Все равно, НИКТО не сможет решить эту задачу именно так, как это нужно тебе... Потому что ВСЕГДА ты будешь недоволен: тут пиксель не в том месте зажегся, тут шрифт не тот, здесь окно должно быть не сверху, а снизу, ну и т.д.
Ну, извините. Зачёт послезавтра, а мне нужно точное решение. Volvo, ты думаешь "3 окна" в условии это 3 варианта изменения параметра(я не знаю что имеется ввиду под тремя окнами).
подскажите плииз! как в паскале степени и корни изображауться??
http://forum.pascal.net.ru/index.php?act=findpost&pid=38227