turbo pascal v.1.1 per mac
program elettro1; (* problemi su elettrolisi *) (* interattivo o con risposta automatica con ENTER *)
var s,esatte,errate:integer;
procedure fine; begin clearscreen; writeln('risposte esatte ',esatte:5); writeln('risposte errate ',errate:5); writeln('chiama insegnante per segnalare risultato...poi ENTER '); writeln('premi enter'); readln; end;
procedure ignea(a,ri,ox,redoxy:string); var rid,oxi,xri,xox,xred,redox:string; begin writeln('ellettrolisi ignea '); writeln('sintassi da usare per inserire dati attenzione a SPAZIO'); writeln('es. Na+ + 1e...Na '); writeln('es. Cl- - 1e...Cl '); writeln('es. 2Na+ + 2Cl-...2Na + Cl2 '); writeln('scrivere le semireazioni bilanciate '); writeln('------------------------------------------'); writeln(a); writeln('riduzione o ENTER ');readln(rid); writeln('ossidazione o ENTER ');readln(oxi); writeln('redox ');readln(redox); if (rid=ri) and (oxi=ox) and (redox=redoxy) then begin writeln('esatto');esatte:=esatte+1;end else begin writeln('errato:era '); writeln('riduzione ',ri); writeln('ossidazione ',ox); writeln('redox ',redoxy); errate:=errate+1;end; write('premi enter');readln; end;
procedure acida(a,ri,ox,redoxy:string); var rid,oxi,xri,xox,xred,redox:string; begin writeln('ellettrolisi soluzione acida'); writeln('sintassi da usare per inserire dati :attenzione SPAZIO'); writeln('es. Na+ + 1e...Na '); writeln('es. Cl- - 1e...Cl '); writeln('es. 2Na+ + 2Cl-...2Na + Cl2 '); writeln('scrivere le semireazioni bilanciate '); writeln('------------------------------------------'); writeln(a); writeln('riduzione o ENTER ');readln(rid); writeln('ossidazione o ENTER ');readln(oxi); writeln('redox ');readln(redox); if (rid=ri) and (oxi=ox) and (redox=redoxy) then begin writeln('esatto');esatte:=esatte+1;end else begin writeln('errato:era '); writeln('riduzione ',ri); writeln('ossidazione ',ox); writeln('redox ',redoxy); errate:=errate+1;end; write('premi enter');readln; end;
procedure basica(a,ri,ox,redoxy:string); var rid,oxi,xri,xox,xred,redox:string; begin writeln('ellettrolisi soluzione basica'); writeln('sintassi da usare per inserire dati:attenzione SPAZIO '); writeln('es. Na+ + 1e...Na '); writeln('es. Cl- - 1e...Cl '); writeln('es. 2Na+ + 2Cl-...2Na + Cl2 '); writeln('scrivere le semireazioni bilanciate '); writeln('------------------------------------------'); writeln(a); writeln('riduzione o ENTER ');readln(rid); writeln('ossidazione o ENTER ');readln(oxi); writeln('redox ');readln(redox); if (rid=ri) and (oxi=ox) and (redox=redoxy) then begin writeln('esatto');esatte:=esatte+1;end else begin writeln('errato:era '); writeln('riduzione ',ri); writeln('ossidazione ',ox); writeln('redox ',redoxy); errate:=errate+1;end; write('premi enter');readln; end;
procedure salina(a,ri,ox,redoxy:string); var rid,oxi,xri,xox,xred,redox:string; begin writeln('ellettrolisi soluzione salina'); writeln('sintassi da usare per inserire dati '); writeln('es. Na+ + 1e...Na '); writeln('es. Cl- - 1e...Cl '); writeln('es. 2Na+ +2Cl-...2Na + Cl2 '); writeln('scrivere le semireazioni bilanciate '); writeln('------------------------------------------'); writeln(a); writeln('riduzione o ENTER ');readln(rid); writeln('ossidazione o ENTER ');readln(oxi); writeln('redox ');readln(redox); if (rid=ri) and (oxi=ox) and (redox=redoxy) then begin writeln('esatto');esatte:=esatte+1;end else begin writeln('errato:era '); writeln('riduzione ',ri); writeln('ossidazione ',ox); writeln('redox ',redoxy); errate:=errate+1;end; write('premi enter');readln; write('premi enter');readln; end;
procedure reattivi; begin write('premi enter');readln; end;
procedure scelta; var ancora:integer; begin clearscreen; writeln('seleziona tipo problema elettrolisi:'); writeln('1...ignea'); writeln('2...soluzione acida '); writeln('3...soluzione basica '); writeln('4...soluzione salina '); writeln('5...ignea'); writeln('6...soluzione acida '); writeln('7...soluzione basica '); writeln('8...soluzione salina '); writeln('9...soluzione acida '); writeln('10...fine '); write('opzione=');readln(s); clearscreen; case s of 1:ignea('NaCl','2Na+ + 2e...2Na','2Cl- - 2e...Cl2','2Na+ + 2Cl-...2Na + Cl2'); 2:acida('HCl+H2O','2H+ + 2e...H2','2Cl- - 2e...Cl2','2H+ + 2Cl-...H2 + Cl2'); 3:basica('NaOH+H2O','2H2O + 2e...H2 + 2OH-','2OH- - 2e...0.502 + 2H+', '2H2O + 2OH-...H2 + 0.502 + 2H+'); 4:salina('NaCl + H20','2H20 + 2e...H2 + 2OH-','2Cl- - 2e...Cl2', '2H2O + 2Cl-...H2 + Cl2 + 2OH-'); 5:ignea('MgCl','Mg++ + 2e...Mg','2Cl- - 2e...Cl2','Mg++ + 2Cl-...Mg + Cl2'); 6:acida('HBr+H2O','2H+ + 2e...H2','2Br- - 2e...Br2','2H+ + 2Br-...H2 + Br2'); 7:basica('KOH + H2O','2H2O + 2e...H2 + 2OH-','2OH- - 2e...0.502 + 2H+', '2H2O + 2OH-...H2 + 0.502 + 2H+'); 8:salina('KBr + H20','2H20 + 2e...H2 + 2OH-','2Br- -2e...Br2', '2H2O + 2Br-...H2 + Br2 + 2OH-'); 9:acida('H2SO4 + H20','2H+ + 2e...H2','H2O - 2e...0.502 + 2H+', '2H+ + H20...H2 + 0.5O2 + 2H+'); 10:fine; end;
writeln('----------------------------'); writeln('altro problema:scrivi 1...fine:scrivi 2 ');readln(ancora); if ancora =1 then scelta else fine; end;
begin clearscreen; esatte:=0;errate:=0; writeln('-----------------------------'); writeln('NOTA:fare molta attenzione inserendo i dati richiesti '); writeln('per quanto riguarda maiuscole,minuscole,spaziature ecc.'); writeln('premi enter');readln; scelta; end.