esercitazione a livello didattico-liceale
con turbo pascal , su argomenti di chimica vari

calcolo equivalente chimico

 

program EQU1;
(* determinazione equivalenti chimici DIMOSTRATIVO *)
(* si presenta un formula e si calcola equivalente chimico *)

const k=20; (* modificare in funzione dati archiviati *)
var f:array[1..k] of string;
    n:array[1..k] of integer;
    m:array[1..k] of integer;
    s:integer;  
    h:string;
    equi:real;


procedure fine;
begin
writeln('premi enter');
readln;
end;


procedure pausa;
begin
writeln('premi enter per proseguire');readln;
end;

procedure dati;
begin
f[1]:='HCl';f[2]:='NaCl';f[3]:='CaCl2';f[4]:='KCl';f[5]:='AlCl3';
n[1]:=1;n[2]:=1;n[3]:=2;n[4]:=1;n[5]:=3;
f[6]:='HCl0';f[7]:='NaCl04';f[8]:='CaS03';f[9]:='KNO3';
n[6]:=1;n[7]:=1;n[8]:=2;n[9]:=1;
f[10]:='Al(NO3)3'; n[10]:=3;
f[11]:='HCl03';f[12]:='MgCO3';f[13]:='ZnSO3';f[14]:='CuCO3';
n[11]:=1;n[12]:=2;n[13]:=2;n[14]:=2;
f[15]:='CuCl2'; n[15]:=2;
f[16]:='NaOH';f[17]:='H3PO4';f[18]:='Ca(OH)2';f[19]:='KOH';f[20]:='Al(OH)3';
n[16]:=1;n[17]:=3;n[18]:=2;n[19]:=1;
n[20]:=3;
m[1]:=36;m[2]:=58;m[3]:=110;m[4]:=74;m[5]:=133;m[6]:=52;
m[7]:=122;m[8]:=120;m[9]:=101;m[10]:=213;m[11]:=84;m[12]:=84;
m[13]:=145;m[14]:=124;m[15]:=134;m[16]:=40;m[17]:=98;m[18]:=74;
m[19]:=56;m[20]:=78;
end;

procedure pro1;
var a,p:integer;h:string;
begin
dati;
writeln('------------------------------------------------------------');
repeat
write('scrivi prove da eseguire..5..6..10..minore di ',k+1,'..');readln(p);
until p<k+1;
h:='  equivalente = peso molecolare/valenza :';
for a:=1 to p do
begin
equi:=m[a]/n[a];
writeln(f[a],h);
writeln(m[a],'/',n[a],'=',equi:8:2);
pausa;
end;
end;


procedure scelta;
var ancora:integer;
begin
clearscreen;
writeln('seleziona opzione scrivendo il numero corrispondente ');
writeln('1...determinazione grammo equivalente');
writeln('9...fine ');
write('opzione=');readln(s);
clearscreen;
case s of
1:pro1;
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:determinazione grammoequivalente');
writeln('---------------------------------------------------');
writeln('premi enter');readln;
scelta;
end.

 

 

 

 

 

 

ritorna