Kezdőoldal » Számítástechnika » Programozás » Free pascal-ban szeretnék...

Free pascal-ban szeretnék függvényt ábrázolni, ami 1 görbe. Hogyan lehet azt megcsinálni szépen?

Figyelt kérdés

Egy olyan programot írtam ami egy test gyorsulásából rajzol egy görbét egy koordináta rendszerben (y: m , x: s) csak az a baj vele hogy nagyobb értékeknél (10 fölött) már nem görbét ad hanem vonalakat (túlhúzva az előzőnél. M1 így nem nagyon érthető ezért itt a free pascal kód, másoljátok be adjatok meg először egy 8-nál kisebb értéket majd mondjuk egy 20-nál nagyobbat és meglátjátok mi a probléma vele:


program gyorsulas;

uses graph, wincrt;

var gd,gm: integer;


a,b,c,d,e,f,g:integer;


begin


a := 100;

b := 350;

e := 100;

f := 350;

g := 0;


writeln('add meg a test gyorsulását!(m/s^2)');

readln(c);

d:=c;

{ grafika inicializalasa }

gd := d4bit;

gm := m640x480;

initgraph(gd,gm,'');

{ rajzolas }

setcolor(red);

line(80,350,400,350);

outtextxy(350,365,'t (s)');

line(100,100,100,370);

outtextxy(80,110,'s');

outtextxy(70,120,'(m)');

outtextxy(105,355,'0');

line(95,300,105,300);

line(95,250,105,250);

line(95,200,105,200);

line(95,150,105,150);


outtextxy(75,305,'50');

outtextxy(75,255,'100');

outtextxy(75,205,'150');

outtextxy(75,155,'200');


line(150,345,150,355);

line(200,345,200,355);

line(250,345,250,355);

line(300,345,300,355);

line(350,345,350,355);


outtextxy(155,355,'50');

outtextxy(205,355,'100');

outtextxy(255,355,'150');

outtextxy(305,355,'200');

outtextxy(355,355,'250');


{ciklus, a függvény kirajzolása}

repeat

setcolor(yellow);

e:=a-d;

f:=b+c+d;

a:=a+d;

b:=b-(c+d);

c:=c+d;

delay(100);

line(e,f,a,b);


writeln(c,'m/s');

g:=g+c;

writeln(g,'m');

writeln(a-100,'s');

writeln;


until b<155;



readkey;

{ grafikus mod bezarasa }

closegraph;

end.



a válaszokat előre is köszönöm!


2010. okt. 23. 15:33
 1/3 anonim ***** válasza:
Nem vagyok pro, de grafikont rajzolni úgy szokás, hogy valamilyen közönként kiszámolod az f(x) értékét, és x-1:f(x-1) -> x:f(x) húzol egy vonalat. Ez egy elég általános dolog, már csak az f-t kell meghatározni, y-ra rendezve.
2010. okt. 23. 15:51
Hasznos számodra ez a válasz?
 2/3 A kérdező kommentje:
példát tudnál rá írni? csak egy egyszerűbb is elég csak ne sima egyenes legyen
2010. okt. 23. 19:33
 3/3 anonim válasza:

Bár nem igazán értem miért jó ez a grafikon, mindenesetre a hibát a

e:=a-d;

f:=b+c+d;

a:=a+d;

b:=b-(c+d);

sorokban követted el. Rosszul számolod ki (és feleslegesen) az előző pontot. A négy sor helyesen:

e:=a;

f:=b;

a:=a+d;

b:=b-(c+d);

vagy

a:=a+d;

b:=b-(c+d);

e:=a-d;

f:=b+c+d;


Így folyamatos grafikont kapsz.

2010. okt. 26. 14:17
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!