test su legami chimici

esci chimicaturbo.htm

altre immagini lega13x.htm

program lega13;
(* didattico per mostrare formazione legami chimici GRAFICA scheda *)

uses crt,graph;
var
a,c1,c2,c0,C3,C4,tx:integer;
dp,dn:string;

procedure grafica;
var tp,sc:integer;stringa:string;
begin
tp:=0;sc:=0;stringa:='c:\scheda\';
initgraph(sc,tp,stringa);
end;

procedure pausa;
begin
write('premi ENTER ');readln;
end;

procedure cancella;
begin
grafica;
end;

procedure pau;
begin
delay(tx);
end;


procedure pulire;
begin
clrscr;
end;

procedure frase;
begin
outtextxy(500,390,'premi enter');readln;
end;


procedure omopo(x,y,s,c:integer);
begin
setfillstyle(s,c); fillellipse(x,y,50,50);
setfillstyle(1,14);fillellipse(x,y,5,5);
end;

procedure omopo1(x,y,s,c:integer);
begin
setfillstyle(s,c); fillellipse(x,y,20,20);
setfillstyle(1,14);fillellipse(x,y,5,5);
end;


procedure lega(x,y,rx,ry:integer);
begin
setfillstyle(7,6);fillellipse(x,y,rx,ry);
end;

procedure lega1(x,y,rx,ry:integer);
begin
setfillstyle(7,5);fillellipse(x,y,rx,ry);
end;

procedure orbi(x,y,f:integer);
var rx,ry:integer;
begin
rx:=30;ry:=20;setfillstyle(f,f);fillellipse(x,y,rx,ry);
end;

procedure sx(x,y:integer;s:string);
begin
outtextxy(x,y,s);
end;

procedure tipo;
begin
setcolor(4);outtextxy(100,400,'orbitale di legame');
end;

procedure carica(a,b:integer;s:string);
begin
outtextxy(a,b,s);
end;

procedure cloro;
begin
omopo(200,200,7,2);pau;omopo(400,200,7,2);pau;
sx(200,180,'s2');sx(400,180,'s2');
orbi(260,200,3);orbi(340,200,3);sx(260,240,'pz1+');sx(340,240,'pz1-');
orbi(160,160,7);orbi(160,240,7);sx(160,120,'px2');sx(160,280,'py2');
orbi(440,160,7);orbi(440,240,7);sx(440,120,'px2');sx(440,280,'py2');
frase;lega(300,200,70,30);tipo;frase;cancella;
end;

procedure solfo;
begin
omopo(200,200,7,2);pau;omopo(400,200,7,2);pau;
sx(200,180,'s2');sx(400,180,'s2');
orbi(150,200,7);orbi(450,200,7);sx(150,200,'px2');sx(450,200,'px2');
orbi(250,160,3);orbi(250,240,4);sx(250,120,'py1+');sx(250,280,'pz1+');
orbi(350,160,3);orbi(350,240,4);sx(350,120,'py1-');sx(350,280,'pz1-');
frase;lega(300,240,80,30);lega1(300,160,80,30);
tipo;frase;cancella;
end;

procedure azoto;
begin
omopo(200,200,7,2);pau;omopo(400,200,7,2);pau;
sx(200,180,'s2');sx(400,180,'s2');
orbi(250,200,3);orbi(350,200,4);sx(130,200,'px2');sx(450,200,'px2');
orbi(250,160,3);orbi(350,160,4);sx(250,120,'py1+');sx(250,270,'pz1+');
orbi(250,240,3);orbi(350,240,4);sx(350,120,'py1-');sx(350,270,'pz1-');
frase;lega(300,240,80,30);lega1(300,160,80,30);lega1(300,200,80,30);
tipo;frase;cancella;
end;

procedure polare;
begin
omopo(200,200,7,2);pau;omopo1(370,200,6,2);pau;
carica(400,200,dp);carica(100,200,dn);
sx(200,180,'s2');sx(400,180,'s1-');
orbi(260,200,3);sx(260,240,'pz1+');
orbi(160,160,7);orbi(160,240,7);sx(160,120,'px2');
sx(160,280,'py2');
frase;lega(300,200,70,30);tipo;frase;cancella;
end;

procedure doppio;
begin
omopo(200,200,7,2);pau;omopo1(350,160,6,2);omopo1(350,240,6,2);pau;
sx(200,180,'s2');
carica(50,200,dn);carica(400,160,dp);carica(400,240,dp);
orbi(150,200,7);sx(150,200,'px2');orbi(250,160,3);orbi(250,240,3);
sx(250,130,'py1+');sx(250,280,'pz1+');
sx(350,130,'s1-');sx(350,280,'s1-');
frase;lega(290,240,50,20);lega(290,160,50,20);
tipo;frase;cancella;
end;

procedure tipox(a,b:string);
begin
outtextxy(100,350,'carica parziale positiva su '+a);
outtextxy(100,360,'carica parziale negativa su '+b);
end;


procedure triplo;
begin
omopo(200,200,7,2);pau;omopo1(370,200,7,2);pau;
omopo1(370,160,6,2);omopo1(370,240,6,2);pau;
sx(200,180,'s2');sx(400,200,'s1-');
carica(50,200,dn);carica(400,150,dp);carica(400,230,dp);
carica(400,190,dp);
orbi(250,200,3);sx(130,200,'px2');
orbi(250,160,3);sx(250,120,'py1+');sx(250,270,'pz1+');
orbi(250,240,3);sx(400,240,'s1-');sx(400,160,'s1-');
frase;lega(310,240,50,20);lega(310,160,50,20);lega(310,200,50,20);
tipo;frase;cancella;
end;

procedure dativo;
begin
omopo(300,200,7,2);sx(300,180,'s2');
orbi(350,160,3);sx(350,120,'py1+');
orbi(350,240,3);sx(350,280,'pz1+');
orbi(250,200,7);sx(250,160,'px2');pau;
omopo(500,200,7,3);sx(500,180,'s2');
orbi(450,160,3);sx(450,120,'py1-');
orbi(450,240,3);sx(450,280,'pz1-');
orbi(550,200,7);sx(550,160,'px2');pau;
lega(400,160,70,20);
outtextxy(100,350,'legame covalente polare sigma');pau;
lega(400,240,70,20);
outtextxy(100,360,'legame covalente polare pigreco');pau;
omopo(100,200,7,3);sx(100,180,'s2');
orbi(50,160,7);sx(50,120,'px2');
orbi(50,240,7);sx(50,280,'py2');
orbi(150,200,0);sx(150,160,'pz0');
lega(200,200,70,20);
outtextxy(100,380,'legame covalente polare dativo sigma');
outtextxy(100,390,'Zolfo donatore doppietto di legame');
outtextxy(100,400,'Ossigeno accettore con orbitale vacante');
end;

procedure ionico;
begin
setcolor(c2);circle(250,200,70);
setcolor(c3);circle(400,200,70);
outtextxy(200,300,'atomo neutro');
outtextxy(400,300,'atomo neutro');
frase;
setfillstyle(7,3);fillellipse(250,200,40,40);
setfillstyle(7,4);fillellipse(400,200,90,90);
setcolor(2);circle(400,200,50);
outtextxy(100,320,'catione con carica positiva diffusa');
outtextxy(300,80,'anione con carica negativa diffusa');
outtextxy(100,340,'forza elettrostatica genera legame ionico');
end;

procedure ionico2;
begin
setcolor(c2);circle(250,200,70);
setcolor(c3);circle(400,200,70);
setcolor(c3);circle(100,200,70);
outtextxy(200,300,'atomo neutro');
outtextxy(400,300,'atomo neutro');
outtextxy(50,300,'atomo neutro');
frase;
setfillstyle(7,3);fillellipse(250,200,40,40);
setfillstyle(7,4);fillellipse(400,200,90,90);
setfillstyle(7,4);fillellipse(100,200,90,90);
setcolor(2);circle(400,200,50);circle(100,200,50);
outtextxy(100,320,'catione con carica positiva diffusa');
outtextxy(100,80,'anioni con carica negativa diffusa');
outtextxy(100,340,'forza elettrostatica genera legame ionico');
end;

procedure pro1;
begin
outtextxy(100,20,'legame covalente omopolare H2 H-H De=0 ');
outtextxy(100,30,'1s1+ 1s1- con condivisione doppietto elettroni');
outtextxy(100,40,'per raggiungere configurazione stabile s2');
omopo(100,100,5,2);pau;omopo(300,100,3,2);pau;
sx(100,170,'s1+');sx(300,170,'s1-');frase;
lega(200,100,80,30);tipo;frase;cancella;

outtextxy(100,20,'legame covalente omopolare Cl2 Cl-Cl De=0');
outtextxy(100,30,'3pz1+ 3pz1- con condivisione doppietto elettroni');
outtextxy(100,40,'per raggiungere configurazione stabile s2,p6');
cloro;
outtextxy(100,20,'legame covalente omopolare F2 F-F De=0');
outtextxy(100,30,'2pz1+ 2pz1- con condivisione doppietto elettroni');
outtextxy(100,40,'per raggiungere configurazione stabile s2,p6');
cloro;
outtextxy(100,20,'legame covalente omopolare I2 I-I De=0');
outtextxy(100,30,'5pz1+ 5pz1- con condivisione doppietto elettroni');
outtextxy(100,40,'per raggiungere configurazione stabile s2,p6');
cloro;
outtextxy(100,20,'legame covalente omopolare Br2 Br-Br De=0');
outtextxy(100,30,'4pz1+ 4pz1- con condivisione doppietto elettroni');
outtextxy(100,40,'per raggiungere configurazione stabile s2,p6');
cloro;pausa;
outtextxy(100,20,'legame covalente omopolare O2 O=O De=0');
outtextxy(100,30,'2py1+...2py1- 2pz1+...2pz1- condivisione di due doppietti');
outtextxy(100,40,'per raggiungere configurazione stabile s2,p6');
outtextxy(100,350,'legame doppio: 1 sigma+forte,1 pigreco+debole');
solfo;pausa;
outtextxy(100,20,'legame covalente omopolare N2 N---N De=0');
outtextxy(100,30,'(2px1+.2px1-) (2py1+.2py1-) (2pz1+.2pz1-) condivisione di tre doppietti');
outtextxy(100,40,'per raggiungere configurazione stabile s2,p6');
outtextxy(100,350,'legame triplo: 1 sigma+forte,2 pigreco+debole');
azoto;pausa;
outtextxy(100,20,'legame covalente polare HCl H-Cl con De<1.7');
outtextxy(100,30,'pz1+ s1- con condivisione doppietto elettroni');
outtextxy(100,40,'per raggiungere configurazione stabile s2p6 s2');
tipox('H','Cl');polare;pausa;
outtextxy(100,20,'legame covalente polare HBr H-Br con De<1.7');
outtextxy(100,30,'pz1+ s1- con condivisione doppietto elettroni');
outtextxy(100,40,'per raggiungere configurazione stabile s2p6 s2');
tipox('H','Br');polare;pausa;
outtextxy(100,20,'legame covalente polare HI H-I con De<1.7');
outtextxy(100,30,'pz1+ s1- con condivisione doppietto elettroni');
outtextxy(100,40,'per raggiungere configurazione stabile s2p6 s2');
tipox('H','I');polare;pausa;
outtextxy(100,20,'legame covalente polare H2O H-O-H con De<1.7');
outtextxy(100,30,'(pz1+ s1-) (py1+ s1-) con condivisione doppietto elettroni');
outtextxy(100,40,'per raggiungere configurazione stabile s2p6 s2');
tipox('H','O');doppio;pausa;
outtextxy(100,20,'legame covalente polare H2S H-S-H con De<1.7');
outtextxy(100,30,'(pz1+ s1-) (py1+ s1-) con condivisione doppietto elettroni');
outtextxy(100,40,'per raggiungere configurazione stabile s2p6 s2');
tipox('H','S');doppio;pausa;
outtextxy(100,20,'legame covalente polare NH3 con De<1.7');
outtextxy(100,30,'(pz1+ s1-) (py1+ s1-) (pz1+ s1-) con condivisione doppietto elettroni');
outtextxy(100,40,'per raggiungere configurazione stabile s2p6 s2');
tipox('H','N');triplo;pausa;cancella;
outtextxy(20,20,'legame covalente in SO2 con De<1.7 ');
outtextxy(20,30,'S s2,px2,py1+,pz1+ O s2,px2,py1,pz1- O s2,px2,py2,pz0');
outtextxy(20,40,'per raggiungere configurazione stabile');
outtextxy(20,60,'S 3s2,3p6 O 2s2,2p6 ');
outtextxy(20,70,'legame covalente polare sigma,pigreco tra S=O ');
outtextxy(20,80,'legame covalente polare dativo sigma tra S-->O ');
dativo;pausa;cancella;

outtextxy(20,20,'legame ionico in NaCl Na+ Cl- con De>1.7 ');
outtextxy(20,30,'s1- pz1+ con cessione acquisto di elettrone');
outtextxy(20,40,'per raggiungere configurazione stabile');
outtextxy(20,60,'Na 3s1 ---> 2s2,2p6 Cl 3s2,3p5 ---> 3s2,3p6 ');
ionico;pausa;cancella;

outtextxy(20,20,'legame ionico in KF K+ F- con De>1.7 ');
outtextxy(20,30,'s1- pz1+ con cessione acquisto di elettrone');
outtextxy(20,40,'per raggiungere configurazione stabile');
outtextxy(20,60,'K 4s1 ---> 3s2,3p6 F 2s2,2p5 ---> 2s2,2p6 ');
ionico;pausa;cancella;

outtextxy(20,20,'legame ionico in CaF2 Ca++ 2 F- con De>1.7 ');
outtextxy(20,30,'s2 pz1+ pz1+ con cessione acquisto di elettroni');
outtextxy(20,40,'per raggiungere configurazione stabile');
outtextxy(20,60,'Ca 4s2 ---> 3s2,3p6 F 2s2,2p5 ---> 2s2,2p6 ');
ionico2;pausa;cancella;

outtextxy(20,20,'legame ionico in MgF2 Mg++ 2 F- con De>1.7 ');
outtextxy(20,30,'s2 pz1+ pz1+ con cessione acquisto di elettroni');
outtextxy(20,40,'per raggiungere configurazione stabile');
outtextxy(20,60,'Ca 3s2 ---> 2s2,2p6 F 2s2,2p5 ---> 2s2,2p6 ');
ionico2;pausa;cancella;
end;


begin
pulire;
dp:='delta+';dn:='delta-';
c1:=2;c2:=3;c0:=0;C3:=4;C4:=14;
writeln('formazione di legami tra atomi:');
writeln('LEGAME COVALENTE OMOPOLARE o PURO : se De<=0.2 ');
writeln('LEGAME COVALENTE POLARE : se 0.2 < De < 1.7 ');
writeln('LEGAME COVALENTE POLARE DATIVO : se 0.2 < De < 1.7');
writeln('LEGAME IONICO o ETEROPOLARE : se De > 1.7 ');
writeln('------------------------------------------------------');
writeln('1..si deve scrivere la configurazione ultimo livello secondo Lewis');
writeln(' per ogni elemento da legare');
writeln('2..si deve cercare il valore della elettronegativit… per ogni');
writeln(' elemento da legare');
writeln('3..si deve fare la differenza tra i valori delle elettronegativit…');
writeln('4..si prevede il tipo di legame probabile seguendo le regole');
writeln(' indicate in precedenza');
writeln;
repeat
write('scrivi valore per velocit… : da 1 veloce a 200 lento ');readln(tx);
until tx<201;
pausa;pulire;grafica;pro1;closegraph;restorecrtmode;textmode(2);
end.