Program nomi4; (* 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 verifica3; begin if ris=ry[a] then begin writeln(' esatto ');esatte:=esatte+1;end else begin writeln(' errato:era ',ry[a]);errate:=errate+1;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 nomianidridi; begin dati; writeln('scrivi i nomi delle ANIDRIDI che generano gli acidi proposti'); writeln('es.ANIDRIDE CARBONICA...oppure premi ENTER ');writeln; dati; for a:=1 to 15 do begin write(dx[a],' ');readln(adx[a]);ris:=adx[a]; verifica3; end; end; procedure pro2; begin nomianidridi; end; procedure nomiacidi; begin dati; writeln('scrivi i nomi degli ACIDI derivati da anidridi proposte'); writeln('es.ACIDO CARBONICO...oppure premi ENTER ');writeln; dati; for a:=1 to 15 do begin write(ry[a],' ');readln(arx[a]);ris:=arx[a]; verifica2; end; end; procedure pro3; begin nomiacidi; 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...HXO...............scrivi nome anidride che lo genera '); writeln('3...ANIDRIDE .........scrivi nome acido generato'); writeln('9...fine '); writeln('scelta =');readln(opzione);cancella; case opzione of 1:pro1;2:pro2;3:pro3; 9:fine; end; writeln('altra PROVA ?: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 15 do writeln(dx[a]:20,ry[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 15 do writeln(ry[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; writeln('risposte esatte ',esatte,' su domande ',totale); writeln('risposte errate ',errate,' su domande ',totale); writeln('chiama insegnante per valutazione '); esatte:=0;errate:=0;totale:=0; pausa; end.