esercitazione a livello didattico-liceale
con turbo pascal , su argomenti di chimica vari

calcolo peso molecolare e peso formula

 

program pesof;
(* determinazione peso molecolare o peso formula con dati in archivio *)
uses crt;

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
clrscr;
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);
clrscr;
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
clrscr;
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.

 

 

 

 

 

ritorna