listati per programmi turbo pascal e struttura atomica
periodi periodo raggio1 raggio2 raggio3 raggio4 raggio5
program periodi; (* didattico per mostrare variazione periodica *) uses crt,graph; var tx,a:integer; e:array[1..32] of string; procedure grafica; var tp,sc:integer;stringa:string; begin tp:=0;sc:=0;stringa:='c:\scheda\'; initgraph(sc,tp,stringa); end; procedure dati; begin e[1]:='3..s1'; e[2]:='4..s2'; e[3]:='5..s2p1';e[4]:='6..s2p2';e[5]:='7..s2p3'; e[6]:='8..s2p4';e[4]:='9..s2p5';e[7]:='10.s2p6';e[8]:='11.s1'; e[9]:='12..s2';e[10]:='13.s2p1';e[11]:='14.s2p2'; e[12]:='15.s2p3';e[13]:='16.s2p4';e[14]:='17.s2p5';e[15]:='18.s2p6'; e[16]:='19.s1';e[2]:='20.s2'; e[17]:='31.s2p1';e[18]:='32.s2p2'; e[19]:='33.s2p3'; e[20]:='34.s2p4';e[21]:='35.s2p5';e[22]:='36.s2p6';e[23]:='37.s1'; e[24]:='38.s2';e[25]:='49.s2p1';e[26]:='50.s2p2'; e[27]:='51.s2p3';e[28]:='52.s2p4';e[29]:='53.s2p5';e[30]:='54.s2p6'; end; procedure fine; begin writeln('premi enter'); readln; end; procedure pausa; begin write('premi ENTER ');readln; end; procedure cancella; begin grafica; end; procedure pulire; begin clrscr; end; procedure testo(x:integer;sx:string); begin outtextxy(x,20,sx); end; procedure frase; begin setcolor(14); outtextxy(500,400,'premi enter'); readln; end; procedure testo1; begin setcolor(14); outtextxy(10,300,'disponendo gli elementi secondo numero atomico crescente'); outtextxy(10,310,'si osserva che alcune grandezze aumentano gradualmente'); outtextxy(10,320,'procedendo da sinistra verso destra :da Z=3 a Z=10'); outtextxy(10,330,'es.AFFINITA elettronica,ENERGIA ionizzazione,ELETTRONEGATIVITA'); setcolor(2); outtextxy(20,340,'tuttavia con Z=11 si ritrovano valori improvvisamente bassi'); outtextxy(20,350,'che vanno gradualmente aumentando fino a Z=18'); setcolor(3); outtextxy(40,360,'e ugualmente con Z=19 fino a Z=36'); outtextxy(40,370,'e ugualmente con Z=37 fino a Z=54'); setcolor(5); outtextxy(50,380,'e ugualmente con Z=55 fino a Z= '); outtextxy(50,390,'e ugualmente con Z= fino a Z= '); end; procedure testo9; begin setcolor(14); outtextxy(10,300,'disponendo gli elementi secondo numero atomico crescente'); outtextxy(10,310,'si osserva che alcune grandezze diminuiscono gradualmente'); outtextxy(10,320,'procedendo da sinistra verso destra :da Z=3 a Z=10'); outtextxy(10,330,'es.RAGGIO e VOLUME atomico'); setcolor(2); outtextxy(20,340,'tuttavia con Z=11 si ritrovano valori improvvisamente alti'); outtextxy(20,350,'che vanno gradualmente diminuendo fino a Z=18'); setcolor(3); outtextxy(40,360,'e ugualmente con Z=19 fino a Z=36'); outtextxy(40,370,'e ugualmente con Z=37 fino a Z=54'); setcolor(5); outtextxy(50,380,'e ugualmente con Z=55 fino a Z= '); outtextxy(50,390,'e ugualmente con Z= fino a Z= '); end; procedure pro1(x1,y1,h,z,n,g,w:integer); var s:string[10]; begin for a:=1 to n do begin setcolor(a); setfillstyle(7,a); bar(x1,y1,x1+10,y1-h); str(z,s); outtextxy(x1,y1+w,s); sound(100+10*a);delay(tx);nosound; x1:=x1+20;h:=h+g;z:=z+1; end; testo1; end; procedure pro8(x1,y1,h,z,n,g,w:integer); var s:string[10]; begin for a:=1 to n do begin setcolor(a); setfillstyle(7,a); bar(x1,y1,x1+10,y1+h); str(z,s); outtextxy(x1,y1-w,s); sound(1000-10*a);delay(tx);nosound; x1:=x1+20;h:=h-g;z:=z+1; end; testo9; end; procedure pro2(x1,y1,h,z,n,g,w:integer); var s:string[10]; begin for a:=1 to n do begin setcolor(a+2); setfillstyle(7,a+2); bar(x1,y1,x1+10,y1-h); str(z,s); outtextxy(x1,y1+w,s); sound(100+10*a);delay(tx);nosound; x1:=x1+20;h:=h+g;z:=z+1; end; end; procedure pro9(x1,y1,h,z,n,g,w:integer); var s:string[10]; begin for a:=1 to n do begin setcolor(a+2); setfillstyle(7,a+2); bar(x1,y1,x1+10,y1+h); str(z,s); outtextxy(x1,y1-w,s); sound(1000-10*a);delay(tx);nosound; x1:=x1+20;h:=h-g;z:=z+1; end; end; procedure pro3(x1,y1,h,z,n,g,w:integer); var s:string[10]; begin for a:=1 to n do begin setcolor(a); setfillstyle(7,a); bar(x1,y1,x1+10,y1-h); str(z,s); outtextxy(x1,y1+w,s); sound(100+10*a);delay(tx);nosound; x1:=x1+20;h:=h+g;z:=z+1; end; end; procedure pro4(x1,y1,h,z,n,g,w:integer); var s:string[10]; begin for a:=1 to n do begin setcolor(a+2); setfillstyle(7,a+2); bar(x1,y1,x1+10,y1-h); str(z,s); outtextxy(x1,y1+w,s); sound(100+10*a);delay(tx);nosound; x1:=x1+20;h:=h+g;z:=z+1; end; end; procedure testop(x,y,c:integer;s:string); begin setcolor(c); outtextxy(x,y,s); end; procedure testox(x,y,c:integer;s:string); begin setcolor(c); outtextxy(x,y,s); end; procedure disegna(s:string); begin setcolor(14); outtextxy(10,40,s); outtextxy(10,50,'aumenta lungo una serie da sinistra verso destra'); testox(10,10,2,'2 periodo');pro1(1,200,50,3,8,10,10); testox(162,10,3,'3 periodo');pro1(162,200,40,11,8,8,20); testox(320,10,4,'4 periodo');pro1(320,200,30,19,2,5,30); pro2(360,200,40,31,6,5,30); testox(480,10,5,'5 periodo');pro1(480,200,15,37,2,3,40); pro2(520,200,30,49,6,3,40); frase;cleardevice; end; procedure prox(x,y,c:integer); var s:string; begin setcolor(c); for a:=1 to 8 do begin str(a,s); outtextxy(x,y,s); x:=x+20; end; end; procedure disegna8; begin setcolor(14); outtextxy(10,40,'il RAGGIO atomico '); outtextxy(10,50,'diminuisce lungo una serie da sinistra verso destra'); outtextxy(10,60,'aumenta lungo un gruppo da alto verso il basso'); testox(10,10,2,'2 periodo');pro8(1,200,80,3,8,10,10); testox(162,10,3,'3 periodo');pro8(162,200,90,11,8,8,20); testox(320,10,4,'4 periodo');pro8(320,200,100,19,2,5,30); pro9(360,200,90,31,6,5,30); testox(480,10,5,'5 periodo');pro8(480,200,110,37,2,3,40); pro9(520,200,100,49,6,3,40); prox(1,100,2);prox(162,110,3);prox(320,120,4);prox(480,130,5); frase;cleardevice; end; procedure disegna3; var x1,y1,a:integer; s:string; begin x1:=1;y1:=440; setcolor(14); outtextxy(200,y1,'gruppi verticali da 1 a 8 '); for a:=1 to 8 do begin str(a,s); outtextxy(x1,y1,s); x1:=x1+20; end; y1:=100; for a:=1 to 4 do begin str(a+1,s); outtextxy(180,y1,s); y1:=y1+100; end; end; procedure testo4; begin setcolor(14); outtextxy(200,30,'disponendo le precedenti serie di elementi'); outtextxy(200,50,'con caratteristiche gradualmente variabili'); outtextxy(200,70,'in modo da sovrapporle,si ottiene una tabella'); outtextxy(200,90,'con righe orizzontali dette PERIODI'); outtextxy(200,110,'con righe verticali dette GRUPPI'); setcolor(2); outtextxy(230,130,'i PERIODI risultano in numero di 7 (qui da 2 a 5 )'); outtextxy(230,150,'i GRUPPI risultano in numero di 8'); setcolor(3); outtextxy(200,170,'per gli elementi dello stesso PERIODO '); outtextxy(200,190,'le propriet variano gradualmente da sinistra a destra'); outtextxy(200,210,'per gli elementi dello stesso GRUPPO'); outtextxy(200,230,'le propriet risultano abbastanza simili'); end; procedure disegna2; begin pro3(1,100,30,3,8,10,10); pro3(1,200,20,11,8,8,10); pro3(1,300,15,19,2,5,10); pro4(41,300,25,31,6,5,10); pro3(1,400,10,37,2,3,10); pro4(41,400,20,49,6,3,10); end; procedure testo5; begin cleardevice; setcolor(14); outtextxy(200,100,'IPOTESI interpretativa della periodicit '); outtextxy(200,120,'osservata sperimentalmente'); setcolor(4); outtextxy(200,140,'analizzando la configurazione elettronica'); outtextxy(200,160,'dello ultimo livello degli elementi della tabella'); outtextxy(200,180,'si osserva che gli elementi dello stesso GRUPPO'); outtextxy(200,200,'presentano una configurazione identica'); outtextxy(200,220,'per quanto riguarda il numero di elettroni e gli'); outtextxy(200,240,'orbitali occupati:sempre e solo tipo - s,p -'); outtextxy(200,260,'cambia invece il numero del livello ultimo occupato'); setcolor(2); outtextxy(220,280,'probabilmente le propriet simili entro un gruppo'); outtextxy(220,300,'dipendono dalla configurazione elettronica simile'); end; procedure disegna6; begin setcolor(2); outtextxy(10,30,'3..s1 4..s2 5..s2p1 6..s2p2 7..s2p3 8..s2p4 9..s2p5 10..s2p6'); setcolor(3); outtextxy(10,50,'11.s1 12.s2 13.s2p1 14.s2p2 15.s2p3 16.s2p4 17.s2p5 18..s2p6'); setcolor(4); outtextxy(10,70,'19.s1 20.s2 31.s2p1 32.s2p2 33.s2p3 34.s2p4 35.s2p5 36..s2p6'); setcolor(5); outtextxy(10,90,'37.s1 38.s2 49.s2p1 50.s2p2 51.s2p3 52.s2p4 53.s2p5 54..s2p6'); setcolor(14); outtextxy(10,110,'1 2 3 4 5 6 7 8 '); outtextxy(10,130,'gruppi con configurazione esterna simile'); outtextxy(10,150,'numero di elettroni di valenza = numero gruppo '); outtextxy(10,170,'1 2 3 4 5 6 7 8 '); setcolor(5); outtextxy(10,190,'notare come lungo il periodo la configurazione passa'); outtextxy(10,210,'gradualmente da s1 a s2p6'); outtextxy(10,230,'in concordanza con la variazione sperimentalmente osservata'); end; procedure finale; begin setcolor(14); outtextxy(100,300,'in conclusione possiamo affermare che '); outtextxy(100,310,'le caratteristiche fisico chimiche degli elementi'); outtextxy(100,320,'si ripresentano periodicamente simili in elementi diversi'); outtextxy(100,330,'quando siano ordinati secondo numero atomico crescente'); setcolor(2); outtextxy(120,350,'variano gradualmente nei periodi da sinistra a destra'); outtextxy(120,360,'variano gradualmente nei gruppi da alto al basso'); setcolor(4); outtextxy(130,380,'sono molto simili allo interno dei gruppi'); outtextxy(130,400,'sono in stretta relazione con configurazioni'); outtextxy(130,410,'elettroniche esterne simili'); settextstyle(1,0,2); outtextxy(20,100,'arrivederci'); end; begin pulire; writeln('Considerazioni sulla variazione periodica'); writeln('di alcune propriet degli elementi ordinati secondo'); writeln('numero atomico crescente,osservate sperimentalmente'); writeln('nota:si prendono in esame solo alcuni elementi'); writeln('dal 3 a 54 escludendo elementi di transizione'); writeln; writeln('si considerano alcune propriet come:'); writeln('AFFINITA elettronica,ENERGIA di IONIZZAZIONE,ELETTRONEGATIVITA'); writeln; repeat write('scrivi valore per velocit : da 1 veloce a 500 lento ');readln(tx); until tx<501; pausa;pulire;grafica; disegna('variazione AFFINITA elettronica'); disegna('variazione ENERGIA IONIZZAZIONE'); disegna('variazione ELETTRONEGATIVITA'); disegna2;disegna3;frase;testo4;frase; testo5;frase;cleardevice; dati;disegna6;frase;cleardevice; disegna2;disegna3;frase;cleardevice;disegna8;finale;frase; closegraph;restorecrtmode;textmode(2); end.
program periodo; (* didattico per mostrare variazione periodica *) uses crt,graph; var tx,a:integer; e:array[1..32] of string; procedure grafica; var tp,sc:integer;stringa:string; begin tp:=0;sc:=0;stringa:='c:\scheda\'; initgraph(sc,tp,stringa); end; procedure dati; begin e[1]:='3..s1'; e[2]:='4..s2'; e[3]:='5..s2p1';e[4]:='6..s2p2';e[5]:='7..s2p3'; e[6]:='8..s2p4';e[4]:='9..s2p5';e[7]:='10.s2p6';e[8]:='11.s1'; e[9]:='12..s2';e[10]:='13.s2p1';e[11]:='14.s2p2'; e[12]:='15.s2p3';e[13]:='16.s2p4';e[14]:='17.s2p5';e[15]:='18.s2p6'; e[16]:='19.s1';e[2]:='20.s2'; e[17]:='31.s2p1';e[18]:='32.s2p2'; e[19]:='33.s2p3'; e[20]:='34.s2p4';e[21]:='35.s2p5';e[22]:='36.s2p6';e[23]:='37.s1'; e[24]:='38.s2';e[25]:='49.s2p1';e[26]:='50.s2p2'; e[27]:='51.s2p3';e[28]:='52.s2p4';e[29]:='53.s2p5';e[30]:='54.s2p6'; end; procedure fine; begin writeln('premi enter'); readln; end; procedure pausa; begin write('premi ENTER ');readln; end; procedure cancella; begin grafica; end; procedure pulire; begin clrscr; end; procedure testo(x:integer;sx:string); begin outtextxy(x,20,sx); end; procedure frase; begin setcolor(14); outtextxy(500,400,'premi enter'); readln; end; procedure testo1; begin setcolor(14); outtextxy(10,300,'disponendo gli elementi secondo numero atomico crescente'); outtextxy(10,310,'si osserva che alcune grandezze aumentano gradualmente'); outtextxy(10,320,'procedendo da sinistra verso destra :da Z=3 a Z=10'); outtextxy(10,330,'es.AFFINITA elettronica,ENERGIA ionizzazione,ELETTRONEGATIVITA'); setcolor(2); outtextxy(20,340,'tuttavia con Z=11 si ritrovano valori improvvisamente bassi'); outtextxy(20,350,'che vanno gradualmente aumentando fino a Z=18'); setcolor(3); outtextxy(40,360,'e ugualmente con Z=19 fino a Z=36'); outtextxy(40,370,'e ugualmente con Z=37 fino a Z=54'); setcolor(5); outtextxy(50,380,'e ugualmente con Z=55 fino a Z= '); outtextxy(50,390,'e ugualmente con Z= fino a Z= '); end; procedure testo9; begin setcolor(14); outtextxy(10,300,'disponendo gli elementi secondo numero atomico crescente'); outtextxy(10,310,'si osserva che alcune grandezze diminuiscono gradualmente'); outtextxy(10,320,'procedendo da sinistra verso destra :da Z=3 a Z=10'); outtextxy(10,330,'es.RAGGIO e VOLUME atomico'); setcolor(2); outtextxy(20,340,'tuttavia con Z=11 si ritrovano valori improvvisamente alti'); outtextxy(20,350,'che vanno gradualmente diminuendo fino a Z=18'); setcolor(3); outtextxy(40,360,'e ugualmente con Z=19 fino a Z=36'); outtextxy(40,370,'e ugualmente con Z=37 fino a Z=54'); setcolor(5); outtextxy(50,380,'e ugualmente con Z=55 fino a Z= '); outtextxy(50,390,'e ugualmente con Z= fino a Z= '); end; procedure pro1(x1,y1,h,z,n,g,w:integer); var s:string[10]; begin for a:=1 to n do begin setcolor(a); setfillstyle(7,a); bar(x1,y1,x1+10,y1-h); str(z,s); outtextxy(x1,y1+w,s); sound(100+10*a);delay(tx);nosound; x1:=x1+20;h:=h+g;z:=z+1; end; testo1; end; procedure pro8(x1,y1,h,z,n,g,w:integer); var s:string[10]; begin for a:=1 to n do begin setcolor(a); setfillstyle(7,a); bar(x1,y1,x1+10,y1+h); str(z,s); outtextxy(x1,y1-w,s); sound(100+10*a);delay(tx);nosound; x1:=x1+20;h:=h-g;z:=z+1; end; testo9; end; procedure pro2(x1,y1,h,z,n,g,w:integer); var s:string[10]; begin for a:=1 to n do begin setcolor(a+2); setfillstyle(7,a+2); bar(x1,y1,x1+10,y1-h); str(z,s); outtextxy(x1,y1+w,s); sound(100+10*a);delay(tx);nosound; x1:=x1+20;h:=h+g;z:=z+1; end; end; procedure pro9(x1,y1,h,z,n,g,w:integer); var s:string[10]; begin for a:=1 to n do begin setcolor(a+2); setfillstyle(7,a+2); bar(x1,y1,x1+10,y1+h); str(z,s); outtextxy(x1,y1-w,s); sound(100+10*a);delay(tx);nosound; x1:=x1+20;h:=h-g;z:=z+1; end; end; procedure pro3(x1,y1,h,z,n,g,w:integer); var s:string[10]; begin for a:=1 to n do begin setcolor(a); setfillstyle(7,a); bar(x1,y1,x1+10,y1-h); str(z,s); outtextxy(x1,y1+w,s); sound(100+10*a);delay(tx);nosound; x1:=x1+20;h:=h+g;z:=z+1; end; end; procedure pro4(x1,y1,h,z,n,g,w:integer); var s:string[10]; begin for a:=1 to n do begin setcolor(a+2); setfillstyle(7,a+2); bar(x1,y1,x1+10,y1-h); str(z,s); outtextxy(x1,y1+w,s); sound(100+10*a);delay(tx);nosound; x1:=x1+20;h:=h+g;z:=z+1; end; end; procedure testop(x,y,c:integer;s:string); begin setcolor(c); outtextxy(x,y,s); end; procedure testox(x,y,c:integer;s:string); begin setcolor(c); outtextxy(x,y,s); end; procedure disegna(s:string); begin setcolor(14); outtextxy(10,40,s); outtextxy(10,50,'aumenta lungo una serie da sinistra verso destra'); testox(10,10,2,'2 periodo');pro1(1,200,50,3,8,10,10); testox(162,10,3,'3 periodo');pro1(162,200,40,11,8,8,20); testox(320,10,4,'4 periodo');pro1(320,200,30,19,2,5,30); pro2(360,200,40,31,6,5,30); testox(480,10,5,'5 periodo');pro1(480,200,15,37,2,3,40); pro2(520,200,30,49,6,3,40); frase;cleardevice; end; procedure disegna8; begin setcolor(14); outtextxy(10,40,'il RAGGIO atomico '); outtextxy(10,50,'diminuisce lungo una serie da sinistra verso destra'); testox(10,10,2,'2 periodo');pro8(1,200,80,3,8,10,10); testox(162,10,3,'3 periodo');pro8(162,200,90,11,8,8,20); testox(320,10,4,'4 periodo');pro8(320,200,100,19,2,5,30); pro9(360,200,100,31,6,5,30); testox(480,10,5,'5 periodo');pro8(480,200,110,37,2,3,40); pro9(520,200,100,49,6,3,40); frase;cleardevice; end; procedure disegna3; var x1,y1,a:integer; s:string; begin x1:=1;y1:=440; setcolor(14); outtextxy(200,y1,'gruppi verticali da 1 a 8 '); for a:=1 to 8 do begin str(a,s); outtextxy(x1,y1,s); x1:=x1+20; end; y1:=100; for a:=1 to 4 do begin str(a+1,s); outtextxy(180,y1,s); y1:=y1+100; end; end; procedure testo4; begin setcolor(14); outtextxy(200,30,'disponendo le precedenti serie di elementi'); outtextxy(200,50,'con caratteristiche gradualmente variabili'); outtextxy(200,70,'in modo da sovrapporle,si ottiene una tabella'); outtextxy(200,90,'con righe orizzontali dette PERIODI'); outtextxy(200,110,'con righe verticali dette GRUPPI'); setcolor(2); outtextxy(230,130,'i PERIODI risultano in numero di 7 (qui da 2 a 5 )'); outtextxy(230,150,'i GRUPPI risultano in numero di 8'); setcolor(3); outtextxy(200,170,'per gli elementi dello stesso PERIODO '); outtextxy(200,190,'le propriet variano gradualmente da sinistra a destra'); outtextxy(200,210,'per gli elementi dello stesso GRUPPO'); outtextxy(200,230,'le propriet risultano abbastanza simili'); end; procedure disegna2; begin pro3(1,100,30,3,8,10,10); pro3(1,200,20,11,8,8,10); pro3(1,300,15,19,2,5,10); pro4(41,300,25,31,6,5,10); pro3(1,400,10,37,2,3,10); pro4(41,400,20,49,6,3,10); end; procedure testo5; begin cleardevice; setcolor(14); outtextxy(200,100,'IPOTESI interpretativa della periodicit '); outtextxy(200,120,'osservata sperimentalmente'); setcolor(4); outtextxy(200,140,'analizzando la configurazione elettronica'); outtextxy(200,160,'dello ultimo livello degli elementi della tabella'); outtextxy(200,180,'si osserva che gli elementi dello stesso GRUPPO'); outtextxy(200,200,'presentano una configurazione identica'); outtextxy(200,220,'per quanto riguarda il numero di elettroni e gli'); outtextxy(200,240,'orbitali occupati:sempre e solo tipo - s,p -'); outtextxy(200,260,'cambia invece il numero del livello ultimo occupato'); setcolor(2); outtextxy(220,280,'probabilmente le propriet simili entro un gruppo'); outtextxy(220,300,'dipendono dalla configurazione elettronica simile'); end; procedure disegna6; begin setcolor(2); outtextxy(10,30,'3..s1 4..s2 5..s2p1 6..s2p2 7..s2p3 8..s2p4 9..s2p5 10..s2p6'); setcolor(3); outtextxy(10,50,'11.s1 12.s2 13.s2p1 14.s2p2 15.s2p3 16.s2p4 17.s2p5 18..s2p6'); setcolor(4); outtextxy(10,70,'19.s1 20.s2 31.s2p1 32.s2p2 33.s2p3 34.s2p4 35.s2p5 36..s2p6'); setcolor(5); outtextxy(10,90,'37.s1 38.s2 49.s2p1 50.s2p2 51.s2p3 52.s2p4 53.s2p5 54..s2p6'); setcolor(14); outtextxy(10,110,'1 2 3 4 5 6 7 8 '); outtextxy(10,130,'gruppi con configurazione esterna simile'); outtextxy(10,150,'numero di elettroni di valenza = numero gruppo '); outtextxy(10,170,'1 2 3 4 5 6 7 8 '); setcolor(5); outtextxy(10,190,'notare come lungo il periodo la configurazione passa'); outtextxy(10,210,'gradualmente da s1 a s2p6'); outtextxy(10,230,'in concordanza con la variazione sperimentalmente osservata'); end; procedure finale; begin setcolor(14); outtextxy(100,300,'in conclusione possiamo affermare che '); outtextxy(100,310,'le caratteristiche fisico chimiche degli elementi'); outtextxy(100,320,'si ripresentano periodicamente simili in elementi diversi'); outtextxy(100,330,'quando siano ordinati secondo numero atomico crescente'); setcolor(2); outtextxy(120,350,'variano gradualmente nei periodi da sinistra a destra'); outtextxy(120,360,'variano gradualmente nei gruppi da alto al basso'); setcolor(4); outtextxy(130,380,'sono molto simili allo interno dei gruppi'); outtextxy(130,400,'sono in stretta relazione con configurazioni'); outtextxy(130,410,'elettroniche esterne simili'); settextstyle(1,0,2); outtextxy(20,100,'arrivederci'); end; begin pulire; writeln('Considerazioni sulla variazione periodica'); writeln('di alcune propriet degli elementi ordinati secondo'); writeln('numero atomico crescente,osservate sperimentalmente'); writeln('nota:si prendono in esame solo alcuni elementi'); writeln('dal 3 a 54 escludendo elementi di transizione'); writeln; writeln('si considerano alcune propriet come:'); writeln('AFFINITA elettronica,ENERGIA di IONIZZAZIONE,ELETTRONEGATIVITA'); writeln; repeat write('scrivi valore per velocit : da 1 veloce a 500 lento ');readln(tx); until tx<501; pausa;pulire;grafica; disegna('variazione AFFINITA elettronica'); disegna('variazione ENERGIA IONIZZAZIONE'); disegna('variazione ELETTRONEGATIVITA'); disegna2;disegna3;frase;testo4;frase; testo5;frase;cleardevice; dati;disegna6;frase;cleardevice; disegna2;disegna3;frase;cleardevice;disegna8;finale;frase; closegraph;restorecrtmode;textmode(2); end.
program raggio1; (* didattico per mostrare variazione raggio atomico *) uses crt,graph; const k=18; var a,c1,c2,c0,C3,C4,tx:integer; s:array[1..k] of string; g:array[1..k] of string; p:array[1..K] of string; q:array[1..k] of string; procedure grafica; var tp,sc:integer;stringa:string; begin tp:=0;sc:=0;stringa:='c:\scheda\'; initgraph(sc,tp,stringa); end; procedure fine; begin writeln('premi enter'); readln; end; procedure sosta; begin writeln('premi NVIO');readln; end; procedure pausa; begin outtextxy(30,400,'premi INVIO');readln; end; procedure cancella; begin grafica; end; procedure pulire; begin clrscr; end; procedure dati; begin s[1]:=('H 1s1..Z=1');g[1]:='..un solo livello occupato'; s[2]:=('Li 2s1..Z=3');g[2]:='..due livelli occupati'; s[3]:=('Na 3s1..Z=11');g[3]:='..tre livelli occupati'; s[4]:=('K 4s1..Z=19');g[4]:='..quattro livelli occupati'; s[5]:=('Rb 5s1..Z=37');g[5]:='..5 livelli occupati'; s[6]:=('Cs 6s1..Z=55');g[6]:='..6 livelli occupati'; s[7]:=('Fr 7s1..Z=87');g[7]:='..7 livelli occupati'; s[8]:=('Be 2s2..Z=4');g[8]:='..2 livelli occupati'; s[9]:=('Mg 3s2..Z=12');g[9]:='..3 livelli occupati'; s[10]:=('Ca 4s2..Z=29');g[10]:='..4 livelli occupati'; s[11]:=('Sr 5s2..Z=38');g[11]:='..5 livelli occupati'; s[12]:=('Ba 6s2..Z=56');g[12]:='..6 livelli occupati'; s[13]:=('Ra 7s2..Z=88');g[13]:='..7 livelli occupati'; s[14]:=('F 2s2,2p5..Z=9');g[14]:='..2 livelli occupati'; s[15]:=('Cl 3s2,3p5.Z=17');g[15]:='..3 livelli occupati'; s[16]:=('Br 4s2,4p5..Z=35');g[16]:='..4 livelli occupati'; s[17]:=('I 5s2,5p5.Z=53');g[17]:='..5 livelli occupati'; s[18]:=('At 6s2,6p5..Z=85');g[18]:='..6 livelli occupati'; p[1]:=('Li'); q[1]:=('2s1..........Z=3'); p[2]:=('Be'); q[2]:=('2s2..........Z=4'); p[3]:=('B'); q[3]:=('2s2,2p1......Z=5'); p[4]:=('C'); q[4]:=('2s2,2p2......Z=6'); p[5]:=('N'); q[5]:=('2s2,2p3......Z=7'); p[6]:=('O'); q[6]:=('2s2,2p4......Z=8'); p[7]:=('F'); q[7]:=('2s2,2p5......Z=9'); p[8]:=('Ne'); q[8]:=('2s2,2p6......Z=10'); p[9]:=('Na'); q[9]:=('3s1..........Z=11'); p[10]:=('Mg'); q[10]:=('3s2..........Z=12'); p[11]:=('Al'); q[11]:=('3s2,3p1......Z=13'); p[12]:=('Si'); q[12]:=('3s2,3p2......Z=14'); p[13]:=('P'); q[13]:=('3s2,3p3......Z=15'); p[14]:=('S'); q[14]:=('3s2,3p4......Z=16'); p[15]:=('Cl'); q[15]:=('3s2,3p5......Z=17'); p[16]:=('Ar'); q[16]:=('3s2,3p6......Z=18'); end; procedure dise1(f,y:integer); var co,ra,x:integer; begin co:=1;ra:=10;x:=50; outtextxy(300,10,'elementi primo gruppo'); for a:=1 to f do begin setcolor(co); circle(x,y,ra); outtextxy(x,y,s[f]+g[f]); ra:=ra+5;co:=co+1;delay(tx); end; end; procedure dis1(f,y:integer); var co,ra,x:integer; begin co:=1;ra:=10;x:=50; outtextxy(100,10,'elementi primo gruppo'); for a:=1 to f do begin setcolor(co); circle(x,y,ra); outtextxy(x,y,s[f]); ra:=ra+5;co:=co+1;delay(tx); end; end; procedure dise2(f,y:integer); var co,ra,x:integer; begin ra:=5;co:=1;x:=150; outtextxy(300,10,'elementi secondo gruppo'); for a:=1 to f do begin setcolor(co); circle(x,y,ra);outtextxy(x,y,s[f+6]+g[f+6]); ra:=ra+5;co:=co+1; delay(tx); end; end; procedure dis2(f,y:integer); var co,ra,x:integer; begin ra:=5;co:=1;x:=200; outtextxy(200,20,'elementi secondo gruppo'); for a:=1 to f do begin setcolor(co); circle(x,y,ra);outtextxy(x,y,s[f+6]); ra:=ra+5;co:=co+1;delay(tx); end; end; procedure dise3(f,y:integer); var co,ra,x:integer; begin ra:=5;co:=1;x:=150; outtextxy(300,10,'elementi settimo gruppo'); for a:=1 to f do begin setcolor(co); circle(x,y,ra);outtextxy(x,y,s[f+12]+g[f+12]); ra:=ra+5;co:=co+1;delay(tx); end; end; procedure dis3(f,y:integer); var co,ra,x:integer; begin ra:=5;co:=1;x:=350; outtextxy(300,30,'elementi settimo gruppo'); for a:=1 to f do begin setcolor(co); circle(x,y,ra);outtextxy(x,y,s[f+12]); ra:=ra+2;co:=co+1;delay(tx); end; end; procedure dise4; var co,ra,y,x:integer; begin ra:=25;co:=1;y:=50;x:=50; outtextxy(30,10,'elementi 2 periodo'); for a:=1 to 8 do begin setcolor(co); circle(x,y,ra);circle(x,y,ra-2);outtextxy(x,y,p[a]); outtextxy(x,y+50+10*a,q[a]); ra:=ra-3;co:=co+1;x:=x+60;delay(tx); end; end; procedure dise5; var co,ra,y,x:integer; begin ra:=30;co:=1;y:=200;x:=50; outtextxy(30,160,'elementi 3 periodo'); for a:=1 to 8 do begin setcolor(co); circle(x,y,ra);circle(x,y,ra-2);outtextxy(x,y,p[a+8]); outtextxy(x,y+50+10*a,q[a+8]); ra:=ra-3;co:=co+1;x:=x+60; delay(tx); end; end; procedure testo1(w:integer); begin outtextxy(w,330,'variazione raggio e volume atomico'); outtextxy(w,340,'in un gruppo di elementi'); outtextxy(w,350,'AUMENTA da alto verso il basso'); outtextxy(w,360,'con aumentare del numero atomico'); outtextxy(w,370,'per due motivi'); outtextxy(w,390,'viene occupato un livello sempre pi esterno'); outtextxy(w,400,'aumenta effetto schermante di elettroni interni'); outtextxy(w,410,'CONSEGUENZA:elettrone meno attirato'); outtextxy(w,420,'raggio pi grande'); end; procedure testo2(w:integer); begin outtextxy(w,330,'variazione raggio e volume atomico'); outtextxy(w,340,'in un periodo di elementi'); outtextxy(w,350,'DIMINUISCE da sinistra verso destra:da 1 a 8 gruppo'); outtextxy(w,360,'con aumentare del numero atomico'); outtextxy(w,370,'AUMENTA numero protoni del nucleo con aumento di Z'); outtextxy(w,390,'viene occupato sempre lo stesso ultimo livello'); outtextxy(w,400,'rimane costante effetto schermante di elettroni interni'); outtextxy(w,410,'CONSEGUENZA:elettrone pi attirato dal nucleo'); outtextxy(w,420,'raggio pi piccolo'); end; procedure pro1; begin setbkcolor(c0); setcolor(c3); dise1(1,20);dise1(2,60);dise1(3,110);dise1(4,170);dise1(5,230); dise1(6,300);dise1(7,380); setcolor(c4);testo1(250);pausa;cancella; dise2(2,20);dise2(3,60);dise2(4,110);dise2(5,170);dise2(6,230); dise2(7,300);setcolor(c4);testo1(250);pausa;cancella; dise3(2,20);dise3(3,60);dise3(4,110);dise3(5,170);dise3(6,230); setcolor(c4);testo1(250);pausa;cancella;dise4; setcolor(c4);testo2(180); pausa;cancella;dise4;pausa;dise5;setcolor(c4); testo2(180);pausa;cancella; dis1(1,20);dis1(2,60);dis1(3,110);dis1(4,170);dis1(5,230); dis1(6,300);dis1(7,380);setcolor(c4);pausa; dis2(2,60);dis2(3,110);dis2(4,170);dis2(5,230);dis2(6,300); dis2(7,380);pausa; dis3(2,60);dis3(3,110);dis3(4,170);dis3(5,230);dis3(6,300); setcolor(c4);pausa;cancella; end; begin pulire; c1:=2;c2:=3;c0:=0;C3:=4;C4:=14; writeln('Considerazioni sulla variazione del raggio e volume atomico'); writeln('nei gruppi e nei periodi della tabella periodica'); writeln('Si evidenzia una variazione periodica del raggio lungo il periodo'); writeln('DIMINUISCE da sinistra verso destra '); writeln('dal primo gruppo allo ottavo gruppo'); writeln('------------------------------------------------'); writeln('AUMENTA in ogni gruppo da alto verso il basso'); writeln('---------------------------------------------------'); repeat write('scrivi valore per velocit :da 1 veloce a 200 lento ');readln(tx); until tx<201; sosta;pulire;dati;grafica;pro1;closegraph;restorecrtmode;textmode(2); end.
program raggio2; (* didattico per mostrare variazione raggio atomico *) (* variante di raggio1 con visualizzazione schermatura *) uses crt,graph; const k=18; var a,c1,c2,c0,C3,C4,tx:integer; s:array[1..k] of string; g:array[1..k] of string; p:array[1..K] of string; q:array[1..k] of string; procedure grafica; var tp,sc:integer;stringa:string; begin tp:=0;sc:=0;stringa:='c:\scheda\'; initgraph(sc,tp,stringa); end; procedure fine; begin writeln('premi enter'); readln; end; procedure pausa; begin write('premi ENTER ');readln; end; procedure cancella; begin grafica; end; procedure pulire; begin clrscr; end; procedure dati; begin s[1]:=('H 1s1..Z=1');g[1]:='..un solo livello occupato'; s[2]:=('Li 2s1..Z=3');g[2]:='..due livelli occupati'; s[3]:=('Na 3s1..Z=11');g[3]:='..tre livelli occupati'; s[4]:=('K 4s1..Z=19');g[4]:='..quattro livelli occupati'; s[5]:=('Rb 5s1..Z=37');g[5]:='..5 livelli occupati'; s[6]:=('Cs 6s1..Z=55');g[6]:='..6 livelli occupati'; s[7]:=('Fr 7s1..Z=87');g[7]:='..7 livelli occupati'; s[8]:=('Be 2s2..Z=4');g[8]:='..2 livelli occupati'; s[9]:=('Mg 3s2..Z=12');g[9]:='..3 livelli occupati'; s[10]:=('Ca 4s2..Z=29');g[10]:='..4 livelli occupati'; s[11]:=('Sr 5s2..Z=38');g[11]:='..5 livelli occupati'; s[12]:=('Ba 6s2..Z=56');g[12]:='..6 livelli occupati'; s[13]:=('Ra 7s2..Z=88');g[13]:='..7 livelli occupati'; s[14]:=('F 2s2,2p5..Z=9');g[14]:='..2 livelli occupati'; s[15]:=('Cl 3s2,3p5.Z=17');g[15]:='..3 livelli occupati'; s[16]:=('Br 4s2,4p5..Z=35');g[16]:='..4 livelli occupati'; s[17]:=('I 5s2,5p5.Z=53');g[17]:='..5 livelli occupati'; s[18]:=('At 6s2,6p5..Z=85');g[18]:='..6 livelli occupati'; p[1]:=('Li'); q[1]:=('2s1..........Z=3'); p[2]:=('Be'); q[2]:=('2s2..........Z=4'); p[3]:=('B'); q[3]:=('2s2,2p1......Z=5'); p[4]:=('C'); q[4]:=('2s2,2p2......Z=6'); p[5]:=('N'); q[5]:=('2s2,2p3......Z=7'); p[6]:=('O'); q[6]:=('2s2,2p4......Z=8'); p[7]:=('F'); q[7]:=('2s2,2p5......Z=9'); p[8]:=('Ne'); q[8]:=('2s2,2p6......Z=10'); p[9]:=('Na'); q[9]:=('3s1..........Z=11'); p[10]:=('Mg'); q[10]:=('3s2..........Z=12'); p[11]:=('Al'); q[11]:=('3s2,3p1......Z=13'); p[12]:=('Si'); q[12]:=('3s2,3p2......Z=14'); p[13]:=('P'); q[13]:=('3s2,3p3......Z=15'); p[14]:=('S'); q[14]:=('3s2,3p4......Z=16'); p[15]:=('Cl'); q[15]:=('3s2,3p5......Z=17'); p[16]:=('Ar'); q[16]:=('3s2,3p6......Z=18'); end; procedure frase; begin outtextxy(50,400,'premi enter'); readln; end; procedure disco; begin setfillstyle(4,2);fillellipse(500,40,20,20); outtextxy(500,10,'effetto schermo..'); end; procedure dise1(f,y:integer); var co,ra,x:integer; begin co:=1;ra:=10;x:=50; outtextxy(300,10,'elementi primo gruppo'); for a:=1 to f do begin setcolor(co); circle(x,y,ra); outtextxy(100+x,y,s[f]+g[f]); ra:=ra+5;co:=co+1;delay(tx); end; setfillstyle(a,a); delay(tx);fillellipse(x,y,ra-10,ra-10); end; procedure dis1(f,y:integer); var co,ra,x:integer; begin co:=1;ra:=10;x:=50; outtextxy(100,10,'elementi primo gruppo'); for a:=1 to f do begin setcolor(co); circle(x,y,ra); outtextxy(x,y,s[f]); ra:=ra+5;co:=co+1;delay(tx); end; setfillstyle(a,a); delay(tx);fillellipse(x,y,ra-10,ra-10); end; procedure dise2(f,y:integer); var co,ra,x:integer; begin ra:=5;co:=1;x:=150; outtextxy(300,10,'elementi secondo gruppo'); for a:=1 to f do begin setcolor(co); circle(x,y,ra);outtextxy(100+x,y,s[f+6]+g[f+6]); ra:=ra+5;co:=co+1;delay(tx); end; setfillstyle(a,a); delay(tx);fillellipse(x,y,ra-10,ra-10); end; procedure dis2(f,y:integer); var co,ra,x:integer; begin ra:=5;co:=1;x:=200; outtextxy(200,20,'elementi secondo gruppo'); for a:=1 to f do begin setcolor(co); circle(x,y,ra);outtextxy(x,y,s[f+6]); ra:=ra+5;co:=co+1;delay(tx); end; setfillstyle(a,a); delay(tx);fillellipse(x,y,ra-10,ra-10); end; procedure dise3(f,y:integer); var co,ra,x:integer; begin ra:=5;co:=1;x:=150; outtextxy(300,10,'elementi settimo gruppo'); for a:=1 to f do begin setcolor(co); circle(x,y,ra);outtextxy(100+x,y,s[f+12]+g[f+12]); ra:=ra+5;co:=co+1;delay(tx); end; setfillstyle(a,a); delay(tx);fillellipse(x,y,ra-10,ra-10); end; procedure dis3(f,y:integer); var co,ra,x:integer; begin ra:=5;co:=1;x:=350; outtextxy(300,30,'elementi settimo gruppo'); for a:=1 to f do begin setcolor(co); circle(x,y,ra);outtextxy(x,y,s[f+12]); ra:=ra+2;co:=co+1;delay(tx); end; setfillstyle(a,a); delay(tx);fillellipse(x,y,ra-5,ra-5); end; procedure dise4; var co,ra,y,x:integer; begin ra:=25;co:=1;y:=50;x:=50; outtextxy(30,10,'elementi 2 periodo'); for a:=1 to 8 do begin setcolor(co); circle(x,y,ra);circle(x,y,ra-2);outtextxy(x,y,p[a]); outtextxy(x,y+50+10*a,q[a]); ra:=ra-3;co:=co+1;x:=x+60;delay(tx); end; end; procedure dise5; var co,ra,y,x:integer; begin ra:=30;co:=1;y:=200;x:=50; outtextxy(30,160,'elementi 3 periodo'); for a:=1 to 8 do begin setcolor(co); circle(x,y,ra);circle(x,y,ra-2);outtextxy(x,y,p[a+8]); outtextxy(x,y+50+10*a,q[a+8]); ra:=ra-3;co:=co+1;x:=x+60;delay(tx); end; end; procedure testo1(w:integer); begin outtextxy(w,330,'variazione raggio e volume atomico'); outtextxy(w,340,'in un gruppo di elementi'); outtextxy(w,350,'AUMENTA da alto verso il basso'); outtextxy(w,360,'con aumentare del numero atomico'); outtextxy(w,370,'per due motivi'); outtextxy(w,390,'viene occupato un livello sempre pi esterno'); outtextxy(w,400,'aumenta effetto schermante di elettroni interni'); outtextxy(w,410,'CONSEGUENZA:elettrone meno attirato'); outtextxy(w,420,'raggio pi grande'); end; procedure testo2(w:integer); begin outtextxy(w,330,'variazione raggio e volume atomico'); outtextxy(w,340,'in un periodo di elementi'); outtextxy(w,350,'DIMINUISCE da sinistra verso destra:da 1 a 8 gruppo'); outtextxy(w,360,'con aumentare del numero atomico'); outtextxy(w,370,'AUMENTA numero protoni del nucleo con aumento di Z'); outtextxy(w,390,'viene occupato sempre lo stesso ultimo livello'); outtextxy(w,400,'rimane costante effetto schermante di elettroni interni'); outtextxy(w,410,'CONSEGUENZA:elettrone pi attirato dal nucleo'); outtextxy(w,420,'raggio pi piccolo'); end; procedure pro1; begin setbkcolor(c0); setcolor(c3); dise1(1,20);dise1(2,60);dise1(3,110);dise1(4,170);dise1(5,230); dise1(6,300);dise1(7,380); disco;setcolor(c4); testo1(250);frase;cancella; dise2(2,20);dise2(3,60);dise2(4,110);dise2(5,170);dise2(6,230); dise2(7,300);setcolor(c4); testo1(250);frase;cancella; dise3(2,20);dise3(3,60);dise3(4,110);dise3(5,170);dise3(6,230); setcolor(c4); testo1(250);frase;cancella;dise4; setcolor(c4);testo2(180);frase;cancella;dise4;frase;dise5; setcolor(c4);testo2(180);frase;cancella;disco; dis1(1,20);dis1(2,60);dis1(3,110);dis1(4,170);dis1(5,230); dis1(6,300);dis1(7,380); dis2(2,60);dis2(3,110);dis2(4,170);dis2(5,230);dis2(6,300); dis2(7,380); dis3(2,60);dis3(3,110);dis3(4,170);dis3(5,230);dis3(6,300); setcolor(c4);frase;cancella; end; begin pulire; c1:=2;c2:=3;c0:=0;C3:=4;C4:=14; writeln('Considerazioni sulla variazione del raggio e volume atomico'); writeln('nei gruppi e nei periodi della tabella periodica'); writeln('Si evidenzia una variazione periodica del raggio lungo il periodo'); writeln('DIMINUISCE da sinistra verso destra '); writeln('dal primo gruppo allo ottavo gruppo'); writeln('------------------------------------------------'); writeln('AUMENTA in ogni gruppo da alto verso il basso'); writeln('---------------------------------------------------'); repeat write('scrivi valore per velocit : da 1 veloce a 200 lento ');readln(tx); until tx<201; pausa;pulire;dati;grafica;pro1;closegraph;restorecrtmode;textmode(2); end.
program raggio3; (* didattico per mostrare variazione ionizzazione affinit elettroneg *) (* variante di raggio2 con visualizzazione schermatura *) uses crt,graph; const k=18; var a,c1,c2,c0,C3,C4,tx:integer; s:array[1..k] of string; g:array[1..k] of string; p:array[1..K] of string; q:array[1..k] of string; procedure grafica; var tp,sc:integer;stringa:string; begin tp:=0;sc:=0;stringa:='c:\scheda\'; initgraph(sc,tp,stringa); end; procedure fine; begin writeln('premi enter'); readln; end; procedure pausa; begin write('premi ENTER ');readln; end; procedure cancella; begin grafica; end; procedure pulire; begin clrscr; end; procedure dati; begin s[1]:=('H 1s1..Z=1');g[1]:='..un solo livello occupato'; s[2]:=('Li 2s1..Z=3');g[2]:='..due livelli occupati'; s[3]:=('Na 3s1..Z=11');g[3]:='..tre livelli occupati'; s[4]:=('K 4s1..Z=19');g[4]:='..quattro livelli occupati'; s[5]:=('Rb 5s1..Z=37');g[5]:='..5 livelli occupati'; s[6]:=('Cs 6s1..Z=55');g[6]:='..6 livelli occupati'; s[7]:=('Fr 7s1..Z=87');g[7]:='..7 livelli occupati'; s[8]:=('Be 2s2..Z=4');g[8]:='..2 livelli occupati'; s[9]:=('Mg 3s2..Z=12');g[9]:='..3 livelli occupati'; s[10]:=('Ca 4s2..Z=29');g[10]:='..4 livelli occupati'; s[11]:=('Sr 5s2..Z=38');g[11]:='..5 livelli occupati'; s[12]:=('Ba 6s2..Z=56');g[12]:='..6 livelli occupati'; s[13]:=('Ra 7s2..Z=88');g[13]:='..7 livelli occupati'; s[14]:=('F 2s2,2p5..Z=9');g[14]:='..2 livelli occupati'; s[15]:=('Cl 3s2,3p5.Z=17');g[15]:='..3 livelli occupati'; s[16]:=('Br 4s2,4p5..Z=35');g[16]:='..4 livelli occupati'; s[17]:=('I 5s2,5p5.Z=53');g[17]:='..5 livelli occupati'; s[18]:=('At 6s2,6p5..Z=85');g[18]:='..6 livelli occupati'; p[1]:=('Li'); q[1]:=('2s1..........Z=3'); p[2]:=('Be'); q[2]:=('2s2..........Z=4'); p[3]:=('B'); q[3]:=('2s2,2p1......Z=5'); p[4]:=('C'); q[4]:=('2s2,2p2......Z=6'); p[5]:=('N'); q[5]:=('2s2,2p3......Z=7'); p[6]:=('O'); q[6]:=('2s2,2p4......Z=8'); p[7]:=('F'); q[7]:=('2s2,2p5......Z=9'); p[8]:=('Ne'); q[8]:=('2s2,2p6......Z=10'); p[9]:=('Na'); q[9]:=('3s1..........Z=11'); p[10]:=('Mg'); q[10]:=('3s2..........Z=12'); p[11]:=('Al'); q[11]:=('3s2,3p1......Z=13'); p[12]:=('Si'); q[12]:=('3s2,3p2......Z=14'); p[13]:=('P'); q[13]:=('3s2,3p3......Z=15'); p[14]:=('S'); q[14]:=('3s2,3p4......Z=16'); p[15]:=('Cl'); q[15]:=('3s2,3p5......Z=17'); p[16]:=('Ar'); q[16]:=('3s2,3p6......Z=18'); end; procedure frase; begin outtextxy(50,400,'premi enter'); readln; end; procedure disco; begin setfillstyle(4,2);fillellipse(550,420,20,20); end; procedure dise1(f,y:integer);(* raggio elementi 1 gruppo *) var co,ra,x:integer; begin co:=1;ra:=10;x:=50; outtextxy(300,10,'elementi primo gruppo'); for a:=1 to f do begin setcolor(co); circle(x,y,ra); outtextxy(100+x,y,s[f]); ra:=ra+5;co:=co+1;delay(tx); end; setfillstyle(a,a); delay(tx);fillellipse(x,y,ra-10,ra-10); outtextxy(100,420,'da ALTO a BASSO :raggio,schermatura: AUMENTO'); outtextxy(100,430,'ionizzazione,affinit ,elettronegativit :DIMINUZIONE'); end; procedure die1(f,y,ra,co:integer);(* ionizzazione elementi 1 gruppo *) var x:integer; begin x:=350; outtextxy(300,10,'elementi primo gruppo'); setcolor(co); circle(x,y,ra); outtextxy(100+x,y,'energia ionizzazione'); outtextxy(100+x,y+10,'affinit elettronica'); outtextxy(100+x,y+20,'elettronegativit '); delay(tx); end; procedure dis1(f,y:integer); var co,ra,x:integer; begin co:=1;ra:=10;x:=50; outtextxy(100,10,'elementi primo gruppo'); for a:=1 to f do begin setcolor(co); circle(x,y,ra); outtextxy(x,y,s[f]); ra:=ra+5;co:=co+1;delay(tx); end; setfillstyle(a,a); delay(tx);fillellipse(x,y,ra-10,ra-10); end; procedure dise2(f,y:integer); var co,ra,x:integer; begin ra:=5;co:=1;x:=50; outtextxy(300,10,'elementi secondo gruppo'); for a:=1 to f do begin setcolor(co); circle(x,y,ra);outtextxy(100+x,y,s[f+6]); ra:=ra+5;co:=co+1;delay(tx); end; setfillstyle(a,a); delay(tx);fillellipse(x,y,ra-10,ra-10); outtextxy(100,420,'da ALTO a BASSO :raggio,schermatura: AUMENTO'); outtextxy(100,430,'ionizzazione,affinit ,elettronegativit :DIMINUZIONE'); end; procedure dis2(f,y:integer); var co,ra,x:integer; begin ra:=5;co:=1;x:=200; outtextxy(200,20,'elementi secondo gruppo'); for a:=1 to f do begin setcolor(co); circle(x,y,ra);outtextxy(x,y,s[f+6]); ra:=ra+5;co:=co+1;delay(tx); end; setfillstyle(a,a); delay(tx);fillellipse(x,y,ra-10,ra-10); end; procedure dise3(f,y:integer); var co,ra,x:integer; begin ra:=5;co:=1;x:=50; outtextxy(300,10,'elementi settimo gruppo'); for a:=1 to f do begin setcolor(co); circle(x,y,ra);outtextxy(100+x,y,s[f+12]); ra:=ra+5;co:=co+1;delay(tx); end; setfillstyle(a,a); delay(tx);fillellipse(x,y,ra-10,ra-10); outtextxy(100,420,'da ALTO a BASSO :raggio,schermatura: AUMENTO'); outtextxy(100,430,'ionizzazione,affinit ,elettronegativit :DIMINUZIONE'); end; procedure dis3(f,y:integer); var co,ra,x:integer; begin ra:=5;co:=1;x:=350; outtextxy(300,30,'elementi settimo gruppo'); for a:=1 to f do begin setcolor(co); circle(x,y,ra);outtextxy(x,y,s[f+12]); ra:=ra+2;co:=co+1;delay(tx); end; setfillstyle(a,a); delay(tx);fillellipse(x,y,ra-5,ra-5); end; procedure dise4; var co,ra,y,x:integer; begin ra:=25;co:=1;y:=50;x:=50; outtextxy(30,10,'elementi 2 periodo'); for a:=1 to 8 do begin setcolor(co); circle(x,y,ra);circle(x,y,ra-2);outtextxy(x,y,p[a]); outtextxy(x,y+50+10*a,q[a]); ra:=ra-3;co:=co+1;x:=x+60;delay(tx); end; end; procedure die4; var co,ra,y,x:integer; begin ra:=5;co:=1;y:=250;x:=50; outtextxy(30,10,'elementi 2 periodo'); for a:=1 to 8 do begin setcolor(co); circle(x,y,ra);outtextxy(x,y,p[a]); ra:=ra+3;co:=co+1;x:=x+60;delay(tx); end; setcolor(c4); outtextxy(100,300,'DA SINISTRA verso DESTRA:variazione'); outtextxy(100,310,'raggio.....................DIMINUISCE'); outtextxy(100,320,'schermatura costante'); outtextxy(100,330,'numero atomico aumenta'); outtextxy(100,340,'energia ionizzazione.......AUMENTA'); outtextxy(100,350,'affinit elettronica.......AUMENTA'); outtextxy(100,360,'elettronegativit ..........AUMENTA'); end; procedure dise5; var co,ra,y,x:integer; begin ra:=30;co:=1;y:=50;x:=50; outtextxy(30,160,'elementi 3 periodo'); for a:=1 to 8 do begin setcolor(co); circle(x,y,ra);circle(x,y,ra-2);outtextxy(x,y,p[a+8]); outtextxy(x,y+50+10*a,q[a+8]); ra:=ra-3;co:=co+1;x:=x+60;delay(tx); end; end; procedure die5; var co,ra,y,x:integer; begin ra:=5;co:=1;y:=250;x:=50; outtextxy(30,160,'elementi 3 periodo'); for a:=1 to 8 do begin setcolor(co); circle(x,y,ra);outtextxy(x,y,p[a+8]); outtextxy(x,y+50+10*a,q[a+8]); ra:=ra+3;co:=co+1;x:=x+60;delay(tx); end; setcolor(c4); outtextxy(100,370,'DA SINISTRA verso DESTRA:variazione'); outtextxy(100,380,'raggio.....................DIMINUISCE'); outtextxy(100,400,'schermatura costante'); outtextxy(100,410,'numero atomico aumenta'); outtextxy(100,420,'energia ionizzazione.......AUMENTA'); outtextxy(100,430,'affinit elettronica.......AUMENTA'); outtextxy(100,440,'elettronegativit ..........AUMENTA'); end; procedure testo1(w:integer); begin outtextxy(w,330,'variazione raggio e volume atomico'); outtextxy(w,340,'in un gruppo di elementi'); outtextxy(w,350,'AUMENTA da alto verso il basso'); outtextxy(w,360,'con aumentare del numero atomico'); outtextxy(w,370,'per due motivi'); outtextxy(w,390,'viene occupato un livello sempre pi esterno'); outtextxy(w,400,'aumenta effetto schermante di elettroni interni'); outtextxy(w,410,'CONSEGUENZA:elettrone meno attirato'); outtextxy(w,420,'raggio pi grande'); end; procedure testo2(w:integer); begin outtextxy(w,330,'variazione raggio e volume atomico'); outtextxy(w,340,'in un periodo di elementi'); outtextxy(w,350,'DIMINUISCE da sinistra verso destra:da 1 a 8 gruppo'); outtextxy(w,360,'con aumentare del numero atomico'); outtextxy(w,370,'AUMENTA numero protoni del nucleo con aumento di Z'); outtextxy(w,390,'viene occupato sempre lo stesso ultimo livello'); outtextxy(w,400,'rimane costante effetto schermante di elettroni interni'); outtextxy(w,410,'CONSEGUENZA:elettrone pi attirato dal nucleo'); outtextxy(w,420,'raggio pi piccolo'); end; procedure pro1; begin setbkcolor(c0); setcolor(c3); testo1(200);frase;cancella; dise1(1,20);dise1(2,60);dise1(3,110);dise1(4,170);dise1(5,230); dise1(6,300);dise1(7,380);disco;setcolor(c4);frase; die1(1,20,30,1);die1(2,60,25,2);die1(3,110,20,3); die1(4,170,15,4);die1(5,230,10,5); die1(6,300,8,6);die1(7,380,5,7);frase;cancella; dise2(2,20);dise2(3,60);dise2(4,110);dise2(5,170);dise2(6,230); dise2(7,300);frase; die1(8,20,30,2);die1(9,60,25,3);die1(10,110,20,4); die1(11,170,15,5);die1(12,230,10,6); die1(13,300,8,7);frase;cancella; dise3(2,20);dise3(3,60);dise3(4,110);dise3(5,170);dise3(6,230); setcolor(c4);frase; die1(14,20,30,2);die1(15,60,25,3);die1(16,110,20,4); die1(17,170,15,5);die1(18,230,10,6);frase;cancella; testo2(200);frase;cancella; dise4;frase;die4;frase;cancella; dise5;frase;die5;frase;cancella; setcolor(c4);testo2(180);frase;cancella;disco; dis1(1,20);dis1(2,60);dis1(3,110);dis1(4,170);dis1(5,230); dis1(6,300);dis1(7,380); dis2(2,60);dis2(3,110);dis2(4,170);dis2(5,230);dis2(6,300); dis2(7,380); dis3(2,60);dis3(3,110);dis3(4,170);dis3(5,230);dis3(6,300); setcolor(c4);frase;cancella; end; begin pulire; c1:=2;c2:=3;c0:=0;C3:=4;C4:=14; writeln('Considerazioni sulla variazione del raggio e volume atomico'); writeln('energia ionizzazione,affinit elettronica,elettronegativit '); writeln('nei gruppi e nei periodi della tabella periodica'); writeln('Si evidenzia una variazione periodica del raggio lungo il periodo'); writeln('DIMINUISCE da sinistra verso destra '); writeln('dal primo gruppo allo ottavo gruppo'); writeln('------------------------------------------------'); writeln('AUMENTA in ogni gruppo da alto verso il basso'); writeln('---------------------------------------------------'); writeln('Energia di ionizzazione,Affinit elettronica,Elettronegativit '); writeln('DIMINUISCONO nel gruppo da alto verso il basso'); writeln('AUMENTANO nel periodo da sinistra verso destra'); repeat write('scrivi valore per velocit :da 1 veloce a 200 lento ');readln(tx); until tx<200; pausa;pulire;dati;grafica;pro1;closegraph;restorecrtmode;textmode(2); end.
program raggio4; (* didattico per mostrare variazione ionizzazione affinit elettroneg *) (* variante di raggio3 con visualizzazione schermatura *) uses crt,graph; const k=18; var a,c1,c2,c0,C3,C4,tx:integer; s:array[1..k] of string; g:array[1..k] of string; p:array[1..K] of string; q:array[1..k] of string; procedure grafica; var tp,sc:integer;stringa:string; begin tp:=0;sc:=0;stringa:='c:\scheda\'; initgraph(sc,tp,stringa); end; procedure fine; begin writeln('premi enter'); readln; end; procedure pausa; begin write('premi ENTER ');readln; end; procedure cancella; begin grafica; end; procedure pulire; begin clrscr; end; procedure dati; begin s[1]:=('H 1s1..Z=1');g[1]:='..un solo livello occupato'; s[2]:=('Li 2s1..Z=3');g[2]:='..due livelli occupati'; s[3]:=('Na 3s1..Z=11');g[3]:='..tre livelli occupati'; s[4]:=('K 4s1..Z=19');g[4]:='..quattro livelli occupati'; s[5]:=('Rb 5s1..Z=37');g[5]:='..5 livelli occupati'; s[6]:=('Cs 6s1..Z=55');g[6]:='..6 livelli occupati'; s[7]:=('Fr 7s1..Z=87');g[7]:='..7 livelli occupati'; s[8]:=('Be 2s2..Z=4');g[8]:='..2 livelli occupati'; s[9]:=('Mg 3s2..Z=12');g[9]:='..3 livelli occupati'; s[10]:=('Ca 4s2..Z=29');g[10]:='..4 livelli occupati'; s[11]:=('Sr 5s2..Z=38');g[11]:='..5 livelli occupati'; s[12]:=('Ba 6s2..Z=56');g[12]:='..6 livelli occupati'; s[13]:=('Ra 7s2..Z=88');g[13]:='..7 livelli occupati'; s[14]:=('F 2s2,2p5..Z=9');g[14]:='..2 livelli occupati'; s[15]:=('Cl 3s2,3p5.Z=17');g[15]:='..3 livelli occupati'; s[16]:=('Br 4s2,4p5..Z=35');g[16]:='..4 livelli occupati'; s[17]:=('I 5s2,5p5.Z=53');g[17]:='..5 livelli occupati'; s[18]:=('At 6s2,6p5..Z=85');g[18]:='..6 livelli occupati'; p[1]:=('Li'); q[1]:=('2s1..........Z=3'); p[2]:=('Be'); q[2]:=('2s2..........Z=4'); p[3]:=('B'); q[3]:=('2s2,2p1......Z=5'); p[4]:=('C'); q[4]:=('2s2,2p2......Z=6'); p[5]:=('N'); q[5]:=('2s2,2p3......Z=7'); p[6]:=('O'); q[6]:=('2s2,2p4......Z=8'); p[7]:=('F'); q[7]:=('2s2,2p5......Z=9'); p[8]:=('Ne'); q[8]:=('2s2,2p6......Z=10'); p[9]:=('Na'); q[9]:=('3s1..........Z=11'); p[10]:=('Mg'); q[10]:=('3s2..........Z=12'); p[11]:=('Al'); q[11]:=('3s2,3p1......Z=13'); p[12]:=('Si'); q[12]:=('3s2,3p2......Z=14'); p[13]:=('P'); q[13]:=('3s2,3p3......Z=15'); p[14]:=('S'); q[14]:=('3s2,3p4......Z=16'); p[15]:=('Cl'); q[15]:=('3s2,3p5......Z=17'); p[16]:=('Ar'); q[16]:=('3s2,3p6......Z=18'); end; procedure frase; begin outtextxy(50,400,'premi enter'); readln; end; procedure dise1(f,y:integer);(* raggio elementi 1 gruppo *) var co,ra,x:integer; begin co:=1;ra:=10;x:=50; outtextxy(300,10,'elementi primo gruppo'); for a:=1 to f do begin setcolor(co); circle(x,y,ra); outtextxy(100+x,y,s[f]); ra:=ra+5;co:=co+1;delay(tx); end; outtextxy(100,420,'da ALTO a BASSO :raggio,schermatura: AUMENTO'); outtextxy(100,430,'ionizzazione,affinit ,elettronegativit :DIMINUZIONE'); end; procedure die1(f,y,ra,co:integer);(* ionizzazione elementi 1 gruppo *) var x:integer; begin x:=50; outtextxy(300,10,'elementi primo gruppo'); setcolor(c4); circle(x,y,ra); outtextxy(300+x,y,'energia ionizzazione'); outtextxy(300+x,y+10,'affinit elettronica'); outtextxy(300+x,y+20,'elettronegativit '); delay(tx); end; procedure dis1(f,y:integer); var co,ra,x:integer; begin co:=1;ra:=10;x:=50; outtextxy(100,10,'elementi primo gruppo'); for a:=1 to f do begin setcolor(co); circle(x,y,ra); outtextxy(x,y,s[f]); ra:=ra+5;co:=co+1;delay(tx); end; setfillstyle(a,a); delay(tx);fillellipse(x,y,ra-10,ra-10); end; procedure dise2(f,y:integer); var co,ra,x:integer; begin ra:=5;co:=1;x:=50; outtextxy(300,10,'elementi secondo gruppo'); for a:=1 to f do begin setcolor(co); circle(x,y,ra);outtextxy(100+x,y,s[f+6]); ra:=ra+5;co:=co+1;delay(tx); end; setfillstyle(a,a); delay(tx);fillellipse(x,y,ra-10,ra-10); outtextxy(100,420,'da ALTO a BASSO :raggio,schermatura: AUMENTO'); outtextxy(100,430,'ionizzazione,affinit ,elettronegativit :DIMINUZIONE'); end; procedure dis2(f,y:integer); var co,ra,x:integer; begin ra:=5;co:=1;x:=200; outtextxy(200,20,'elementi secondo gruppo'); for a:=1 to f do begin setcolor(co); circle(x,y,ra);outtextxy(x,y,s[f+6]); ra:=ra+5;co:=co+1;delay(tx); end; end; procedure dise3(f,y:integer); var co,ra,x:integer; begin ra:=5;co:=1;x:=50; outtextxy(300,10,'elementi settimo gruppo'); for a:=1 to f do begin setcolor(co); circle(x,y,ra);outtextxy(100+x,y,s[f+12]); ra:=ra+5;co:=co+1;delay(tx); end; setfillstyle(a,a); delay(tx);fillellipse(x,y,ra-10,ra-10); outtextxy(100,420,'da ALTO a BASSO :raggio,schermatura: AUMENTO'); outtextxy(100,430,'ionizzazione,affinit ,elettronegativit :DIMINUZIONE'); end; procedure dis3(f,y:integer); var co,ra,x:integer; begin ra:=5;co:=1;x:=350; outtextxy(300,30,'elementi settimo gruppo'); for a:=1 to f do begin setcolor(co); circle(x,y,ra);outtextxy(x,y,s[f+12]); ra:=ra+2;co:=co+1;delay(tx); end; end; procedure dise4; var co,ra,y,x:integer; begin ra:=25;co:=1;y:=50;x:=50; outtextxy(30,10,'elementi 2 periodo'); for a:=1 to 8 do begin setcolor(co); circle(x,y,ra);circle(x,y,ra-2);outtextxy(x,y,p[a]); outtextxy(x,y+50+10*a,q[a]); ra:=ra-3;co:=co+1;x:=x+60;delay(tx); end; end; procedure die4; var co,ra,y,x:integer; begin ra:=5;co:=1;y:=50;x:=50; outtextxy(30,10,'elementi 2 periodo'); for a:=1 to 8 do begin setcolor(c4); circle(x,y,ra); ra:=ra+3;co:=co+1;x:=x+60;delay(tx); end; setcolor(c4); outtextxy(100,300,'DA SINISTRA verso DESTRA:variazione'); outtextxy(100,310,'raggio.....................DIMINUISCE'); outtextxy(100,320,'schermatura costante'); outtextxy(100,330,'numero atomico aumenta'); outtextxy(100,340,'energia ionizzazione.......AUMENTA'); outtextxy(100,350,'affinit elettronica.......AUMENTA'); outtextxy(100,360,'elettronegativit ..........AUMENTA'); end; procedure dise5; var co,ra,y,x:integer; begin ra:=30;co:=1;y:=50;x:=50; outtextxy(30,160,'elementi 3 periodo'); for a:=1 to 8 do begin setcolor(co); circle(x,y,ra);circle(x,y,ra-2);outtextxy(x,y,p[a+8]); outtextxy(x,y+50+10*a,q[a+8]); ra:=ra-3;co:=co+1;x:=x+60;delay(tx); end; end; procedure die5; var co,ra,y,x:integer; begin ra:=5;co:=1;y:=50;x:=50; outtextxy(30,160,'elementi 3 periodo'); for a:=1 to 8 do begin setcolor(c4); circle(x,y,ra); ra:=ra+3;co:=co+1;x:=x+60;delay(tx); end; setcolor(c4); outtextxy(100,370,'DA SINISTRA verso DESTRA:variazione'); outtextxy(100,380,'raggio.....................DIMINUISCE'); outtextxy(100,400,'schermatura costante'); outtextxy(100,410,'numero atomico aumenta'); outtextxy(100,420,'energia ionizzazione.......AUMENTA'); outtextxy(100,430,'affinit elettronica.......AUMENTA'); outtextxy(100,440,'elettronegativit ..........AUMENTA'); end; procedure testo1(w:integer); begin outtextxy(w,330,'variazione raggio e volume atomico'); outtextxy(w,340,'in un gruppo di elementi'); outtextxy(w,350,'AUMENTA da alto verso il basso'); outtextxy(w,360,'con aumentare del numero atomico'); outtextxy(w,370,'per due motivi'); outtextxy(w,390,'viene occupato un livello sempre pi esterno'); outtextxy(w,400,'aumenta effetto schermante di elettroni interni'); outtextxy(w,410,'CONSEGUENZA:elettrone meno attirato'); outtextxy(w,420,'raggio pi grande'); end; procedure testo2(w:integer); begin outtextxy(w,330,'variazione raggio e volume atomico'); outtextxy(w,340,'in un periodo di elementi'); outtextxy(w,350,'DIMINUISCE da sinistra verso destra:da 1 a 8 gruppo'); outtextxy(w,360,'con aumentare del numero atomico'); outtextxy(w,370,'AUMENTA numero protoni del nucleo con aumento di Z'); outtextxy(w,390,'viene occupato sempre lo stesso ultimo livello'); outtextxy(w,400,'rimane costante effetto schermante di elettroni interni'); outtextxy(w,410,'CONSEGUENZA:elettrone pi attirato dal nucleo'); outtextxy(w,420,'raggio pi piccolo'); end; procedure pro1; begin setbkcolor(c0); setcolor(c3); testo1(200);frase;cancella; dise1(1,20);dise1(2,60);dise1(3,110);dise1(4,170);dise1(5,230); dise1(6,300);dise1(7,380);setcolor(c4);frase; die1(1,20,30,1);die1(2,60,25,2);die1(3,110,20,3); die1(4,170,15,4);die1(5,230,10,5); die1(6,300,8,6);die1(7,380,5,7);frase;cancella; dise2(2,20);dise2(3,60);dise2(4,110);dise2(5,170);dise2(6,230); dise2(7,300);frase; die1(8,20,30,2);die1(9,60,25,3);die1(10,110,20,4); die1(11,170,15,5);die1(12,230,10,6); die1(13,300,8,7);frase;cancella; dise3(2,20);dise3(3,60);dise3(4,110);dise3(5,170);dise3(6,230); setcolor(c4);frase; die1(14,20,30,2);die1(15,60,25,3);die1(16,110,20,4); die1(17,170,15,5);die1(18,230,10,6);frase;cancella; testo2(200);frase;cancella; dise4;frase;die4;frase;cancella; dise5;frase;die5;frase;cancella; setcolor(c4);testo2(180);frase;cancella; outtextxy(300,10,'variazione raggi atomici'); dis1(1,20);dis1(2,60);dis1(3,110);dis1(4,170);dis1(5,230); dis1(6,300);dis1(7,380); dis2(2,60);dis2(3,110);dis2(4,170);dis2(5,230);dis2(6,300); dis2(7,380); dis3(2,60);dis3(3,110);dis3(4,170);dis3(5,230);dis3(6,300); setcolor(c4);frase;cancella; end; begin pulire; c1:=2;c2:=3;c0:=0;C3:=4;C4:=14; writeln('Considerazioni sulla variazione del raggio e volume atomico'); writeln('energia ionizzazione,affinit elettronica,elettronegativit '); writeln('nei gruppi e nei periodi della tabella periodica'); writeln('Si evidenzia una variazione periodica del raggio lungo il periodo'); writeln('DIMINUISCE da sinistra verso destra '); writeln('dal primo gruppo allo ottavo gruppo'); writeln('------------------------------------------------'); writeln('AUMENTA in ogni gruppo da alto verso il basso'); writeln('---------------------------------------------------'); writeln('Energia di ionizzazione,Affinit elettronica,Elettronegativit '); writeln('DIMINUISCONO nel gruppo da alto verso il basso'); writeln('AUMENTANO nel periodo da sinistra verso destra'); repeat write('scrivi valore per velocir :da 1 veloce a 200 lento ');readln(tx); until tx<200; pausa;pulire;dati;grafica;pro1;closegraph;restorecrtmode;textmode(2); end.
program raggio5; (* didattico per mostrare variazione raggio atomo catione anione *) uses crt,graph; const k=18; var a,c1,c2,c0,C3,C4,tx:integer; s:array[1..k] of string; g:array[1..k] of string; p:array[1..K] of string; q:array[1..k] of string; procedure grafica; var tp,sc:integer;stringa:string; begin tp:=0;sc:=0;stringa:='c:\scheda\'; initgraph(sc,tp,stringa); end; procedure fine; begin writeln('premi enter'); readln; end; procedure pausa; begin write('premi ENTER ');readln; end; procedure cancella; begin grafica; end; procedure pulire; begin clrscr; end; procedure dati; begin s[1]:=('H 1s1..Z=1....solo nucleo');g[1]:='..solo nucleo'; s[2]:=('Li 2s1..Z=3....1s2');g[2]:='..1s2'; s[3]:=('Na 3s1..Z=11...2s2,2p6');g[3]:='..tre livelli occupati'; s[4]:=('K 4s1..Z=19...3s2,3p6');g[4]:='..quattro livelli occupati'; s[5]:=('Rb 5s1..Z=37...4s2,4p6');g[5]:='..5 livelli occupati'; s[6]:=('Cs 6s1..Z=55...5s2,5p6');g[6]:='..6 livelli occupati'; s[7]:=('Fr 7s1..Z=87...6s2,6p6');g[7]:='..7 livelli occupati'; s[8]:=('Be 2s2..Z=4....7s2,7p6');g[8]:='..2 livelli occupati'; s[9]:=('Mg 3s2..Z=12...2s2,2p6');g[9]:='..3 livelli occupati'; s[10]:=('Ca 4s2..Z=29...3s2,3p6');g[10]:='..4 livelli occupati'; s[11]:=('Sr 5s2..Z=38...4s2,4p6');g[11]:='..5 livelli occupati'; s[12]:=('Ba 6s2..Z=56...5s2,5p6');g[12]:='..6 livelli occupati'; s[13]:=('Ra 7s2..Z=88...6s2,6p6');g[13]:='..7 livelli occupati'; s[14]:=('F 2s2,2p5..Z=9....2s2,2p6');g[14]:='..2 livelli occupati'; s[15]:=('Cl 3s2,3p5..Z=17...3s2,3p6');g[15]:='..3 livelli occupati'; s[16]:=('Br 4s2,4p5..Z=35...4s2,4p6');g[16]:='..4 livelli occupati'; s[17]:=('I 5s2,5p5..Z=53...5s2,5p6');g[17]:='..5 livelli occupati'; s[18]:=('At 6s2,6p5..Z=85...6s2,6p6');g[18]:='..6 livelli occupati'; end; procedure frase; begin outtextxy(50,400,'premi enter'); readln; end; procedure dise1(f,y:integer);(* raggio elementi 1 gruppo *) var co,ra,x:integer; begin co:=1;ra:=10;x:=50; outtextxy(300,10,'elementi primo gruppo'); for a:=1 to f do begin setcolor(co); circle(x,y,ra); outtextxy(100+x,y,s[f]); ra:=ra+5;co:=co+1;delay(tx); end; setfillstyle(a,a); delay(tx);fillellipse(x,y,ra-10,ra-10); fillellipse(x+350,y,ra-10,ra-10); outtextxy(100,420,'raggio atomo neutro > raggio catione '); outtextxy(100,430,'si perde ultimo livello '); outtextxy(50,350,'atomo neutro'); outtextxy(250+X,350,'catione'); end; procedure dise2(f,y:integer); var co,ra,x:integer; begin ra:=5;co:=1;x:=50; outtextxy(300,10,'elementi secondo gruppo'); for a:=1 to f do begin setcolor(co); circle(x,y,ra);outtextxy(100+x,y,s[f+6]); ra:=ra+5;co:=co+1;delay(tx); end; setfillstyle(a,a); delay(tx);fillellipse(x,y,ra-10,ra-10); fillellipse(350+x,y,ra-10,ra-10); outtextxy(100,420,'raggio atomo neutro > raggio catione '); outtextxy(100,430,'si perde ultimo livello '); outtextxy(50,350,'atomo neutro'); outtextxy(250+X,350,'catione'); end; procedure dise3(f,y:integer); var co,ra,x:integer; begin ra:=5;co:=1;x:=50; outtextxy(300,10,'elementi settimo gruppo'); for a:=1 to f do begin setcolor(co); circle(x,y,ra);outtextxy(100+x,y,s[f+12]); ra:=ra+5;co:=co+1;delay(tx); end; setfillstyle(a,a); delay(tx);fillellipse(x,y,ra-10,ra-10); fillellipse(400+x,y,ra+5,ra+5); outtextxy(100,420,'raggio atomo neutro < raggio anione '); outtextxy(100,430,'aumenta raggio ultimo livello '); outtextxy(50,350,'atomo neutro'); outtextxy(350+X,350,'anione'); end; procedure pro1; begin setbkcolor(c0);setcolor(c3);cancella; dise1(1,20);dise1(2,60);dise1(3,110);dise1(4,170);dise1(5,230); dise1(6,300);dise1(7,380);setcolor(c4);frase;cancella; dise2(2,20);dise2(3,60);dise2(4,110);dise2(5,170);dise2(6,230); dise2(7,300);frase;cancella; dise3(2,20);dise3(3,60);dise3(4,110);dise3(5,170);dise3(6,230); setcolor(c4);frase;cancella; end; begin pulire; c1:=2;c2:=3;c0:=0;C3:=4;C4:=14; writeln('Considerazioni sulla variazione del raggio e volume atomico'); writeln('ATOMO NEUTRO > CATIONE'); writeln('ATOMO NEUTRO < ANIONE'); writeln('------------------------------------------------'); repeat write('scrivi valore per velocit : da 1 veloce a 200 lento ');readln(tx); until tx<200; pausa;pulire;dati;grafica;pro1;closegraph;restorecrtmode;textmode(2); end.