turbo pascal v.1.1 per mac
program ph4; (* problemi su calcolo pH *)
const pkw=14; var ph,poh,no,mo,ga,gb,vl,pm ,moli,kwa,h,oh,kwb:real; eqa,neqa,eqb,neqb,d,ca,cb: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 conceaf; begin write('valore pH ');readln(ph); write('peso molecolare acido ');readln(pm); write('valenza acido ');readln(va); write('litri soluzione ');readln(vl); d:=ln(10); no:=exp(-ph*d); eqa:=pm/va; neqa:=no*vl; ga:=neqa*eqa; mo:=no/va; writeln('normalita ',no:8:8,'...',no); writeln('molarita ',mo:8:8,'...',mo); writeln('grammi acido ',ga:8:8,'...',ga); writeln('premi enter');readln; end;
procedure concebf; begin write('valore pH ');readln(ph); write('peso molecolare base ');readln(pm); write('valenza base ');readln(va); write('litri soluzione ');readln(vl); d:=ln(10); poh:=pkw-ph; no:=exp(-poh*d); eqa:=pm/va; neqa:=no*vl; ga:=neqa*eqa; mo:=no/va; writeln('normalita ',no:8:8,'...',no); writeln('molarita ',mo:8:8,'...',mo); writeln('grammi base ',ga:8:8,'...',ga); writeln('premi enter');readln; end;
procedure concead; begin write('valore pH ');readln(ph); write('peso molecolare acido ');readln(pm); write('valenza acido ');readln(va); write('litri soluzione ');readln(vl); write('costante acido debole ');readln(kwa); d:=ln(10); no:=exp(-ph*d); ca:=no*no/kwa; eqa:=pm/va; neqa:=ca*vl; ga:=neqa*eqa; mo:=no/va; writeln('normalita ',no:8:8,'...',no); writeln('molarita ',mo:8:8,'...',mo); writeln('grammi acido ',ga:8:8,'...',ga); writeln('premi enter');readln; end;
procedure concebd; begin write('valore pH ');readln(ph); write('peso molecolare base ');readln(pm); write('valenza base ');readln(va); write('litri soluzione ');readln(vl); write('costante base debole ');readln(kwb); d:=ln(10); no:=exp(-ph*d); ca:=no*no/kwb; eqa:=pm/va; neqa:=ca*vl; ga:=neqa*eqa; mo:=no/va; writeln('normalita ',no:8:8,'...',no); writeln('molarita ',mo:8:8,'...',mo); writeln('grammi base ',ga:8:8,'...',ga); writeln('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 acido forte e litri soluzione '); writeln('6...grammi base forte e litri '); 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..calcolare N,M,massa,noto pH acido forte e volume soluzione'); writeln('14..calcolare N,M,massa,noto pH base forte e volume soluzione '); writeln('15..calcolare N,M,massa,noto pH acido debole,Ka,volume soluzione'); writeln('16..calcolare N,M,massa,noto pH base debole,Kb,volume soluzione'); writeln('17...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:conceaf; 14:concebf; 15:concead; 16:concebd; 17: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.