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

calcolo formula minima

 

Program moleco;
(* esempio dimostrativo calcolo formula minima CFR.MINIX *)
uses crt;

var ga,gx,da,dx,ea,ex:real;
    pa,px:integer;
    a,x:string[5];
      numero,k,c1,c2:integer;   (* indici arrotondati *)
      min:real;

procedure cancella;
begin
clrscr;
end;



procedure esegue;
var ris:char;
begin 
min:=100;
  writeln('dalla analisi un composto risulta formato dai seguenti elementi');
  writeln('presenti con grammi indicati');
  writeln('---------------------------------------------------------------');
  write('scrivi il nome del primo elemento ');readln(a);
  write('scrivi il nome del secondo elemento ');readln(x);
  write('grammi di ',a,' ');readln(ga);
  write('grammi di ',x,' = ');readln(gx); 
  writeln('------------------------------------------');
  writeln('dividere i grammi di ogni elemento per il suo peso atomico');
  writeln('per ottenere il numero di moli per ogni elemento');
  writeln;
  write('peso atomico intero di ',a,' = ');readln(pa);
  write('peso atomico intero di ',x,' = ');readln(px); 
  da:=ga/pa;
  dx:=gx/px;
  min:=da;
  if ((dx<min) or (dx=min)) then min:=dx;
  writeln('moli di ',a,' = ',ga:10:6,' / ',pa,' = ',da:10:6);
  writeln('moli di ',x,' = ',gx:10:6,' / ',px,' = ',dx:10:6);
  writeln('---------------------------------------------------------------');
  writeln('determinare il rapporto tra le moli degli elementi');
  writeln('dividendo le moli trovate per il valore minore');
  ea:=da/min;
  ex:=dx/min;
  writeln('e arrotondare il risultato');
  writeln;
  writeln('moli di ',a,' = ',da:10:6,' / ',min:10:6,' = ',ea:10:6);
  writeln('moli di ',x,' = ',dx:10:6,' / ',min:10:6,' = ',ex:10:6);
  writeln('----------------------------------------------------');
  c1:=round(ea);
  c2:=round(ex);
  writeln('la formula minima risulta quindi con indici calcolati:');
  writeln;
  writeln(a,c1,x,c2);
  readln;
  cancella;
  write('per altra prova premi S ,per finire N  ');readln(ris);
  if ((ris='S') or (ris='s')) then esegue;
  end;
 

  
begin
cancella;
esegue;
end.
   
      
      

 

 

 

 

 

 

ritorna