polarità legami chimici

program polare4;
(* determinazione tipo di legame tra elementi DIMOSTRATIVO *)
(* elementi e composti chimici IN FORMULE *)
const k=92;
var n:array[1..k] of string;
    p:array[1..k] of integer;
    e:array[1..k] of real;
    fx:array[1..40] of string[15];
    s,a,f,prove:integer; 
    h1,h2,h3,h4:real;
    e1,e2,legame:string; 
{$I datipolari}
{$I FORMULE }
procedure fine;
begin
writeln('premi enter');
readln;
end;
procedure pausa;
begin
writeln('premi ENTER ');readln;
end;
procedure cancella;
begin
clearscreen;
end;
procedure cerca1;
begin
datipolari;
for a:=1 to k do
if e1=n[a] then h1:=e[a];
end;
procedure cerca2;
begin
datipolari;
for a:=1 to k do
if e2=n[a] then h2:=e[a];
end;
procedure pro1;
begin
writeln(fx[f]);
writeln('------------------------------------------');
write('scrivi simbolo primo elemento   ');readln(e1);
cerca1;
write('scrivi simbolo secondo elemento ');readln(e2);
cerca2;
WRITELN('------------------------------------------------');
writeln('legame covalente omopolare se De <0.2 ');
writeln('legame covalente polare    se 0.2 < De < 1.7 ');
writeln('legame ionico              se De >=1.7');
writeln('===============================================================');
h3:=abs(h1-h2);
writeln('stampa valori elettronegativita e calcola differenza ');
WRITELN(e1:8,e2:8,'De':8);
writeln(h1:8:2,h2:8:2,h3:8:2);
if h3<0.2 then legame:='legame covalente omopolare' else
if ((h3>0.2) and (h3<1.7)) then legame:='legame covalente polare' else
legame:='legame ionico';
writeln('legame tra elementi tipo :',legame);
writeln('--------------------------------------------------------------');
writeln('carica parziale o totale positiva:elemento meno elettronegativo');
writeln('carica parziale o totale negativa:elemento piu  elettronegativo');
if ((h3>0.2) and (h3<1.7) and (h1<h2)) then writeln(e1,' +d   ',e2,' -d');
if ((h3>0.2) and (h3<1.7) and (h1>h2)) then writeln(e2,' +d   ',e1,' -d');
if ((h3=1.7) or (h3>1.7) and (h1<h2)) then writeln(e1,' +   ',e2,' -');
if ((h3=1.7) or (h3>1.7) and (h1>h2)) then writeln(e2,' +   ',e1,' -');
end;
procedure pro2;
begin
writeln(fx[f]);
writeln('------------------------------------------');
write('scrivi simbolo metallo   ');readln(e1);
cerca1;
h3:=3.5-h1;
h2:=1.4;
writeln('legame covalente omopolare se De <0.2 ');
writeln('legame covalente polare    se 0.2 < De < 1.7 ');
writeln('legame ionico              se De >=1.7');
writeln('stampa valori elettronegativita e calcola differenze ');
writeln(e1:8,h1:8:2,'O':8,3.5:8:2,'H':8,2.1:8:2);
writeln('De tra Ossigeno e     ',e1:8,' = ',h3:0:2,' legame ionico');
writeln('De tra Ossigeno e Idrogeno     = 1.4..legame covalente polare');
end;
procedure pro3;
var le:string;
begin
writeln(fx[f]);
writeln('------------------------------------------');
write('scrivi simbolo elemento intermedio S,N,P,Cl..   ');readln(e1);
cerca1;
h3:=3.5-h1;
h2:=1.4;
if h3<1.7 then le:=' legame covalente polare' else le:=' legame ionico';
writeln('legame covalente omopolare se De <0.2 ');
writeln('legame covalente polare    se 0.2 < De < 1.7 ');
writeln('legame ionico              se De >=1.7');
writeln('stampa valori elettronegativita e calcola differenze ');
writeln(e1:8,h1:8:2,'O':8,3.5:8:2,'H':8,2.1:8:2);
writeln('De tra Ossigeno e     ',e1:8,' = ',h3:0:2,le:8);
writeln('De tra Ossigeno e Idrogeno     = 1.4..legame covalente polare');
end;
procedure pro6;
var le:string;
begin
writeln(fx[f]);
writeln('------------------------------------------');
write('scrivi simbolo metallo ..K..Ca..Na..            ');readln(e2);
cerca2;
h4:=3.5-h2;
write('scrivi simbolo elemento intermedio S,N,P,Cl..   ');readln(e1);
cerca1;
h3:=3.5-h1;
if h3<1.7 then le:=' legame covalente polare' else le:=' legame ionico';
writeln('legame covalente omopolare se De <0.2 ');
writeln('legame covalente polare    se 0.2 < De < 1.7 ');
writeln('legame ionico              se De >=1.7');
writeln('stampa valori elettronegativita e calcola differenze ');
writeln(e2:8,h2:8:2,e1:8,h1:8:2,'O':8,3.5:8:2);
writeln('De tra Ossigeno e     ',e1:8,' = ',h3:0:2,le:8);
writeln('De tra Ossigeno e     ',e2:8,' = ',h4:0:2,' legame ionico');
end;
procedure scelta;
var ancora:integer;
begin
cancella;
f:=0;
repeat
f:=f+1;
if f>39 then f:=1;
writeln('formula da analizzare ',fx[f]);
writeln('seleziona  problema o fine');
writeln('1...cerca legame tra due atomi o elementi..    HCl..H2..NaF..');
writeln('2...cerca legame tra elementi  in idrossido    NaOH..Ca(OH)2.');
writeln('3...cerca legame tra elementi  in ossiacidi    HNO3..H2SO4 ');
writeln('4...cerca legame tra due atomi in ossidi o anidridi CaO..SO3..');
writeln('5...cerca legame tra atomi in  sali ossigenati.NaNO3...');
writeln('6...cerca legame tra atomi in  sali binari  .. KCl..K2S..NaF..');
writeln('9...fine ');
write('opzione=');readln(s);
cancella;
case s of
1:pro1;
2:pro2;
3:pro3;
4:pro1;
5:pro6;
6:pro1;
9:fine;
end;
writeln('----------------------------');
writeln('altro problema:scrivi 1...fine:scrivi 2 ');readln(ancora);cancella;
until ancora=2;
end;
begin
cancella;
FORMULE;
writeln('programma:determina tipo legame chimico tra elementi');
writeln('---------------------------------------------------');
repeat
write('indica numero prove <40 :');readln(prove);
until prove<40;
writeln('premi enter');readln;
scelta;
end.