test su nomenclatura chimica

esci chimicaturbo.htm

Program nomi6;
(* nomenclatura composti chimici CON VALUTAZIONE *)
(* con presentazione finale risposte inserite *)
uses crt;
const k=20;
var esatte,errate,totale,a:integer;
ris,rix:string;
dx:array[1..k] of string;
rx:array[1..k] of string;
ry:array[1..k] of string;
rs:array[1..k] of string;
adx:array[1..k] of string;
arx:array[1..k] of string;

procedure dati;
begin
dx[1]:='H2SO4';rx[1]:='ACIDO SOLFORICO';ry[1]:='ANIDRIDE SOLFORICA';
rs[1]:='SOLFATO';
dx[2]:='HNO3';rx[2]:='ACIDO NITRICO';ry[2]:='ANIDRIDE NITRICA';
rs[2]:='NITRATO';
dx[3]:='H2SO3';rx[3]:='ACIDO SOLFOROSO';ry[3]:='ANIDRIDE SOLFOROSA';
rs[3]:='SOLFITO';
dx[4]:='HNO2';rx[4]:='ACIDO NITROSO';ry[4]:='ANIDRIDE NITROSA';
rs[4]:='NITRITO';
dx[5]:='H2CO3';rx[5]:='ACIDO CARBONICO';ry[5]:='ANIDRIDE CARBONICA';
rs[5]:='CARBONATO';
dx[6]:='HClO';rx[6]:='ACIDO IPOCLOROSO';ry[6]:='ANIDRIDE IPOCLOROSA';
rs[6]:='IPOCLORITO';
dx[7]:='HClO3';rx[7]:='ACIDO CLORICO';ry[7]:='ANIDRIDE CLORICA';
rs[7]:='CLORATO';
dx[8]:='HClO7';rx[8]:='ACIDO PERCLORICO';ry[8]:='ANIDRIDE PERCLORICA';
rs[8]:='PERCLORATO';
dx[9]:='HClO2';rx[9]:='ACIDO CLOROSO';ry[9]:='ANIDRIDE CLOROSA';
rs[9]:='CLORITO';
dx[10]:='H3PO4';rx[10]:='ACIDO FOSFORICO';ry[10]:='ANIDRIDE FOSFORICA';
rs[10]:='FOSFATO';
dx[11]:='HBrO';rx[11]:='ACIDO IPOBROMOSO';ry[11]:='ANIDRIDE IPOBROMOSA';
rs[11]:='IPOBROMITO';
dx[12]:='HIO3';rx[12]:='ACIDO IODICO';ry[12]:='ANIDRIDE IODICA';
rs[12]:='IODATO';
dx[13]:='HBr02';rx[13]:='ACIDO BROMOSO';ry[13]:='ANIDRIDE BROMOSA';
rs[13]:='BROMITO';
dx[14]:='HIO4';rx[14]:='ACIDO PERIODICO';ry[14]:='ANIDRIDE PERIODICA';
rs[14]:='PERIODATO';
dx[15]:='HBrO4';rx[15]:='ACIDO PERBROMICO';ry[15]:='ANIDRIDE PERBROMICA';
rs[15]:='PERBROMATO';
dx[16]:='HCl';rx[16]:='ACIDO CLORIDRICO';rs[16]:='CLORURO';
dx[17]:='HF';rx[17]:='ACIDO FLUORIDRICO';rs[17]:='FLUORURO';
dx[18]:='HI';rx[18]:='ACIDO IODIDRICO';rs[18]:='IODURO';
dx[19]:='H2S';rx[19]:='ACIDO SOLFIDRICO';rs[19]:='SOLFURO';
dx[20]:='HBr';rx[20]:='ACIDO BROMIDRICO';rs[20]:='BROMURO';
end;

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

procedure cancella;
begin
clrscr;
end;

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

procedure verifica2;
begin
if ris=rx[a] then begin writeln(' esatto ');esatte:=esatte+1;end
else begin writeln(' errato:era ',rx[a]);errate:=errate+1;end;
end;


procedure verifica7;
begin
if ris=rs[a] then begin writeln(' esatto ');esatte:=esatte+1;end
else begin writeln(' errato:era ',rs[a]);errate:=errate+1;end;
end;


procedure nomeradicale;
begin
writeln('scrivi nome radicale:es.SOLFATO oppure premi ENTER');
writeln;
dati;
for a:=1 to k do
begin
write(rx[a],' ');readln(adx[a]);ris:=adx[a];
verifica7;
end;
end;


procedure pro1;
begin
writeln('scopo del programma e verificare la conoscenza della nomenclatura');
writeln('dei composti chimici:ACIDI,ANIDRIDI,RADICALI ACIDI ');
pausa;
end;


procedure nomeradice;
begin
dati;
writeln('scrivi i nomi degli ACIDI generanti radicali proposti');
writeln('es.ACIDO CARBONICO...oppure premi ENTER ');writeln;
dati;
for a:=1 to k do
begin
write(rs[a],' ');readln(arx[a]);ris:=arx[a];
verifica2;
end;
end;



procedure pro2;
begin
nomeradicale;
end;

procedure pro3;
begin
nomeradice;
end;

procedure scelta;
var s,sn:string;opzione:integer;
begin
cancella;;
writeln('seleziona opzione per NOMENCLATURA CHIMICA ');
writeln('1...istruzioni e spiegazione programma ');
writeln('2...ACIDO.............scrivi nome del radicale');
writeln('3...RADICALE..........scrivi nome dello acido ');
writeln('9...fine ');
writeln('scelta =');readln(opzione);cancella;
case opzione of
1:pro1;2:pro2;3:pro3;
9:fine;
end;
writeln('altra operazione?Esperimenti?:premi S...fine:premi N '); readln(sn);
if ((sn='S') or (sn='s')) then scelta ;
end;

procedure rivedi2;
begin
dati;cancella;
writeln('domanda':20,'risposta esatta':20,'risposta fornita':20);writeln;
for a:=1 to k do
writeln(rx[a]:20,rs[a]:20,adx[a]:20);
end;

procedure rivedi3;
begin
dati;cancella;
writeln('domanda':20,'risposta esatta':20,'risposta fornita':20);writeln;
for a:=1 to 20 do
writeln(rs[a]:20,rx[a]:20,arx[a]:20);
end;

begin (* programma di lancio *)
cancella;
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;
rivedi2;pausa;rivedi3;pausa;cancella;
writeln('risposte esatte ',esatte,' su domande ',totale);
writeln('risposte errate ',errate,' su domande ',totale);
writeln('chiama insegnante per valutazione ');pausa;
pausa;
end.