problemi sui gas

esci chimicaturbo.htm

Program gas4;
(* esempi problemi sui GAS INTERATTIVO con valutazione*)
(* dati da inserire da libro o foglio *)
uses crt;
const r=0.082;

VAR ris,rip,nmoli,numoli,dx1,dx2,dx3:real;
p,v,g,t,hg,tc,tk,cc,Kg,pm1:real;
a,esatte,errate,totale,pm:integer;


procedure cancella;
begin
clrscr;
end;

procedure pausa;
begin
writeln('premi ENTER ');readln;
end;

procedure fine;
begin
writeln('fine operazione:confermare :premi enter');
readln;
end;


procedure analisi1(risx,ripx:real);
var k:integer;
begin
k:=1;
dx1:=abs(risx-ripx);
writeln('differenza tra valore atteso e valore inserito=',dx1:0:5);
if ((dx1<k) or (dx1=k))
then begin writeln('ESATTO');esatte:=esatte+1;end
else begin writeln('ERRATO');errate:=errate+1;end;
end;


procedure analisi2(risx,ripx,ris2,rip2:real);
var k:integer;
begin
k:=2;
dx1:=abs(risx-ripx);dx2:=abs(ris2-rip2);
writeln('differenza tra valore atteso e valore inserito=',dx1:0:5);
writeln('differenza tra valore atteso e valore inserito=',dx2:0:5);
if (((dx1<k) or (dx1=k)) and ((dx2<k) or (dx2=k)))
then begin writeln('ESATTO');esatte:=esatte+1;end
else begin writeln('ERRATO');errate:=errate+1;end;
end;



procedure analisi3(risx,ripx,ris2,rip2,ris3,rip3:real);
var k:integer;
begin
k:=1;
dx1:=abs(risx-ripx);dx2:=abs(ris2-rip2);dx3:=abs(ris3-rip3);
writeln('differenza tra valore atteso e valore inserito=',dx1:0:5);
writeln('differenza tra valore atteso e valore inserito=',dx2:0:5);
writeln('differenza tra valore atteso e valore inserito=',dx3:0:5);
if (((dx1<k) or (dx1=k)) and ((dx2<k) or (dx2=k)) and ((dx3<k) or (dx3=k)))
then begin writeln('ESATTO');esatte:=esatte+1;end
else begin writeln('ERRATO');errate:=errate+1;end;
end;


procedure pressione;
begin
writeln('calcolare la pressione in atmosfere e in mmHg ');
writeln('usando i dati assegnati:R = 0.082 ');
writeln('formula generale PV=mRT/PM ');
writeln('---------------------------------------------------------');
write('volume in litri = ');readln(v);
write('temperatura in gradi centigradi =');readln(t);
write('massa in grammi---------------- =');readln(g);
write('peso molecolare---------------- =');readln(pm);
tk:=tc+273;
writeln('----------------------------------------------------------');
writeln('scrivi il risultato ottenuto o scrivi 0 se non lo sai');
write('risultato atmosfere = ');readln(ris);
write('risultato mmHg = ');readln(rip);
p:=(g*R*tk)/(pm*v);hg:=p*760;
analisi2(p,ris,hg,rip);
writeln('----------------------------------------------------------');
writeln('confronta con risultato atteso e passaggi da eseguire');
writeln('trasformo gradi centigradi in kelvin :K = 273 +C = ',tk:0:3);
writeln('----------------------------------------------------------');
writeln('*************** applico la formula P = m*R*T/PM*V = ',p:0:3);
writeln('----------------------------------------------------------');
writeln('trasformo atmosfere in mmHg : Hg = atmosfere*760 = ',hg:0:3);
writeln('----------------------------------------------------------');
pausa;cancella;
end;

procedure volume;
begin
writeln('calcolare il volume in litri e in cc. ');
writeln('usando i dati assegnati:R = 0.082 ');
writeln('formula generale PV=mRT/PM ');
writeln('---------------------------------------------------------');
write('pressione in atmosfere ---------=');readln(p);
write('temperatura in gradi centigradi =');readln(t);tk:=t+273;
write('massa in grammi---------------- =');readln(g);
write('peso molecolare---------------- =');readln(pm);
writeln('----------------------------------------------------------');
writeln('scrivi il risultato ottenuto o scrivi 0 se non lo sai');
write('risultato litri = ');readln(ris);
write('risultato cc = ');readln(rip);
v:=(g*R*tk)/(pm*p);cc:=v*1000;
analisi2(v,ris,cc,rip);
writeln('----------------------------------------------------------');
writeln('confronta con risultato atteso e passaggi da eseguire');
writeln('trasformo gradi centigradi in kelvin :K = 273 +C = ',tk:0:3);
writeln('----------------------------------------------------------');
writeln('****************applico la formula V = m*R*T/PM*P = ',v:0:3);
writeln('----------------------------------------------------------');
writeln('trasformo litri in cc : cc = litri*1000 = ',cc:0:3);
writeln('----------------------------------------------------------');
pausa;cancella;
end;

procedure gradi;
begin
writeln('calcolare la TEMPERATURA in gradi centigradi e kelvin ');
writeln('usando i dati assegnati:R = 0.082 ');
writeln('formula generale PV=mRT/PM ');
writeln('---------------------------------------------------------');
write('volume in litri ----------------=');readln(v);
write('pressione in atmosfere P -------=');readln(p);
write('massa in grammi---------------=');readln(g);
write('peso molecolare-----------------=');readln(pm);
writeln('----------------------------------------------------------');
writeln('scrivi il risultato ottenuto o scrivi 0 se non lo sai');
write('risultato kelvin = ');readln(ris);
write('risultato centigradi = ');readln(rip);
t:=(p*v*pm)/(R*g);tc:=t-273;
analisi2(t,ris,tc,rip);
writeln('----------------------------------------------------------');
writeln('confronta con risultato atteso e passaggi da eseguire');
writeln('----------------------------------------------------------');
writeln('*****************applico la formula T = P*V*PM/R*m= ',t:0:3);
writeln('----------------------------------------------------------');
writeln('trasformo gradi kelvin in centigradi :C = K - 273 = ',tc:0:3);
writeln('----------------------------------------------------------');
pausa;cancella;
end;

procedure massa;
begin
writeln('calcolare la MASSA in grammi e Kg e numero di MOLI ');
writeln('usando i dati assegnati:R = 0.082 ');
writeln('formula generale PV=mRT/PM ');
write('volume in litri ------------------=');readln(v);
write('pressione in atmosfere P ---------=');readln(p);
write('temperatura in kelvin------------ =');readln(t);
write('peso molecolare-------------------=');readln(pm);
writeln('----------------------------------------------------------');
writeln('scrivi il risultato ottenuto o scrivi 0 se non lo sai');
write('risultato grammi = ');readln(ris);
write('risultato Kg = ');readln(rip);
write('risultato moli = ');readln(nmoli);
g:=(p*v*pm)/(R*t);kg:=g/1000;numoli:=g/pm;
analisi3(g,ris,Kg,rip,numoli,nmoli);
writeln('----------------------------------------------------------');
writeln('confronta con risultato atteso e passaggi da eseguire');
writeln('----------------------------------------------------------');
writeln('*****************applico la formula m = P*V*PM/R*T= ',g:0:3);
writeln('----------------------------------------------------------');
writeln('trasformo i grammi in Kg : Kg = grammi/1000 = ',kg:0:3);
writeln('----------------------------------------------------------');
writeln('calcolo numero moli: moli = massa/PM = ',numoli:0:3);
writeln('----------------------------------------------------------');
pausa;cancella;
end;

procedure mole;
begin
writeln('calcolare la PESO MOLECOLARE in grammi per mole');
writeln('usando i dati assegnati:R = 0.082 ');
writeln('formula generale PV=mRT/PM ');
writeln('---------------------------------------------------------');
write('volume in litri ------------------=');readln(v);
write('pressione in atmosfere P ---------=');readln(p);
writeln('temperatura in kelvin---------- =');readln(t);
writeln('massa in grammi ---------- =');readln(g);
writeln('----------------------------------------------------------');
writeln('scrivi il risultato ottenuto o scrivi 0 se non lo sai');
write('risultato PM = ');readln(ris);
pm1:=(g*R*t)/(p*v);analisi1(pm1,ris);
writeln('----------------------------------------------------------');
writeln('confronta con risultato atteso e passaggi da eseguire');
writeln('***************applico la formula PM = m*R*T/P*V = ',pm1:0:3);
writeln('----------------------------------------------------------');
pausa;cancella;
end;


procedure pro1;
begin
pressione;
end;

procedure pro2;
begin
volume;
end;


procedure pro3;
begin
gradi;
end;

procedure pro4;
begin
massa;
end;


procedure pro5;
begin
mole;
end;


procedure scelta;
var s,sn:string;opzione:integer;
begin
clrscr;
writeln('seleziona opzione :');
writeln('1...calcolo PRESSIONE:interattivo');
writeln('2...calcolo VOLUME:interattivo');
writeln('3...calcolo TEMPERATURA:interattivo');
writeln('4...calcolo MASSA e numero MOLI:interattivo');
writeln('5...calcolo PESO MOLECOLARE:interattivo');
writeln('9...fine ');
writeln('scelta =');readln(opzione);clrscr;
case opzione of
1:pro1;2:pro2;3:pro3;4:pro4;5:pro5;
9:fine;
end;
writeln('altra operazione?Esperimenti?:premi S...fine:premi N '); readln(sn);
if ((sn='S') or (sn='s')) then scelta ;
end;

begin
cancella;
esatte:=0;errate:=0;
writeln('esempi proposti e commentati di problemi sui gas ');
writeln('applicando la legge generale PV=nRT = gRT/PM ');
writeln('e le formule derivate inverse :scrivere la risposta');
writeln('se decimali,usare 4 cifre DECIMALI');
pausa;
scelta;
totale:=esatte+errate;
writeln('risposte esatte =',esatte ,' su domande ',totale);
writeln('risposte errate =',errate ,' su domande ',totale);
pausa;
end.