esercizi di chimica con turbo pascal 1.1 su mac
program EQU1; (* determinazione equivalenti chimici DIMOSTRATIVO *) (* si presenta un formula e si calcola equivalente chimico *)
const k=20; (* modificare in funzione dati archiviati *) var f:array[1..k] of string; n:array[1..k] of integer; m:array[1..k] of integer; s:integer; h:string; equi:real;
procedure fine; begin writeln('premi enter'); readln; end;
procedure pausa; begin writeln('premi enter per proseguire');readln; end;
procedure dati; begin f[1]:='HCl';f[2]:='NaCl';f[3]:='CaCl2';f[4]:='KCl';f[5]:='AlCl3'; n[1]:=1;n[2]:=1;n[3]:=2;n[4]:=1;n[5]:=3; f[6]:='HCl0';f[7]:='NaCl04';f[8]:='CaS03';f[9]:='KNO3'; n[6]:=1;n[7]:=1;n[8]:=2;n[9]:=1; f[10]:='Al(NO3)3'; n[10]:=3; f[11]:='HCl03';f[12]:='MgCO3';f[13]:='ZnSO3';f[14]:='CuCO3'; n[11]:=1;n[12]:=2;n[13]:=2;n[14]:=2; f[15]:='CuCl2'; n[15]:=2; f[16]:='NaOH';f[17]:='H3PO4';f[18]:='Ca(OH)2';f[19]:='KOH';f[20]:='Al(OH)3'; n[16]:=1;n[17]:=3;n[18]:=2;n[19]:=1; n[20]:=3; m[1]:=36;m[2]:=58;m[3]:=110;m[4]:=74;m[5]:=133;m[6]:=52; m[7]:=122;m[8]:=120;m[9]:=101;m[10]:=213;m[11]:=84;m[12]:=84; m[13]:=145;m[14]:=124;m[15]:=134;m[16]:=40;m[17]:=98;m[18]:=74; m[19]:=56;m[20]:=78; end;
procedure pro1; var a,p:integer;h:string; begin dati; writeln('------------------------------------------------------------'); repeat write('scrivi prove da eseguire..5..6..10..minore di ',k+1,'..');readln(p); until p<k+1; h:=' equivalente = peso molecolare/valenza :'; for a:=1 to p do begin equi:=m[a]/n[a]; writeln(f[a],h); writeln(m[a],'/',n[a],'=',equi:8:2); pausa; end; end;
procedure scelta; var ancora:integer; begin clearscreen; writeln('seleziona opzione scrivendo il numero corrispondente '); writeln('1...determinazione grammo equivalente'); writeln('9...fine '); write('opzione=');readln(s); clearscreen; case s of 1:pro1; 9:fine; end; writeln('----------------------------'); writeln('altro problema:scrivi 1...fine:scrivi 2 ');readln(ancora); if ancora =1 then scelta else fine; end;
begin clearscreen; writeln('funzione programma:determinazione grammoequivalente'); writeln('---------------------------------------------------'); writeln('premi enter');readln; scelta; end.