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.