equilibrio dinamico

esci chimicaturbo.htm

program minima;
(* determinazione formula minima composto e formula vera *)
uses crt;
var p1,p2,p3,m1,m2,m3,moli1,moli2,moli3,n,pesomo,minimo,vera:real;
h1,h2,h3,numero,mola1,mola2,mola3:integer;
e1,e2,e3,s:string;

procedure fine;
begin
writeln('premi enter');
readln;
end;

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

procedure pro2;
begin
write('scrivi simbolo primo elemento es. H...Ca..');readln(e1);
write('scrivi simbolo secondo elemento es. Br..S...');readln(e2);
write('peso molecolare noto:se ignoto scrivere 0 ');readln(pesomo);
write('grammi primo elemento ');readln(p1);
write('peso atomico primo elemento ');readln(m1);
write('grammi secondo elemento ');readln(p2);
write('peso atomico secondo elemento ');readln(m2);
WRITELN('----------------------------------------------------------');
writeln('determinazione moli per ogni elemento :massa/peso atomico');
moli1:=p1/m1;
moli2:=p2/m2;
if moli1<moli2 then n:=moli1 else if moli1>moli2 then n:=moli2 else n:=moli1;
writeln('moli primo elemento ',moli1:8:3);
writeln('moli secondo elemento ',moli2:8:3);
writeln('----------------------------------------------------------');
writeln('si dividono le moli per il numero piu piccolo ');
moli1:=moli1/n;
moli2:=moli2/n;
mola1:=round(moli1);
mola2:=round(moli2);
writeln('moli1 = ',mola1:8,' moli2 = ',mola2:8);
writeln('-------------------------------------------------------------');
minimo:=m1*mola1+m2*mola2;
writeln('peso della formula minima ',minimo:8:2);
writeln('indici della formula minima ');
writeln('primo indice =',mola1:8,' secondo indice =',mola2:8);
writeln('formula minima = ',e1,mola1,s,e2,mola2);
writeln('----------------------------------------------------------');
if pesomo>0 then
begin
vera:=pesomo/minimo;
writeln('rapporto tra peso molecolare e peso formula minima ',vera:8:2);
writeln('determinazione indici formula vera ');
writeln('peso molecolare/peso formula minima');
h1:=round(mola1*vera);
h2:=round(mola2*vera);
writeln('indice1 =',h1:8,' indice2 =',h2:8);
writeln('formula vera = ',e1,h1,s,e2,h2);
writeln('----------------------------------------------------------');
end
else
pausa;

end;

procedure pro3;
begin
write('scrivi simbolo primo elemento es. H...Ca..');readln(e1);
write('scrivi simbolo secondo elemento es. Br..S...');readln(e2);
write('scrivi simbolo terzo elemento es. Cl..O...');readln(e3);
write('peso molecolare noto:se ignoto scrivere 0 ');readln(pesomo);
write('grammi primo elemento ');readln(p1);
write('peso atomico primo elemento ');readln(m1);
write('grammi secondo elemento ');readln(p2);
write('peso atomico secondo elemento ');readln(m2);
write('grammi terzo elemento ');readln(p3);
write('peso atomico terzo elemento ');readln(m3);
WRITELN('----------------------------------------------------------');
writeln('determinazione moli per ogni elemento :massa/peso atomico');
moli1:=p1/m1;
moli2:=p2/m2;
moli3:=p3/m3;
if (moli1<moli2) and (moli1<moli3) then n:=moli1
else
if (moli2<moli1) and (moli2<moli3) then n:=moli2
else
if (moli3<moli1) and (moli3<moli2) then n:=moli3
else if (moli1=moli2) and (moli1=moli3) and (moli2=moli3) then n:=moli1;
if moli1<moli2 then n:=moli1 else if moli1>moli2 then n:=moli2 else n:=moli1;
writeln('moli primo elemento ',moli1:8:3);
writeln('moli secondo elemento ',moli2:8:3);
writeln('moli terzo elemento ',moli3:8:3);
writeln('----------------------------------------------------------');
writeln('si dividono le moli per il numero piu piccolo ');
moli1:=moli1/n;
moli2:=moli2/n;
moli3:=moli3/n;
mola1:=round(moli1);
mola2:=round(moli2);
mola3:=round(moli3);
writeln('moli1 = ',mola1:8,' moli2 = ',mola2:8,' moli3 = ',mola3:8);
writeln('-------------------------------------------------------------');
minimo:=m1*mola1+m2*mola2+m3*mola3;
writeln('peso della formula minima ',minimo:8:2);
writeln('indici della formula minima ');
writeln('primo =',mola1:8,' secondo =',mola2:8,' terzo =',mola3:8);
writeln('formula minima = ',e1,mola1,s,e2,mola2,s,e3,mola3);
writeln('----------------------------------------------------------');
if pesomo>0 then
begin
vera:=pesomo/minimo;
writeln('rapporto tra peso molecolare e peso formula minima ',vera:8:2);
writeln('determinazione indici formula vera ');
writeln('peso molecolare/peso formula minima');
h1:=round(mola1*vera);
h2:=round(mola2*vera);
h3:=round(mola3*vera);
writeln('indice1 =',h1:8,' indice2 =',h2:8,' indice3 =',h3:8);
writeln('formula vera = ',e1,h1,s,e2,h2,s,e3,h3);
writeln('----------------------------------------------------------');
end
else
pausa;
end;


procedure scelta;
var ancora:integer;
begin
clrscr;
writeln('scrivi numero elementi da considerare 2..3..al massimo');
write('oppure scrivi 0 per uscire da programma ');readln(numero);
clrscr;
case numero of
2:pro2;
3:pro3;
0:fine;
end;
writeln('----------------------------');
writeln('altro problema:scrivi 1...fine:scrivi 2 ');readln(ancora);
if ancora =1 then scelta else fine;
end;


begin
clrscr;
s:=' ';
writeln('funzione programma:determinare formula minima o formula vera');
writeln('---------------------------------------------------');
writeln('premi enter');readln;
scelta;
end.