Négyszögrezgés előállítása

F.33. Négyszögrezgés előállítása
uses crt,graph;
var gd,gm : integer;
i,j : integer;
{ Az n elemű sorozat előállítása t időpillanatban }
function next(t,n:integer):integer;
var i,j,k:integer;
r:real;
begin
k:=0;
j:=1;
i:=1;
r:=0;
repeat
r:=r+j*cos(i*t*pi/90)/i; { Egyetlen rezgés }
inc(i,2);                { Együtthatók }
j:=-j;                   { Előjelváltás }
inc(k);
until k=n;   { Összetevő rezgések összegzése }
next:=round((240/pi)*r);
end;
begin
gd:=detect;
initgraph(gd,gm,’c:\pascal\bgi’);
directvideo:=false;
textattr:=14;
writeln(‘Négyszögrezgés előállítása …’);
for j:=1 to 7 do { Első hét hullámalak felrajzolása }
begin
moveto(0,140+next(0,j));
setcolor(8+j);
for i:=0 to 639 do { Egyetlen hullám rajzolása }
lineto(i,140+next(i,j));
delay(5000);
end;
{ Végeredmény kirajzolása ötven önálló rezgés alapján }
j:=50;
setcolor(7);
moveto(0,340+next(0,j));
for i:=0 to 639 do
lineto(i,340+next(i,j));
writeln(‘ENTER’);
readln;
closegraph;
end.

Alábbi forrás alapján:

[4]   László József: Hangkártya programozása Pascal és Assembly nyelven, Computer Books, Budapest, 1999

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s