Помощь - Поиск - Пользователи - Календарь
Полная версия: ненавистная графика (Объединено)
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
AlexSt
Написать программу построения графика функции. Вывод графика осуществлять в созданном на экране окне , в другом окне выполнить вывод уравнения функции с конкретными значениями параметров. Выполнить смену 3-х экранов с различными значениями параметров.
Цепная линия:


Добавлено через 4 мин.
там наверное плохо видно формулу:
Lapp
Глянь здесь: Построение любого графика
Я не совсем понял про окна: это на одном экране? Если так, то можно использовать SetViewPort.
AlexSt
Написать программу построения графика функции. Вывод графика осуществлять в созданном на экране окне , в другом окне выполнить вывод уравнения функции с конкретными значениями параметров. Выполнить смену 3-х экранов с различными значениями параметров.
Цепная линия:
Гость
ну может поможите?
Ozzя
В ФАК'е Альтаир выкладывал код для построения графика любой ф-ции. Ищи.
volvo
Ну а в чем проблема? Это у тебя обычный график, не параметрический...

Тему "Построение любого графика" видел? Подставляешь туда свою функцию, и она чертит тебе график... Если надо 3 штуки - в цикле...
Lapp
 ! 
ALexSt, дублировать темы - твое хобби? Оно не приветствуется тут..

AlexSt
good.gif good.gif good.gif как записать эту формулу на паскале? good.gif good.gif good.gif
Tan
y := A * (Exp(x/2) - Exp(-x/2)) / 2;
Это гиперболический синус ?
AlexSt
Спасибо, а вот про ГИПЕРсинус не имею никакого понятия, в задании ф-ция значится как цепная линия
AlexSt
я подставил в задачку Альтаира по построению любой функции свою, получилась какая-то ерунда. Вот оно:
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.


И, ещё может подскажите что такое A в формуле, как сделать три окна! на одном экране(lapp писал что через SetViewPort - но как?)&( я даже не пойму что именно должно в них быть), зачем делать смену экранов?
Пожалуйста напишите в пустые фигурные скобки в проге что там происходит!
Ozzя
Что-то рисует

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.
AlexSt
а то ли "рисует"? я не думаю что тут 3 "окна"!
volvo
Про цикл никогда не слышал?

Что, большая проблема зациклить приведенный код, и изменять A внутри этого цикла? Все равно, НИКТО не сможет решить эту задачу именно так, как это нужно тебе... Потому что ВСЕГДА ты будешь недоволен: тут пиксель не в том месте зажегся, тут шрифт не тот, здесь окно должно быть не сверху, а снизу, ну и т.д. dry.gif
AlexSt
Ну, извините. Зачёт послезавтра, а мне нужно точное решение. Volvo, ты думаешь "3 окна" в условии это 3 варианта изменения параметра(я не знаю что имеется ввиду под тремя окнами). unsure.gif
Ozzя
Цитата(AlexSt @ 26.05.2007 22:27) *

Ну, извините. Зачёт послезавтра, а мне нужно точное решение. Volvo, ты думаешь "3 окна" в условии это 3 варианта изменения параметра(я не знаю что имеется ввиду под тремя окнами). unsure.gif

Графические окна - SetViewPort. Тебе же Lapp сказал уже.
Гость
подскажите плииз! как в паскале степени и корни изображауться?? blink.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.