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.