esercitazioni su argomenti di chimica a livello didattico, liceale
con turbo pascal v.5-7

esempi spostamento equilibrio chimico INTERATTIVO

varia
equilibrio dinamico
http://www.youtube.com/watch?v=pJrS0hgzY88


 

Program varia;
 (* esempi spostamento equilibrio chimico INTERATTIVO *) 
 uses crt;
   const n=10;
   VAR    re:array[1..n] of string;
          ri:array[1..n] of string;
          tr:array[1..n] of string;
          tp:array[1..n] of string;
          qr:array[1..n] of string;
          pd:array[1..n] of string;
          gr:array[1..n] of string;
          a,esatte,errate:integer;
          ris:string;

procedure dati;
begin

re[1]:='2A + 3B <----> 4C + 5E   ..+Q ';qr[1]:='dimuisce temperatura';
ri[1]:='D';tr[1]:='aggiunto A ';tp[1]:='diminuisce pressione';pd[1]:='D';
gr[1]:='D';
re[2]:='2A + B  <----> C +   E    ..+Q';qr[2]:='diminuisce temperatura';
ri[2]:='D';tr[2]:='aggiunto A ';tp[2]:='aumenta la pressione ';pd[2]:='A';
gr[2]:='D';
re[3]:='2A + 5B <----> 4C + E   ..+Q ';qr[3]:='diminuisce temperatura';
ri[3]:='D';tr[3]:='aggiunto B ';tp[3]:='aumenta la pressione';pd[3]:='A';
gr[3]:='D';
re[4]:='2A + B  <----> C +   E   ..+Q ';qr[4]:='diminuisce temperatura';
ri[4]:='D';tr[4]:='aggiunto B ';tp[4]:='aumenta la pressione';pd[4]:='A';
gr[4]:='D';
re[5]:='2A + B  <----> C +   E   ..+Q ';qr[5]:='aumenta temperatura';
ri[5]:='S';tr[5]:='aggiunto C ';tp[5]:='diminuisce la pressione';pd[5]:='D';
gr[5]:='A';
re[6]:='2A + 3B  <----> 2C +   4E  ...+Q  ';qr[6]:='aumenta temperatura';
ri[6]:='S';tr[6]:='aggiunto D ';tp[6]:='aumenta la pressione';pd[6]:='A';
gr[6]:='A';
re[7]:='2A + 2B  <----> 3C +   2E    ...+Q';qr[7]:='diminuisce temperatura';
ri[7]:='D';tr[7]:='aggiunto A e sottratto C';tp[7]:='diminuisce pressione';
pd[7]:='D';gr[7]:='D';
re[8]:='2A + B  <----> C +   4E    ...-Q';qr[8]:='dimuisce temperatura';
ri[8]:='S';tr[8]:='sottratto B e aggiunto E ';tp[8]:='aumenta pressione';
pd[8]:='A';gr[8]:='D';
end;

procedure cancella;
begin
clrscr;
end;

procedure pausa;
begin
writeln('premi ENTER ');readln;
end;

procedure fine;  (* conferma uscita operazione *)
begin
writeln('fine operazione:confermare :premi enter');
readln;
end;


procedure descrive;
begin
writeln('esempi di spostamento equilibrio chimico');
writeln('dovuti a perturbazioni indotte con variazione di parametri');
writeln('come CONCENTRAZIONE reattivi e prodotti,PRESSIONE,TEMPERATURA');
writeln;pausa;cancella;
end;

procedure attiva2;
begin
dati;
writeln('scrivere come si sposta equilibrio se perturbato');
writeln('premi D se si sposta da reattivi a prodotti ----> ');
writeln('premi S se si sposta da prodotti a reattivi <--- ');
writeln('premi I se risulta indifferente <----> ');
pausa;cancella;
for a:=1 to 8 do
begin
writeln(re[a]);
writeln(tr[a]);
write('come si sposta equilibrio S,D,I ? ');readln(ris);
if ris=ri[a] then begin writeln('esatto ');esatte:=esatte+1;end
else begin writeln('errato:era :',ri[a]);errate:=errate+1;end;pausa;
cancella;end;end;

procedure attiva3;
begin
dati;
writeln('scrivere come si sposta equilibrio se perturbato');
writeln('premi D se si sposta da reattivi a prodotti ----> ');
writeln('premi S se si sposta da prodotti a reattivi <--- ');
writeln('premi I se risulta indifferente <----> ');
pausa;cancella;
for a:=1 to 8 do
begin
writeln(re[a]);
writeln(tp[a]);
write('come si sposta equilibrio S,D,I ? ');readln(ris);
if ris=ri[a] then begin writeln('esatto ');esatte:=esatte+1;end
else begin writeln('errato:era :',ri[a]);errate:=errate+1;end;pausa;
cancella;end;end;

procedure attiva4;
begin
dati;
writeln('scrivere come si sposta equilibrio se perturbato');
writeln('premi D se si sposta da reattivi a prodotti ----> ');
writeln('premi S se si sposta da prodotti a reattivi <--- ');
writeln('premi I se risulta indifferente <----> ');
pausa;cancella;
for a:=1 to 8 do
begin
writeln(re[a]);
writeln(qr[a]);
write('come si sposta equilibrio S,D,I ? ');readln(ris);
if ris=ri[a] then begin writeln('esatto ');esatte:=esatte+1;end
else begin writeln('errato:era :',ri[a]);errate:=errate+1;end;pausa;
cancella;end;end;

procedure attiva5;
begin
dati;
writeln('scrivere come si deve variare la PRESSIONE');
writeln('per ottenere lo spostamento di equilibrio richiesto ');
writeln('premi A per aumento pressione ');
writeln('premi D per diminuzione pressione  ');
writeln('premi I se risulta indifferente <----> ');
pausa;cancella;
for a:=1 to 8 do
begin
writeln(re[a]);
writeln('spostamento richiesto verso :',ri[a]);
write('come cambiare la pressione A,D,I ? ');readln(ris);
if ris=pd[a] then begin writeln('esatto ');esatte:=esatte+1;end
else begin writeln('errato:era :',pd[a]);errate:=errate+1;end;pausa;
cancella;end;end;

procedure attiva6;
begin
dati;
writeln('scrivere come si deve variare la TEMPERATURA');
writeln('per ottenere lo spostamento di equilibrio richiesto ');
writeln('premi A per aumento temperatura ');
writeln('premi D per diminuzione temperatura  ');
writeln('premi I se risulta indifferente <----> ');
pausa;cancella;
for a:=1 to 8 do
begin
writeln(re[a]);
writeln('spostamento richiesto verso :',ri[a]);
write('come cambiare la temperatura A,D,I ? ');readln(ris);
if ris=gr[a] then begin writeln('esatto ');esatte:=esatte+1;end
else begin writeln('errato:era :',gr[a]);errate:=errate+1;end;pausa;
cancella;end;end;

procedure pro1;
begin
descrive;
end;

procedure pro2;
begin
attiva2;
end;

procedure pro3;
begin
attiva3;
end;

procedure pro4;
begin
attiva4;
end;

procedure pro5;
begin
attiva5;
end;

procedure pro6;
begin
attiva6;
end;

procedure scelta;  (* procedura con scelta opzioni e uscita *)
var s,sn:string;opzione:integer;
begin
clrscr;
writeln('seleziona opzione per EQUILIBRIO CHIMICO DINAMICO');
writeln('1...decrizione');
writeln('2...con variazione concentrazione assegnata');
writeln('3...con variazione pressione assegnata');
writeln('4...con variazione temperatura assegnata');
writeln('5...come variare la pressione ');
writeln('6...come variare la temperatura ');
writeln('9...fine ');
writeln('scelta =');readln(opzione);cancella;
case opzione of
1:pro1;
2:pro2;
3:pro3;
4:pro4;
5:pro5;
6:pro6;
9:fine;
end;
writeln('risposte esatte =',esatte);
writeln('risposte errate =',errate);
if esatte>errate then writeln('sufficiente') else writeln('insufficiente');
writeln('chiama insegnante per la valutazione ');
writeln('altra operazione?Esperimenti?:premi S...fine:premi N '); readln(sn);
if sn='S' then scelta ;
end;

begin            (* programma di lancio *)
clrscr;
esatte:=0;errate:=0;
scelta;
writeln('risposte esatte =',esatte);
writeln('risposte errate =',errate);
if esatte>errate then writeln('sufficiente') else writeln('insufficiente');
writeln('chiama insegnante per la valutazione ');
pausa;cancella;
end.

 

 

 

 

 

 

 

 

 

ritorna