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.