esercizi di chimica con turbo pascal 1.1 su mac

program norma1;
(* risoluzione problemi su concentrazioni *)
(* per esempi da utilizzare *)
var massa,volume,pesomo,litri,mo,no,moli,pesoequi,equi,solvente,pmole:real;
    chili,fsoluto,fsolvente,moliso,totale,mola,nequi,grammi:real;
    c1,c2,v1,v2:real;
    s,valenza:integer;  
procedure fine;
begin
writeln('premi enter');
readln;
end;
procedure pausa;
begin
writeln('premi enter per proseguire');readln;
end;
procedure pro1;  
begin
writeln('scrivi i dati necessari per la soluzione con le unita indicate');
write('massa in grammi            ');readln(massa);
write('volume soluzione in cc.    ');readln(volume);
write('peso molecolare            ');readln(pesomo);
write('valenza                    ');readln(valenza);
litri:=volume/1000;
moli:=massa/pesomo;
mo:=moli/litri;
no:=mo*valenza;
writeln('Molarita        = moli soluto/litri soluzione ');
writeln('---------------------------------------------------------------');
writeln('moli soluto     = massa soluto/peso molecolare ',moli:8:4);
writeln('litri soluzione = cc.soluzione/1000            ',litri:8:6);
writeln('Molarita        = moli soluto/litri soluzione  ',mo:8:4,'...',mo);
writeln('Normalita       = Molarita*Valenza             ',no:8:4,'...',no);
writeln('----------------------------------------------------------------');
pausa;
end;
procedure pro2;  
begin
writeln('scrivi i dati necessari per la soluzione con le unita indicate');
write('massa in grammi            ');readln(massa);
write('volume soluzione in cc.    ');readln(volume);
write('peso molecolare            ');readln(pesomo);
write('valenza                    ');readln(valenza);
litri:=volume/1000;
pesoequi:=pesomo/valenza;
equi:=massa/pesoequi;
no:=equi/litri;
mo:=no/valenza;
writeln('Normalita       = equivalenti soluto/litri soluzione ');
writeln('---------------------------------------------------------------');
writeln('equivalenti sol.= massa soluto/peso equivalente');
writeln('peso equivalente= peso molecolare/valenza        ',pesoequi:8:4);
writeln('equivalenti sol = massa soluto/peso equivalente  ',equi:8:4);
writeln('litri soluzione = cc.soluzione/1000              ',litri:8:4);
writeln('Normalita        = equivalenti/litri soluzione   ',no:8:4,'...',no);
writeln('Molarita         = Normalita/Valenza             ',mo:8:4,'...',mo);
writeln('----------------------------------------------------------------');
pausa;
end;
procedure pro3;  
begin
writeln('scrivi i dati necessari per la soluzione con le unita indicate');
write('massa in grammi soluto     ');readln(massa);
write('massa in grammi solvente   ');readln(solvente);
write('peso molecolare soluto     ');readln(pesomo);
chili:=solvente/1000;
moli:=massa/pesomo;
mola:=moli/chili;
writeln('molalita                  = moli soluto/Kg solvente ');
writeln('---------------------------------------------------------------');
writeln('moli soluto  = massa soluto/peso molecolare soluto ',moli:8:4);
writeln('Kg   solvente= grammi/1000                         ',chili:8:4);
writeln('molalita     = moli soluto/Kg solvente             ',mola:8:4);
writeln('----------------------------------------------------------------');
pausa;
end;
procedure pro4;  
begin
writeln('scrivi i dati necessari per la soluzione con le unita indicate');
write('massa in grammi soluto     ');readln(massa);
write('massa in grammi solvente   ');readln(solvente);
write('peso molecolare soluto     ');readln(pesomo);
write('peso molecolare solvente   ');readln(pmole);
chili:=solvente/1000;
moli:=massa/pesomo;
moliso:=solvente/pmole;
totale:=moli+moliso;
fsoluto:=moli/totale;
fsolvente:=moliso/totale;
writeln('frazione molare soluto    = moli soluto/moli totali ');
writeln('frazione molare solvente  = moli solvente/moli totali ');
writeln('---------------------------------------------------------------');
writeln('moli soluto  = massa soluto/peso molecolare soluto ',moli:8:4);
writeln('moli solvente= massa solvente/peso molecolare      ',moliso:8:4);
writeln('moli totali  = soluto + solvente                   ',totale:8:4);
writeln('frazione molare soluto   = moli soluto/totali      ',fsoluto:8:4);
writeln('frazione molare solvente = moli solvente/totali    ',fsolvente:8:4);
writeln('----------------------------------------------------------------');
pausa;
end;
procedure pro5;  
begin
writeln('scrivi i dati necessari per la soluzione con le unita indicate');
write('concentrazione normale     ');readln(no);
write('volume soluzione in cc.    ');readln(volume);
write('peso molecolare soluto     ');readln(pesomo);
write('valenza soluto             ');readln(valenza);
litri:=volume/1000;
pesoequi:=pesomo/valenza;
nequi:=no*litri;
massa:=nequi*pesoequi;
writeln('grammi soluto                  = n.equivalenti*Pesoequivalente ');
writeln('---------------------------------------------------------------');
writeln('pesoequivalente =pesomolecolare/valenza             ',pesoequi:8:4);
writeln('volume soluzione in litri = volume cc/1000          ',litri:8:4);
writeln('n.equivalenti soluto = normalita*litri              ',nequi:8:4);
writeln('massa in grammi=n.equivalenti*pesoequivalente       ',massa:8:4);
writeln('----------------------------------------------------------------');
pausa;
end;
procedure pro6;  
begin
writeln('scrivi i dati necessari per la soluzione con le unita indicate');
write('concentrazione molare      ');readln(mo);
write('volume soluzione in cc.    ');readln(volume);
write('peso molecolare soluto     ');readln(pesomo);
write('valenza soluto             ');readln(valenza);
litri:=volume/1000;
moli:=mo*litri;
massa:=moli*pesomo;
no:=mo*valenza;
writeln('grammi soluto                  = n.moli*Pesomolecolare ');
writeln('---------------------------------------------------------------');
writeln('volume soluzione in litri = volume cc/1000          ',litri:8:4);
writeln('n.moli soluto = molarita*litri                      ',moli:8:4);
writeln('massa in grammi=n.moli*pesomolecolare               ',massa:8:4);
writeln('normalita = valenza*molarita                        ',no:8:4);
writeln('----------------------------------------------------------------');
pausa;
end;
procedure pro7;  
begin
writeln('scrivi i dati necessari per la soluzione con le unita indicate');
write('concentrazione molale      ');readln(mola);
write('grammi solvente            ');readln(solvente);
write('peso molecolare soluto     ');readln(pesomo);
chili:=solvente/1000;
moli:=mola*chili;
massa:=moli*pesomo;
writeln('grammi soluto                  = n.moli*Pesomolecolare ');
writeln('---------------------------------------------------------------');
writeln('massa solvente in chili = grammi/1000               ',chili:8:4);
writeln('n.moli soluto = molarita*chili                      ',moli:8:4);
writeln('massa in grammi=n.moli*pesomolecolare               ',massa:8:4);
writeln('----------------------------------------------------------------');
pausa;
end;
procedure pro8;  
begin
writeln('scrivi i dati necessari per la soluzione con le unita indicate');
write('concentrazione molale      ');readln(mola);
write('grammi soluto              ');readln(massa);
write('peso molecolare soluto     ');readln(pesomo);
moli:=massa/pesomo;
solvente:=moli*1000/mola;
writeln('grammi solvente                  = molisoluto*1000/molalita ');
writeln('---------------------------------------------------------------');
writeln('n.moli soluto      = massa/pesomolecolare         ',moli:8:4);
writeln('solvente in grammi = molisoluto*1000/molalita     ',solvente:8:4);
writeln('----------------------------------------------------------------');
pausa;
end;
procedure pro9;  
begin
writeln('scrivi i dati necessari per la soluzione con le unita indicate');
write('concentrazione molare      ');readln(mo);
write('valenza soluto             ');readln(valenza);
no:=mo*valenza;
writeln('normalita = molarita*valenza    ',no:8:4);
writeln('---------------------------------------------------------------');
pausa;
end;
procedure pro10;  
begin
writeln('scrivi i dati necessari per la soluzione con le unita indicate');
write('concentrazione normale      ');readln(no);
write('valenza soluto             ');readln(valenza);
mo:=no/valenza;
writeln('molarita = normalita/valenza    ',mo:8:4);
writeln('---------------------------------------------------------------');
pausa;
end;
procedure pro11;  
begin
writeln('scrivi i dati necessari:o Molarita o Normalita entrambe ');
write('concentrazione1 N1 o M1         ');readln(c1);
write('concentrazione2 N2 o M2         ');readln(c2);
write('volume iniziale V1              ');readln(v1);
v2:=c1*v1/c2;
writeln('volume finale = c1*v1/c2      ',v2:8:4);
writeln('---------------------------------------------------------------');
pausa;
end;
procedure pro12;  
begin
writeln('scrivi i dati necessari:volumi in cc o litri entrambe ');
write('concentrazione1 N1 o M1         ');readln(c1);
write('volume iniziale V1              ');readln(v1);
write('volume finale   V2              ');readln(v2);
c2:=c1*v1/v2;
writeln('concentrazione finale = c1*v1/v2      ',c2:8:4);
writeln('---------------------------------------------------------------');
pausa;
end;
procedure scelta;
var ancora:integer;
begin
clearscreen;
writeln('seleziona tipo problema ');
writeln('1...calcola MOLARITA soluzione');
writeln('2...calcola NORMALITA soluzione');
writeln('3...calcola MOLALITA soluzione');
writeln('4...calcola FRAZIONE MOLARE soluto e solvente');
writeln('5...calcola SOLUTO presente/necessario per soluzione Normale nota');
writeln('6...calcola SOLUTO presente/necessario per soluzione Molare nota');
writeln('7...calcola SOLUTO presente/necessario per soluzione Molale nota');
writeln('8...calcola SOLVENTE presente/necessario per soluzione Molale nota');
writeln('9...calcola NORMALITA con nota Molarita');
writeln('10..calcola MOLARITA con nota Normalita');
writeln('11..calcola VOLUME per diluire soluzioni con nota N,M ');
writeln('12..calcola nuova N,M dopo diluizione soluzione con solvente  ');
writeln('15...fine ');
write('opzione=');readln(s);
clearscreen;
case s of
1:pro1;2:pro2;3:pro3;4:pro4;5:pro5;6:pro6;7:pro7;
8:pro8;9:pro9;10:pro10;11:pro11;12:pro12;
15:fine;
end;
writeln('----------------------------');
writeln('altro problema:scrivi 1...fine:scrivi 2 ');readln(ancora);
if ancora =1 then scelta else fine;
end;
begin
clearscreen;
writeln('soluzione problemi su concentrazioni soluzioni');
writeln('---------------------------------------------------');
writeln('premi enter');readln;
scelta;
end.