esercitazione a livello didattico-liceale
con turbo pascal , su argomenti di chimica vari

richiesta di numeri di ossidazione

 

program REDOX;
(* determinazione numeri ossidazione INTERATTIVO *)
(* si presenta un formula e si richiedono i numeri di ossidazione *)
uses crt;
const k=20; (* modificare in funzione dati archiviati *)
var f:array[1..k] of string;
    n:array[1..k] of string;
    s,esatto,errato:integer;  
    h:string;


procedure stampa;
begin
writeln;
writeln('------risultato------------:chiama insegnante ');
writeln('risposte esatte  ',esatto:8);
writeln('risposte errate  ',errato:8);
writeln('premi enter');
readln;
end;

procedure fine;
begin
stampa;
writeln('premi enter');
readln;
end;


procedure pausa;
begin
writeln('premi enter per proseguire');readln;
end;

procedure dati;
begin
f[1]:='HCl';f[2]:='NaCl';f[3]:='CaCl2';f[4]:='KCl';f[5]:='AlCl3';
n[1]:='+1,-1';n[2]:='+1,-1';n[3]:='+2,-1';n[4]:='+1,-1';n[5]:='+3,-1';
f[6]:='HCl0';f[7]:='NaCl0';f[8]:='CaS03';f[9]:='KNO3';f[10]:='Al(NO3)3';
n[6]:='+1,+1,-2';n[7]:='+1,+1,-2';n[8]:='+2,+6,-2';n[9]:='+1,+5,-2';
f[10]:='Al(NO3)3'; n[10]:='+3,+5,-2';
f[11]:='HCl03';f[12]:='MgCO3';f[13]:='ZnSO3';f[14]:='CuCO3';f[15]:='CuCl2';
n[11]:='+1,+5,-2';n[12]:='+2,+4,-2';n[13]:='+2,+4,-2';n[14]:='+2,+4,-2';
f[15]:='CuCl2'; n[15]:='+2,-1';
f[16]:='HF';f[17]:='H3PO4';f[18]:='Ca(NO2)2';f[19]:='KBr';f[20]:='Al(SO3)3';
n[16]:='+1,-1';n[17]:='+1,+5,-2';n[18]:='+2,+3,-2';n[19]:='+1,-1';
f[20]:='Al(SO3)3'; n[20]:='+3,+4,-2';
end;

procedure pro1;
var a,p:integer;h,r:string;
begin
dati;
esatto:=0;errato:=0;
writeln('scrivi i numeri di ossidazione in ordine da sinistra a destra');
writeln('es.per H2S04...+1,+6,-2 e poi premi enter ');
writeln('se non sai,premi ENTER  ');
writeln('------------------------------------------------------------');
repeat
write('scrivi prove da eseguire..5..6..10..minore di ',k,'..');readln(p);
until p<k;
h:='  numeri ossidazione :';
for a:=1 to p do
begin
write(f[a],h);readln(r);
if r=n[a] then begin 
  writeln('esatto') ;esatto:=esatto+1;end
else begin writeln('errato:erano:',n[a]);errato:=errato+1;end;
end;
stampa;
end;


procedure scelta;
var ancora:integer;
begin
clrscr;
writeln('seleziona opzione scrivendo il numero corrispondente ');
writeln('1...determinare numeri ossidazione');
writeln('9...fine ');
write('opzione=');readln(s);
clrscr;
case s of
1:pro1;
9:fine;
end;
writeln('----------------------------');
writeln('altro problema:scrivi 1...fine:scrivi 2 ');readln(ancora);
if ancora =1 then scelta else fine;
end;


begin
clrscr;
writeln('funzione programma:determinazione numeri ossidazione');
writeln('---------------------------------------------------');
esatto:=0;errato:=0;
writeln('premi enter');readln;
scelta;
end.

 

 

 

 

 

ritorna