esercizi di chimica con turbo pascal 1.1 su mac

 

program tabula2; 
(* legge formula,peso molecolare,valenza da archivio datix *)
(* calcola peso equivalente,numero moli,numero equivalenti *)
const k1=200;
 
var s,k:integer;    
    n:array[1..k1] of string;
    p:array[1..k1] of integer;
    v:array[1..k1] of integer;   
    pm,g,pe:real;
    fc:string;
{$I datix }
procedure stampare;
var a:integer;
begin
datix;
for a:=1 to k do
writeln(n[a]);
end;
procedure fine;
begin
writeln('premi enter');
readln;
end;
procedure pausa;
begin
writeln('premi ENTER per proseguire ');readln;
end;
procedure pro1;    (* cerca peso molecolare *)
var a:integer;
begin
write('scrivi formula  del composto:es.H2SO4..Ca(OH)2..');readln(fc);
writeln;
datix;
for a:=1 to k do
if n[a]=fc then 
begin 
 pm:=p[a];
 writeln('peso molecolare=',pm:8:2);end
else
end;
procedure pro2;  (* calcolo peso equivalente composti *)
var a:integer;
begin
write('scrivi formula  del composto:es.H2SO4..Ca(OH)2..');readln(fc);
writeln;
writeln('peso equivalente ELEMENTO   = peso atomico/valenza ');
writeln('peso equivalente ACIDO      = peso molecolare/numero H+  ');
writeln('peso equivalente IDROSSIDO  = peso molecolare/numero OH-  ');
writeln('peso equivalente OSSIDO     = peso molecolare/valenza*indice Met.');
writeln('peso equivalente SALE       = peso formula/cariche + o - ');
writeln('peso equivalente REDOX      = peso molecolare/elettroni trasferiti ');
writeln('-----------------------------------------------------------------');
writeln('cerca peso molecolare e valenza e poi esegue rapporto ');
writeln;
datix;
for a:=1 to k do
if n[a]=fc then 
begin 
 pe:=p[a]/v[a];
 writeln('peso molecolare        =',p[a]:8);
 writeln('valenza o denominatore =',v[a]:8);
 writeln('peso equivalente       =',pe:8:2);end
else
end;
procedure pro3; (* cerca numero moli presenti in grammi dati *)
var a:integer;
begin
write('scrivi grammi composto      ');readln(g);
write('scrivi formula  del composto:es.H2SO4..Ca(OH)2..');readln(fc);
writeln('moli composto = grammi/peso molecolare ');
writeln('cerca peso molecolare e poi esegue rapporto indicato ');
writeln;
datix;
for a:=1 to k do
if n[a]=fc then 
begin 
 writeln('peso molecolare        =',p[a]:8); 
 writeln('moli composto          =',g/p[a]:8:2);end
else
end;
procedure pro4; (* cerca numero equivalenti presenti in grammi dati *)
var a:integer;
begin
write('scrivi grammi composto      ');readln(g);
write('scrivi formula  del composto:es.H2SO4..Ca(OH)2..');readln(fc);
writeln('equivalenti composto = grammi/peso equivalente ');
WRITELN('----------------------------------------------------------------');
writeln('peso equivalente ELEMENTO   = peso atomico/valenza ');
writeln('peso equivalente ACIDO      = peso molecolare/numero H+  ');
writeln('peso equivalente IDROSSIDO  = peso molecolare/numero OH-  ');
writeln('peso equivalente OSSIDO     = peso molecolare/valenza*indice Met.');
writeln('peso equivalente SALE       = peso formula/cariche + o - ');
writeln('peso equivalente REDOX      = peso molecolare/elettroni trasferiti ');
writeln('------------------------------------------------------------------');
writeln('cerca peso molecolare e valenza ');
writeln('calcola: peso equivalente   = pesomolecolare/valenza ');
writeln('calcola: numero equivalenti = grammi/peso equivalente');
writeln;
datix;
for a:=1 to k do
if n[a]=fc then 
begin 
 writeln('peso molecolare        =',p[a]:8); 
 writeln('valenza o denominatore =',v[a]:8);
 writeln('peso equivalente       =',p[a]/v[a]:8:2);
 writeln('numero equivalenti     =',g/(p[a]/v[a]):8:2);end
else
end;
procedure scelta;
var ancora:integer;
begin
clearscreen;
writeln('seleziona tipo problema ');
writeln('1...CERCA peso molecolare composto da indicare');
writeln('2...CALCOLA peso equivalente di composto da indicare');
writeln('3...CALCOLA moli presenti in grammi di composto noti ');
writeln('4...CALCOLA equivalenti presenti in grammi di composto noti');
writeln('5...STAMPA TABELLA FORMULE MEMORIZZATE ');
writeln('9...fine ');
write('opzione=');readln(s);
clearscreen;
case s of
1:pro1;
2:pro2;
3:pro3;
4:pro4;
5:stampare;
9:fine;
end;
writeln('----------------------------');
writeln('altro problema:scrivi 1...fine:scrivi 2 ');readln(ancora);
if ancora =1 then scelta else fine;
end;
begin
clearscreen;
pm:=0;
writeln('programma:utilizza archivio formule,pesi molecolari,valenze');
WRITE('scrivi numero dati archiviati...');readln(k);
writeln('-----------------------------------------------------------');
writeln('premi enter');readln;
scelta;
end.