esercizi di chimica con turbo pascal 1.1 su mac

Program ste1;
 (* problemi di stechiometria solo con GRAMMI *) 
 
   VAR gn,pn,cn,tn,n,a:integer;
   cx :array[1..5] of integer;
   px :array[1..5] of integer;
   tx :array[1..5] of integer;
   gx :array[1..5] of real;
   vs:real;   
   sn:array[1..5] of string[12];
   rn:string[12];           
procedure pausa;
begin
writeln('premi ENTER ');readln;
end;
procedure fine;  (* conferma uscita operazione *)
begin
writeln('fine operazione:confermare :premi enter');
readln;
end;
procedure nomi(n:integer);
begin
write('scrivi formula sostanza di massa nota ');readln(rn);
writeln;
writeln('scrivi le formule delle sostanze da calcolare ');
for a:=1 to n do
 begin
 write('nome sostanza n.',a,' = ');readln(sn[a]);
 end;
end;
 
procedure testo1;
begin
writeln('passa a chiedere sostanza nota in grammi  ');
writeln('peso molecolare e coefficiente stechiometrico ');
end;
procedure testo2;
begin
writeln;
writeln('passa a chiedere PESI MOLECOLARI e COEFFICIENTI stechiometrici');
writeln('delle sostanze incognite,in ordine,da sinistra a destra ');
writeln('CALCOLA prodotto tra coefficiente e peso molecolare G = c * pm ');
writeln;
end;
procedure testo3;
begin
writeln('------------------------------------------------');
writeln('calcola grammi di sostanze richieste e ottenute ');
end;
procedure totale1; (* calcola grammi stechiometrici noti *)
begin
tn:=pn*cn;
writeln('grammi stechiometrici sostanza nota =   ',rn,' = ',tn);
end;
procedure totale2(n:integer); (* calcola grammi stechiometrici incognite *)
begin
for a:=1 to n do
begin
tx[a]:=px[a]*cx[a];
writeln('grammi stechiometrici sostanza ',sn[a],'...',tx[a]);
end;
end;
procedure dati1; (* chiede dati sostanza nota *)
begin
testo1;
write('grammi noti della  sostanza    ',rn,'  = ');readln(gn);
write('peso molecolare della sostanza ',rn,'  = ');readln(pn);
write('coefficiente stechiometrico di ',rn,' = ');readln(cn);
totale1;
end;
procedure dati2(n:integer); (* chiede dati incognite *)
begin
testo2;
for a:=1 to n do
begin
write('peso molecolare sostanza ',sn[a],'...');readln(px[a]);
write('coefficiente sostanza    ',sn[a],'...');readln(cx[a]);
end;
totale2(n);
end;
procedure calcola1(n:integer); (* calcola grammi sostanze incognite *)
begin
testo3;
writeln('--------------------------------------------------');
writeln('grammi di sostanza ',rn,' = ',gn);
for a:=1 to n do
begin
gx[a]:=gn*tx[a]/tn;
writeln('grammi sostanza  ',sn[a],'...',gx[a]:8:5);
end;
end;
procedure pro1;
begin
dati1;dati2(n);calcola1(n);pausa;
end;
procedure scelta;  (* procedura con scelta opzioni e uscita *)
label salta;
var s,sn:string;opzione:integer;
begin
clearscreen;
writeln('seleziona opzione possibili tipi di problemi:');
writeln('SINTESI.DECOMPOSIZIONE .COMBINAZIONE ');
writeln('----------------------------------------------');
writeln('nota per inserimento dati:');
writeln('inserire prima i dati della sostanza di massa nota in grammi');
writeln('inserire poi in ordine,da sinistra a destra,i dati delle altre');
writeln('sostanze,prima,seconda,terza,quarta..come richiesto');
writeln('-------------------------------------------------------');
writeln('es.nella reazione HCl + NaOH -----> NaCl + H2O ');
writeln('se HCl risulta = 100 grammi ');
writeln('le altre sostanze,reagenti e prodotti,sono denominate come ');
writeln('NaOH=sostanza1..NaCl=sostanza2..H20=sostanza3 ');
writeln('-----------------------------------------------------------');
writeln('viene inoltre chiesto di indicare il numero di sostanze ');
writeln('presenti nella reazione:es.nella precedente = 4 ');
pausa;clearscreen;
writeln('REAGENTI e PRODOTTI  espressi in GRAMMI  ');
writeln('nota massa in grammi di una sostanza,calcola masse delle altre');
writeln('-------------------------------------------------------------');
writeln('...aA + bB -------> cAB      A=1  B=2 AB=3 ');
writeln('...cAB     -------> aA + bB  AB=4 A=5 B=6 ');
writeln('...aA + bB -------> cC + dD  A=7  B=8 C=9 D=10 ');
writeln('-------------------------------------------------------------');
writeln('11...fine ');
writeln('scelta =');readln(opzione);
if opzione=11 then goto salta;
writeln('scrivi numero di sostanze presenti nella reazione,oppure ');
writeln('numero di sostanze che interessano nel calcolo :massimo 5');
repeat
write('scrivi numero sostanze = :1,2,3,4,5 ');readln(n);
until ((n<6) and (n>1));
n:=n-1;
nomi(n);
clearscreen;
case opzione of
1,2,3,4,5,6,7,8,9,10:pro1;
11:fine;
end;
salta:
writeln('altra operazione?Esperimenti?:premi S...fine:premi N '); readln(sn);
if ((sn='S') or (sn='s')) then scelta ;
end;
begin            (* programma di lancio *)
clearscreen;
scelta;
end.

 


Program ste2;
 (* problemi di stechiometria solo con GRAMMI non MOLI o LITRI *) 
 
   VAR cr1,cr2,cp1,cp2,pr1,pr2,pp1,pp2:integer;
       tr1,tr2,tp1,tp2,xr1,xr2,xp1,xp2,gr1,gr2,gp1,gp2:real;
          a:integer;
       s1,s2,s3,s4,sx:string[12];
     
procedure pausa;
begin
writeln('premi ENTER ');readln;
end;
procedure fine;  (* conferma uscita operazione *)
begin
writeln('fine operazione:confermare :premi enter');
readln;
end;
procedure testo1;
begin
writeln('passa a chiedere PESI MOLECOLARI e COEFFICIENTI stechiometrici');
writeln('CALCOLA prodotto tra coefficiente e peso molecolare G = c * pm ');
writeln;
end;
procedure testo2;
begin
writeln('passa a chiedere MASSA nota in grammi ');
end;
procedure testo3;
begin
writeln('------------------------------------------------');
writeln('calcola grammi di sostanze richieste e ottenute ');
end;
procedure datir1;
begin
write('scrivi formula reattivo1 ');readln(s1);
write('peso atomico o molecolare reattivo1   ');readln(pr1);
write('coefficiente stechiometrico reattivo1 ');readln(cr1);
tr1:=pr1*cr1;
writeln('grammi totali di ',s1,' = ',tr1:0:8);
end;
procedure datir2;
begin
write('scrivi formula reattivo2 ');readln(s2);
write('peso atomico o molecolare reattivo2   ');readln(pr2);
write('coefficiente stechiometrico reattivo1 ');readln(cr2);
tr2:=pr2*cr2;
writeln('grammi totali di ',s2,' = ',tr2:0:8);
end;
procedure datip1;
begin
write('scrivi formula prodotto1 = ');readln(s3);
write('peso atomico o molecolare prodotto1   ');readln(pp1);
write('coefficiente stechiometrico prodotto1 ');readln(cp1);
tp1:=pp1*cp1;
writeln('grammi totali di ',s3,' = ',tp1:0:8);
end;
procedure datip2;
begin
write('scrivi formula prodotto2 ');readln(s4);
write('peso atomico o molecolare prodotto2   ');readln(pp2);
write('coefficiente stechiometrico prodotto2 ');readln(cp2);
tp2:=pp2*cp2;
writeln('grammi totali di ',s4,' = ',tp2:0:8);
end;
procedure massar1;
begin
write('grammi reattivo1     ',s1,sx);readln(gr1);
end;
procedure massar2;
begin
write('grammi reattivo2     ',s2,sx);readln(gr2);
end;
procedure massap1;
begin
write('grammi prodotto1     ',s3,sx);readln(gp1);
end;
procedure massap2;
begin
write('grammi prodotto2    ',s4,sx);readln(gp2);
end;
procedure calcola1;
begin
testo3;
xr2:=gr1*tr2/tr1;
xp1:=gr1*tp1/tr1;
writeln('grammi reattivo2 necessari  xr2:=gr1*tr2/tr1; ',s2,sx,xr2:8:5);
writeln('grammi prodotto1 ottenuti   xp1:=gr1*tp1/tr1; ',s3,sx,xp1:8:5);
end;
procedure calcola2;
begin
testo3;
xr1:=gr2*tr1/tr2;
xp1:=gr2*tp1/tr2;
writeln('grammi reattivo1 necessari  xr1:=gr2*tr1/tr2; ',s1,sx,xr1:8:5);
writeln('grammi prodotto1 ottenuti   xp1:=gr2*tp1/tr2; ',s3,sx,xp1:8:5);
end;
procedure calcola3;
begin
testo3;
xr1:=gp1*tr1/tp1;
xr2:=gp1*tr2/tp1;
writeln('grammi reattivo1 necessari  xr1:=gp1*tr1/tp1; ',s1,sx,xr1:8:5);
writeln('grammi reattivo2 necessari  xr2:=gp1*tr2/tp1; ',s2,sx,xr2:8:5);
end;
procedure calcola4;
begin
testo3;
xp1:=gr1*tp1/tr1;
xp2:=gr1*tp2/tr1;
writeln('grammi prodotto1 ottenuti xp1:=gr1*tp1/tr1;  ',s3,sx,xp1:8:5);
writeln('grammi prodotto2 ottenuti xp2:=gr1*tp2/tr1;  ',s4,sx,xp2:8:5);
end;
procedure calcola5;
begin
testo3;
xr1:=gp1*tr1/tp1;
xp2:=gp1*tp2/tp1;
writeln('grammi reattivo necessari  xr1:=gp1*tr1/tp1; ',s1,sx,xr1:8:5);
writeln('grammi prodotto2 ottenuti  xp2:=gp1*tp2/tp1; ',s4,sx,xp2:8:5);
end;
procedure calcola6;
begin
testo3;
xr1:=gp2*tr1/tp2;
xp1:=gp2*tp1/tp2;
writeln('grammi reattivo1 necessari xr1:=gp2*tr1/tp2; ',xr1:8:5);
writeln('grammi prodotto2 ottenuti  xp1:=gp2*tp1/tp2; ',xp1:8:5);
end;
procedure calcola7;
begin
testo3;
xr2:=gr1*tr2/tr1;
xp1:=gr1*tp1/tr1;
xp2:=gr1*tp2/tr1;
writeln('grammi reattivo2 necessari xr2:=gr1*tr2/tr1; ',s2,sx,xr2:8:5);
writeln('grammi prodotto1 ottenuti  xp1:=gr1*tp1/tr1; ',s3,sx,xp1:8:5);
writeln('grammi prodotto2 ottenuti  xp2:=gr1*tp2/tr1; ',s4,sx,xp2:8:5);
end;
procedure calcola8;
begin
testo3;
xr1:=gr2*tr1/tr2;
xp1:=gr2*tp1/tr2;
xp2:=gr2*tp2/tr2;
writeln('grammi reattivo1 necessari xr1:=gr2*tr1/tr2; ',s1,sx,xr1:8:5);
writeln('grammi prodotto1 ottenuti  xp1:=gr2*tp1/tr2; ',s3,sx,xp1:8:5);
writeln('grammi prodotto2 ottenuti  xp2:=gr2*tp2/tr2; ',s4,sx,xp2:8:5);
end;
procedure calcola9;
begin
testo3;
xr1:=gp1*tr1/tp1;
xr2:=gp1*tr2/tp1;
xp2:=gp1*tp2/tp1;
writeln('grammi reattivo1 necessari xr1:=gp1*tr1/tp1; ',xr1:8:5);
writeln('grammi reattivo2 necessari xr2:=gp1*tr2/tp1; ',xr2:8:5);
writeln('grammi prodotto2 ottenuti  xp2:=gp1*tp2/tp1; ',xp2:8:5);
end;
procedure calcola10;
begin
testo3;
xr1:=gp2*tr1/tp2;
xr2:=gp2*tr2/tp2;
xp1:=gp2*tp1/tp2;
writeln('grammi reattivo1 necessari xr1:=gp2*tr1/tp2; ',s1,sx,xr1:8:5);
writeln('grammi reattivo2 necessari xr2:=gp2*tr2/tp2; ',s2,sx,xr2:8:5);
writeln('grammi prodotto2 ottenuti  xp1:=gp2*tp1/tp2; ',s4,sx,xp1:8:5);
end;
procedure pro1;
begin
testo1;datir1;datir2;datip1;testo2;massar1;calcola1;pausa;
end;
procedure pro2;
begin
testo1;datir1;datir2;datip1;testo2;massar2;calcola2;pausa;
end;
procedure pro3;
begin
testo1;datir1;datir2;datip1;testo2;massap1;calcola3;pausa;
end;
procedure pro4;
begin
testo1;datir1;datip1;datip2;testo2;massar1;calcola4;pausa;
end;
procedure pro5;
begin
testo1;datir1;datip1;datip2;testo2;massap1;calcola5;pausa;
end;
procedure pro6;
begin
testo1;datir1;datip1;datip2;testo2;massap2;calcola6;pausa;
end;
procedure pro7;
begin
testo1;datir1;datir2;datip1;datip2;testo2;massar1;calcola7;pausa;
end;
procedure pro8;
begin
testo1;datir1;datir2;datip1;datip2;testo2;massar2;calcola8;pausa;
end;
procedure pro9;
begin
testo1;datir1;datir2;datip1;datip2;testo2;massap1;calcola9;pausa;
end;
procedure pro10;
begin
testo1;datir1;datir2;datip1;datip2;testo2;massap2;calcola10;pausa;
end;
procedure scelta;  (* procedura con scelta opzioni e uscita *)
var s,sn:string;opzione:integer;
begin
clearscreen;
writeln('seleziona opzione possibili tipi di problemi:');
writeln('masse solo in grammi...non in moli o volumi  ');
writeln('---------------------------------------------');
WRITELN('la sostanza nota viene preceduta dalla sigla g..grammi noti');
writeln('-----------------------------------------------------------');
writeln('SINTESI.1,2,3..DECOMPOSIZIONE 4,5,6..COMBINAZIONE 7,8,9,10 ');
writeln('1...gA + xB ---> yAB :noti grammi di A  ,calcola grammi di B,AB');
writeln('2...xA + gB ---> yAB :noti grammi di B  ,calcola grammi di A,AB');
writeln('3...xA + yB ---> gAB :noti grammi di AB ,calcola grammi di A,B');
writeln('4...gAB ---> xA + yB :noti grammi di AB ,calcola grammi di A,B');
writeln('5...xAB ---> gA + yB :noti grammi di A  ,calcola grammi di AB,B');
writeln('6...xAB ---> yA + gB :noti grammi di B  ,calcola grammi di A,AB');
writeln('7...gA + xB ---> yC + zD :noti gA ,calcola grammi B,C,D ');
writeln('8...xA + gB ---> yC + zD :noti gB ,calcola grammi A,C,D ');
writeln('9...xA + yB ---> gC + zD :noti gC ,calcola grammi A,B,D ');
writeln('10..xA + yB ---> zC + gD :noti gD ,calcola grammi A,B,C ');
writeln('15...fine ');
writeln('scelta =');readln(opzione);
clearscreen;
case opzione of
1:pro1;
2:pro2;
3:pro3;
4:pro4;
5:pro5;
6:pro6;
7:pro7;
8:pro8;
9:pro9;
10:pro10;
15:fine;
end;
writeln('altra operazione?Esperimenti?:premi S...fine:premi N '); readln(sn);
if ((sn='S') or (sn='s')) then scelta ;
end;
begin            (* programma di lancio *)
clearscreen;
sx:=' = ';
scelta;
end.

Program ste3;
 (* problemi di stechiometria solo con GRAMMI non MOLI o LITRI *) 
 

 
   VAR cr1,cr2,cp1,cp2,pr1,pr2,pp1,pp2:integer;
       tr1,tr2,tp1,tp2,xr1,xr2,xp1,xp2,gr1,gr2,gp1,gp2:real;
          a:integer;
       s1,s2,s3,s4,sx:string[12];
     
procedure cancella;
begin
clearscreen;
end;
procedure pausa;
begin
writeln('premi ENTER ');readln;
end;
procedure fine;  (* conferma uscita operazione *)
begin
writeln('fine operazione:confermare :premi enter');
readln;
end;
procedure testo1;
begin
writeln('passa a chiedere PESI MOLECOLARI e COEFFICIENTI stechiometrici');
writeln('CALCOLA prodotto tra coefficiente e peso molecolare G = c * pm ');
writeln;
end;
procedure testo2;
begin
writeln('passa a chiedere MASSA nota in grammi ');
end;
procedure testo3;
begin
writeln('------------------------------------------------');
writeln('calcola grammi di sostanze richieste e ottenute ');
end;
procedure datir1;
begin
write('scrivi formula reattivo1 ');readln(s1);
write('peso atomico o molecolare reattivo1   ');readln(pr1);
write('coefficiente stechiometrico reattivo1 ');readln(cr1);
tr1:=pr1*cr1;
writeln('grammi totali di ',s1,' = ',tr1:0:8);
end;
procedure datir2;
begin
write('scrivi formula reattivo2 ');readln(s2);
write('peso atomico o molecolare reattivo2   ');readln(pr2);
write('coefficiente stechiometrico reattivo2 ');readln(cr2);
tr2:=pr2*cr2;
writeln('grammi totali di ',s2,' = ',tr2:0:8);
end;
procedure datip1;
begin
write('scrivi formula prodotto1 = ');readln(s3);
write('peso atomico o molecolare prodotto1   ');readln(pp1);
write('coefficiente stechiometrico prodotto1 ');readln(cp1);
tp1:=pp1*cp1;
writeln('grammi totali di ',s3,' = ',tp1:0:8);
end;
procedure datip2;
begin
write('scrivi formula prodotto2 ');readln(s4);
write('peso atomico o molecolare prodotto2   ');readln(pp2);
write('coefficiente stechiometrico prodotto2 ');readln(cp2);
tp2:=pp2*cp2;
writeln('grammi totali di ',s4,' = ',tp2:0:8);
end;
procedure massar1;
begin
write('grammi reattivo1     ',s1,sx);readln(gr1);
end;
procedure massar2;
begin
write('grammi reattivo2     ',s2,sx);readln(gr2);
end;
procedure massap1;
begin
write('grammi prodotto1     ',s3,sx);readln(gp1);
end;
procedure massap2;
begin
write('grammi prodotto2    ',s4,sx);readln(gp2);
end;
procedure calcola1;
begin
testo3;
xr2:=gr1*tr2/tr1;
xp1:=gr1*tp1/tr1;
writeln('grammi reattivo2 necessari   ',s2,sx,xr2:8:5);
writeln('grammi prodotto1 ottenuti    ',s3,sx,xp1:8:5);
end;
procedure calcola2;
begin
testo3;
xr1:=gr2*tr1/tr2;
xp1:=gr2*tp1/tr2;
writeln('grammi reattivo1 necessari   ',s1,sx,xr1:8:5);
writeln('grammi prodotto1 ottenuti    ',s3,sx,xp1:8:5);
end;
procedure calcola3;
begin
testo3;
xr1:=gp1*tr1/tp1;
xr2:=gp1*tr2/tp1;
writeln('grammi reattivo1 necessari  ',s1,sx,xr1:8:5);
writeln('grammi reattivo2 necessari  ',s2,sx,xr2:8:5);
end;
procedure calcola4;
begin
testo3;
xp1:=gr1*tp1/tr1;
xp2:=gr1*tp2/tr1;
writeln('grammi prodotto1 ottenuti  ',s3,sx,xp1:8:5);
writeln('grammi prodotto2 ottenuti  ',s4,sx,xp2:8:5);
end;
procedure calcola5;
begin
testo3;
xr1:=gp1*tr1/tp1;
xp2:=gp1*tp2/tp1;
writeln('grammi reattivo necessari   ',s1,sx,xr1:8:5);
writeln('grammi prodotto2 ottenuti   ',s4,sx,xp2:8:5);
end;
procedure calcola6;
begin
testo3;
xr1:=gp2*tr1/tp2;
xp1:=gp2*tp1/tp2;
writeln('grammi reattivo1 necessari ',xr1:8:5);
writeln('grammi prodotto2 ottenuti  ',xp1:8:5);
end;
procedure calcola7;
begin
testo3;
xr2:=gr1*tr2/tr1;
xp1:=gr1*tp1/tr1;
xp2:=gr1*tp2/tr1;
writeln('grammi reattivo2 necessari  ',s2,sx,xr2:8:5);
writeln('grammi prodotto1 ottenuti   ',s3,sx,xp1:8:5);
writeln('grammi prodotto2 ottenuti   ',s4,sx,xp2:8:5);
end;
procedure calcola8;
begin
testo3;
xr1:=gr2*tr1/tr2;
xp1:=gr2*tp1/tr2;
xp2:=gr2*tp2/tr2;
writeln('grammi reattivo1 necessari ',s1,sx,xr1:8:5);
writeln('grammi prodotto1 ottenuti  ',s3,sx,xp1:8:5);
writeln('grammi prodotto2 ottenuti  ',s4,sx,xp2:8:5);
end;
procedure calcola9;
begin
testo3;
xr1:=gp1*tr1/tp1;
xr2:=gp1*tr2/tp1;
xp2:=gp1*tp2/tp1;
writeln('grammi reattivo1 necessari  ',xr1:8:5);
writeln('grammi reattivo2 necessari  ',xr2:8:5);
writeln('grammi prodotto2 ottenuti   ',xp2:8:5);
end;
procedure calcola10;
begin
testo3;
xr1:=gp2*tr1/tp2;
xr2:=gp2*tr2/tp2;
xp1:=gp2*tp1/tp2;
writeln('grammi reattivo1 necessari  ',s1,sx,xr1:8:5);
writeln('grammi reattivo2 necessari  ',s2,sx,xr2:8:5);
writeln('grammi prodotto2 ottenuti   ',s4,sx,xp1:8:5);
end;
procedure pro1;
begin
testo1;datir1;datir2;datip1;testo2;massar1;calcola1;pausa;
end;
procedure pro2;
begin
testo1;datir1;datir2;datip1;testo2;massar2;calcola2;pausa;
end;
procedure pro3;
begin
testo1;datir1;datir2;datip1;testo2;massap1;calcola3;pausa;
end;
procedure pro4;
begin
testo1;datir1;datip1;datip2;testo2;massar1;calcola4;pausa;
end;
procedure pro5;
begin
testo1;datir1;datip1;datip2;testo2;massap1;calcola5;pausa;
end;
procedure pro6;
begin
testo1;datir1;datip1;datip2;testo2;massap2;calcola6;pausa;
end;
procedure pro7;
begin
testo1;datir1;datir2;datip1;datip2;testo2;massar1;calcola7;pausa;
end;
procedure pro8;
begin
testo1;datir1;datir2;datip1;datip2;testo2;massar2;calcola8;pausa;
end;
procedure pro9;
begin
testo1;datir1;datir2;datip1;datip2;testo2;massap1;calcola9;pausa;
end;
procedure pro10;
begin
testo1;datir1;datir2;datip1;datip2;testo2;massap2;calcola10;pausa;
end;
procedure scelta;  (* procedura con scelta opzioni e uscita *)
var s,sn:string;opzione:integer;
begin
cancella;
writeln('seleziona opzione possibili tipi di problemi:MASSE solo in GRAMMI');
writeln('osserva numero sostanze implicate nella reazione: ');
writeln('se sono 3 seleziona da 1 a 6...se sono 4 seleziona da 7 a 10');
writeln('-----------------------------------------------------------');
writeln('SINTESI.1,2,3..DECOMPOSIZIONE 4,5,6..COMBINAZIONE 7,8,9,10 ');
writeln('-----------------------------------------------------------');
writeln('1...R1 + R2 ---> P :noti grammi di R1  ,calcola grammi di R2,P');
writeln('2...R1 + R2 ---> P :noti grammi di R2  ,calcola grammi di R1,P');
writeln('3...R1 + R2 ---> P :noti grammi di P ,calcola grammi di R1,R2');
writeln('-------------------------------------------------------------');
writeln('4...R ---> P1 + P2 :noti grammi di R ,calcola grammi di P1,P2');
writeln('5...R ---> P1 + P2 :noti grammi di P1  ,calcola grammi di R,P2');
writeln('6...R ---> P1 + P2 :noti grammi di P2  ,calcola grammi di R,P1');
writeln('-------------------------------------------------------------');
writeln('7...R1 + R2 ---> P1 + P2 :noti g.di R1 ,calcola grammi R2,P1,P2 ');
writeln('8...R1 + R2 ---> P1 + P2 :noti g.di R2 ,calcola grammi R1,P1,P2 ');
writeln('9...R1 + R2 ---> P1 + P2 :noti g.di P1 ,calcola grammi R1,R2,P2 ');
writeln('10..R1 + R2 ---> P1 + P2 :noti g.di P2 ,calcola grammi R1,R2,P1 ');
writeln('-------------------------------------------------------------');
writeln('15...fine ');
writeln('scelta =');readln(opzione);
cancella;
case opzione of
1:pro1;2:pro2;3:pro3;4:pro4;
5:pro5;6:pro6;7:pro7;8:pro8;9:pro9;10:pro10;
15:fine;
end;
writeln('altra operazione?Esperimenti?:premi S...fine:premi N '); readln(sn);
if ((sn='S') or (sn='s')) then scelta ;
end;
procedure esempio;
begin
writeln('esempio di soluzione problemi stechiometrici');
writeln('si devono inserire su richiesta i dati seguenti:');
writeln;
writeln('formula di ogni reattivo e prodotto');
writeln('coefficiente di ogni reattivo e prodotto,anche se = 1 ');
writeln('peso atomico o molecolare di ogni reattivo e prodotto ');
writeln('la massa in grammi nota per 1 reattivo o 1 prodotto');
writeln('------------------------------------------------------');
writeln('il programma calcola le masse stechiometriche per ogni sostanza');
writeln('moltiplicando il coefficiente per il peso molecolare,atomico');
writeln('poi imposta le proporzioni per trovare le masse delle sostanze');
writeln('che partecipano alla reazione,in funzione della massa nota');
writeln('di una sostanza ,reattivo o prodotto,inserita ');
writeln('-------------------------------------------------------');
writeln('prova a risolvere a parte il problema e poi confronta i tuoi');
writeln('risultati con quelli del programma al calcolatore');
writeln('----------------premi INVIO -------------------------------');
readln;cancella;
writeln('si deve bilanciare la reazione chimica');
writeln('si deve scrivere sotto ogni formula il numero ottenuto ');
writeln('moltiplicando il coefficiente per il peso atomico o molecolare');
writeln('si deve scrivere la massa in grammi sotto la sostanza nota');
writeln('si deve scrivere simbolo incognita sotto sostanze da calcolare');
writeln('si devono impostare delle proporzioni e risolverle');
writeln('-------------------------------------------------------------');
writeln(' 2Cl2  + 3O2    ---->  2Cl203     reazione bilanciata');
writeln;
writeln('(2*70)  (3*32)        (2*118)     coefficiente*Peso molecolare');
writeln('(140)   (96)          (236)       grammi stechiometrici');
writeln;
writeln(' 500g     X              Y        grammi reattivo noti 500g');
writeln('      grammi necessari  grammi prodotto ');
writeln('------------------------------------------------------------');
writeln('proporzioni per risolvere problema: ');
writeln('14Og di Cl2 : 96g  di O2    = 500g di Cl2 : X ');
writeln('140g di Cl2 : 236g di Cl2O3 = 500g di Cl2 : Y '); 
writeln;
writeln(' X = 96*500/140  ');
writeln(' Y = 256*500/140 ');
writeln('-------------------------------------------------------------');
writeln('premi INVIO ');readln;
cancella;
end;
       
begin            (* programma di lancio *)
cancella;
sx:=' = ';
ESEMPIO;
scelta;
end.