turbo pascal v.1.1 per mac
program pile; (* problemi su pile SCHEMI PILE,TENSIONE,SEMIREAZIONI *)
var s,esatte,errate:integer; schema1,pila,y:string;
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 pila1(a,b,c,d,y:string); (* schema pila *) begin writeln('schema pila An/An+//Bn+/Bn senza spazi '); writeln('-------------------------------------------'); writeln('scrivi schema della pila con elementi indicati '); writeln(a,b,c,d); readln(pila); schema1:=y; if pila=y then BEGIN writeln('esatto ',schema1);esatte:=esatte+1;end else begin writeln('errato:era ');writeln(schema1);errate:=errate+1;end; writeln('premi enter');readln; end;
procedure pila2(a,b,c,d,y:string;p,n:real); (* schema pila e tensione *) var pp,pn,polop,polon,de:real; begin writeln('schema pila An/An+//Bn+/Bn senza spazi '); writeln('----------------------------------------------'); writeln('scrivi schema della pila con elementi indicati '); writeln(a,b,c,d); readln(pila); write('potenziale polo positivo +0.1 -0.1 ');readln(pp); write('potenziale polo negativo +0.1 -0.1 ');readln(pn); polon:=n;polop:=p; de:=p-n; schema1:=y; if pila=y then BEGIN writeln('esatto ',schema1);esatte:=esatte+1;end else begin writeln('errato:era ');writeln(schema1);errate:=errate+1;end; if (polon=pn) and (polop=pp) then BEGIN writeln('esatto DE=',de:3:4);esatte:=esatte+1;end else begin writeln('errato:era ');writeln(p:8:3,'...',n:8:3); writeln('differenza potenziale =',de:8:3); errate:=errate+1;end; writeln('premi enter');readln; end;
procedure pila3(a,b,c,d,y,ra,rc:string); (* schema pila e semireazioni *) var sra,src,rac,raa:string; begin writeln('schema pila An/An+//Bn+/Bn senza spazi '); writeln('come scrivere semireazioni '); writeln('Mg-1e...Mg+ Mg-2e...Mg++ Mg++ +2e...Mg Mg+1e...Mg+'); writeln('fare attenzione alle spaziature'); writeln('-------------------------------------------------------'); rac:=rc;raa:=ra; writeln('scrivi schema della pila con elementi indicati '); writeln(a,b,c,d); readln(pila); writeln('semireazione anodo ');readln(sra); writeln('semireazione catodo ');readln(src); schema1:=y; if pila=y then BEGIN writeln('esatto ',schema1);esatte:=esatte+1;end else begin writeln('errato:era ');writeln(schema1);errate:=errate+1;end; if (sra=raa) and (src=rac) then BEGIN writeln('esatto ',raa,'...',rac );esatte:=esatte+1;end else begin writeln('errato:era ');writeln('anodo......',raa); writeln('catodo.....',rac);errate:=errate+1;end; writeln('premi enter');readln; end;
procedure scelta; var ancora:integer; begin clearscreen; writeln('seleziona tipo problema :'); writeln('1...schema pila'); writeln('2...schema pila e potenziale '); writeln('3...schema pila '); writeln('4...schema pila e potenziale '); writeln('5...schema pila '); writeln('6...schema pila e potenziale '); writeln('7...schema pila e reazioni'); writeln('8...schema pila e reazioni '); writeln('9...schema pila '); writeln('10...schema pila e potenziale '); writeln('11...fine '); write('opzione=');readln(s); clearscreen; case s of 1:pila1('Cu ','Cu++ ','Na ','Na+ ','Na/Na+//Cu++/Cu'); 2:pila2('Cu ','Cu++ ','Zn ','Zn++ ','Zn/Zn++//Cu++/Cu',+0.34,-0.76); 3:pila1('Ag ','Ag+ ','Zn ','Zn++ ','Zn/Zn++//Ag+/Ag'); 4:pila2('K ','K+ ','Au ','Au+++ ','K/K+//Au+++/Au',+1,-2.92); 5:pila1('Cu ','Cu++ ','Fe ','Fe++ ','Fe/Fe++//Cu++/Cu'); 6:pila2('Fe ','Fe++ ','Sn ','Sn++ ','Fe/Fe++//Sn++/Sn',-0.14,-0.44); 7:pila3('Ag ','Ag+ ','Na ','Na+ ','Na/Na+//Ag+/Ag', 'Na-1e...Na+','Ag+ +1e...Ag'); 8:pila3('Ni ','Ni++ ','Cd ','Cd++ ','Cd/Cd++//Ni++/Ni', 'Cd-2e...Cd++','Ni++ +2e...Ni'); 9:pila1('Cu ','Cu++ ','Ni ','Ni++ ','Ni/Ni++//Cu++/Cu'); 10:pila2('Cu ','Cu++ ','Cd ','Cd++ ','Cd/Cd++//Cu++/Cu',+0.34,-0.40); 11: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('scrivere schema pile richieste,con esatta polarita '); writeln('es. Zn/Zn++//Cu++/Cu senza spazi '); writeln('calcolare differenza potenziale pile indicate '); writeln('inserire potenziali standard richiesti es. -1.5 +0.34 '); writeln('scrivere reazioni di riduzione e ossidazione bilanciate '); writeln('es. Na-1e...Na+ Ag+ +1e...Ag '); writeln('-----------------------------'); writeln('NOTA:fare molta attenzione inserendo i dati richiesti '); writeln('per quanto riguarda maiuscole,minuscole,spaziature ecc.'); writeln('premi enter');readln; scelta; end.