Program define; (* nomenclatura composti chimici CON VALUTAZIONE *) (* OSSIDI IDROSSIDI IDRURI ANIDRIDI ACIDI RADICALI *)
USES Memtypes,QuickDraw,OSIntf,ToolIntf,fixmath; const k1=10;k2=24;k3=15;k4=3;k5=16;k6=16;k7=16;
var esatte,errate,totale,a:integer; ris,rip,h1,h2,h3,h4,q,a1,b1,e1,e2,e3,e4,v1,v2,v3,v4,f1,g1,z1:string; d1:array[1..k1] of string[40]; d2:array[1..k2] of string[40]; d3:array[1..k3] of string[40]; d4:array[1..k4] of string[40]; n1:array[1..k1] of string[40]; n2:array[1..k2] of string[40]; n3:array[1..k3] of string[40]; n4:array[1..k4] of string[40]; d5:array[1..k5] of string[20]; n5:array[1..k5] of string[40]; m5:array[1..k5] of string[40]; d6:array[1..k6] of string[20]; n6:array[1..k6] of string[20]; m6:array[1..k6] of string[20]; n7:array[1..k7] of string[20]; m7:array[1..k7] of string[20];
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'; end;
procedure dati2; begin d2[1]:='Be';d2[2]:='Mg';d2[3]:='Ca';d2[4]:='Sr';d2[5]:='Ba';d2[6]:='Ra'; d2[7]:='Cr';d2[8]:='Fe';d2[9]:='W';d2[10]:='Mo';d2[11]:='Mn';d2[12]:='Re'; d2[13]:='Ru';d2[14]:='Os';d2[15]:='Co';d2[16]:='Rh';d2[17]:='Ir'; d2[18]:='Ni';d2[19]:='Pd';d2[20]:='Pt';d2[21]:='Cu';d2[22]:='Zn'; d2[23]:='Cd';d2[24]:='Hg';n2[1]:='BERILLIO2';n2[2]:='MAGNESIO2'; n2[3]:='CALCIO2';n2[4]:='STRONZIO2';n2[5]:='BARIO2';n2[6]:='RADIO2'; n2[7]:='CROMO2';n2[8]:='FERRO2';n2[9]:='WOLFRAMIO2';n2[10]:='MOLIBDENO2'; n2[11]:='MANGANESE2';n2[12]:='RENIO2';n2[13]:='RUTENIO2';n2[14]:='OSMIO2'; n2[15]:='COBALTO2';n2[16]:='RODIO2';n2[17]:='IRIDIO2'; n2[18]:='NICHELIO2';n2[19]:='PALLADIO2';n2[20]:='PLATINO2'; n2[21]:='RAME2';n2[22]:='ZINCO2';n2[23]:='CADMIO2';n2[24]:='MERCURIO2'; end;
procedure dati3; begin d3[1]:='Cr';d3[2]:='Mn';d3[3]:='Mo';d3[4]:='W';d3[5]:='Fe'; d3[6]:='Ru';d3[7]:='Os';d3[8]:='Co';d3[9]:='Rh';d3[10]:='Ir'; d3[11]:='Ni';d3[12]:='Au';d3[13]:='Al';d3[14]:='Sb';d3[15]:='Bi'; n3[1]:='CROMO3';n3[2]:='MANGANESE3';n3[3]:='MOLIBDENO3';n3[4]:='WOLFRAMIO3'; n3[5]:='FERRO3';n3[6]:='RUTENIO3';n3[7]:='OSMIO3';n3[8]:='COBALTO3'; n3[9]:='RODIO3';n3[10]:='IRIDIO3';n3[11]:='NICHELIO3';n3[12]:='ORO3'; n3[13]:='ALLUMINIO3';n3[14]:='ANTIMONIO3';n3[15]:='BISMUTO3'; end;
procedure dati4; begin d4[1]:='Ge';d4[2]:='Sn';d4[3]:='Pb'; n4[1]:='GERMANIO4';n4[2]:='STAGNO4';n4[3]:='PIOMBO4'; end;
procedure dati5; begin d5[1]:='SO2';d5[2]:='CO2'; d5[3]:='N2O3'; d5[4]:='SO3'; d5[5]:='N2O5'; d5[6]:='P2O3'; d5[7]:='Cl2O'; d5[8]:='P2O5'; d5[9]:='F2O'; d5[10]:='Cl2O5'; d5[11]:='I2O3'; d5[12]:='F2O3'; d5[13]:='Cl2O7'; d5[14]:='Br2O5'; d5[15]:='Cl2O3'; d5[16]:='Br2O7';
n5[1]:='ZOLFO4';n5[2]:='CARBONIO4';n5[3]:='AZOTO3';n5[4]:='ZOLFO6'; n5[5]:='AZOTO5';n5[6]:='FOSFORO3';n5[7]:='CLORO1';n5[8]:='FOSFORO5'; n5[9]:='FLUORO1';n5[10]:='CLORO5';n5[11]:='IODIO3';n5[12]:='FLUORO3'; n5[13]:='CLORO7';n5[14]:='BROMO5';n5[15]:='CLORO3';n5[16]:='BROMO7';
m5[1]:='SOLFOROSA';m5[2]:='CARBONICA';m5[3]:='NITROSA'; m5[4]:='SOLFORICA';m5[5]:='NITRICA';m5[6]:='FOSFOROSA'; m5[7]:='IPOCLOROSA';m5[8]:='FOSFORICA';m5[9]:='IPOFLUOROSA'; m5[10]:='CLORICA';m5[11]:='IODOSA';m5[12]:='FLUOROSA'; m5[13]:='PERCLORICA';m5[14]:='BROMICA';m5[15]:='CLOROSA'; m5[16]:='PERBROMICA'; end;
procedure dati6; begin n6[1]:='SOLFOROSO';n6[2]:='SOLFORICO';n6[3]:='NITROSO'; n6[4]:='CARBONICO';n6[5]:='CLOROSO';n6[6]:='NITRICO'; n6[7]:='CLORIDRICO';n6[8]:='FOSFORICO';n6[9]:='PERCLORICO'; n6[10]:='FLUORIDRICO';n6[11]:='CLORICO';n6[12]:='FOSFOROSO'; n6[13]:='IPOCLOROSO';n6[14]:='SOLFIDRICO';n6[15]:='IODIDRICO'; n6[16]:='BROMIDRICO';
m6[1]:='SOLFITO';m6[2]:='SOLFATO';m6[3]:='NITRITO'; m6[4]:='CARBONATO';m6[5]:='CLORITO';m6[6]:='NITRATO'; m6[7]:='CLORURO';m6[8]:='FOSFATO';m6[9]:='PERCLORATO'; m6[10]:='FLUORURO';m6[11]:='CLORATO';m6[12]:='FOSFITO'; m6[13]:='IPOCLORITO';m6[14]:='SOLFURO';m6[15]:='IODURO'; m6[16]:='BROMURO';
d6[1]:='H2SO3';d6[2]:='H2SO4';d6[3]:='HNO2';d6[4]:='H2CO3'; d6[5]:='HClO2';d6[6]:='HNO3';d6[7]:='HCl';d6[8]:='H3PO4'; d6[9]:='HClO4';d6[10]:='HF';d6[11]:='HClO3';d6[12]:='H3PO3'; d6[13]:='HClO';d6[14]:='H2S';d6[15]:='HI';d6[16]:='HBr'; end;
procedure dati7; begin m7[1]:='SOLFOROSA';m7[2]:='CARBONICA';m7[3]:='NITROSA'; m7[4]:='SOLFORICA';m7[5]:='NITRICA';m7[6]:='FOSFOROSA'; m7[7]:='IPOCLOROSA';m7[8]:='FOSFORICA';m7[9]:='IPOFLUOROSA'; m7[10]:='CLORICA';m7[11]:='IODOSA';m7[12]:='FLUOROSA'; m7[13]:='PERCLORICA';m7[14]:='BROMICA';m7[15]:='CLOROSA'; m7[16]:='PERBROMICA';
n7[1]:='SOLFOROSO';n7[2]:='CARBONICO';n7[3]:='NITROSO'; n7[4]:='SOLFORICO';n7[5]:='NITRICO';n7[6]:='FOSFOROSO'; n7[7]:='IPOCLOROSO';n7[8]:='FOSFORICO';n7[9]:='IPOFLUOROSO'; n7[10]:='CLORICO';n7[11]:='IODOSO';n7[12]:='FLUOROSO'; n7[13]:='PERCLORICO';n7[14]:='BROMICO';n7[15]:='CLOROSO'; n7[16]:='PERBROMIC0'; 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 tq; begin writeln('esempi ortografia per scrivere nomi composti '); writeln(' SOLFATO....CLORURO..SOLFORICO...NITRICO..SOLFOROSA'); writeln('-------------------------------------------------------------'); end;
procedure tx; begin writeln('esempi ortografia per scrivere nomi composti '); writeln('OSSIDO DI FERRO3.....IDROSSIDO DI FERRO2.. IDRURO DI FERRO2 '); writeln(' OSSIDO DI FLUORO7 ..OSSIDO DI CLORO5..ACIDO SOLFORICO'); writeln('-------------------------------------------------------------'); end;
procedure ty; begin writeln('esempi ortografia per scrivere formule composti '); writeln('MeO....Me2O3....MeOH....Me(OH)3...FeH2....NaH..H2SO4 ..HCl.'); writeln('-------------------------------------------------'); end;
procedure tz; begin writeln('esempi ortografia per scrivere nomi composti '); writeln('OSSIDO DI FERRO3.....IDROSSIDO DI FERRO2.. IDRURO DI FERRO2 '); writeln('ANIDRIDE SOLFOROSA...ANIDRIDE PERBROMICA...ACIDO SOLFORICO '); writeln('-------------------------------------------------------------'); end;
procedure radica1; begin dati6;writeln('scrivi nome del radicale dello acido proposto');tq; for a:=1 to k6 do begin write(z1,n6[a],q);readln(ris);rip:=(m6[a]);verifica(ris,rip); end; end;
procedure radica2; begin dati6;writeln('scrivi nome del radicale dello acido proposto');tq; for a:=1 to k6 do begin write(d6[a],q);readln(ris);rip:=(m6[a]);verifica(ris,rip); end; end;
procedure radica1a; begin dati6;writeln('scrivi nome dello acido da cui deriva il radicale');tq; for a:=1 to k6 do begin write(m6[a],q);readln(ris);rip:=(n6[a]);verifica(ris,rip); end; end;
procedure radica2a; begin dati6;writeln('scrivi formula dello acido da cui deriva il radicale');ty; for a:=1 to k6 do begin write(m6[a],q);readln(ris);rip:=(d6[a]);verifica(ris,rip); end; end;
procedure acidi1; begin dati6;writeln('scrivi nome composto');tx; for a:=1 to k6 do begin write(d6[a],q);readln(ris);rip:=concat(z1,n6[a]);verifica(ris,rip); end; end;
procedure acidi1a; begin dati6;writeln('scrivi formula ');ty; for a:=1 to k6 do begin write(z1,n6[a],q);readln(ris);rip:=(d6[a]);verifica(ris,rip); end; end;
procedure ani1; begin dati7;writeln('scrivi nome acido derivato da ');tq; for a:=1 to k7 do begin write(m7[a],q);readln(ris);rip:=concat(n7[a]);verifica(ris,rip); end; end;
procedure ani1a; begin dati7;writeln('scrivi nome anidride derivata da ');tq; for a:=1 to k7 do begin write(n7[a],q);readln(ris);rip:=concat(m7[a]);verifica(ris,rip); end; end;
procedure anidri1; begin dati5;writeln('scrivi nome composto');tx; for a:=1 to k5 do begin write(d5[a],q);readln(ris);rip:=concat(a1,n5[a]);verifica(ris,rip); end; end;
procedure anidri1a; begin dati5;writeln('scrivi formula ');ty; for a:=1 to k5 do begin write(a1,n5[a],q);readln(ris);rip:=(d5[a]);verifica(ris,rip); end; end;
procedure anidri2; begin dati5;writeln('scrivi nome con prefissi,suffissi..IPO...OSA...ICA..PER '); tz; for a:=1 to k5 do begin write(d5[a],q);readln(ris);rip:=concat(g1,m5[a]);verifica(ris,rip); end; end;
procedure anidri2a; begin dati5;writeln('scrivi formula ');ty; for a:=1 to k5 do begin write(g1,m5[a],q);readln(ris);rip:=(d5[a]);verifica(ris,rip); end; end;
procedure base1; begin dati1;writeln('scrivi nome composto ');tx; for a:=1 to k1 do begin write(d1[a],'2',h1,q);readln(ris);rip:=concat(a1,n1[a]);verifica(ris,rip); end; end;
procedure idru1; begin dati1;writeln('scrivi nome composto ');tx; for a:=1 to k1 do begin write(d1[a],v1,q);readln(ris);rip:=concat(f1,n1[a]);verifica(ris,rip); end; end;
procedure idru2; begin dati2;writeln('scrivi nome composto ');tx; for a:=1 to k2 do begin write(d2[a],v2,q);readln(ris);rip:=concat(f1,n2[a]);verifica(ris,rip); end; end;
procedure idru3; begin dati3;writeln('scrivi nome composto ');tx; for a:=1 to k3 do begin write(d3[a],v3,q);readln(ris);rip:=concat(f1,n3[a]);verifica(ris,rip); end; end;
procedure idru4; begin dati4;writeln('scrivi nome composto ');tx; for a:=1 to k4 do begin write(d4[a],v4,q);readln(ris);rip:=concat(f1,n4[a]);verifica(ris,rip); end; end;
procedure idru1a; begin dati1;writeln('scrivi formula ');ty; for a:=1 to k1 do begin write(f1,n1[a],q);readln(ris);rip:=concat(d1[a],v1);verifica(ris,rip); end; end;
procedure idru2a; begin dati2;writeln('scrivi formula ');ty; for a:=1 to k2 do begin write(f1,n2[a],q);readln(ris);rip:=concat(d2[a],v2);verifica(ris,rip); end; end;
procedure idru3a; begin dati3;writeln('scrivi formula ');ty; for a:=1 to k3 do begin write(f1,n3[a],q);readln(ris);rip:=concat(d3[a],v3);verifica(ris,rip); end; end;
procedure idru4a; begin dati4;writeln('scrivi formula ');ty; for a:=1 to k4 do begin write(f1,n4[a],q);readln(ris);rip:=concat(d4[a],v4);verifica(ris,rip); end; end;
procedure idro1; begin dati1;writeln('scrivi nome composto ');tx; for a:=1 to k1 do begin write(d1[a],e1,q);readln(ris);rip:=concat(b1,n1[a]);verifica(ris,rip); end; end;
procedure idro2; begin dati2;writeln('scrivi nome composto ');tx; for a:=1 to k2 do begin write(d2[a],e2,q);readln(ris);rip:=concat(b1,n2[a]);verifica(ris,rip); end; end;
procedure idro3; begin dati3;writeln('scrivi nome composto');tx; for a:=1 to k3 do begin write(d3[a],e3,q);readln(ris);rip:=concat(b1,n3[a]);verifica(ris,rip); end; end;
procedure idro4; begin dati4;writeln('scrivi nome composto ');tx; for a:=1 to k4 do begin write(d4[a],e4,q);readln(ris);rip:=concat(b1,n4[a]);verifica(ris,rip); end; end;
procedure idro1a; begin dati1;writeln('scrivi formula ');ty; for a:=1 to k1 do begin write(b1,n1[a],q);readln(ris);rip:=concat(d1[a],e1);verifica(ris,rip); end; end;
procedure idro2a; begin dati2;writeln('scrivi formula ');ty; for a:=1 to k2 do begin write(b1,n2[a],q);readln(ris);rip:=concat(d2[a],e2);verifica(ris,rip); end; end;
procedure idro3a; begin dati3;writeln('scrivi formula ');ty; for a:=1 to k3 do begin write(b1,n3[a],q);readln(ris);rip:=concat(d3[a],e3);verifica(ris,rip); end; end;
procedure idro4a; begin dati4;writeln('scrivi formula ');ty; for a:=1 to k4 do begin write(b1,n4[a],q);readln(ris);rip:=concat(d4[a],e4);verifica(ris,rip); end; end;
procedure base1a; begin dati1;writeln('scrivi formula ');ty; for a:=1 to k1 do begin write(a1,n1[a],q);readln(ris);rip:=concat(d1[a],'2',h1);verifica(ris,rip); end; end;
procedure base2; begin dati2;writeln('scrivi nome composto ');tx; for a:=1 to k2 do begin write(d2[a],h2,q);readln(ris);rip:=concat(a1,n2[a]);verifica(ris,rip); end; end;
procedure base2a; begin dati2;writeln('scrivi formula ');ty; for a:=1 to k2 do begin write(a1,n2[a],q);readln(ris);rip:=concat(d2[a],h2);verifica(ris,rip); end; end;
procedure base3; begin dati3;writeln('scrivi nome composto ');tx; for a:=1 to k3 do begin write(d3[a],'2',h3,q);readln(ris);rip:=concat(a1,n3[a]);verifica(ris,rip); end; end;
procedure base3a; begin dati3;writeln('scrivi formula ');ty; for a:=1 to k3 do begin write(a1,n3[a],q);readln(ris);rip:=concat(d3[a],'2',h3);verifica(ris,rip); end; end;
procedure base4; begin dati4;writeln('scrivi nome composto ');tx; for a:=1 to k4 do begin write(d4[a],h4,q);readln(ris);rip:=concat(a1,n4[a]);verifica(ris,rip); end; end;
procedure base4a; begin dati4;writeln('scrivi formula ');ty; for a:=1 to k4 do begin write(a1,n4[a],q);readln(ris);rip:=concat(d4[a],h4);verifica(ris,rip); end; end;
procedure pro1;(* ossidi *) begin base1;pausa;cancella;base2;pausa;cancella; base4a;pausa;cancella;base3a;pausa;cancella; end;
procedure pro2; (* ossidi *) begin base1a;pausa;cancella;base2a;pausa;cancella; base3;pausa;cancella;base4;pausa;cancella; end;
procedure pro3; (* idrossidi *) begin idro1;pausa;cancella;idro4a;pausa;cancella; idro3;pausa;cancella;idro1a;pausa;cancella; end;
procedure pro4; (* idrossidi *) begin idro2a;pausa;cancella;idro4;pausa;cancella; idro3a;pausa;cancella;idro2;pausa;cancella; end;
procedure pro5; (* idruri *) begin idru1;pausa;cancella;idru4a;pausa;cancella; idru3;pausa;cancella;idru4;pausa;cancella; idru1a;pausa;cancella;idru2a;pausa;cancella; idru2;pausa;cancella;idru3a;pausa;cancella; end;
procedure pro6; (* ossidi acidi e anidridi*) begin anidri1;pausa;cancella;anidri1a;pausa;cancella;anidri2;pausa;cancella; anidri2a;pausa;cancella; end;
procedure pro7; begin acidi1;pausa;cancella;acidi1a;pausa;cancella; end;
procedure pro8; begin radica1;pausa;cancella;radica1a;pausa;cancella; radica2;pausa;cancella;radica2a;pausa;cancella; end;
procedure pro9; begin ani1;pausa;cancella;ani1a;pausa;cancella; end;
procedure pro10; begin base4a;pausa;cancella;base1;pausa;cancella;base3a;pausa;cancella; base2;pausa;cancella;base1a;pausa;cancella;acidi1a;pausa;cancella; base3;pausa;cancella;base2a;pausa;cancella;base4;pausa;cancella; anidri1;pausa;cancella;idro1;pausa;cancella;anidri2a;pausa;cancella; idro2;pausa;cancella;anidri1a;pausa;cancella;idro3;pausa;cancella; anidri2;pausa;cancella;idro1a;pausa;cancella;idru1a;pausa;cancella; idru4;pausa;cancella;idru3a;pausa;cancella;idro3a;pausa;cancella; acidi1;pausa;cancella;radica1;pausa;cancella;ani1a;pausa;cancella; ani1;pausa;cancella;radica1a;pausa;cancella;radica2;pausa;cancella; radica2a;pausa;cancella; end;
procedure scelta; var s,sn:string;opzione:integer; begin cancella;; writeln('seleziona opzione per NOMENCLATURA CHIMICA '); writeln('1...scrivi il nome o formula:OSSIDI BASICI'); writeln('2...scrivi il nome o formula:OSSIDI BASICI'); writeln('3...scrivi il nome o formula:IDROSSIDI'); writeln('4...scrivi il nome o formula:IDROSSIDI'); writeln('5...scrivi il nome o formula:IDRURI'); writeln('6...scrivi il nome o formula:OSSIDI ACIDI,ANIDRIDI'); writeln('7...scrivi il nome o formula:ACIDI'); writeln('8...scrivi il nome o formula:RADICALI ACIDI,ACIDI'); writeln('9...scrivi il nome o formula:ACIDI,ANIDRIDI '); writeln('10...riassunto 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; 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 *) cancella; writeln('ATTENZIONE:scrivere le risposte in maiuscolo'); writeln('senza spaziatura prima e dopo la risposta '); writeln('indicare la valenza '); writeln('es. OSSIDO DI SODIO1 Al203 ');pausa;cancella; h1:='O';h2:='O';h3:='O3';h4:='O2';q:=' '; e1:='OH';e2:='(OH)2';e3:='(OH)3';e4:='(OH)4'; v1:='H';v2:='H2';v3:='H3';v4:='H4'; a1:='OSSIDO DI ';b1:='IDROSSIDO DI ';f1:='IDRURO DI '; g1:='ANIDRIDE ';z1:='ACIDO '; 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.