esercizi di chimica con turbo pascal 1.1 su mac
program dinami2; (* solo su mac non DOS *) (* soluzione problemi equilibrio chimico *) (* si calcola Ke con concentrazioni note da inserire *) uses sane; var r1,r2,p1,p2,ke:real; cr1,cr2,cp1,cp2:integer; s:integer;
procedure fine; begin writeln('premi enter'); readln; end;
procedure pausa; begin writeln('premi enter');readln; end;
procedure esamina(x:real); begin if x>1 then writeln('equilibrio spostato verso destra,prodotti') else if x=1 then writeln('equilibrio indifferente') else writeln('equilibrio spostato verso sinistra,reagenti'); end;
procedure pro1; begin writeln('inserire concentrazioni molari '); write('concentrazione reattivo1 r1 ');readln(r1); write('concentrazione reattivo2 r2 ');readln(r2); write('concentrazione prodotto1 p1 ');readln(p1); write('concentrazione prodotto2 p2 ');readln(p2); writeln('inserire coefficienti:anche se =1 '); write('coefficiente reattivo1 cr1 ');readln(cr1); write('coefficiente reattivo2 cr2 ');readln(cr2); write('coefficiente prodotto1 cp1 ');readln(cp1); write('coefficiente prodotto2 cp2 ');readln(cp2); r1:=xpwri(r1,cr1); r2:=xpwri(r2,cr2); p1:=xpwri(p1,cp1); p2:=xpwri(p2,cp2); writeln('calcolo concentrazioni elevate a proprio esponente '); writeln('p1=',p1,'..p2=',p2,'..r1=',r1,'..r2=',r2); writeln; writeln(' Ke=(p1*p2)/(r1*r2) '); ke:=(p1*p2)/(r1*r2);esamina(ke); writeln(ke:8:6,'...',ke); pausa; end;
procedure pro2; begin writeln('inserire concentrazioni molari '); write('concentrazione reattivo1 r1 ');readln(r1); write('concentrazione reattivo2 r2 ');readln(r2); write('concentrazione prodotto1 p1 ');readln(p1); writeln('inserire coefficienti:anche se =1 '); write('coefficiente reattivo1 cr1 ');readln(cr1); write('coefficiente reattivo2 cr2 ');readln(cr2); write('coefficiente prodotto1 cp1 ');readln(cp1); r1:=xpwri(r1,cr1); r2:=xpwri(r2,cr2); p1:=xpwri(p1,cp1); writeln('calcolo concentrazioni elevate a proprio esponente '); writeln('p1=',p1,'..r1=',r1,'..r2=',r2); writeln; writeln(' Ke=(p1)/(r1*r2) '); ke:=(p1)/(r1*r2);esamina(ke); writeln(ke:8:6,'...',ke); pausa; end;
procedure pro3; begin writeln('inserire concentrazioni molari '); write('concentrazione reattivo1 r1 ');readln(r1); write('concentrazione prodotto1 p1 ');readln(p1); write('concentrazione prodotto2 p2 ');readln(p2); writeln('inserire coefficienti:anche se =1 '); write('coefficiente reattivo1 cr1 ');readln(cr1); write('coefficiente prodotto1 cp1 ');readln(cp1); write('coefficiente prodotto2 cp2 ');readln(cp2); r1:=xpwri(r1,cr1); p1:=xpwri(p1,cp1); p2:=xpwri(p2,cp2); writeln('calcolo concentrazioni elevate a proprio esponente '); writeln('p1=',p1,'..p2=',p2,'..r1=',r1); writeln; writeln(' Ke=(p1*p2)/(r1) '); ke:=(p1*p2)/(r1);esamina(ke); writeln(ke:8:6,'...',ke); pausa; end;
procedure pro4; begin writeln('inserire concentrazioni molari '); write('concentrazione reattivo1 r1 ');readln(r1); write('concentrazione prodotto1 p1 ');readln(p1); writeln('inserire coefficienti:anche se =1 '); write('coefficiente reattivo1 cr1 ');readln(cr1); write('coefficiente prodotto1 cp1 ');readln(cp1); r1:=xpwri(r1,cr1); p1:=xpwri(p1,cp1); writeln('calcolo concentrazioni elevate a proprio esponente '); writeln('p1=',p1,'..r1=',r1); writeln; writeln(' Ke=(p1)/(r1) '); ke:=(p1)/(r1);esamina(ke); writeln(ke:8:6,'...',ke); pausa; end;
procedure scelta; var ancora:integer; begin clearscreen; writeln('seleziona tipo problema '); writeln('1...calcolare Ke con 2 reattivi e 2 prodotti'); writeln('2...calcolare Ke con 2 reattivi e 1 prodotti'); writeln('3...calcolare Ke con 1 reattivo e 2 prodotti'); writeln('4...calcolare Ke con 1 reattivi e 1 prodotti'); writeln('9...fine '); write('opzione=');readln(s); clearscreen; case s of 1:pro1; 2:pro2; 3:pro3; 4:pro4; 9:fine; end; writeln('----------------------------'); writeln('altro problema:scrivi 1...fine:scrivi 2 ');readln(ancora); if ancora =1 then scelta else fine; end;
begin clearscreen; writeln('funzione programma:calcolo costante equilibrio Ke'); writeln('---------------------------------------------------'); writeln('premi enter');readln; scelta; end.