esercizi di chimica con turbo pascal 1.1 su mac
program massa1; (* calcolo massa molecolare *)
var a,p1,numero,ma,na:integer;
procedure cancella; begin clearscreen; end;
procedure chiede; var r:char; begin cancella; p1:=0; writeln('scrivi numero di elementi presenti nella formula ='); writeln('es. H2SO4 .... sono 3 elementi ... '); write('numero elementi = ');readln(numero); writeln; for a:=1 to numero do begin writeln('elemento in ordine :',a); write('scrivi massa atomica,intera,elemento :');readln(ma); write('scrivi numero di atomi di elemento in formula: ');readln(na); writeln('massa atomica*numero atomi =',ma*na); writeln('----------------------------------------'); p1:=p1+ma*na; end; WRITELN('massa molecolare = ',p1); writeln('-------------------------------------'); write('premi S per altra prova,premi N per finire ');readln(r); if ((r='S') or (r='s')) then chiede;
end;
begin cancella; chiede; writeln('premi INVIO '); readln;cancella; end.
program massa2; (* calcolo massa molecolare e confronta risultato *) const k=16;
var f:array[1..k] of string[15]; m:array[1..k] of integer; esatte,errate,totale,conta,ma:integer;
procedure cancella; begin clearscreen; end;
procedure dati; begin f[1]:='H2SO4';f[2]:='CH4';f[3]:='C2H40';f[4]:='Al203'; f[5]:='CaCO3';f[6]:='Al2(SO4)3';f[7]:='Ca(OH)2';f[8]:='H2SO3'; f[9]:='C6H12O6';f[10]:='K4Fe(CN)6';f[11]:='Ca3(PO4)2';f[12]:='NaCl'; f[13]:='CaS';f[14]:='H2CO3';f[15]:='HNO3';f[16]:='HClO2';
m[1]:=98;m[2]:=16;m[3]:=44;m[4]:=102; m[5]:=100;m[6]:=342;m[7]:=74;m[8]:=82; m[9]:=180;m[10]:=368;m[11]:=310;m[12]:=58; m[13]:=72;m[14]:=62;m[15]:=63;m[16]:=68; end;
procedure chiede; var r:char; begin cancella; writeln('formula composto = ',f[conta]); write('scrivi la massa molecolare,intera = ');readln(ma); if ma=m[conta] then begin writeln('esatto ');esatte:=esatte+1;end else begin writeln('errato:era = ',m[conta]);errate:=errate+1;end; writeln('-------------------------------------'); conta:=conta+1; write('premi S per altra prova,premi N per finire ');readln(r); if ((r='S') or (r='s')) then chiede;
end;
begin cancella; conta:=1; dati; esatte:=0;errate:=0;totale:=0; chiede; writeln('premi INVIO '); cancella; totale:=esatte+errate; writeln('esatte = ',esatte); writeln('errate = ',errate); writeln('totale = ',totale); writeln;writeln('premi INVIO '); readln;cancella; end.
program percento; (* calcoli percentuali INTERATTIVO *) const n=10; var f:array[1..n] of string[10]; esatte,errate,totale:integer; ris:char; r1,r2,r3,p1,p2,p3,k,a,c1,c2,c3,d,pf:integer; s1,s2,s3:string[5];
procedure cancella; begin clearscreen; end;
procedure dati; begin f[1]:='H2SO4';f[2]:='HNO3';f[3]:='CaSO4';f[4]:='NaNO3';f[5]:='CaSO3'; f[6]:='H2O2' ;f[7]:='H2O' ;f[8]:='HClO3' ;f[9]:='HClO4' ;f[10]:='H3PO4' ; END;
procedure esegue; begin cancella; writeln('scrivi grammi di ogni elemento presente nella formula'); writeln('moltiplicando il peso atomico intero per indice elemento'); writeln('I grammi vanno scritti come NUMERI INTERI '); writeln('-------------------------------------------------------'); writeln(f[k]); write('scrivi grammi primo elemento nella formula .');readln(p1); write('scrivi grammi secondo elemento nella formula ');readln(p2); write('scrivi grammi terzo elemento nella formula ');readln(p3); pf:=p1+p2+p3; c1:=round(p1*100/pf); c2:=round(p2*100/pf); c3:=round(p3*100/pf); writeln; writeln('esegui il calcolo delle percentuali su quaderno:poi '); writeln('scrivi le percentuali come INTERI arrotondati allo intero vicino '); writeln('es.35.8 ---> 36 35.5 ---->36 35.4 ----> 35 '); writeln('---------------------------------------------------------'); write('scrivi percentuale primo elemento =');readln(r1); d:=abs(r1-c1); if d>1 then begin writeln('errato:era ',c1);errate:=errate+1;end; write('scrivi percentuale secondo elemento =');readln(r2); d:=abs(r2-c2); if d>1 then begin writeln('errato:era ',c2);errate:=errate+1;end; write('scrivi percentuale terzo elemento =');readln(r3); d:=abs(r3-c3); if d>1 then begin writeln('errato:era ',c3);errate:=errate+1;end; writeln; writeln('------------------ soluzione ------------------------'); writeln('peso molecolare =',pf); writeln('percento 1 elemento =',p1,'*',100,'/',pf,' = ',c1); writeln('percento 2 elemento =',p2,'*',100,'/',pf,' = ',c2); writeln('percento 3 elemento =',p3,'*',100,'/',pf,' = ',c3); writeln('-----------------------------------------------------'); writeln('premi INVIO '); readln;cancella; esatte:=k*3-errate; k:=k+1; write('per altra prova premi S,per finire premi N : ');readln(ris); if ((ris='S') or (ris='s')) then esegue; end;
begin cancella; writeln('scopo del programma:eeguire calcoli percentuali degli elementi'); writeln('presenti in formule composti proposte'); writeln('si accettano solo valori INTERI'); writeln('si accettano risultati come veri anche se differiscono dal valore'); writeln('atteso di non pi di una unit,per motivi di approssimazione '); writeln('premi INVIO');readln;cancella; k:=1;esatte:=0;errate:=0;totale:=0; dati; esegue; cancella; writeln('risultato prova '); writeln('esatte =',esatte); writeln('errate =',errate); writeln('totale =',esatte+errate); writeln('chiama insegnante,poi premi INVIO ');readln;cancella; end.