curve sinusoidali

esci con turbomatematica.htm

program fase3;
(* 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,a1,a2,q:integer;tipo:string);
var y1,y2,y3,yr,x,angolo,s1,s2,s3,ris,y1a,y2a:integer;
rad1,rad2,rad3:real;
sr1,sr2,sa1,sa2,sri:string;
begin
cleardevice;
y1:=100;
y2:=100;
y1a:=200;
y2a:=200;
yr:=350;

str(g1,sr1);str(a1,sa1);
str(g2,sr2);str(a2,sa2);
outtextxy(400,20,'frequenze onde e ampiezza');
line(0,15,360,15);outtextxy(370,10,'1 secondo');
line(0,420,720,420);outtextxy(400,420,'2 secondi');
line(0,y1,q,y1);
line(0,y2,q,y2);
line(0,y1a,q,y1a);
line(0,y2a,q,y2a);
line(0,yr,q,yr);
outtextxy(10,370,tipo);
for angolo:=0 to q do
begin
rad1:=angolo*PI/(180/g1);
rad2:=angolo*PI/(180/g2);
s1:=trunc(a1*sin(rad1));
s2:=trunc(a2*sin(rad2));
ris:=s1+s2;
str(ris,sri);
setcolor(3);outtextxy(550,y1,sa1);
line(angolo,y1,angolo,y1+s1);outtextxy(500,y1,sr1);
line(angolo,y1a+s1,angolo,y1a+s1);
setcolor(2);outtextxy(550,y2+20,sa2);
line(angolo,y2a+s2,angolo,y2a+s2);
line(angolo,y2,angolo,y2+s2);outtextxy(500,y2+20,sr2);
setcolor(5);
outtextxy(400,yr,'risultante');
line(angolo,yr+ris,angolo,yr+ris);
line(angolo,y1+ris,angolo,y1+ris);
setcolor(7);
end;
outtextxy(10,410,'premi enter');
readln;
end;

procedure testo;
begin
writeln('rappresentazione curve sinusoidali');
writeln('con ampiezze assegnate e frequenze assegnate');
writeln('frequenze e ampiezze variabili in fase o sfasate');
writeln('concordanti,in opposizione,in quadratura,sfasate');
writeln('sfasate ,stessa ampiezza,con BATTIMENTI ');
writeln('premi enter');
readln;
end;

begin
clrscr;
testo;
grafica;
(* frequenze e ampiezze due onde e gradi totali *)
disegna(1,1,30,30,360,'in fase,stessa ampiezza');
disegna(1,1,30,-30,360,'in opposizione di fase,stessa ampiezza');
disegna(1,1,40,30,360,'in fase,diversa ampiezza');
disegna(1,1,40,-30,360,'in opposizione di fase,diversa ampiezza');
disegna(1,2,30,30,360,'quadratura,stessa ampiezza');
disegna(1,2,30,40,360,'quadratura,diversa ampiezza');
disegna(1,3,30,30,360,'sfasate con stessa ampiezza');
disegna(2,3,30,40,360,'sfasate con diversa ampiezza');
disegna(10,11,30,30,720,'sfasate con stessa ampiezza:battimenti');
disegna(20,21,30,30,720,'sfasate con stessa ampiezza:battimenti');
disegna(30,31,30,30,720,'sfasate stessa ampiezza:battimenti');

closegraph;
readln;
end.