esercizi di chimica con turbo pascal 1.1 su mac

 

Program anidra;
(* nomenclatura composti chimici OSSIDI IDROSSIDI IDRURI CON VALUTAZIONE *)
(* con presentazione finale risposte inserite  cfr.ANIDRO variante  *)
   USES Memtypes,QuickDraw,OSIntf,ToolIntf,fixmath;
 const k1=52; 
 
var esatte,errate,totale,a:integer;
    ris,rip,h1,h2,h3,h4,q,a1,g1,g2,g3,g4,b1,c1,e1,e2,e3,e4:string;
    d1:array[1..k1] of string[10];
    n1:array[1..k1] of string;
    
 procedure dati1;
 begin   
d1[1]:='Li';d1[2]:='Na';d1[3]:='K';d1[4]:='Rb';d1[5]:='Cs';d1[6]:='Fr';
d1[7]:='Cu';d1[8]:='Ag';d1[9]:='Au';d1[10]:='Hg';
n1[1]:='LITIO1';n1[2]:='SODIO1';n1[3]:='POTASSIO1';n1[4]:='RUBIDIO1';
n1[5]:='CESIO1';n1[6]:='FRANCIO1';n1[7]:='RAME1';n1[8]:='ARGENTO1';
n1[9]:='ORO1';n1[10]:='MERCURIO1';
d1[11]:='Be';d1[12]:='Mg';d1[13]:='Ca';d1[14]:='Sr';d1[15]:='Ba';d1[16]:='Ra';
d1[17]:='Cr';d1[18]:='Fe';d1[19]:='W';d1[20]:='Mo';d1[21]:='Mn';d1[22]:='Re';
d1[23]:='Ru';d1[24]:='Os';d1[25]:='Co';d1[26]:='Rh';d1[27]:='Ir';
d1[28]:='Ni';d1[29]:='Pd';d1[30]:='Pt';d1[31]:='Cu';d1[32]:='Zn';
d1[33]:='Cd';d1[34]:='Hg';
n1[11]:='BERILLIO2';n1[12]:='MAGNESIO2';
n1[13]:='CALCIO2';n1[14]:='STRONZIO2';n1[15]:='BARIO2';n1[16]:='RADIO2';
n1[17]:='CROMO2';n1[18]:='FERRO2';n1[19]:='WOLFRAMIO2';n1[20]:='MOLIBDENO2';
n1[21]:='MANGANESE2';n1[22]:='RENIO2';n1[23]:='RUTENIO2';n1[24]:='OSMIO2';
n1[25]:='COBALTO2';n1[26]:='RODIO2';n1[27]:='IRIDIO2';
n1[28]:='NICHELIO2';n1[29]:='PALLADIO2';n1[30]:='PLATINO2';
n1[31]:='RAME2';n1[32]:='ZINCO2';n1[33]:='CADMIO2';n1[34]:='MERCURIO2';
d1[35]:='Cr';d1[36]:='Mn';d1[37]:='Mo';d1[38]:='W';d1[39]:='Fe';
d1[40]:='Ru';d1[41]:='Os';d1[42]:='Co';d1[43]:='Rh';d1[44]:='Ir';
d1[45]:='Ni';d1[46]:='Au';d1[47]:='Al';d1[48]:='Sb';d1[49]:='Bi';
n1[35]:='CROMO3';n1[36]:='MANGANESE3';n1[37]:='MOLIBDENO3';n1[38]:='WOLFRAMIO3';
n1[39]:='FERRO3';n1[40]:='RUTENIO3';n1[41]:='OSMIO3';n1[42]:='COBALTO3';
n1[43]:='RODIO3';n1[44]:='IRIDIO3';n1[45]:='NICHELIO3';n1[46]:='ORO3';
n1[47]:='ALLUMINIO3';n1[48]:='ANTIMONIO3';n1[49]:='BISMUTO3';
d1[50]:='Ge';d1[51]:='Sn';d1[52]:='Pb';
n1[50]:='GERMANIO4';n1[51]:='STAGNO4';n1[52]:='PIOMBO4';
end;
          
procedure pausa; 
begin
writeln('premi enter');readln;
end;
 
procedure cancella;
begin
clearscreen;
end;
procedure fine;  
begin
writeln('fine operazione:confermare :premi enter');
readln;
end;
procedure verifica(ris,rip:string);
begin
if ris=rip then begin writeln('esatto');esatte:=esatte+1;end
else begin writeln('errato:era:',rip);errate:=errate+1;end;
writeln('-----------------------------------------------------');
end;
    
procedure base1(i,f:integer);
begin
dati1;writeln('scrivi nome es. COMPOSTO DI NOME2 ');
for a:= i to f do
begin
write(d1[a],'2',h1,q);readln(ris);rip:=concat(a1,n1[a]);verifica(ris,rip);
end;
end;
procedure idro1(i,f:integer);
begin
dati1;writeln('scrivi nome es. COMPOSTO DI NOME2 ');
for a:=i to f do
begin
write(d1[a],g1,q);readln(ris);rip:=concat(b1,n1[a]);verifica(ris,rip);
end;
end;
procedure idro1a(i,f:integer);
begin
dati1;writeln('scrivi la formula es.  MeOH    Me(OH)2  ');
for a:=i to f do
begin
write(b1,n1[a],q);readln(ris);rip:=concat(d1[a],g1);verifica(ris,rip);
end;
end;
procedure idru1a(i,f:integer);
begin
dati1;writeln('scrivi formula es. FeH2 ');
for a:=i to f do
begin
write(c1,n1[a],q);readln(ris);rip:=concat(d1[a],e1);verifica(ris,rip);
end;
end;
procedure idru2a(i,f:integer);
begin
dati1;writeln('scrivi formula es. FeH2 ');
for a:=i to f do
begin
write(c1,n1[a],q);readln(ris);rip:=concat(d1[a],e2);verifica(ris,rip);
end;
end;
procedure idru3a(i,f:integer);
begin
dati1;writeln('scrivi formula es. FeH2 ');
for a:=i to f do
begin
write(c1,n1[a],q);readln(ris);rip:=concat(d1[a],e3);verifica(ris,rip);
end;
end;
procedure idru4a(i,f:integer);
begin
dati1;writeln('scrivi formula es.FeH2 ');
for a:=i to f do
begin
write(c1,n1[a],q);readln(ris);rip:=concat(d1[a],e4);verifica(ris,rip);
end;
end;
procedure idru1(i,f:integer);
begin
dati1;writeln('scrivi nome es. COMPOSTO DI NOME2 ');
for a:=i to f do
begin
write(d1[a],e1,q);readln(ris);rip:=concat(c1,n1[a]);verifica(ris,rip);
end;
end;
procedure idru2(i,f:integer);
begin
dati1;writeln('scrivi nome es. COMPOSTO DI NOME2 ');
for a:=i to f do
begin
write(d1[a],e2,q);readln(ris);rip:=concat(c1,n1[a]);verifica(ris,rip);
end;
end;
procedure idru3(i,f:integer);
begin
dati1;writeln('scrivi nome es. COMPOSTO DI NOME2 ');
for a:=i to f do
begin
write(d1[a],e3,q);readln(ris);rip:=concat(c1,n1[a]);verifica(ris,rip);
end;
end;
procedure idru4(i,f:integer);
begin
dati1;writeln('scrivi nome es. COMPOSTO DI NOME2 ');
for a:=i to f do
begin
write(d1[a],e4,q);readln(ris);rip:=concat(c1,n1[a]);verifica(ris,rip);
end;
end;


procedure idro2(i,f:integer);
begin
dati1;writeln('scrivi nome es. COMPOSTO DI NOME2 ');
for a:=i to f do
begin
write(d1[a],g2,q);readln(ris);rip:=concat(b1,n1[a]);verifica(ris,rip);
end;
end;
procedure idro2a(i,f:integer);
begin
dati1;writeln('scrivi la formula es.  MeOH    Me(OH)2  ');
for a:=i to f do
begin
write(b1,n1[a],q);readln(ris);rip:=concat(d1[a],g2);verifica(ris,rip);
end;
end;
procedure idro3(i,f:integer);
begin
dati1;writeln('scrivi nome es. COMPOSTO DI NOME2 ');
for a:=i to f do
begin
write(d1[a],g3,q);readln(ris);rip:=concat(b1,n1[a]);verifica(ris,rip);
end;
end;
procedure idro3a(i,f:integer);
begin
dati1;writeln('scrivi la formula es.  MeOH    Me(OH)2  ');
for a:=i to f do
begin
write(b1,n1[a],q);readln(ris);rip:=concat(d1[a],g3);verifica(ris,rip);
end;
end;
procedure idro4(i,f:integer);
begin
dati1;writeln('scrivi nome es. COMPOSTO DI NOME2 ');
for a:=i to f do
begin
write(d1[a],g4,q);readln(ris);rip:=concat(b1,n1[a]);verifica(ris,rip);
end;
end;
procedure idro4a(i,f:integer);
begin
dati1;writeln('scrivi la formula es.  MeOH    Me(OH)2  ');
for a:=i to f do
begin
write(b1,n1[a],q);readln(ris);rip:=concat(d1[a],g4);verifica(ris,rip);
end;
end;
procedure base1a(i,f:integer);
begin
dati1;writeln('scrivi formula es.  MeO ...Me2O5 ');
for a:=i to f do
begin
write(a1,n1[a],q);readln(ris);rip:=concat(d1[a],'2',h1);verifica(ris,rip);
end;
end;
procedure base2(i,f:integer);
begin
dati1;writeln('scrivi nome es. COMPOSTO DI NOME2 ');
for a:=i to f do
begin
write(d1[a],h2,q);readln(ris);rip:=concat(a1,n1[a]);verifica(ris,rip);
end;
end;
procedure base2a(i,f:integer);
begin
dati1;writeln('scrivi formula es.  MeO ...Me2O5 ');
for a:=i to f do
begin
write(a1,n1[a],q);readln(ris);rip:=concat(d1[a],h2);verifica(ris,rip);
end;
end;
procedure base3(i,f:integer);
begin
dati1;writeln('scrivi nome es. COMPOSTO DI NOME2 ');
for a:=i to f do
begin
write(d1[a],'2',h3,q);readln(ris);rip:=concat(a1,n1[a]);verifica(ris,rip);
end;
end;
procedure base3a(i,f:integer);
begin
dati1;writeln('scrivi formula es.  MeO ...Me2O5 ');
for a:=i to f do
begin
write(a1,n1[a],q);readln(ris);rip:=concat(d1[a],'2',h3);verifica(ris,rip);
end;
end;
procedure base4(i,f:integer);
begin
dati1;writeln('scrivi nome es. COMPOSTO DI NOME2 ');
for a:=i to f do
begin
write(d1[a],h4,q);readln(ris);rip:=concat(a1,n1[a]);verifica(ris,rip);
end;
end;
procedure base4a(i,f:integer);
begin
dati1;writeln('scrivi formula es.  MeO ...Me2O5 ');
for a:=i to f do
begin
write(a1,n1[a],q);readln(ris);rip:=concat(d1[a],h4);verifica(ris,rip);
end;
end;
procedure pro1;
begin
base1(1,10);pausa;
end;
procedure pro2;
begin
base2(11,34);pausa;
end;
procedure pro3;
begin
base3(35,49);pausa;
end;
procedure pro4;
begin
base4(50,52);pausa;
end;
procedure pro5; (* inverso di base1 *)
begin
base1a(1,10);pausa;
end;
procedure pro6; (* inverso di base2 *)
begin
base2a(11,34);pausa;
end;
procedure pro7; (* inverso di base3 *)
begin
base3a(35,49);pausa;
end;
procedure pro8; (* inverso di base4 *)
begin
base4a(50,52);pausa;
end;
procedure pro9;
begin
idro1(1,10);pausa;cancella;idro2(11,34);pausa;cancella;
idro3(35,49);pausa;cancella;
idro4(50,52);pausa;cancella;
end;
procedure pro10;
begin
idro1a(1,10);pausa;cancella;idro2a(11,34);pausa;cancella;
idro3a(35,49);pausa;cancella;
idro4a(50,52);pausa;cancella;
end;
procedure pro11;
begin
idru1(1,10);pausa;cancella;idru2(11,34);pausa;cancella;
idru3(35,49);pausa;cancella;
idru4(50,52);pausa;cancella;
end;
procedure pro12;
begin
idru1a(1,10);pausa;cancella;idru2a(11,34);pausa;cancella;
idru3a(35,49);pausa;cancella;
idru4a(50,52);pausa;cancella;
end;
procedure pro13;
begin
idru1(1,10);pausa;cancella;idru2(11,34);pausa;cancella;
base4a(50,52);pausa;cancella;base3a(35,49);pausa;cancella;
idru3(35,49);pausa;cancella;idru4(50,52);pausa;cancella;
idru1a(1,10);pausa;cancella;idru2a(11,34);pausa;cancella;
idru3a(35,49);pausa;cancella;idru4a(50,52);pausa;cancella;
base1(1,10);pausa;cancella;base2(11,34);pausa;cancella;
base3(35,49);pausa;cancella;
base4(50,52);pausa;cancella;base1a(1,10);pausa;cancella;
base2a(11,34);pausa;cancella;base3a(35,49);pausa;cancella;
end;
procedure scelta;  
var s,sn:string;opzione:integer;
begin
cancella;;
writeln('seleziona opzione per NOMENCLATURA CHIMICA ');
writeln('1...data la formula,scrivi il nome :OSSIDI');
writeln('2...data la formula,scrivi il nome');
writeln('3...data la formula,scrivi il nome ');
writeln('4...data la formula,scrivi il nome');
writeln('5...dato il nome scrivi la formula');
writeln('6...dato il nome scrivi la formula');
writeln('7...dato il nome scrivi la formula');
writeln('8...dato il nome scrivi la formula');
writeln('9..data la formula scrivi il nome:IDROSSIDI ');
writeln('10..dato il nome,scrivi la formula');
writeln('11..data la formula,scrivi il nome:IDRURI');
writeln('12..dato il nome,scrivi la formula');
writeln('13..riassume precedenti');
writeln('15...fine ');
writeln('scelta =');readln(opzione);cancella;
case opzione of
1:pro1;2:pro2;3:pro3;4:pro4;5:pro5;6:pro6;7:pro7;8:pro8;9:pro9;
10:pro10;11:pro11;12:pro12;13:pro13;
15:fine;
end;
writeln('altra operazione?Esperimenti?:premi S...fine:premi N '); readln(sn);
if ((sn='S') or (sn='s')) then scelta ;
end;

begin            (* programma di lancio *)
writeln('verifica su conoscenza nomenclatura e formule chimiche');
writeln('ATTENZIONE :come inserire risposte:');
writeln('TUTTO IN MAIUSCOLO...senza spaziature prima e dopo la risposta');
writeln('INDICARE LA VALENZA..');
writeln('esempi di risposte :');
writeln('OSSIDO DI SODIO1         IDROSSIDO DI CALCIO2 ');
writeln('NaOH     Al(OH)3         FeO     Fe2O3        ');
writeln('----------------------------------------------------');pausa;
cancella;
h1:='O';h2:='O';h3:='O3';h4:='O2';q:='   ';
g1:='OH';g2:='(OH)2';g3:='(OH)3';g4:='(OH)4';
e1:='H';e2:='H2';e3:='H3';e4:='H4';
a1:='OSSIDO DI ';b1:='IDROSSIDO DI ';c1:='IDRURO DI ';
esatte:=0;errate:=0;totale:=0;
scelta;cancella;
writeln('risposte esatte  ',esatte,' su domande ',totale);
writeln('risposte errate  ',errate,' su domande ',totale);
writeln('premi ENTER per rivedere le tue risposte');pausa;
writeln('chiama insegnante per valutazione ');pausa;
pausa;
end.