polarità legami chimici
program polare3; (* determinazione tipo di legame tra elementi DIMOSTRATIVO *) (* elementi e composti chimici *)
const k=92; var n:array[1..k] of string; p:array[1..k] of integer; e:array[1..k] of real; s,a:integer; h1,h2,h3,h4:real; e1,e2,legame:string;
{$I datipolari}
procedure fine; begin writeln('premi enter'); readln; end;
procedure pausa; begin writeln('premi ENTER ');readln; 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 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 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 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 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 clearscreen; 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); clearscreen; 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); if ancora =1 then scelta else fine; end;
begin clearscreen; writeln('programma:determina tipo legame chimico tra elementi'); writeln('---------------------------------------------------'); writeln('premi enter');readln; scelta; end.