turbo pascal v.1.1 per mac

program ph3;
(* problemi su calcolo pH *)
const pkw=14;
var ph,poh,no,mo,ga,gb,vl,pm ,moli,kwa,h,oh,kwb:real;
    va,s:integer;  
procedure fine;
begin
writeln('premi enter');
readln;
end;
procedure acidofn;
begin
writeln('scrivere concentrazione come 0.002  0.012 ecc.');
write('normalita acido   =');readln(no);
ph:=(-(ln(no)/ln(10)));
writeln('pH.....        ',ph:8:2);
write('premi enter ');readln;
end;
procedure basefn;
begin
writeln('scrivere concentrazione come 0.002  0.012 ecc.');
write('normalita base    =');readln(no);
poh:=(-(ln(no)/ln(10)));
ph:=abs(pkw-poh);
writeln('pOH....        ',poh:8:2);
writeln('pH=pKw-pOH     ',ph:8:2);
write('premi enter ');readln;
end;
procedure acidofm;
begin
writeln('scrivere concentrazione come 0.002  0.012 ecc.');
write('molarita acido   =');readln(mo);
write('valenza acido    =');readln(va);
no:=va*mo;
ph:=(-(ln(no)/ln(10)));
writeln('normalita=molarita*valenza ',no:8:2);
writeln('pH.....        ',ph:8:2);
write('premi enter ');readln;
end;
procedure basefm;
begin
writeln('scrivere concentrazione come 0.002  0.012 ecc.');
write('molarita base    =');readln(mo);
write('valenza base     =');readln(va);
no:=va*mo;
poh:=(-(ln(no)/ln(10)));
ph:=pkw-poh;
writeln('normalita=valenza*molarita ',no:8:2);
writeln('pOH....        ',poh:8:2);
writeln('pH=pKw-pOH     ',ph:8:2);
write('premi enter ');readln;
end;
procedure grammiaf;
begin
write('grammi acido           =');readln(ga);
write('peso molecolare acido  =');readln(pm);
write('litri soluzione        =');readln(vl);
write('valenza acido          =');readln(va);
moli:=ga/pm;
mo:=moli/vl;
no:=mo*va;
ph:=(-(ln(no)/ln(10)));
writeln('moli acido                 ',moli:8:2);
writeln('molarita=moli/litri        ',mo:8:2);
writeln('normalita=molarita*valenza ',no:8:2);
writeln('pH.....        ',ph:8:2);
write('premi enter ');readln;
end;
procedure grammibf;
begin
write('grammi base            =');readln(gb);
write('peso molecolare base   =');readln(pm);
write('litri soluzione        =');readln(vl);
write('valenza base           =');readln(va);
moli:=gb/pm;
mo:=moli/vl;
no:=mo*va;
poh:=(-(ln(no)/ln(10)));
ph:=pkw-poh;
writeln('moli base                  ',moli:8:2);
writeln('molarita=moli/litri        ',mo:8:2);
writeln('normalita=molarita*valenza ',no:8:2);
writeln('pOH                        ',poh:8:2);
writeln('pH=pKw-pOH     ....        ',ph:8:2);
write('premi enter ');readln;
end;
procedure acidodn;
begin
writeln('scrivere concentrazione come 0.002  0.01 ecc.');
write('normalita acido   =');readln(no);
write('costante acido    =');readln(kwa);
h:=sqrt(kwa*no);
ph:=-ln(h)/ln(10);
writeln('H=radice(Ka*N)               ',h:8:14,'...',h);
writeln('pH=-Ln(H)=-Ln(radiceq(Ka*N)).',ph:8:4);
write('premi enter');readln;
end;
procedure basedn;
begin
writeln('scrivere concentrazione come 0.002  0.01 ecc.');
write('normalita base   =');readln(no);
write('costante base    =');readln(kwb);
oh:=sqrt(kwb*no);
poh:=-ln(oh)/ln(10);
ph:=abs(pkw-poh);
writeln('OH=radice(Kb*N)               ',oh:8:14,'...',oh);
writeln('pOH=-Ln(OH)=-Ln(radiceq(Kb*N))',poh:8:4);
writeln('pH=pkw-pOH                    ',ph:8:4);        
write('premi enter');readln;
end;
procedure acidodm;
begin
writeln('scrivere concentrazione come 0.002  0.012 ecc.');
write('molarita acido    =');readln(mo);
write('valenza acido     =');readln(va);
write('costante acido    =');readln(kwa);
h:=sqrt(kwa*no);
ph:=-ln(h)/ln(10);
ph:=abs(ph);
writeln('H=radice(Ka*N)               ',h:8:14,'...',h);
writeln('pH=-Ln(H)=-Ln(radiceq(Ka*N)).',ph:8:4);
no:=mo*va;
h:=sqrt(kwa*no);
ph:=-ln(h)/ln(10);
writeln('N=valenza*molarita           ',no:8:6,'...',no);
writeln('H=radice(Ka*N)               ',h:8:14,'...',h);
writeln('pH=-Ln(H)=-Ln(radiceq(Ka*N)).',ph:8:4);
write('premi enter');readln;
end;
procedure basedm;
begin
writeln('scrivere concentrazione come 0.002  0.012 ecc.');
write('molarita base    =');readln(mo);
write('valenza base     =');readln(va);
write('costante base    =');readln(kwb);
no:=mo*va;
oh:=sqrt(kwb*no);
poh:=-ln(oh)/ln(10);
ph:=(pkw-poh);
writeln('N=molarita*valenza            ',no:8:6,'...',no);
writeln('OH=radice(Kb*N)               ',oh:8:14,'...',oh);
writeln('pOH=-Ln(OH)=-Ln(radiceq(Kb*N))',poh:8:4);
writeln('pH=pkw-pOH                    ',ph:8:4);    
write('premi enter');readln;
end;
procedure grammiad;
begin
write('grammi acido debole             ');readln(ga);
write('peso molecolare                 ');readln(pm);
write('valenza acido                   ');readln(va);
write('litri soluzione                 ');readln(vl);
write('costante acido debole           ');readln(kwa);
mo:=(ga/pm)/vl;
no:=va*mo;
h:=sqrt(kwa*no);
ph:=-ln(h)/ln(10);
writeln('M=(grammi/peso mol.)/litri   ',mo:8:6,'...',mo);
writeln('N=valenza*molarita           ',no:8:6,'...',no);
writeln('H=radice(Ka*N)               ',h:8:14,'...',h);
writeln('pH=-Ln(H)=-Ln(radiceq(Ka*N)).',ph:8:4);
write('premi enter');readln;
end;
procedure grammibd;
begin
write('grammi base  debole             ');readln(gb);
write('peso molecolare                 ');readln(pm);
write('valenza base                    ');readln(va);
write('litri soluzione                 ');readln(vl);
write('costante base  debole           ');readln(kwb);
mo:=(gb/pm)/vl;
no:=va*mo;
oh:=sqrt(kwb*no);
poh:=-ln(oh)/ln(10);
ph:=(pkw-poh);
writeln('M=(grammi/peso mol)/litri     ',mo:8:6,'...',mo);
writeln('N=molarita*valenza            ',no:8:6,'...',no);
writeln('OH=radice(Kb*N)               ',oh:8:14,'...',oh);
writeln('pOH=-Ln(OH)=-Ln(radiceq(Kb*N))',poh:8:4);
writeln('pH=pkw-pOH                    ',ph:8:4);   
write('premi enter');readln;
end;
procedure scelta;
var ancora:integer;
begin
clearscreen;
writeln('seleziona tipo problema :CALCOLARE il pH di SOLUZIONI');
writeln('essendo noti alcuni parametri sotto indicati ');
writeln('1...normalita acido forte');
writeln('2...normalita base forte ');
writeln('3...molarita acido forte e valenza ');
writeln('4...molarita base forte e valenza ');
writeln('5...grammi soluto e litri soluzione acido forte ');
writeln('6...grammi soluto e litri soluzione base forte ');
writeln('7...normalita acido debole');
writeln('8...normalita base debole');
writeln('9...molarita acido debole');
writeln('10..molarita base debole');
writeln('11..grammi acido debole e litri soluzione');
writeln('12..grammi base debole e litri soluzione');
writeln('13...fine ');
write('opzione=');readln(s);
clearscreen;
case s of
1:acidofn;
2:basefn;
3:acidofm;
4:basefm;
5:grammiaf;
6:grammibf;
7:acidodn;
8:basedn;
9:acidodm;
10:basedm;
11:grammiad;
12:grammibd;
13:fine;
end;
writeln('----------------------------');
writeln('altro problema:scrivi 1...fine:scrivi 2 ');readln(ancora);
if ancora =1 then scelta else fine;
end;
begin
clearscreen;
writeln('formule per soluzione problemi su calcolo di pH ');
writeln('formule fondamentali pH = -log(Normalita Acido) ');
writeln('formule fondamentali pOH = -log(Normalita Base) ');
writeln('formule fondamentali pH = pKw - pOH ');
writeln('---------------------------------------------------');
writeln('si deve inserire su richiesta:');
writeln('NORMALITA,MOLARITA,VALENZA');
writeln('GRAMMI SOLUTO,LITRI SOLUZIONE');
writeln('PESO MOLECOLARE SOLUTO');
writeln('se numeri decimali,usare punto come separatore ');
writeln('es.1.5   0.00001   0.0005   0.0012 ecc.');
writeln('-----------------------------');
writeln('premi enter');readln;
scelta;
end.