esercizi di chimica con turbo pascal 1.1 su mac
Program RADIO1; (* grafico per simulazione RADIOATTIVITA *)
USES Memtypes,QuickDraw,OSIntf,ToolIntf;
VAR gPort: GrafPort; cassetto,foro,cancella,positiva,negativa,nucleo1,nucleo2:rect; cancellag:rect; a,t,tempo,x,y,g,h:integer; s1,s2,s3,s4:string;
procedure pausa; (* attesa che si prema enter *) begin moveto(10,10);drawstring('premi enter ');readln; end;
procedure grafica; (* attivazione comandi grafici *) BEGIN InitGraf(@thePort); initfonts; InitCursor; HideCursor; OpenPort(@gPort); textfont(9); textface([outline]); PenPat(white); BackPat(Black); EraseRect(gPort.portRect); FrameRect(gPort.portRect); end;
procedure testo(x,y:integer;frase:string); begin penpat(white); moveto(x,y);drawstring(frase); end;
procedure cancellatesto; begin setrect(cancella,1,1,500,110); penpat(black); paintrect(cancella); end;
procedure cancellagrafo; begin setrect(cancellag,1,1,500,370); penpat(black); paintrect(cancellag); moveto(1,1); end;
procedure reperto(k:integer); begin y:=60;x:=50; for g:=1 to k do begin for h:=1 to 30 do begin setrect(nucleo1,x,y,x+10,y+10);paintoval(nucleo1); x:=x+15; end; y:=y+20;x:=50; end; pausa; end;
procedure semivita; begin testo(20,20,'ogni nuclide radioattivo impiega un tempo caratteristico'); testo(20,30,'non modificabile in alcun modo,per trasformarsi mediante'); testo(20,40,'decadimento naturale,in altro elemento che puo decadere '); testo(20,50,'ulteriormente con proprio tempo caratteristico o risultare'); testo(20,60,'stabilizzato:si definisce TEMPO di DIMEZZAMENTO '); testo(20,70,'il tempo (anni,giorni,minuti,secondi...) che una certa'); testo(20,80,'quantita di sostanza impiega a dimezzarsi decadendo '); testo(20,100,'tale tempo risulta indipendente dalla quantita di sostanza'); testo(20,110,'dipende solo dalla natura della sostanza ');pausa; cancellagrafo; testo(20,20,'sia tempo dimezzamento = 100 anni e atomi iniziali= 1000'); testo(20,40,'atomi parentali,atomi derivati,tempo dimezzamento e trascorso'); testo(50,100,'1000.....................0...................0 = 0'); testo(50,120,'500......................500.................1 = 100'); testo(50,140,'250......................750.................2 = 200'); testo(50,160,'125......................875.................3 = 300'); testo(50,180,'62.......................938.................4 = 400'); testo(50,190,'31.......................969.................5 = 500');pausa; testo(200,220,'atomi iniziali=1000..in diminuzione'); testo(200,370,'tempo di dimezzamento'); moveto(50,200);lineto(50,350);lineto(400,350); moveto(52,350);lineto(52,200);testo(10,200,'1000'); testo(50,360,'0');pausa; moveto(100,350);lineto(100,275);lineto(50,275);testo(10,275,'500'); testo(100,360,'1');pausa; moveto(150,350);lineto(150,312);lineto(50,312);testo(10,312,'250'); testo(150,360,'2');pausa; moveto(200,350);lineto(200,331);lineto(50,331);testo(10,331,'125'); testo(200,360,'3');pausa; moveto(250,350);lineto(250,342);lineto(50,342);testo(10,342,'62'); testo(250,360,'4');pausa; moveto(300,350);lineto(300,346);lineto(50,346);testo(10,356,'31'); testo(300,360,'5');pausa; cancellagrafo; testo(20,20,'per determinare gli anni trascorsi dallo inizio del '); testo(20,40,'decadimento,si deve conoscere il numero di atomi presenti'); testo(20,60,'nel reperto da analizzare:'); testo(20,80,'atomi radioattivi parentali ancora presenti P '); testo(20,100,'atomi filiali derivati dai precedenti per decadimento F '); testo(20,120,'gli atomi iniziali erano quindi T = P + F '); testo(20,140,'si deve conoscere tempo di dimezzamento della sostanza Td '); testo(20,160,'la formula per calcolare il tempo totale trascorso risulta'); testo(20,200,'tempo = (Td/0.69) * 2.3 Lg(1 + F/P) ---> 3.3 * Td * Lg (1+F/P)'); pausa;cancellagrafo;grafica; testo(20,20,'campione originario con atomi radioattivi P: 1000 P --- 0 F'); reperto(16); testo(20,30,'passa 1 tempo di dimezzamento: (P =1/2 ) 500 P --- 500 F'); penpat(gray);reperto(8); testo(20,40,'passano 2 tempi di dimezzamento: (P = 1/4) 250 P --- 750 F '); penpat(gray);reperto(12); testo(20,50,'passano 3 tempi di dimezzamento: (P = 1/8) 125 P --- 875 F '); penpat(gray);reperto(14); end;
procedure iso(s1,s2,s3,s4:string); begin testo(100,180,s1); penpat(white);setrect(nucleo1,100,200,200,300);paintoval(nucleo1); for t:=1 to 30000 do write(''); testo(20,230,s2); moveto(20,250);lineto(150,250); testo(100,320,s3);testo(320,250,s4); penpat(gray);setrect(nucleo2,100,200,200,300);paintoval(nucleo2); end;
procedure isotopi; begin testo(20,20,'produzione di isotopi,spesso instabili,radioattivi'); testo(20,40,'si utilizzano come proiettili particelle neutre come NEUTRONI '); testo(20,60,'o cariche accelerate come PROTONI,ALFA'); testo(20,80,'per colpire NUCLIDI da trasformare in altri tipi o in ISOTOPI'); pausa; testo(20,100,'la reazione si scrive in due modi '); testo(20,120,'Nuclide bersaglio + proiettile --> Nuclide prodotto + emissione'); testo(50,140,'X (100,80) + He(4,2) ------> Y (103,82) + n(1,0) '); testo(50,160,'X (100,80) (He(4,2),n(1,0)) Y (103,82) '); pausa;cancellagrafo; s1:='X (100,80)';s2:='He(4,2)';s3:='Y (103,82)';s4:='n(1,0)'; iso(s1,s2,s3,s4); pausa;cancellagrafo; s1:='X (100,80)';s2:='p(1,1)';s3:='Y (100,81)';s4:='n(1,0)'; iso(s1,s2,s3,s4); pausa;cancellagrafo; s1:='X (100,80)';s2:='n(1,0)';s3:='Y (97,78)';s4:='He(4,2)'; iso(s1,s2,s3,s4); pausa;cancellagrafo; s1:='X (100,80)';s2:='n(1,0)';s3:='Y (101,81)';s4:='e(0,-1)'; iso(s1,s2,s3,s4); pausa;cancellagrafo; testo(20,20,'con particolari nuclidi come U 235 e Pu 239 '); testo(20,40,'bombardati con neutroni lenti,si verifica la FISSIONE'); testo(20,60,'con produzione di elementi piu leggeri e neutroni liberi'); testo(20,80,'e con liberazione di grandi quantita di energia '); testo(20,100,'cfr.programma sulla fissione....'); pausa; end;
procedure blocco1; begin setrect(cassetto,50,200,100,250); framerect(cassetto); setrect(foro,90,220,110,230);penpat(black); paintrect(foro); testo(20,20,'cassetta schermata,con foro,contenente sostanza radioattiva'); pausa;penpat(white); testo(250,320,'schermo rivelatore di radiazioni'); moveto(400,120);lineto(400,350);pausa; testo(20,30,'radiazione esce dal foro e viene rivelata da schermo '); moveto(60,225);lineto(400,225);pausa; testo(20,40,'applicando due placche,positiva e negativa,sul percorso'); testo(20,50,'della radiazione,questa viene scomposta in tre diversi tipi'); setrect(positiva,200,190,220,200);testo(200,180,'positiva'); paintrect(positiva); setrect(negativa,200,250,220,260); paintrect(negativa);testo(200,280,'negativa'); pausa; moveto(210,225);lineto(400,150); moveto(210,225);lineto(400,270);pausa; testo(410,150,'beta'); testo(410,270,'alfa'); testo(410,225,'gamma'); pausa; testo(20,70,'alfa:nuclei di He con 2 protoni e due neutroni,velocita media'); testo(20,80,'beta:elettroni,elevata velocita '); testo(20,90,'gamma:onde elettromagnetiche,velocita della luce ');pausa; end;
procedure blocco2; begin setrect(cassetto,50,200,100,250); framerect(cassetto); setrect(foro,90,220,110,230);penpat(black); paintrect(foro); penpat(white); moveto(400,120);lineto(400,350); moveto(60,225);lineto(400,225); setrect(positiva,200,190,220,200);testo(200,180,'positiva'); paintrect(positiva); setrect(negativa,200,250,220,260); paintrect(negativa);testo(200,280,'negativa'); moveto(210,225);lineto(400,150); moveto(210,225);lineto(400,270); testo(410,150,'beta'); testo(410,270,'alfa'); testo(410,225,'gamma'); testo(20,20,'interponendo una lamina di metallo M1,con spessore S1 '); testo(20,30,'sul cammino delle radiazioni,si nota che solo le alfa '); testo(20,40,'vengono bloccate,mentre le beta e le gamma la oltrepassano'); pausa;moveto(300,150);lineto(300,350); penpat(black);moveto(210,225);lineto(400,270);penpat(white); moveto(210,225);lineto(300,245);pausa; testo(20,50,'interponendo una lamina di metallo M1,con spessore S2 '); testo(20,60,'si nota che anche le beta vengono bloccate'); testo(20,70,'mentre le gamma la oltrepassano'); pausa;pensize(5,5);moveto(300,150);lineto(300,350);pensize(1,1); penpat(black);moveto(210,225);lineto(400,150);penpat(white); moveto(210,225);lineto(300,190);pausa; testo(20,80,'interponendo una lamina di metallo M1,con spessore S3 '); testo(20,90,'si nota che anche le gamma vengono bloccate'); pausa;pensize(10,10);moveto(300,150);lineto(300,350);pensize(1,1); penpat(black);moveto(300,225);lineto(400,225);pausa; cancellatesto;pausa; testo(20,20,'cambiando natura del metallo,si trova che occorrono spessori'); testo(20,30,'diversi dai precedenti per bloccare le radiazioni'); testo(20,40,'il PIOMBO si rivela come il metallo piu efficiente '); testo(20,60,'CONCLUSIONE:il potere di penetrazione o DUREZZA delle'); testo(20,70,'radiazioni aumenta dalle Alfa alle Beta alle Gamma '); testo(20,80,'e varia con la natura della sostanza interposta '); pausa; end;
procedure descrive; begin testo(20,20,'alcune sostanze naturali emettono spontaneamente delle '); testo(20,30,'radiazioni che si possono rivelare con opportuni strumenti'); testo(20,40,'RADIOATTIVITA:proprieta delle sostanze di emettere radiazioni'); testo(20,50,'-------------------------------------------------------------'); testo(20,80,'fasi descrittive da attivare '); testo(20,100,'1-descrizione degli strumenti per rivelare radiazioni'); testo(20,120,'2-analisi delle diverse radiazioni e delle loro proprieta'); testo(20,140,'3-analisi del potere di penetrazione delle radiazioni'); testo(20,160,'4-ipotesi sulla origine delle radiazioni'); testo(20,180,'5-tipi di decadimento radioattivo :alfa,e+,e-,k '); testo(20,200,'6-trasmutazione naturale delle sostanze per decadimento'); testo(20,220,'7-produzione di isotopi artificiali '); testo(20,240,'8-tempo di dimezzamento dei nuclidi '); testo(20,260,'9-esempi numerici a parte con RADIONU '); pausa; end;
procedure cade(s1,s2,s3:string); begin tempo:=15000; penpat(white); testo(100,180,s1);setrect(nucleo1,100,200,200,300);paintoval(nucleo1); for t:=1 to tempo do write(''); testo(250,250,s2);for t:=1 to tempo do write(''); testo(100,320,s3);setrect(nucleo2,100,200,200,300); penpat(gray);paintoval(nucleo2); end;
procedure betan; begin testo(20,40,'decadimento beta negativo N ---> P + e- + an'); setrect(nucleo1,150,100,160,110);paintoval(nucleo1); moveto(150,100);lineto(170,120); end;
procedure betap; begin testo(100,50,'decadimento beta positivo P ---> N + e+ + ne'); setrect(nucleo1,200,150,210,160);paintoval(nucleo1); moveto(200,150);lineto(180,130); end;
procedure alfa; begin testo(150,250,'decadimento alfa ---> He(4,2)'); testo(150,270,'seguito da decadimento beta positivo '); setrect(nucleo1,220,100,230,110);paintoval(nucleo1); moveto(230,100);lineto(200,150); end;
procedure diagramma; begin penpat(white); moveto(50,100);lineto(50,300);lineto(400,300); testo(50,90,'neutroni'); testo(400,330,'protoni'); moveto(50,300);pensize(2,2);lineto(300,100); testo(50,330,'zona di stabilita N = P '); for t:=1 to 10000 do write(''); pensize(10,10);moveto(50,300);lineto(100,250); moveto(100,250);lineto(200,50);pensize(1,1); testo(200,320,'zona di stabilita N > P ');for t:=1 to 10000 do write(''); testo(20,20,'sopra o sotto la linea di stabilita :decadimento '); pausa; betan;pausa;betap;pausa;alfa; end;
procedure decade; begin testo(20,20,'in generale un nucleo che risulti instabile '); testo(20,30,'tende a decadere per raggiungere maggiore stabilita'); testo(20,40,'con possibile cambiamento del numero di Massa e Atomico'); testo(20,50,'in simboli:un NUCLIDE si rappresenta con il simbolo'); testo(20,60,'dello elemento e il numero di massa A e atomico Z '); testo(20,80,' Uranio(238,92).....U(A,Z)....U(238,92) U(235,92) '); testo(20,100,'sono ISOTOPI gli elementi con medesimo Z e diverso A '); testo(20,150,'nuclidi instabili per rapporto neutroni/protoni '); testo(20,160,'superiore o inferiore a quello ottimale di stabilita'); testo(20,180,'se N >> P ....decadimento beta negativo :n --> p + e- + an'); testo(20,200,'se P >> N ....decadimento beta positivo :p --> n + e+ + ne'); testo(20,210,'se P >> N ....decadimento K :p + e- --> n'); testo(20,230,'se N >>>> P ..decadimento alfa :He(4,2) '); testo(20,250,'tendenza a spostarsi sulla linea di stabilita '); pausa;cancellagrafo;diagramma;pausa;cancellagrafo; testo(20,20,'decadimento ALFA :un nucleo emette una particella'); testo(20,30,'formata da 2 protoni e 2 neutroni :nucleo di elio He(4,2) '); testo(50,50,'nucleo ----------> He(4,2) ');pausa; testo(20,80,'decadimento BETA negativo :un NEUTRONE si trasforma in '); testo(20,90,'un PROTONE,emettendo un elettrone e un antineutrino '); testo(50,110,'n(1,0) ----------> p(1,+1) + e- + an ');pausa; testo(20,130,'decadimento BETA positivo :un PROTONE si trasforma in '); testo(20,140,'un NEUTRONE,emettendo un positrone e un neutrino '); testo(20,160,'p(1,+1) ----------> n(1,0) + e+ + ne ');pausa; testo(20,180,'decadimento CATTURA K :un PROTONE si trasforma in '); testo(20,190,'un NEUTRONE,catturando un elettrone del livello K '); testo(20,210,'p(1,+1) + e- -------> n(1,0) ');pausa; end;
procedure pro1; begin descrive; end;
procedure pro2; begin end;
procedure pro3; begin blocco1; end;
procedure pro4; begin blocco2; end;
procedure pro5; begin decade; end;
procedure pro6; begin testo(20,20,'come effetto del decadimento si puo verificare la '); testo(20,30,'variazione del numero di massa A e atomico Z '); testo(20,40,'con creazione di ISOTOPI o con TRASMUTAZIONE di elementi'); testo(20,5,'--------------------------------------------------------'); pausa;cancellatesto; testo(20,20,'decadimento ALFA :un nucleo emette una particella'); testo(20,30,'formata da 2 protoni e 2 neutroni :nucleo di elio He(4,2) '); testo(50,50,'nucleo ----------> He(4,2) '); testo(20,70,'nuclide diminuisce massa e numero atomico:trasmutazione'); testo(20,90,' X (A,Z) -----trasmutazione--> Y (A-4,Z-2) '); s1:='X(100,80)';s2:='alfa = He(4,2) ';s3:='Y(96,78) ';cade(s1,s2,s3); pausa;cancellagrafo; testo(20,20,'decadimento BETA negativo :un NEUTRONE si trasforma in '); testo(20,30,'un PROTONE,emettendo un elettrone e un antineutrino '); testo(50,50,'n(1,0) ----------> p(1,+1) + e- + an '); testo(20,70,'nuclide mantiene costante la massa e aumenta numero atomico'); testo(20,90,'X (A,Z) -----trasmutazione--> Y (A,Z+1) '); s1:='X(100,80)';s2:='beta- = e(0,-1) ';s3:='Y(100,81) ';cade(s1,s2,s3); pausa;cancellagrafo; testo(20,20,'decadimento BETA positivo :un PROTONE si trasforma in '); testo(20,30,'un NEUTRONE,emettendo un positrone e un neutrino '); testo(50,50,'p(1,+1) ----------> n(1,0) + e+ + ne '); testo(20,70,'nuclide mantiene costante la massa,diminuisce numero atomico'); testo(20,90,'X (A,Z) ------trasmutazione--> Y (A,Z-1) '); s1:='X(100,80)';s2:='beta+ = e(0,+1) ';s3:='Y(100,79) ';cade(s1,s2,s3); pausa;cancellagrafo; testo(20,20,'decadimento CATTURA K :un PROTONE si trasforma in '); testo(20,30,'un NEUTRONE,catturando un elettrone del livello K '); testo(50,50,'p(1,+1) + e- -------> n(1,0) '); testo(20,70,'nuclide mantiene costante la massa,diminuisce numero atomico'); testo(20,90,'X (A,Z) + e- --trasmutazione--> Y (A,Z-1) '); s1:='X(100,80)';s2:='cattura K = e(0,-1)';s3:='Y(100,79) ';cade(s1,s2,s3); pausa;cancellagrafo; end;
procedure pro7; begin isotopi; end;
procedure pro8; begin semivita; end;
procedure pro9; begin testo(20,20,'per esempi numerici attivare programma RADIONU:arrivederci'); pausa; end;
procedure fine; (* conferma uscita operazione *) begin writeln('fine operazione:confermare :premi enter'); readln; end;
procedure scelta; (* procedura con scelta opzioni e uscita *) var s,sn:string;opzione:integer; begin clearscreen; writeln('seleziona opzione analisi RADIAZIONI'); writeln('1...descrizione esperimento '); writeln('3...STRUMENTAZIONE per analisi radiazioni'); writeln('4...POTERE PENETRANTE o DUREZZA delle radiazioni '); writeln('5...DECADIMENTO alfa,beta+,beta-,cattura K '); writeln('6...TRASMUTAZIONE naturale per decadimento '); writeln('7...PRODUZIONE di ISOTOPI radioattivi con bombardamento'); writeln('8...TEMPO DI DIMEZZAMENTO isotopi radioattivi '); writeln('9...esempi numerici cfr.a parte RADIONU '); writeln('10...fine '); writeln('scelta =');readln(opzione); grafica; case opzione of 1:pro1; 2:pro2; 3:pro3; 4:pro4; 5:pro5; 6:pro6; 7:pro7; 8:pro8; 9:pro9; 10:fine; end; EraseRect(gPort.portRect); writeln('altra operazione?Esperimenti?:premi S...fine:premi N '); readln(sn); if sn='S' then scelta ; end;
begin (* programma di lancio *) clearscreen;
scelta; end.