esercizi di chimica con turbo pascal 1.1 su mac
program tabula1; (* richiama tabella elementi con simboli,pesi atomici,elettronegativita*) const k=92;
var s,h1,va,indice:integer; n:array[1..k] of string; p:array[1..k] of integer; e:array[1..k] of real; sh:array[1..4] of string; h:array[1..4] of integer; p1,pm,pm1,moli,g,pe:real; s1:string;
{$I dati}
procedure fine; begin writeln('premi enter'); readln; end;
procedure pausa; begin writeln('premi ENTER per proseguire ');readln; end;
procedure calcola(s1:string;h1:integer); var a:integer; begin p1:=0; writeln('peso atomico':20,'peso*indice':20,'somma pesi*indici':20); writeln; for a:=1 to k do begin if n[a]=s1 then begin p1:=p[a]*h1; pm:=pm+p1; writeln(p[a]:20,p1:20:2,pm:20:2); end else end; end;
procedure pro1; var a,inizio,termine:integer; begin dati; write('scrivi numero atomico dal quale iniziare 1..2..92..');readln(inizio); write('scrivi numero atomico al quale finire ...1..2..92..');readln(termine); clearscreen; writeln('Z=':10,'simbolo':20,'massa atomica':20,'elettronegativita':20); writeln; for a:=inizio to termine do writeln(a:10,n[a]:20,p[a]:20,e[a]:20:2); end;
procedure pro2; (* calcola peso molecolare *) var ne,a:integer; begin write('scrivi numero elementi presenti ');readln(ne); writeln('inserire simboli presenti nella formula'); writeln('per ogni simbolo,scrivere numero totale atomi presenti'); writeln('se uno solo,scrivere 1....'); writeln('es.CaS...Ca=1..S=1....Ca(NO3)2...Ca=1...N=2...O=6 '); writeln; dati; for a:=1 to ne do begin write('simbolo elemento=');readln(sh[a]); write('indice elemento=');readln(h[a]); writeln; calcola(sh[a],h[a]); end; writeln; writeln('peso molecolare = ',pm:8:2); pm1:=pm; pm:=0; end;
procedure pro2a; (* calcola peso molecolare o equivalente*) var ne,a:integer; begin write('scrivi numero elementi presenti ');readln(ne); writeln('inserire simboli presenti nella formula'); writeln('per ogni simbolo,scrivere numero totale atomi presenti'); writeln('se uno solo,scrivere 1....'); writeln('es.CaS...Ca=1..S=1....Ca(NO3)2...Ca=1...N=2...O=6 '); writeln; dati; for a:=1 to ne do begin write('simbolo elemento=');readln(sh[a]); write('indice elemento=');readln(h[a]); writeln; calcola(sh[a],h[a]); end; writeln; write('valore per denominatore..valenza..');readln(va); pe:=pm/va; writeln('peso equivalente = ',pm/va:8:2); if indice=1 then writeln('numero equivalenti=',(g/pe):8:2); pm1:=pm; pm:=0; end;
procedure pro3; begin write('scrivi grammi composto ');readln(g); writeln('moli = grammi/peso molecolare '); writeln('passa a chiedere formula e calcola peso molecolare '); writeln; pro2; moli:=g/pm1; writeln('moli=grammi/peso molecolare ',moli:8:2); end;
procedure pro4; begin 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('si deve indicare simbolo o formula con indici '); writeln('si deve indicare il valore da assegnare al denominatore '); writeln('-----------------------------------------------------------------'); pausa; pro2a; end;
procedure pro5; begin writeln('numero equivalenti=grammi/peso equivalente '); write('scrivi numero grammi composto o elemento ');readln(g); writeln('inserisci simboli e indici per elemento o composto'); writeln('poi calcola peso equivalente ed esegui il rapporto'); pausa; indice:=1; pro4; indice:=0; end;
procedure scelta; var ancora:integer; begin clearscreen; writeln('seleziona tipo problema '); writeln('1...stampa tabella elementi'); writeln('2...calcolo peso molecolare composto da indicare'); writeln('3...calcolo moli presenti in grammi di composto'); writeln('4...calcolo peso equivalente di atomi o composti '); writeln('5...calcolo equivalenti presenti in grammi di composto o elemento'); writeln('9...fine '); write('opzione=');readln(s); clearscreen; case s of 1:pro1; 2:pro2; 3:pro3; 4:pro4; 5:pro5; 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('funzione programma:utilizzare tabella elementi'); writeln('---------------------------------------------------'); writeln('premi enter');readln; scelta; end.