esercizi di chimica con turbo pascal 1.1 su mac
Program vita1; (* esempi tempo di dimezzamento DIMOSTRATIVO *)
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 clearscreen; 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 clearscreen; 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 *) clearscreen; moli:='* 6.3 * 10^23'; scelta; end.