problemi su tempo di dimezzamento

esci chimicaturbo.htm

Program RADIONU;
(* esempi tempo di dimezzamento e reazioni nucleari INTERATTIVO *)
uses crt;
VAR
a,esatte,errate,p,f,te,ts:integer;
s1,s2,s3,s4,r:string;
t,td,pa,fi,eta,loga:real;

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

procedure fine; (* conferma uscita operazione *)
begin
writeln('fine operazione:confermare :premi enter');
writeln('risposte esatte =',esatte);
writeln('risposte errate =',errate);
readln;
end;

procedure trasmuta(s1,s2,s3:string);
begin
clrscr;
writeln('scrivere la risposta indicando simbolo(A,Z) del nuclide prodotto');
writeln('es. Np(239,92) senza spazi tra simboli e poi ENTER');writeln;
writeln('se non conosci risposta,premi ENTER ');writeln;
writeln('scrivere il nuclide derivato mediante il decadimento:',s1);
writeln('dal nuclide radioattivo ',s2);
write('risposta=');readln(r);
if r=s3 then begin writeln('esatto');esatte:=esatte+1;end
else begin writeln('errato:era :',s3);errate:=errate+1;end;
s1:='';s2:='';s3:='';
pausa;
end;

procedure trasmuta1(s1,s2,s3:string);
begin
clrscr;
writeln('scrivere la risposta alfa,beta+,beta-,k');
writeln('per indicare tipo di decadimento e poi ENTER');writeln;
writeln('se non conosci risposta,premi ENTER ');writeln;
writeln('scrivere tipo di decadimento subito da nuclide: ',s2);
writeln('che si trasforma in nuclide ',s3);
write('risposta=');readln(r);
if r=s1 then begin writeln('esatto');esatte:=esatte+1;end
else begin writeln('errato:era :',s1);errate:=errate+1;end;
s1:='';s2:='';s3:='';
pausa;
end;

procedure collide(s1,s2,s3,s4:string);
begin
clrscr;
writeln('scrivere la risposta indicando il nuclide prodotto');
writeln('bombardando un nuclide con un proiettile noto');
writeln('e conoscendo il tipo di particella emessa:poi premi ENTER');
writeln('se non conosci risposta,premi ENTER ');writeln;
writeln('nuclide bersaglio ',s2);
writeln('proiettile usato ',s1);
writeln('particella emessa ',s4);
writeln('scrivi prodotto . U(238,92) ');
write('risposta=');readln(r);
if r=s3 then begin writeln('esatto');esatte:=esatte+1;end
else begin writeln('errato:era :',s3);errate:=errate+1;end;
s1:='';s2:='';s3:='';s4:='';
pausa;
end;

procedure collide1(s1,s2,s3,s4:string);
begin
clrscr;
writeln('scrivere la risposta indicando il proiettile usato');
writeln('bombardando un nuclide :si conosce anche prodotto di reazione');
writeln('e tipo di particella emessa:poi premi ENTER');
writeln('se non conosci risposta,premi ENTER ');writeln;
writeln('nuclide bersaglio ',s2);
writeln('nuclide prodotto ',s3);
writeln('particella emessa ',s4);
writeln('scrivi proiettile es. alfa,protone,neutrone ');
write('risposta=');readln(r);
if r=s1 then begin writeln('esatto');esatte:=esatte+1;end
else begin writeln('errato:era :',s1);errate:=errate+1;end;
s1:='';s2:='';s3:='';s4:='';
pausa;
end;

procedure collide2(s1,s2,s3,s4:string);
begin
clrscr;
writeln('scrivere la risposta indicando particella emessa');
writeln('bombardando un nuclide :si conosce anche prodotto di reazione');
writeln('e tipo di proiettile:poi premi ENTER');
writeln('se non conosci risposta,premi ENTER ');writeln;
writeln('nuclide bersaglio ',s2);
writeln('nuclide prodotto ',s3);
writeln('proiettile usato ',s1);
writeln('scrivi particella emessa es. alfa,protone,neutrone ');
write('risposta=');readln(r);
if r=s4 then begin writeln('esatto');esatte:=esatte+1;end
else begin writeln('errato:era :',s4);errate:=errate+1;end;
s1:='';s2:='';s3:='';s4:='';
pausa;
end;

procedure tempo(p,f,ts:integer;t:real);
begin
clrscr;
writeln('indicare tempo trascorso conoscendo atomi radioattivi presenti');
writeln('e atomi da loro derivati per decadimento');
writeln('si conosce anche tempo di dimezzamento ');
writeln;
writeln('atomi radioattivi parentali P =',p);
writeln('atomi derivati filiali F =',f);
writeln('tempo dimezzamento Td=',t:0:3);
write('scrivi tempo trascorso :numero intero:');readln(te);
if te=ts then begin writeln('esatto');esatte:=esatte+1;end
else begin writeln('errato:era :',ts);errate:=errate+1;end;
end;

procedure tempo1(p,f,ts:integer;t:real);
begin
clrscr;
writeln('indicare atomi radioattivi ancora presenti presenti');
writeln('conoscendo atomi derivati per decadimento,tempo trascorso');
writeln('si conosce anche tempo di dimezzamento ');
writeln;
writeln('atomi derivati filiali F =',f);
writeln('tempo dimezzamento Td=',t:0:3);
writeln('tempo trascorso t =',ts);
write('scrivi atomi parentali presenti :numero intero:');readln(te);
if te=p then begin writeln('esatto');esatte:=esatte+1;end
else begin writeln('errato:era :',p);errate:=errate+1;end;
end;

procedure formula(td,pa,fi:real);
begin
clrscr;
writeln('calcolo eta reperto in funzione di dati prefissati noti:');
writeln('tempo di dimezzamento ',td:0:5);
writeln('atomi parentali residui ',pa:0:5);
writeln('atomi filiali derivati ',fi:0:5);
eta:=td/0.693;
loga:=ln(1 +fi/pa);
eta:=eta*loga;
writeln('eta del reperto in funzione di dati noti = ',eta:0:5);
end;

procedure formula1;
var opzio:integer;
begin
clrscr;
writeln('calcolo eta reperto in funzione di dati da inserire:');
writeln('scrivi numeri interi o decimali ');writeln;
write('tempo di dimezzamento ');readln(td);
write('atomi parentali residui ');readln(pa);
write('atomi filiali derivati ');readln(fi);
eta:=td/0.693;
loga:=ln(1 +fi/pa);
eta:=eta*loga;
writeln('eta del reperto in funzione di dati inseriti = ',eta:0:5);pausa;
writeln;
write('per altro calcolo premi 1...per fine premi 2 ');readln(opzio);
if opzio = 1 then formula1;
end;


procedure pro1;
begin
(* parentale,filiale,eta,tempo dimezzamento,p,f,ts,t *)
tempo(500,500,100,100);pausa;
tempo(250,750,200,100);pausa;
tempo(750,250,50,100);pausa;
tempo(2000,2000,100,100);pausa;
tempo(20000,20000,200,200);pausa;
tempo(15000,5000,200,400);pausa;
tempo(5000,15000,800,400);pausa;
tempo(25,75,80,40);pausa;
writeln;
tempo1(500,500,100,100);pausa;
tempo1(250,750,200,100);pausa;
tempo1(750,250,50,100);pausa;
tempo1(1000,1000,100,100);pausa;
tempo1(20000,20000,200,200);pausa;
tempo1(15000,5000,200,400);pausa;
tempo1(5000,15000,800,400);pausa;
tempo1(25,75,80,40);pausa;


end;

procedure pro2;
begin
(* decadimento,radioattivo,derivato, s1,s2,s3 *)
trasmuta('alfa','Ce(140,58)','Ba(136,56)');
trasmuta('alfa','Nd(144,60)','Ce(140,58)');
trasmuta('beta+','Eu(152,63)','Sm(152,62)');
trasmuta('beta-','Er(179,68)','Tm(179,69)');
trasmuta('alfa','U(238,92)','Th(234,90)');
trasmuta('beta-','U(239,92)','Np(239,93)');
trasmuta('beta-','Np(239,93)','Pu(239,94)');
trasmuta('cattura K','Pd(106,46)','Rh(106,45)');
trasmuta('beta+','Re(186,75)','W(186,74)');
trasmuta('beta-','Po(209,84)','At(209,85)');
end;

procedure pro3;
begin
(* decadimento,radioattivo,derivato,s1,s2,s3 *)
trasmuta1('alfa','Ce(140,58)','Ba(136,56)');
trasmuta1('alfa','Nd(144,60)','Ce(140,58)');
trasmuta1('beta+','Eu(152,63)','Sm(152,62)');
trasmuta1('beta-','Er(179,68)','Tm(179,69)');
trasmuta1('alfa','U(238,92)','Th(234,90)');
trasmuta1('beta-','U(239,92)','Np(239,93)');
trasmuta1('beta-','Np(239,93)','Pu(239,94)');
trasmuta1('beta+','Pd(106,46)','Rh(106,45)');
trasmuta1('beta+','Re(186,75)','W(186,74)');
trasmuta1('beta-','Po(209,84)','At(209,85)');
end;

procedure pro4;
begin
(* proiettile,bersaglio,prodotto,emessa...s1,s2,s3,s4 *)
collide('alfa','Ce(140,58)','Nd(143,60)','n(1,0)');
collide('alfa','Nd(144,60)','Pm(147,61)','p(1,+1)');
collide('protone','Eu(152,63)','Gd(152,64)','n(1,0)');
collide('neutrone','Er(179,68)','Dy(176,66)','He(4,+2)');
collide('alfa','U(238,92)','Pu(241,94)','n(1,0)');
collide('neutrone','U(239,92)','Pa(239,91)','p(1,+1)');
collide('neutrone','Np(239,93)','Pa(236,91)','He(4,+2)');
collide('protone','Pd(106,46)','Rh(103,45)','He(4,+2)');
collide('protone','Re(186,75)','Os(186,76)','n(1,0)');
collide('alfa','Po(209,84)','At(212,85)','p(1,+1)');
end;

procedure pro5;
begin
(* proiettile,bersaglio,prodotto,emessa...s1,s2,s3,s4 *)
collide1('alfa','Ce(140,58)','Nd(143,60)','n(1,0)');
collide1('alfa','Nd(144,60)','Pm(147,61)','p(1,+1)');
collide1('protone','Eu(152,63)','Gd(152,64)','n(1,0)');
collide1('neutrone','Er(179,68)','Dy(176,66)','He(4,+2)');
collide1('alfa','U(238,92)','Pu(241,94)','n(1,0)');
collide1('neutrone','U(239,92)','Pa(239,91)','p(1,+1)');
collide1('neutrone','Np(239,93)','Pa(236,91)','He(4,+2)');
collide1('protone','Pd(106,46)','Rh(103,45)','He(4,+2)');
collide1('protone','Re(186,75)','Os(186,76)','n(1,0)');
collide1('alfa','Po(209,84)','At(212,85)','p(1,+1)');
end;

procedure pro6;
begin
(* proiettile,bersaglio,prodotto,emessa...s1,s2,s3,s4 *)
collide2('alfa','Ce(140,58)','Nd(143,60)','neutrone');
collide2('alfa','Nd(144,60)','Pm(147,61)','protone');
collide2('protone','Eu(152,63)','Gd(152,64)','neutrone');
collide2('neutrone','Er(179,68)','Dy(176,66)','alfa');
collide2('alfa','U(238,92)','Pu(241,94)','neutrone');
collide2('neutrone','U(239,92)','Pa(239,91)','protone');
collide2('neutrone','Np(239,93)','Pa(236,91)','alfa');
collide2('protone','Pd(106,46)','Rh(103,45)','alfa');
collide2('protone','Re(186,75)','Os(186,76)','neutrone');
collide2('alfa','Po(209,84)','At(212,85)','protone');
end;

procedure pro7;
begin
(* tempo decadimento,parentali,filiale ,td,pa,fi *)
formula(100,500,500);pausa;
formula(100,750,250);pausa;
formula(100,250,750);pausa;
formula(100,5000,10000);pausa;
formula(100,10000,5000);pausa;
end;

procedure pro8;
begin
formula1;
end;

procedure scelta; (* procedura con scelta opzioni e uscita *)
var s,sn:string;opzione:integer;
begin
clrscr;
writeln('seleziona opzione :tempi DIMEZZAMENTO e REAZIONI NUCLEARI');
writeln('1...tempo di dimezzamento e calcolo eta reperto');
writeln('2...trasmutazione alfa,beta+,beta-,cattura K:scrivere prodotto');
writeln('3...trasmutazione:scrivere tipo di decadimento');
writeln('4...trasmutazione artificiale:scrivere nuclide prodotto');
writeln('5...trasmutazione artificiale:scrivere proiettile usato');
writeln('6...trasmutazione artificiale:scrivere particella emessa');
writeln('7...formula per calcolo eta reperto:dati prefissati ');
writeln('8...formula per calcolo eta reperto:dati da fornire ');
writeln('9...fine ');
writeln('scelta =');readln(opzione);clrscr;
case opzione of
1:pro1;
2:pro2;
3:pro3;
4:pro4;
5:pro5;
6:pro6;
7:pro7;
8:pro8;
9:fine;
end;
writeln('risposte esatte =',esatte);
writeln('risposte errate =',errate);
writeln('altra operazione?Esperimenti?:premi S...fine:premi N '); readln(sn);
if sn='S' then scelta ;
end;

begin (* programma di lancio *)
clrscr;
esatte:=0;errate:=0;
scelta;
writeln('risposte esatte =',esatte);
writeln('risposte errate =',errate);
pausa;
end.