esercizi di chimica con turbo pascal 1.1 su mac
Program reazione4; (* test interattivo con conteggio risposte *) (* test su reazioni chimiche e BILANCIAMENTO *)
const n=14; VAR a,esatte,errate,totale,restanti:integer; s:string; d:array[1..n] of string; r:array[1..n] of string; b:array[1..n] of string;
procedure cancella; begin clearscreen; end;
procedure dati; begin d[1]:='CaO + H2O ----------->Ca(OH)2'; d[2]:='Mg(OH)2 + HCl ------>MgCl2 + H2O'; d[3]:='SO3 + Na2O --------->Na2SO4'; d[4]:='Zn + HNO3 ---------->Zn(NO3)2 + H2'; d[5]:='Fe + O2 ------------>Fe0'; d[6]:='Cl2 + O2 ----------->Cl205'; d[7]:='N2O3+ H2O ---------->HNO2'; d[8]:='FeO + HClO --------->Fe(ClO)2 + H2O'; d[9]:='H2 + Al ------------>AlH3'; d[10]:='F2+ H2 ------------>HF'; d[11]:='NaOH + N2O5 ------->NaNO3 + H2O'; d[12]:='NaCl + H2SO4 ------>Na2SO4 + HCl'; d[13]:='AgNO3 + KCl ------->KNO3 + AgCl'; d[14]:='CaCO3 ------------>CaO + CO2';
b[1]:='1CaO + 1H2O ----------->1Ca(OH)2'; b[2]:='1Mg(OH)2 + 2HCl ------>1MgCl2 + 2H2O'; b[3]:='1SO3 + 1Na2O --------->1Na2SO4'; b[4]:='1Zn + 2HNO3 ---------->1Zn(NO3)2 + 1H2'; b[5]:='2Fe + O2 ------------>2Fe0'; b[6]:='2Cl2 + 5O2 ----------->2Cl205'; b[7]:='1N2O3+ 1H2O ---------->2HNO2'; b[8]:='1FeO + 2HClO --------->1Fe(ClO)2 + 1H2O'; b[9]:='3H2 + 2Al ------------>2AlH3'; b[10]:='1F2+ 1H2 ------------>2HF'; b[11]:='2NaOH + 1N2O5 ------->2NaNO3 + 1H2O'; b[12]:='2NaCl + 1H2SO4 ------>1Na2SO4 + 2HCl'; b[13]:='1AgNO3 + 1KCl ------->1KNO3 + 1AgCl'; b[14]:='1CaCO3 ------------>1CaO + 1CO2';
r[1]:='1,1,1'; r[2]:='1,2,1,2'; r[3]:='1,1,1'; r[4]:='1,2,1,1'; r[5]:='2,1,2'; r[6]:='2,5,2'; r[7]:='1,1,2'; r[8]:='1,2,1,1'; r[9]:='3,2,2'; r[10]:='1,1,2'; r[11]:='2,1,2,1'; r[12]:='2,1,1,2'; r[13]:='1,1,1,1'; r[14]:='1,1,1';
end;
begin cancella; dati; writeln('scrivi la risposta,indicando i coefficienti per bilanciare'); writeln('es.1,1,2 '); writeln('se non li conosci,premi INVIO '); writeln('esempio '); writeln(' KOH + H2SO3 --------->K2SO3 + H2O ----->2,1,1,2'); writeln(' 2KOH + H2SO4 --------->K2SO4 + 2H2O '); writeln('------------------------------------------------------'); esatte:=0;errate:=0;totale:=0; for a:=1 to n do begin write(d[a]);write('---------->'); readln(s); if s=r[a] then begin writeln('esatto');esatte:=esatte+1;end else begin write('errato,era : ');writeln(r[a]); writeln(b[a]); errate:=errate+1;end;restanti:=n-(esatte+errate); writeln('--------------------------------------------------'); writeln('esatte=',esatte,' errate=',errate,' restanti=',restanti); writeln('===================================================='); end; totale:=esatte+errate; writeln('premi INVIO per finire ');readln;cancella; writeln('risposte esatte =',esatte, ' su totale domande=',totale); writeln('risposte errate =',errate, ' su totale domande=',totale); writeln('chiama insegnante per valutazione,poi premi INVIO'); readln;cancella; end.