fisica

esci con turbofisica.htm

manometro

 

 

program manomet1;
(* funzionamento manometro aria libera *)
(* disco 70 dispensa 55 con turbo pascal v.5 *)

uses crt,graph;
type string15=string[20];
type vet=array[1..800] of byte;
var stantu:vet;
b1,b2,b3,b4,c1,c2,c3,sosta,px,cx:integer;

procedure presenta;
begin
writeln('misura di pressione di un gas contenuto in un recipiente');
writeln('mediante un MANOMETRO a mercurio aperto');
writeln;
writeln('su un ramo del manometro agisce la pressione atmosferica');
writeln('su un ramo del manometro agisce la pressione del gas ');
writeln;
writeln('la differenza eventuale di pressione viene misurata');
writeln('osservando la differenza di livello del liquido nei due rami');
writeln('del manometro:differenza misurata in mmHg come le pressioni');
writeln;
writeln('la pressione del gas risulta uguale alla pressione atmosferica');
writeln('piu la aggiunta o la sottrazione della differenza osservata');
writeln;
writeln('indica valore pressione gas nel contenitore in mmHG');
writeln('provare con valori compresi tra 700 e 880 mmHg ');
repeat
readln(px);
until (px>=700) and (px<=880);
pX:=px-760;
if (px>0) then cx:=1
else if (px<0) then cx:=2;
writeln('indica velocita simulazione 10=rapido...500=lento');
readln(sosta);
writeln('premi return,prego');readln;clrscr;
end;

procedure grafica(f:integer); (* attiva pagina grafica*)
(* coordinate finestra,colore sfondo e disegno *)
var sc,tp:integer;
stringa:string;

begin
sc:=0; (* valore risoluzione 0,1,2,3,4,5,8,9 *)
tp:=0; (* valore valido 1 - 0 palette *)
stringa:='bgi'; (* indica ove cercare GRAPH *)
initgraph(sc,tp,stringa); (* attiva scheda grafica *)
setbkcolor(f); (* colore sfondo *)
end;

procedure testo(x,y:integer;nome:string); (* stampa legenda testo *)
begin
outtextxy(x,y,nome);
setcolor(14);
end;

procedure pausa; (* premere return per proseguire *)
var ch:char;
begin
testo(10,430,'premi return,prego');
ch:=readkey;
setcolor(1);
testo(10,430,'premi return,prego');
setcolor(14);
end;

procedure disegni;
begin
setfillstyle(1,14);
bar(22,20,48,10);
getimage(22,20,48,30,stantu);
gotoxy(1,1);clreol;
gotoxy(1,2);clreol;
end;

procedure manometro;
var a:integer;
begin
settextstyle(1,0,2);
testo(100,30,'manometro aria libera');
settextstyle(0,0,0);
circle(100,100,50);
testo(100,100,'gas');
testo(300,250,'pressione atmosferica=760 mmHg');
line(150,90,200,90); (* raccordo alto lungo *)
line(150,110,170,110); (* raccordo alto breve *)
line(170,110,170,400); (* verticale sinistra *)
line(200,90,200,370); (* verticale destra *)
line(170,400,280,400);
line(200,370,250,370);
line(282,400,282,90);
line(250,370,250,90);
line(220,90,220,370);
for a:=1 to 280 do
begin
if (a/5 = trunc(a/5)) then line(210,90+a,230,90+a);
end;
end;

procedure inizio;
var a:integer;
begin

bar(b1,c1,b2,c2);
bar(b1,c2,b3,c3);
bar(b4,c1,b3,c2);
end;

procedure muove(px:integer);
var a:integer;
ps,pxs:string[10];
begin
setcolor(1);
for a:=0 to px do
begin
str(px,pxs);
str(px+760,ps);
putimage(b1,c1+a,stantu,1);
putimage(b4,c1-a,stantu,1);
delay(sosta);
end;
setcolor(5);
testo(10,250+a,'pressione='+ps+'mmHg');
testo(300,250-a,'differenza='+pxs +'mmHg');
end;

procedure muove1(px:integer);
var a:integer;
ps,pxs:string[10];
begin
setcolor(1);
for a:=0 downto px do
begin
str(px,pxs);
str(760+px,ps);
putimage(b1,c1+a,stantu,1);
putimage(b4,c1-a,stantu,1);
delay(sosta);
end;
setcolor(5);
testo(10,250+a,'pressione='+ps+'mmHg');
testo(300,250+a,'differenza='+pxs +'mmHg');
end;

begin (* programma principale *)
clrscr;
(* parametri liquido manometrico e manometro *)
b1:=173;c1:=250;b2:=198;c2:=374;b3:=278;c3:=398;b4:=254;
presenta;
case cx of
1:begin grafica(1);disegni;manometro;inizio;pausa;muove(px);pausa;end;
2:begin grafica(1);disegni;manometro;inizio;pausa;muove1(px);pausa;end;
end;
grafica(1);disegni;manometro;inizio;pausa;muove(60);pausa;
grafica(1);disegni;manometro;inizio;pausa;muove1(-60);pausa;
grafica(1);disegni;manometro;inizio;pausa;muove1(-40);pausa;
grafica(1);disegni;manometro;inizio;pausa;muove(100);pausa;
grafica(1);disegni;manometro;inizio;pausa;muove1(-90);pausa;
grafica(1);disegni;manometro;inizio;pausa;muove(90);pausa;
end.