problemi su equilibrio chimico

esci chimicaturbo.htm

Program varia1;
(* esempi spostamento equilibrio chimico INTERATTIVO , con valutazione*)
uses crt;
const n=17;
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,prove:integer;
ris:string;

procedure dati;
begin

re[1]:='2A + 3B <----> 4C + 5H ..+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 + G ..+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 + AG ..+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 + FH ..+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 + HG ..+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 E ';tp[6]:='aumenta la pressione';pd[6]:='A';
gr[6]:='A';
re[7]:='2A + 2B <----> 5C + 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 <----> 5C + 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';

re[9]:='2A + 3B <----> 4C + 5E ..+Q ';qr[9]:='dimuisce temperatura';
ri[9]:='D';tr[9]:='aggiunto A ';tp[9]:='diminuisce pressione';pd[9]:='D';
gr[9]:='D';
re[10]:='2A + B <----> C + HE ..+Q';qr[10]:='diminuisce temperatura';
ri[10]:='D';tr[10]:='aggiunto A ';tp[10]:='aumenta la pressione ';pd[10]:='A';
gr[10]:='D';
re[11]:='2A + 5B <----> 4C + EG ..+Q ';qr[11]:='diminuisce temperatura';
ri[11]:='D';tr[11]:='aggiunto B ';tp[11]:='aumenta la pressione';pd[11]:='A';
gr[11]:='D';
re[12]:='2A + B <----> C + EH ..+Q ';qr[12]:='diminuisce temperatura';
ri[12]:='D';tr[2]:='aggiunto B ';tp[12]:='aumenta la pressione';pd[12]:='A';
gr[12]:='D';
re[13]:='2A + B <----> C + FE ..+Q ';qr[13]:='aumenta temperatura';
ri[13]:='S';tr[13]:='aggiunto C ';tp[13]:='diminuisce la pressione';pd[13]:='D';
gr[13]:='A';
re[14]:='2A + 3B <----> 2C + 4E ...+Q ';qr[14]:='aumenta temperatura';
ri[14]:='S';tr[14]:='aggiunto E ';tp[14]:='aumenta la pressione';pd[14]:='A';
gr[14]:='A';
re[15]:='2A + 2B <----> 3C + 2EH ...+Q';qr[15]:='diminuisce temperatura';
ri[15]:='D';tr[15]:='aggiunto A e sottratto C';tp[15]:='diminuisce pressione';
pd[15]:='D';gr[15]:='D';
re[16]:='2A + B <----> C + 4E ...-Q';qr[16]:='dimuisce temperatura';
ri[16]:='S';tr[16]:='sottratto B e aggiunto E ';tp[16]:='aumenta pressione';
pd[16]:='A';gr[16]:='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('----------------------------------------------------------');
writeln('viene richiesto di indicare come si sposta un sistema in');
writeln('equilibrio dinamico,quando si provoca una perturbazione');
writeln('oppure viene richiesto tipo di perturbazione da applicare');
writeln('per ottenere uno spostamento nel senso desiderato ');
writeln('----------------------------------------------------------');
pausa;cancella;
writeln('principio da ricordare :Le Chatelier ');
writeln('un AUMENTO di PRESSIONE favorisce reazione con contrazione');
writeln('di volume,diminuzione di particelle,e ostacola quella che ');
writeln('avviene con aumento di volume,aumento di particelle ');pausa;
writeln('una DIMINUZIONE di PRESSIONE ostacola reazione con contrazione');
writeln('di volume,diminuzione di particelle,e favorisce quella che ');
writeln('avviene con aumento di volume,aumento di particelle ');pausa;
writeln('un AUMENTO di TEMPERATURA favorisce la reazione endotermica ');
writeln('e ostacola la reazione esotermica');pausa;
writeln('una DIMINUZIONE di TEMPERATURA favorisce la reazione esotermica ');
writeln('e ostacola la reazione endotermica');pausa;
writeln('una VARIAZIONE di CONCENTRAZIONE produce effetti diversi in ');
writeln('funzione del tipo di variazione (aumento,diminuzione) e del ');
writeln('tipo di sostanze (reattivi,prodotti ) ');
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 prove 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 prove 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 prove 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 prove 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;
repeat
write('indica numero di prove da eseguire :minore di ',n,'..');readln(prove);
until prove<n;
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.