esercizi di chimica con turbo pascal 1.1 su mac
program minima; (* determinazione formula minima composto e formula vera *)
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 clearscreen; writeln('scrivi numero elementi da considerare 2..3..al massimo'); write('oppure scrivi 0 per uscire da programma ');readln(numero); clearscreen; 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 clearscreen; s:=' '; writeln('funzione programma:determinare formula minima o formula vera'); writeln('---------------------------------------------------'); writeln('premi enter');readln; scelta; end.