esercizi di chimica con turbo pascal 1.1 su mac
Program nomi1; (* nomenclatura composti chimici *)
USES Memtypes,QuickDraw,OSIntf,ToolIntf,fixmath; 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;
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 clearscreen; 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 verifica6; begin if ris=dx[a] then begin writeln(' esatto ');esatte:=esatte+1;end else begin writeln(' errato:era ',dx[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 acidi; begin writeln('scrivi i nomi dei composti:es.ACIDO CLOROSO oppure premi ENTER'); writeln; dati; for a:=1 to k do begin write(dx[a],' ');readln(ris); verifica2; 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(ris); verifica7; end; end;
procedure formula; begin writeln('scrivi formula:es.HBrO3 ..HClO2.. oppure premi ENTER'); writeln; dati; for a:=1 to k do begin write(rx[a],' ');readln(ris); verifica6; end; end;
procedure radicale; begin writeln('scrivi nome radicale:es.SOLFATO.. oppure premi ENTER'); writeln; dati; for a:=1 to k do begin write(dx[a],' ');readln(ris); 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 pro2; begin acidi; end;
procedure anidridi; 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(rx[a],' ');readln(ris); verifica3; end; end;
procedure pro3; begin anidridi; 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(ris); verifica3; end; end;
procedure pro4; 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(ris); verifica2; end; 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(ris); verifica2; end; end;
procedure pro5; begin nomiacidi; end;
procedure pro6; begin formula; end;
procedure pro7; begin radicale; end;
procedure pro8; begin nomeradicale; end;
procedure pro9; 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...XY.. .............scrivi il nome del composto'); writeln('3...ACIDO ............scrivi nome anidride che lo genera'); writeln('4...HXO...............scrivi nome anidride che lo genera '); writeln('5...ANIDRIDE .........scrivi nome acido generato'); writeln('6...ACIDO.............scrivi la formula'); writeln('7...XY................scrivi nome del radicale'); writeln('8...ACIDO.............scrivi nome del radicale'); writeln('9...RADICALE..........scrivi nome dello acido '); writeln('9...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; 9: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; esatte:=0;errate:=0;totale:=0; scelta; writeln('risposte esatte ',esatte,' su domande ',totale); writeln('risposte errate ',errate,' su domande ',totale); writeln('chiama insegnante per valutazione '); pausa; end.
Program nomi2; (* nomenclatura composti chimici CON VALUTAZIONE *) (* con presentazione finale risposte inserite *)
USES Memtypes,QuickDraw,OSIntf,ToolIntf,fixmath; 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 clearscreen; 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 verifica6; begin if ris=dx[a] then begin writeln(' esatto ');esatte:=esatte+1;end else begin writeln(' errato:era ',dx[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 acidi; begin writeln('scrivi i nomi dei composti:es.ACIDO CLOROSO oppure premi ENTER'); writeln; dati; for a:=1 to k do begin write(dx[a],' ');readln(adx[a]);ris:=adx[a]; verifica2; 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(ris); verifica7; end; end;
procedure formula; begin writeln('scrivi formula:es.HBrO3 ..HClO2.. oppure premi ENTER'); writeln; dati; for a:=1 to k do begin write(rx[a],' ');readln(ris); verifica6; end; end;
procedure radicale; begin writeln('scrivi nome radicale:es.SOLFATO.. oppure premi ENTER'); writeln; dati; for a:=1 to k do begin write(dx[a],' ');readln(ris); 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 pro2; begin acidi; end;
procedure anidridi; 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(rx[a],' ');readln(arx[a]);ris:=arx[a]; verifica3; end; end;
procedure pro3; begin anidridi; 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(ris); verifica3; end; end;
procedure pro4; 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(ris); verifica2; end; 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(ris); verifica2; end; end;
procedure pro5; begin nomiacidi; end;
procedure pro6; begin formula; end;
procedure pro7; begin radicale; end;
procedure pro8; begin nomeradicale; end;
procedure pro9; 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...XY.. .............scrivi il nome del composto'); writeln('3...ACIDO ............scrivi nome anidride che lo genera'); writeln('4...HXO...............scrivi nome anidride che lo genera '); writeln('5...ANIDRIDE .........scrivi nome acido generato'); writeln('6...ACIDO.............scrivi la formula'); writeln('7...XY................scrivi nome del radicale'); writeln('8...ACIDO.............scrivi nome del radicale'); writeln('9...RADICALE..........scrivi nome dello acido '); writeln('9...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; 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; for a:=1 to k do writeln(dx[a]:20,rx[a]:20,adx[a]:20); end;
procedure rivedi3; begin dati;cancella; for a:=1 to 15 do writeln(rx[a]:20,ry[a]:20,arx[a]:20); end;
begin (* programma di lancio *) cancella; esatte:=0;errate:=0;totale:=0; scelta; writeln('risposte esatte ',esatte,' su domande ',totale); writeln('risposte errate ',errate,' su domande ',totale); writeln('chiama insegnante per valutazione '); pausa; rivedi2;pausa;rivedi3;pausa; pausa; end.
Program nomi3; (* nomenclatura composti chimici CON VALUTAZIONE *) (* con presentazione finale risposte inserite *) (* ACIDI E ANIDRIDI *)
USES Memtypes,QuickDraw,OSIntf,ToolIntf,fixmath; 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 clearscreen; 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 acidi; begin writeln('scrivi i nomi dei composti:es.ACIDO CLOROSO oppure premi ENTER'); writeln; dati; for a:=1 to k do begin write(dx[a],' ');readln(adx[a]);ris:=adx[a]; verifica2; end; end;
procedure pro1; begin writeln('scopo del programma e verificare la conoscenza della nomenclatura'); writeln('dei composti chimici:ACIDI,ANIDRIDI '); pausa; end;
procedure pro2; begin acidi; end;
procedure anidridi; 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(rx[a],' ');readln(arx[a]);ris:=arx[a]; verifica3; end; end;
procedure pro3; begin anidridi; 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...XY.. .............scrivi il nome del composto'); writeln('3...ACIDO ............scrivi nome anidride che lo genera'); 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(dx[a]:20,rx[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(rx[a]:20,ry[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 la valutazione');pausa; esatte:=0;errate:=0;totale:=0; end.