esercizi di chimica con turbo pascal 1.1 su mac
program pesof; (* determinazione peso molecolare o peso formula con dati in archivio *)
const e=20; var p1,p2,p3,p4,peso:real; numero,n1,n2,n3,n4,k:integer; s1,s2,s3,s4,simboli:string; m:array[1..e] of real; s:array[1..e] of string;
procedure fine; begin writeln('premi enter'); readln; end;
procedure pausa; begin writeln('premi enter');readln; end;
procedure stampa; begin writeln('simboli ammessi per formule e calcolo peso molecolare '); writeln('H,Na,K,Ca,Zn,Cu,Pb,Fe,Al,Mg,Ag,C,N,P,O,S,Sn,F,Cl,I,Br'); writeln('------------------------------------------------------'); end;
procedure dati; begin s[1]:='H';s[2]:='Na';s[3]:='K';s[4]:='Ca';s[5]:='Zn';s[6]:='Cu';s[7]:='Pb'; s[8]:='Fe';s[9]:='Al';s[10]:='Mg';s[11]:='C';s[12]:='N';s[13]:='P';s[14]:='O'; s[15]:='S';s[16]:='Sn';s[17]:='F';s[18]:='Cl';s[19]:='I';s[20]:='Br'; m[1]:=1;m[2]:=23;m[3]:=39;m[4]:=40;m[5]:=65;m[6]:=64;m[7]:=207; m[8]:=56;m[9]:=27;m[10]:=24;m[11]:=107;m[12]:=12;m[13]:=14;m[14]:=16; m[15]:=32;m[16]:=119;m[17]:=19;m[18]:=35;m[19]:=127;m[20]:=80;
end;
procedure pro2; begin stampa; write('simbolo primo elemento ');readln(s1); write('indice primo elemento ');readln(n1); write('simbolo secondo elemento ');readln(s2); write('indice secondo elemento ');readln(n2); dati; for k:=1 to e do begin if s1=s[k] then p1:=m[k]*n1; end; for k:=1 to e do begin if s2=s[k] then p2:=m[k]*n2; end; peso:=p1+p2; writeln('peso molecolare = ',peso:8:4); pausa; end;
procedure pro3; begin stampa; write('simbolo primo elemento ');readln(s1); write('indice primo elemento ');readln(n1); write('simbolo secondo elemento ');readln(s2); write('indice secondo elemento ');readln(n2); write('simbolo terzo elemento ');readln(s3); write('indice terzo elemento ');readln(n3); dati; for k:=1 to e do begin if s1=s[k] then p1:=m[k]*n1; end; for k:=1 to e do begin if s2=s[k] then p2:=m[k]*n2; end; for k:=1 to e do begin if s3=s[k] then p3:=m[k]*n3; end; peso:=p1+p2+p3;
writeln('peso molecolare = ',peso:8:4); pausa; end;
procedure pro4; begin stampa; write('simbolo primo elemento ');readln(s1); write('indice primo elemento ');readln(n1); write('simbolo secondo elemento ');readln(s2); write('indice secondo elemento ');readln(n2); write('simbolo terzo elemento ');readln(s3); write('indice terzo elemento ');readln(n3); write('simbolo quarto elemento ');readln(s4); write('indice quarto elemento ');readln(n4); dati; for k:=1 to e do begin if s1=s[k] then p1:=m[k]*n1; end; for k:=1 to e do begin if s2=s[k] then p2:=m[k]*n2; end; for k:=1 to e do begin if s3=s[k] then p3:=m[k]*n3; end; for k:=1 to e do begin if s4=s[k] then p4:=m[k]*n4; end; peso:=p1+p2+p3+p4; writeln('peso molecolare = ',peso:8:4); pausa; end;
procedure scelta; var ancora:integer; begin clearscreen; writeln('simboli ammessi per formule e calcolo peso molecolare '); writeln('H,Na,K,Ca,Zn,Cu,Pb,Fe,Al,Mg,Ag,C,N,P,O,S,Sn,F,Cl,I,Br'); writeln('------------------------------------------------------'); writeln('scrivi numero elementi presenti nella formula: 2,3,4 '); write('oppure scrivi 0 per uscire da programma ');readln(numero); clearscreen; case numero of 2:pro2; 3:pro3; 4:pro4; 0:fine; end; writeln('----------------------------'); writeln('altro problema:scrivi 1...fine:scrivi 2 ');readln(ancora); if ancora =1 then scelta else fine; end;
begin clearscreen; writeln('programma:determinazione peso molecolare composto'); writeln('in funzione della formula inserita '); writeln('simboli ammessi per formule e calcolo peso molecolare '); writeln('H,Na,K,Ca,Zn,Cu,Pb,Fe,Al,Mg,Ag,C,N,P,O,S,Sn,F,Cl,I,Br'); writeln('------------------------------------------------------'); writeln('premi enter');readln; scelta; end.