esercizi di chimica con turbo pascal 1.1 su mac
program riduz1; (* terminologia reazioni redox con valutazione finale *)
const n=20; var a,b,esatte,errate:integer; ox,rd:string[5]; s:array[1..n] of string[200]; os:array[1..n] of string[5]; ri:array[1..n] of string[5]; no:array[1..n] of string[10]; nr:array[1..n] of string[10];
procedure cancella; begin clearscreen; end;
procedure dati; begin s[1]:='2H2 + O2 -----> 2 H2O ';os[1]:='O';ri[1]:='H'; no[1]:='0..-2';nr[1]:='0..+1'; s[2]:='H2 + Cl2 -----> 2 HCl ';os[2]:='Cl';ri[2]:='H'; no[2]:='0..-1';nr[2]:='0..+1'; s[3]:='3H2 + N2 -----> 2 NH3 ';os[3]:='N';ri[3]:='H'; no[3]:='0..-3';nr[3]:='0..+1'; s[4]:='H2 + S -----> H2S ';os[4]:='S';ri[4]:='H'; no[4]:='0..-2';nr[4]:='0..+1'; s[5]:='S + O2 -----> SO2 ';os[5]:='O';ri[5]:='S'; no[5]:='0..-2';nr[5]:='0..+4'; s[6]:='Zn + 2HCl -----> ZnCl2 + H2 ';os[6]:='H';ri[6]:='Zn'; no[6]:='+1..0';nr[6]:='0..+2'; s[7]:='Fe + CuSO4 -----> FeSO4 + Cu ';os[7]:='Cu';ri[7]:='Zn'; no[7]:='+2..0';nr[7]:='0..+2'; s[8]:='Cu + AgNO3 -----> CuNO3 + Ag ';os[8]:='Ag';ri[8]:='Cu'; no[8]:='+1..0';nr[8]:='0..+1'; s[9]:='4Al + 3O2 -----> 2Al2O3 ';os[9]:='O';ri[9]:='Al'; no[9]:='0..-2';nr[9]:='0..+3'; s[10]:='C + O2 -----> CO2 ';os[10]:='O';ri[10]:='C'; no[10]:='0..-2';nr[10]:='0..+4'; s[11]:='P + HNO3 + H2O ----> H3PO4 + NO ';os[11]:='N';ri[11]:='P'; no[11]:='+5..+2';nr[11]:='0..+5'; s[12]:='Cu + H2SO4 ---->CuSO4 + SO2 + H2O ';os[12]:='S';ri[12]:='Cu'; no[12]:='+6..+4';nr[12]:='0..+2'; s[13]:='Cu + HNO3 ---->Cu(NO3)2 + NO + H2O ';os[13]:='N';ri[13]:='Cu'; no[13]:='+5..+2';nr[13]:='0..+2'; s[14]:='Ag + HClO3 + HCl ---->AgCl + H2O ';os[14]:='Cl';ri[14]:='Ag'; no[14]:='+5..-1';nr[14]:='0..+1'; s[15]:='FeCl2 + SnCl4 ---->FeCl3 + SnCl2 ';os[15]:='Sn';ri[15]:='Fe'; no[15]:='+4..+2';nr[15]:='+2..+3'; s[16]:='NH3 + O2 ---->NO + H2O ';os[16]:='O';ri[16]:='N'; no[16]:='0..-2';nr[16]:='-3..+2'; s[17]:='KMnO4 + HCl ----> KCl + MnCl2 +Cl2 H2O ';os[17]:='Mn';ri[17]:='Cl'; no[17]:='+7..+2';nr[17]:='-1..0'; s[18]:='KBrO3 + HBr + FeBr2 ---->FeBr3 + KBr+H2O';os[18]:='Br';ri[18]:='Fe'; no[18]:='+5..-1';nr[18]:='+2..+3'; s[19]:='Cl2+NaOH ---->NaCl+NaClO+H2O ';os[19]:='Cl';ri[19]:='Cl'; no[19]:='0..-1';nr[19]:='0..+1'; s[20]:='NaNO2+H2SO4 ---->NaHSO4+HNO3+NO+H2O ';os[20]:='N';ri[20]:='N'; no[20]:='+3..+2';nr[20]:='+3..+5';
end;
procedure test; begin dati; for a:=1 to b do begin writeln('reazione redox da esaminare '); writeln('si deve assegnare il numero di ossidazione ad ogni elemento'); writeln('si deve quindi osservare elemento che si ossida ,riduce '); writeln('si devono scrivere i simboli dello elemento ossidante,riducente'); writeln('---------------------------------------------------------------'); writeln(s[a]);writeln; write('simbolo ossidante =');readln(ox); write('simbolo riducente =');readln(rd); if ox=os[a] then begin writeln('esatto:ossidante=',ox); esatte:=esatte+1;end else begin writeln('errato:era ossidante=',os[a]);end; if rd=ri[a] then begin writeln('esatto:riducente=',rd);esatte:=esatte+1;end else writeln('errato:era riducente=',ri[a]); writeln; writeln('--------------------------------------------------'); writeln('confronta i cambiamenti di numeri di ossidazione '); writeln('elemento ossidante :',no[a]); writeln('elemento riducente :',nr[a]); writeln('--------------------------------------------------'); writeln('premi INVIO');readln;cancella; end; end;
begin cancella; repeat write('indica numero di prove da eseguire <21 ');readln(b); until b<21; cancella; test; writeln('risultato prova'); errate:=2*b-esatte; writeln('esatte=',esatte); writeln('errate=',errate); writeln('chiama insegnante per valutazione:spera in bene...'); writeln('poi premi INVIO'); readln;cancella; end.