Graph of the function

Delphi & Pascal (česká wiki)
Přejít na: navigace, hledání
Category: Homework in Pascal

Program: Graf.pas
File exe: Graf.exe
need: Egavga.bgi

Graph of the function. Function is write in Funkci(x real);
{ GRAF.PAS                  Copyright (c) TrSek alias Zdeno Sekerak }
{                                                                   }
{ Graf funkcie                                                      }
{ y:=(10/3)*(1-exp((-1*x)/3)*(cos(1/3*sqrt(0.8)*x)+(1/sqrt(0.8)     }
{    *(sin((1/3)*(sqrt(0.8)*x))))))                                 }
{ alebo inej zapisanej do FUNKCI(x:real)                            }
{ Vstup : rozsah x, y zobrazenej funkcie                            }
{ Vystup: graf funkcie                                              }
{ Vyzaduje subor EGAVGA.BGI, GRAPH.TPU                              }
{                                                                   }
{ Datum:10.04.1995                             http://www.trsek.com }
 
program graf_funkcie;
uses crt,dos,graph;
var x,y:real;
    gd,gm:integer;
    x1,x2:real;
    krok,rozlis,grund:real;
    xp,yp:integer;
 
function funkci(x:real):real;
var y:real;
begin
{ y:=(1-x)/(3+x);}
 y:=(10/3)* (1-exp((-1*x)/3)*(cos(1/3*sqrt(0.8)*x)+(1/sqrt(0.8)*(sin((1/3)*(sqrt(0.8)*x))))));
 funkci:=y;
end;
 
begin
 x1:=-10;x2:=30;krok:=(x2-x1)/640;
 rozlis:=5;
 grund:=100;
 write('Zadaj Xlave (-10) = ');readln(x1);
 write('Zadaj Xprave (30) = ');readln(x2);
 write('Zadaj rozlisenie Y (5) = ');readln(rozlis);
 write('Zadaj vzdialenost Y osi od dlazky (100) = ');readln(grund);
 
 gd := Detect;
 InitGraph(gd,gm,'');
 
 setcolor(Yellow);
 setbkcolor(Blue);
 x:=x1;
 line(0,round(480-grund),640,round(480-grund));
 line(round(abs((x1)/krok)),0,round(abs((x1)/krok)),480);
 repeat
  x:=x+krok;
  y:=funkci(x)*rozlis;
  putpixel(round(abs((x1-x)/krok)),480-round(grund+y),Yellow);
 until (x>x2);
 repeat until keypressed;
 closegraph;
end.