problemi tempo di dimezzamento
esci chimicaturbo.htm
Program vita1;
(* esempi tempo di dimezzamento
DIMOSTRATIVO *)
uses crt;
VAR nt,no,td,t,go,pr,gr:real;
a:integer;
moli:string;
procedure pausa;
begin
writeln('premi ENTER ');readln;
end;
procedure fine; (* conferma uscita operazione *)
begin
writeln('fine operazione:confermare :premi enter');
readln;
end;
procedure cancella;
begin
clrscr;
end;
procedure chiede3;
begin
write('numero atomi radioattivi iniziali No =');readln(no);
write('tempo di dimezzamento Td =');readln(td);
write('tempo trascorso t =');readln(t);
cancella;
end;
procedure chiede4;
begin
write('grammi radioattivi iniziali Go =');readln(go);
write('peso atomico elemento radioattivo Pr =');readln(pr);
write('tempo di dimezzamento Td =');readln(td);
write('tempo trascorso t =');readln(t);
no:=go/pr;
cancella;
end;
procedure calcola2(no,td,t:real);
begin
nt:=no*exp(-0.69*t/td);
writeln('atomi radioattivi iniziali No = ',no:0:0);
writeln('tempo di dimezzamento Td = ',td:0:2);
writeln('tempo trascorso t = ',t:0:2);
writeln;
writeln('calcolare atomi radioattivi Nt presenti dopo tempo
trascorso');
writeln('Nt = No * exp(-0.69 * t / Td ) ');
writeln;
writeln('atomi radioattivi residui Nt = ',nt:0:10);
pausa;
end;
procedure calcola3(no,td,t:real);
begin
nt:=no*exp(-0.69*t/td);
writeln('atomi radioattivi iniziali No = ',no:0:0);
writeln('tempo di dimezzamento Td = ',td:0:2);
writeln('tempo trascorso t = ',t:0:2);
writeln;
writeln('calcolare atomi radioattivi Nt presenti dopo tempo
trascorso');
writeln('Nt = No * exp(-0.69 * t / Td ) ');
writeln;
writeln('atomi radioattivi residui Nt = ',nt:0:10);
pausa;
end;
procedure calcola4(no,td,t:real);
begin
nt:=no*exp(-0.69*t/td);
gr:=nt*pr;
writeln('grammi radioattivi iniziali Go = ',go:0:2);
writeln('peso atomico elemento Pr = ',pr:0:2);
writeln('atomi radioattivi iniziali No = Go/Pr ',no:0:0,'
',moli);
writeln('tempo di dimezzamento Td = ',td:0:2);
writeln('tempo trascorso t = ',t:0:2);
writeln('calcolare grammi radioattivi Gr presenti dopo tempo
trascorso');
writeln('calcolare atomi radioattivi Nt presenti dopo tempo
trascorso');
writeln;
writeln('grammi atomi radioattivi Gr = ',gr:0:10);
writeln('atomi radioattivi residui Nt = Gr/Pr ',nt:0:10,'
',moli);
pausa;
end;
procedure descrive;
begin
writeln('esempio per calcolare atomi radioattivi ancora
presenti');
writeln('dopo che trascorso un tempo noto,conoscendo il
numero');
writeln('di atomi radioattivi inizialmente presenti o i
grammi,');
writeln('e conoscendo il tempo di dimezzamento caratteristico');
pausa;
end;
procedure pro1;
begin
descrive;
end;
procedure pro2;
begin
(* atomi radioattivi,tempo dimezzamento,tempo trascorso *)
calcola2(1000,100,100);
calcola2(1000,100,200);
calcola2(1000,100,300);
calcola2(1000,100,400);
calcola2(1000,100,500);
calcola2(1000,100,600);
calcola2(1000,100,700);
calcola2(1000,100,800);
calcola2(1000,100,900);
calcola2(1000,100,1000);
calcola2(1000,100,1100);
calcola2(1000,100,1200);
end;
procedure pro3;
begin
chiede3;
calcola3(no,td,t);
end;
procedure pro4;
begin
chiede4;
calcola4(no,td,t);
end;
procedure scelta; (* procedura con scelta opzioni e uscita *)
var s,sn:string;opzione:integer;
begin
clrscr;
writeln('seleziona opzione :atomi o grammi residui dopo tempo
noto');
writeln('1...decrizione');
writeln('2...atomi presenti dopo tempo trascorso
noto:DIMOSTRATIVO');
writeln('3...atomi presenti dopo tempo trascorso noto:SCRIVI
DATI');
writeln('4...atomi,grammi,presenti:SCRIVI grammi radioattivi
iniziali ');
writeln('9...fine ');
writeln('scelta =');readln(opzione);cancella;
case opzione of
1:pro1;
2:pro2;
3:pro3;
4:pro4;
9:fine;
end;
writeln('altra operazione?Esperimenti?:premi S...fine:premi N ');
readln(sn);
if sn='S' then scelta ;
end;
begin (* programma di lancio *)
clrscr;
moli:='* 6.3 * 10^23';
scelta;
end.