esercizi di chimica con turbo pascal 1.1 su mac
program REDOX; (* determinazione numeri ossidazione INTERATTIVO *) (* si presenta un formula e si richiedono i numeri di ossidazione *)
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,+4,-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 clearscreen; writeln('seleziona opzione scrivendo il numero corrispondente '); writeln('1...determinare numeri ossidazione'); writeln('9...fine '); write('opzione=');readln(s); clearscreen; 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 clearscreen; writeln('funzione programma:determinazione numeri ossidazione'); writeln('---------------------------------------------------'); esatto:=0;errato:=0; writeln('premi enter');readln; scelta; end.