curve sinusoidali

esci con turbomatematica.htm

program fase1;
(* varie curve sinusoidali *)

uses crt,graph;

procedure grafica;
var sc,tp:integer;
stringa:string;
begin
sc:=0;
tp:=0;
stringa:='bgi';
initgraph(sc,tp,stringa);
end;

procedure disegna(g1,g2,g3,g4,g5,g6,a1,a2,a3,a4,a5,a6:integer);
var y1,y2,y3,y4,y5,y6,yr,x,angolo,s1,s2,s3,s4,s5,s6,sr:integer;
rad1,rad2,rad3,rad4,rad5,rad6:real;
sr1,sr2,sr3,sr4,sr5,sr6:string;
begin
cleardevice;
y1:=50;
y2:=120;
y3:=180;

y4:=240;
y5:=300;
y6:=360;
str(g1,sr1);
str(g2,sr2);str(g3,sr3);str(g4,sr4);str(g5,sr5);str(g6,sr6);
outtextxy(500,20,'frequenze onde');
line(0,10,360,10);outtextxy(370,10,'1 secondo');
outtextxy(200,400,'ampiezza costante per tutte le onde');
for angolo:=0 to 360 do
begin
rad1:=angolo*PI/(180/g1);
rad2:=angolo*PI/(180/g2);
rad3:=angolo*PI/(180/g3);
rad4:=angolo*PI/(180/g4);
rad5:=angolo*PI/(180/g5);
rad6:=angolo*PI/(180/g6);

s1:=trunc(a1*sin(rad1));
s2:=trunc(a2*sin(rad2));
s3:=trunc(a3*sin(rad3));
s4:=trunc(a4*sin(rad4));
s5:=trunc(a5*sin(rad5));
s6:=trunc(a6*sin(rad6));
setcolor(1);
line(angolo,y1,angolo,y1+s1);outtextxy(500,y1,sr1);
setcolor(2);
line(angolo,y2,angolo,y2+s2);outtextxy(500,y2,sr2);
setcolor(3);
line(angolo,y3,angolo,y3+s3);outtextxy(500,y3,sr3);
setcolor(4);outtextxy(500,y4,sr4);
line(angolo,y4,angolo,y4+s4);
setcolor(5);outtextxy(500,y5,sr5);
line(angolo,y5,angolo,y5+s5);
setcolor(6);outtextxy(500,y6,sr6);
line(angolo,y6,angolo,y6+s6);
end;
outtextxy(10,410,'premi enter');
readln;
end;

procedure testo;
begin
writeln('rappresentazione curve sinusoidali');
writeln('con ampiezze assegnate e frequenze assegnate');
writeln('osservare effetto 180/g sulla frequenza');
writeln;
writeln('premi enter');
readln;
end;

begin
clrscr;
testo;
grafica;
(* frequenze e ampiezze sei onde *)
disegna(1,2,3,4,5,6,30,30,30,30,30,30);
disegna(7,8,9,10,11,12,30,30,30,30,30,30);
disegna(13,14,15,16,17,18,30,30,30,30,30,30);
disegna(19,20,21,22,23,24,30,30,30,30,30,30);
disegna(25,26,27,28,29,30,30,30,30,30,30,30);
closegraph;
readln;
end.