listati per programmi in turbo
pascal
su argomenti di chimica, con interazione e correzione
program lega10; (* determinazione tipo geometria molecolare VALUTAZIONE *) uses crt,graph; const k=15; var a,prove,esatte,errate,np,c1,c2,c0,C3,C4:integer; tp,e1,e2,ds:string; s:array[1..k] of string; g:array[1..k] of string; h:array[1..k] of string; procedure grafica; var tp,sc:integer;stringa:string; begin tp:=0;sc:=0;stringa:='c:\scheda\'; initgraph(sc,tp,stringa); end; procedure fine; begin writeln('premi enter'); readln; end; procedure pausa; begin write('premi ENTER ');readln; end; procedure cancella; begin grafica; end; procedure pulire; begin clrscr; end; procedure dati; begin s[1]:=('H2O......O s2p4');g[1]:='5'; s[2]:=('BeCl2....Be s2');g[2]:='1'; s[3]:=('NH3......N s2p3');g[3]:='4'; s[4]:=('AlCl3....Al s2p1');g[4]:='2'; s[5]:=('PH3......P s2p3');g[5]:='4'; s[6]:=('Cl2O.....O s2p4');g[6]:='5'; s[7]:=('SO3......S s2p4');g[7]:='2'; s[8]:=('H2SO4....S s2p4');g[8]:='3'; s[9]:=('H2CO3....C s2p2');g[9]:='2'; s[10]:=('HNO3....N s2p3');g[10]:='2'; s[11]:=('HClO4...Cl s2p5');g[11]:='3'; s[12]:=('HClO3...Cl s2p5');g[12]:='4'; s[13]:=('HBrO2...Br s2p5');g[13]:='5'; s[14]:=('AlBr3...Al s2p1');g[14]:='2'; s[15]:=('BeBr2...Be s2');g[15]:='1'; h[1]:=('H2O......O.....2 legame 2 liberi'); h[2]:=('BeCl2....Be....2 legame 0 liberi'); h[3]:=('NH3......N.....3 legame 1 libero'); h[4]:=('AlCl3....Al....3 legame 0 libero'); h[5]:=('PH3......P.....3 legame 3 1 libero'); h[6]:=('Cl2O.....O.....2 legame 2 liberi'); h[7]:=('SO3......S.....3 legame (2 semplici e uno doppio) 0 liberi'); h[8]:=('H2SO4....S.....4 legame 0 liberi'); h[9]:=('H2CO3....C.....3 legame (2 semplici e uno doppio) 0 liberi'); h[10]:=('HNO3....N.....3 legame (2 semplici e uno doppio) 0 liberi'); h[11]:=('HClO4...Cl....4 legame 0 liberi'); h[12]:=('HClO3...Cl....3 legame 1 libero'); h[13]:=('HBrO2...Br....2 legame 2 liberi'); h[14]:=('AlBr3...Al....3 legame 0 liberi'); h[15]:=('BeBr2...Be....2 legame 0 liberi'); end; procedure dise1; begin setcolor(2);setfillstyle(2,3);fillellipse(200,300,20,20); circle(200,300,20); setcolor(3);circle(100,300,20);circle(300,300,20); setcolor(4);line(100,300,190,300);line(210,300,300,300); outtextxy(370,320,'angolo 180 gradi,lineare'); end; procedure dise2; begin setcolor(2);circle(200,300,20); setcolor(2);setfillstyle(2,3);fillellipse(200,300,20,20); setcolor(3);circle(100,250,20);circle(300,250,20);circle(200,380,20); setcolor(4);line(200,300,100,250);line(200,300,300,250); line(200,300,200,380); outtextxy(370,320,'angolo 120 gradi,planare'); end; procedure dise3; begin setcolor(2);circle(200,300,20); setcolor(2);setfillstyle(2,3);fillellipse(200,300,20,20); setcolor(3);circle(100,350,20);circle(300,350,20);circle(220,380,20); circle(200,220,20); setcolor(4);line(200,300,100,350);line(200,300,300,350); line(200,300,220,380);line(200,300,200,220); outtextxy(370,320,'angolo di 109 gradi,tetraedrico'); end; procedure dise4; begin setcolor(2);setfillstyle(2,3);fillellipse(200,300,20,20); setcolor(3);circle(100,350,20);circle(300,350,20);circle(220,380,20); setcolor(4);line(200,300,100,350);line(200,300,300,350); line(200,300,220,380);line(200,300,200,220); outtextxy(370,320,'angolo di 107 gradi, piramidale'); end; procedure dise5; begin setcolor(2);circle(200,300,20); setcolor(2);setfillstyle(2,3);fillellipse(200,300,20,20); setcolor(3);circle(100,350,20);circle(220,380,20); setcolor(4);line(200,300,100,350);line(200,300,300,350); line(200,300,220,380);line(200,300,200,220); outtextxy(370,320,'angolo di 104 gradi,angolare'); end; procedure pro1; begin for a:=1 to k do begin setbkcolor(c0); setcolor(c3); outtextxy(10,10,'indica tipo di geometria con atomo centrale indicato in:'); outtextxy(10,30,s[a]); str(a,ds); outtextxy(200,30,' TOTALE DOMANDE=15..DOMANDA n.'); outtextxy(450,30,ds); outtextxy(10,40,'------------------------------------------------'); outtextxy(10,60,'1=lineare...2=triangolare..3=tetraedrica..4=piramidale..5=angolare'); outtextxy(10,70,'------------------------------------------------'); SETCOLOR(C4); outtextxy(10,90,'scrivi tipo di forza = '); moveto(0,0);readln(tp);outtextxy(200,90,tp); outtextxy(10,110,'------------------------------------------------'); if tp=g[a] then begin outtextxy(30,140,'esatto'); outtextxy(300,160,(h[a]));esatte:=esatte+1; end else begin outtextxy(100,160,'errato:era ');outtextxy(250,160,g[a]); outtextxy(100,180,'infatti era:');outtextxy(250,180,h[a]);errate:=errate+1;end; if g[a]='1' then dise1; if g[a]='2' then dise2; if g[a]='3' then dise3; if g[a]='4' then dise4; if g[a]='5' then dise5; outtextxy(100,210,'--------------------------------------------------------------'); str(esatte,e1);str(errate,e2); setcolor(c1); outtextxy(100,220,'esatte=');outtextxy(250,220,e1); outtextxy(100,240, 'errate=');outtextxy(250,240,e2); setcolor(c4); pausa;cancella; end;end; begin pulire; c1:=2;c2:=3;c0:=0;C3:=4;C4:=14; writeln('programma:determina tipo di geometria in molecole semplici'); writeln('secondo la teoria VSEPR :repulsione coppie elettroni di valenza'); writeln; writeln('si devono rappresentare le strutture secondo Lewis'); writeln('si devono contare i doppietti elettronici attorno atomo CENTRALE'); writeln('si devono contare i doppietti di legame e quelli ancora liberi'); writeln('NOTA:un doppio legame equivale a 1 solo doppietto di legame'); writeln('e quindi prevedere tipo geometria molecolare'); writeln('-------------------------------------------------------'); writeln('si deve rispondere scrivendo dei NUMERI al posto della forza'); writeln('1 per tipo LINEARE '); writeln('2 per tipo TRIANGOLARE'); writeln('3 per tipo TETRAEDRICO'); writeln('4 per tipo PIRAMIDALE'); writeln('5 per tipo ANGOLARE'); writeln('---------------------------------------------------'); writeln('RICORDARE che in generale la forma risulta:'); writeln('1..LINEARE........con 2 doppietti di legame,0 liberi'); writeln('2..TRIANGOLARE....con 3 doppietti di legame,0 liberi'); writeln('2..TRIANGOLARE....con 2 doppietti di legame,1 libero'); writeln('3..TETRAEDRICA....con 4 doppietti di legame,0 liberi '); writeln('4..PIRAMIDALE.....con 3 doppietti di legame,1 libero'); writeln('5..ANGOLARE.......con 2 doppietti di legame,2 liberi'); writeln('---------------------------------------------------'); pausa;pulire;dati;grafica; np:=k;pro1; closegraph;restorecrtmode;textmode(2); writeln('esatte =',esatte); writeln('errate =',errate); if esatte>errate then writeln('sufficiente') else writeln('insufficiente:studia ancora'); writeln('chiama insegnante per integrare valutazione'); readln; end.
program lega11; (* determinazione tipo geometria molecolare VALUTAZIONE *) (* simile a LEGA10 con grafica migliorata *) uses crt,graph; const k=15; var a,prove,esatte,errate,np,c1,c2,c0,C3,C4:integer; tp,e1,e2,ds:string; s:array[1..k] of string; g:array[1..k] of string; h:array[1..k] of string; procedure grafica; var tp,sc:integer;stringa:string; begin tp:=0;sc:=0;stringa:='c:\scheda\'; initgraph(sc,tp,stringa); end; procedure fine; begin writeln('premi enter'); readln; end; procedure pausa; begin writeln('premi ENTER ');readln; end; procedure cancella; begin grafica; end; procedure pulire; begin clrscr; end; procedure dati; begin s[1]:=('H2O......O s2p4');g[1]:='5'; s[2]:=('BeCl2....Be s2');g[2]:='1'; s[3]:=('NH3......N s2p3');g[3]:='4'; s[4]:=('AlCl3....Al s2p1');g[4]:='2'; s[5]:=('PH3......P s2p3');g[5]:='4'; s[6]:=('Cl2O.....O s2p4');g[6]:='5'; s[7]:=('SO3......S s2p4');g[7]:='2'; s[8]:=('H2SO4....S s2p4');g[8]:='3'; s[9]:=('H2CO3....C s2p2');g[9]:='2'; s[10]:=('HNO3....N s2p3');g[10]:='2'; s[11]:=('HClO4...Cl s2p5');g[11]:='3'; s[12]:=('HClO3...Cl s2p5');g[12]:='4'; s[13]:=('HBrO2...Br s2p5');g[13]:='5'; s[14]:=('AlBr3...Al s2p1');g[14]:='2'; s[15]:=('BeBr2...Be s2');g[15]:='1'; h[1]:=('H2O......O.....2 legame 2 liberi'); h[2]:=('BeCl2....Be....2 legame 0 liberi'); h[3]:=('NH3......N.....3 legame 1 libero'); h[4]:=('AlCl3....Al....3 legame 0 libero'); h[5]:=('PH3......P.....3 legame 3 1 libero'); h[6]:=('Cl2O.....O.....2 legame 2 liberi'); h[7]:=('SO3......S.....3 legame (2 semplici e uno doppio) 0 liberi'); h[8]:=('H2SO4....S.....4 legame 0 liberi'); h[9]:=('H2CO3....C.....3 legame (2 semplici e uno doppio) 0 liberi'); h[10]:=('HNO3....N.....3 legame (2 semplici e uno doppio) 0 liberi'); h[11]:=('HClO4...Cl....4 legame 0 liberi'); h[12]:=('HClO3...Cl....3 legame 1 libero'); h[13]:=('HBrO2...Br....2 legame 2 liberi'); h[14]:=('AlBr3...Al....3 legame 0 liberi'); h[15]:=('BeBr2...Be....2 legame 0 liberi'); end; procedure dise1; begin setlinestyle(0,0,0); setcolor(2);setfillstyle(2,3);fillellipse(200,300,20,20); circle(200,300,20); setcolor(3);circle(100,300,20);circle(300,300,20); setcolor(4);line(100,300,190,300);line(210,300,300,300); outtextxy(370,320,'angolo 180 gradi,lineare'); end; procedure dise2; begin setlinestyle(0,0,0); setcolor(2);circle(200,300,20); setcolor(2);setfillstyle(2,3);fillellipse(200,300,20,20); setcolor(3);circle(100,250,20);circle(300,250,20);circle(200,380,20); setcolor(4);line(200,300,100,250);line(200,300,300,250); line(200,300,200,380); setlinestyle(3,2,2); setcolor(5);line(100,250,300,250); line(100,250,200,380);line(300,250,200,380); outtextxy(370,320,'angolo 120 gradi,planare'); end; procedure dise3; begin setlinestyle(0,0,0); setcolor(2);circle(200,300,20); setcolor(2);setfillstyle(2,3);fillellipse(200,300,20,20); setcolor(3);circle(100,350,20);circle(300,340,20);circle(220,380,20); circle(200,220,20); setcolor(4);line(200,300,100,350);line(200,300,300,340); line(200,300,220,380);line(200,300,200,220); setlinestyle(3,2,2); setcolor(5);line(200,220,100,350);line(200,220,300,340); line(200,220,220,380); line(100,350,300,340);line(100,350,220,380);line(300,340,220,380); outtextxy(370,320,'angolo di 109 gradi,tetraedrico'); end; procedure dise4; begin setlinestyle(0,0,0); setcolor(2);setfillstyle(2,3);fillellipse(200,300,20,20); setcolor(3);circle(100,350,20);circle(300,340,20);circle(220,380,20); setcolor(4);line(200,300,100,350);line(200,300,300,340); line(200,300,220,380); line(200,300,200,220); setlinestyle(3,2,2); setcolor(5);line(200,220,100,350);line(200,220,300,340); line(200,220,220,380); line(100,350,300,340);line(100,350,220,380);line(300,340,220,380); outtextxy(370,320,'angolo di 107 gradi, piramidale'); end; procedure dise5; begin setlinestyle(0,0,0); setcolor(2);circle(200,300,20); setcolor(2);setfillstyle(2,3);fillellipse(200,300,20,20); setcolor(3);circle(100,350,20);circle(220,380,20); setcolor(4);line(200,300,100,350);line(200,300,300,340); line(200,300,220,380);line(200,300,200,220); setlinestyle(3,2,2); setcolor(5);line(200,220,100,350);line(200,220,300,340); line(200,220,220,380); line(100,350,300,340);line(100,350,220,380);line(300,340,220,380); outtextxy(370,320,'angolo di 104 gradi,angolare'); end; procedure pro1; begin for a:=1 to k do begin setbkcolor(c0); setcolor(c3); outtextxy(10,10,'indica tipo di geometria con atomo centrale indicato in:'); outtextxy(10,30,s[a]); str(a,ds); outtextxy(200,30,' TOTALE DOMANDE=15..DOMANDA n.'); outtextxy(450,30,ds); outtextxy(10,40,'------------------------------------------------'); outtextxy(10,60,'1=lineare...2=triangolare..3=tetraedrica..4=piramidale..5=angolare'); outtextxy(10,70,'------------------------------------------------'); SETCOLOR(C4); outtextxy(10,90,'scrivi tipo di forza = '); readln(tp);outtextxy(200,90,tp); outtextxy(10,110,'------------------------------------------------'); if tp=g[a] then begin outtextxy(30,140,'esatto'); outtextxy(300,160,(h[a]));esatte:=esatte+1; end else begin outtextxy(100,160,'errato:era ');outtextxy(250,160,g[a]); outtextxy(100,180,'infatti era:');outtextxy(250,180,h[a]);errate:=errate+1;end; if g[a]='1' then dise1; if g[a]='2' then dise2; if g[a]='3' then dise3; if g[a]='4' then dise4; if g[a]='5' then dise5; outtextxy(100,210,'--------------------------------------------------------------'); str(esatte,e1);str(errate,e2); setcolor(c1); outtextxy(100,220,'esatte=');outtextxy(250,220,e1); outtextxy(100,240, 'errate=');outtextxy(250,240,e2); setcolor(c4); pausa;cancella; end;end; begin pulire; c1:=2;c2:=3;c0:=0;C3:=4;C4:=14; writeln('programma:determina tipo di geometria in molecole semplici'); writeln('secondo la teoria VSEPR :repulsione coppie elettroni di valenza'); writeln; writeln('si devono rappresentare le strutture secondo Lewis'); writeln('si devono contare i doppietti elettronici attorno atomo CENTRALE'); writeln('si devono contare i doppietti di legame e quelli ancora liberi'); writeln('NOTA:un doppio legame equivale a 1 solo doppietto di legame'); writeln('e quindi prevedere tipo geometria molecolare'); writeln('-------------------------------------------------------'); writeln('si deve rispondere scrivendo dei NUMERI al posto della forza'); writeln('1 per tipo LINEARE '); writeln('2 per tipo TRIANGOLARE'); writeln('3 per tipo TETRAEDRICO'); writeln('4 per tipo PIRAMIDALE'); writeln('5 per tipo ANGOLARE'); writeln('---------------------------------------------------'); writeln('RICORDARE che in generale la forma risulta:'); writeln('1..LINEARE........con 2 doppietti di legame,0 liberi'); writeln('2..TRIANGOLARE....con 3 doppietti di legame,0 liberi'); writeln('2..TRIANGOLARE....con 2 doppietti di legame,1 libero'); writeln('3..TETRAEDRICA....con 4 doppietti di legame,0 liberi '); writeln('4..PIRAMIDALE.....con 3 doppietti di legame,1 libero'); writeln('5..ANGOLARE.......con 2 doppietti di legame,2 liberi'); writeln('---------------------------------------------------'); pausa;pulire;dati;grafica; np:=k;pro1; closegraph;restorecrtmode;textmode(2); writeln('esatte =',esatte); writeln('errate =',errate); if esatte>errate then writeln('sufficiente') else writeln('insufficiente:studia ancora'); writeln('chiama insegnante per integrare valutazione'); readln; end.
program lega12; (* determinazione tipo geometria molecolare VALUTAZIONE *) (* simile a LEGA11 con grafica migliorata *) uses crt,graph; const k=15; var a,prove,esatte,errate,np,c1,c2,c0,C3,C4:integer; tp,e1,e2,ds:string; s:array[1..k] of string; g:array[1..k] of string; h:array[1..k] of string; e:array[1..k] of string[5]; f:array[1..k] of string[5]; v:array[1..k] of string[5]; procedure grafica; var tp,sc:integer;stringa:string; begin tp:=0;sc:=0;stringa:='c:\scheda\'; initgraph(sc,tp,stringa); end; procedure fine; begin writeln('premi enter'); readln; end; procedure pausa; begin writeln('premi ENTER ');readln; end; procedure cancella; begin grafica; end; procedure pulire; begin clrscr; end; procedure dati; begin s[1]:=('H2O......O s2p4');g[1]:='5';e[1]:='H';f[1]:='O'; v[1]:=''; s[2]:=('BeCl2....Be s2');g[2]:='1'; e[2]:='Cl';f[2]:='Be'; v[2]:=''; s[3]:=('NH3......N s2p3');g[3]:='4';e[3]:='H'; f[3]:='N'; v[3]:=''; s[4]:=('AlCl3....Al s2p1');g[4]:='2';e[4]:='Cl'; f[4]:='Al';v[4]:=''; s[5]:=('PH3......P s2p3');g[5]:='4';e[5]:='H'; f[5]:='P'; v[5]:=''; s[6]:=('Cl2O.....O s2p4');g[6]:='5';e[6]:='Cl'; f[6]:='O'; v[6]:=''; s[7]:=('SO3......S s2p4');g[7]:='2';e[7]:='O'; f[7]:='S'; v[7]:=''; s[8]:=('HIO4.....I s2p5');g[8]:='3';e[8]:='O'; f[8]:='I'; v[8]:='H'; s[9]:=('H2CO3....C s2p2');g[9]:='2';e[9]:='O'; f[9]:='C'; v[9]:='H'; s[10]:=('H2SO3...S s2p4');g[10]:='2';e[10]:='O';f[10]:='S';v[10]:='H'; s[11]:=('HClO4...Cl s2p5');g[11]:='3';e[11]:='O';f[11]:='Cl';v[11]:='H'; s[12]:=('HClO3...Cl s2p5');g[12]:='4';e[12]:='O';f[12]:='Cl';v[12]:='H'; s[13]:=('HBrO2...Br s2p5');g[13]:='5';e[13]:='O';f[13]:='Br';v[13]:='H'; s[14]:=('AlBr3...Al s2p1');g[14]:='2';e[14]:='Br';f[14]:='Al';v[14]:=''; s[15]:=('BeBr2...Be s2');g[15]:='1'; e[15]:='Br';f[15]:='Be';v[15]:=''; h[1]:=('H2O......O.....2 legame 2 liberi'); h[2]:=('BeCl2....Be....2 legame 0 liberi'); h[3]:=('NH3......N.....3 legame 1 libero'); h[4]:=('AlCl3....Al....3 legame 0 libero'); h[5]:=('PH3......P.....3 legame 3 1 libero'); h[6]:=('Cl2O.....O.....2 legame 2 liberi'); h[7]:=('SO3......S.....3 legame (2 semplici e uno doppio) 0 liberi'); h[8]:=('HIO4....S.....4 legame 0 liberi'); h[9]:=('H2CO3....C.....3 legame (2 semplici e uno doppio) 0 liberi'); h[10]:=('H2SO3...S.....3 legame (2 semplici e uno doppio) 0 liberi'); h[11]:=('HClO4...Cl....4 legame 0 liberi'); h[12]:=('HClO3...Cl....3 legame 1 libero'); h[13]:=('HBrO2...Br....2 legame 2 liberi'); h[14]:=('AlBr3...Al....3 legame 0 liberi'); h[15]:=('BeBr2...Be....2 legame 0 liberi'); end; procedure dise1; begin setlinestyle(0,0,0); setcolor(2);circle(200,300,20); setcolor(3);circle(100,300,20);circle(300,300,20); setcolor(4);line(100,300,190,300);line(210,300,300,300); setcolor(14); outtextxy(370,320,'angolo 180 gradi,lineare');outtextxy(200,300,f[a]); outtextxy(100,300,e[a]);outtextxy(300,300,e[a]); end; procedure dise2; begin setlinestyle(0,0,0); setcolor(2);circle(200,300,20); setcolor(3);circle(100,250,20);circle(300,250,20);circle(200,380,20); setcolor(4);line(200,300,100,250);line(200,300,300,250); line(200,300,200,380); setlinestyle(3,2,2); setcolor(5);line(100,250,300,250); line(100,250,200,380);line(300,250,200,380); setcolor(14);outtextxy(370,320,'angolo 120 gradi,planare'); outtextxy(100,250,e[a]);outtextxy(300,250,e[a]); outtextxy(200,380,e[a]);outtextxy(200,300,f[a]); outtextxy(90,250,v[a]);outtextxy(310,250,v[a]); end; procedure dise3; begin setlinestyle(0,0,0); setcolor(2);circle(200,300,20); setcolor(3);circle(100,350,20);circle(300,340,20);circle(220,380,20); circle(200,220,20); setcolor(4);line(200,300,100,350);line(200,300,300,340); line(200,300,220,380);line(200,300,200,220); setlinestyle(3,2,2); setcolor(5);line(200,220,100,350);line(200,220,300,340); line(200,220,220,380); line(100,350,300,340);line(100,350,220,380);line(300,340,220,380); setcolor(14);outtextxy(370,320,'angolo di 109 gradi,tetraedrico'); outtextxy(200,220,e[a]);outtextxy(100,350,e[a]); outtextxy(220,380,e[a]);outtextxy(300,340,e[a]);outtextxy(200,300,f[a]); outtextxy(310,340,v[a]); end; procedure dise4; begin setlinestyle(0,0,0); setcolor(2);circle(200,300,20); setcolor(3);circle(100,350,20);circle(300,340,20);circle(220,380,20); setcolor(4);line(200,300,100,350);line(200,300,300,340); line(200,300,220,380); line(200,300,200,220); setlinestyle(3,2,2); setcolor(5);line(200,220,100,350);line(200,220,300,340); line(200,220,220,380); line(100,350,300,340);line(100,350,220,380);line(300,340,220,380); setcolor(14);outtextxy(370,320,'angolo di 107 gradi, piramidale'); outtextxy(100,350,e[a]); outtextxy(220,380,e[a]);outtextxy(300,340,e[a]);outtextxy(200,300,f[a]); outtextxy(310,340,v[a]); end; procedure dise5; begin setlinestyle(0,0,0); setcolor(2);circle(200,300,20); setcolor(3);circle(100,350,20);circle(220,380,20); setcolor(4);line(200,300,100,350);line(200,300,300,340); line(200,300,220,380);line(200,300,200,220); setlinestyle(3,2,2); setcolor(5);line(200,220,100,350);line(200,220,300,340); line(200,220,220,380); line(100,350,300,340);line(100,350,220,380);line(300,340,220,380); setcolor(14);outtextxy(370,320,'angolo di 104 gradi,angolare'); outtextxy(100,350,e[a]); outtextxy(220,380,e[a]);outtextxy(200,300,f[a]); outtextxy(90,350,v[a]); end; procedure pro1; begin for a:=1 to k do begin setbkcolor(c0); setcolor(c3); outtextxy(10,10,'indica tipo di geometria con atomo centrale indicato in:'); outtextxy(10,30,s[a]); str(a,ds); outtextxy(200,30,' TOTALE DOMANDE=15..DOMANDA n.'); outtextxy(450,30,ds); outtextxy(10,40,'------------------------------------------------'); outtextxy(10,60,'1=lineare...2=triangolare..3=tetraedrica..4=piramidale..5=angolare'); outtextxy(10,70,'------------------------------------------------'); SETCOLOR(C4); outtextxy(10,90,'scrivi tipo di forza = '); moveto(20,100);readln(tp);outtextxy(200,90,tp); outtextxy(10,110,'------------------------------------------------'); if tp=g[a] then begin outtextxy(30,140,'esatto'); outtextxy(300,160,(h[a]));esatte:=esatte+1; end else begin outtextxy(100,160,'errato:era ');outtextxy(250,160,g[a]); outtextxy(100,180,'infatti era:');outtextxy(250,180,h[a]);errate:=errate+1;end; if g[a]='1' then dise1; if g[a]='2' then dise2; if g[a]='3' then dise3; if g[a]='4' then dise4; if g[a]='5' then dise5; outtextxy(100,210,'--------------------------------------------------------------'); str(esatte,e1);str(errate,e2); setcolor(c1); outtextxy(100,220,'esatte=');outtextxy(250,220,e1); outtextxy(100,240, 'errate=');outtextxy(250,240,e2); setcolor(c4); pausa;cancella; end;end; begin pulire; c1:=2;c2:=3;c0:=0;C3:=4;C4:=14; writeln('programma:determina tipo di geometria in molecole semplici'); writeln('secondo la teoria VSEPR :repulsione coppie elettroni di valenza'); writeln; writeln('si devono rappresentare le strutture secondo Lewis'); writeln('si devono contare i doppietti elettronici attorno atomo CENTRALE'); writeln('si devono contare i doppietti di legame e quelli ancora liberi'); writeln('NOTA:un doppio legame equivale a 1 solo doppietto di legame'); writeln('e quindi prevedere tipo geometria molecolare'); writeln('-------------------------------------------------------'); writeln('si deve rispondere scrivendo dei NUMERI al posto della forza'); writeln('1 per tipo LINEARE '); writeln('2 per tipo TRIANGOLARE'); writeln('3 per tipo TETRAEDRICO'); writeln('4 per tipo PIRAMIDALE'); writeln('5 per tipo ANGOLARE'); writeln('---------------------------------------------------'); writeln('RICORDARE che in generale la forma risulta:'); writeln('1..LINEARE........con 2 doppietti di legame,0 liberi'); writeln('2..TRIANGOLARE....con 3 doppietti di legame,0 liberi'); writeln('2..TRIANGOLARE....con 2 doppietti di legame,1 libero'); writeln('3..TETRAEDRICA....con 4 doppietti di legame,0 liberi '); writeln('4..PIRAMIDALE.....con 3 doppietti di legame,1 libero'); writeln('5..ANGOLARE.......con 2 doppietti di legame,2 liberi'); writeln('---------------------------------------------------'); pausa;pulire;dati;grafica; np:=k;pro1; closegraph;restorecrtmode;textmode(2); writeln('esatte =',esatte); writeln('errate =',errate); if esatte>errate then writeln('sufficiente') else writeln('insufficiente:studia ancora'); writeln('chiama insegnante per integrare valutazione'); readln; end.
program lega13; (* didattico per mostrare formazione legami chimici GRAFICA scheda *) uses crt,graph; var a,c1,c2,c0,C3,C4,tx:integer; dp,dn:string; procedure grafica; var tp,sc:integer;stringa:string; begin tp:=0;sc:=0;stringa:='c:\scheda\'; initgraph(sc,tp,stringa); end; procedure pausa; begin write('premi ENTER ');readln; end; procedure cancella; begin grafica; end; procedure pau; begin delay(tx); end; procedure pulire; begin clrscr; end; procedure frase; begin outtextxy(500,390,'premi enter');readln; end; procedure omopo(x,y,s,c:integer); begin setfillstyle(s,c); fillellipse(x,y,50,50); setfillstyle(1,14);fillellipse(x,y,5,5); end; procedure omopo1(x,y,s,c:integer); begin setfillstyle(s,c); fillellipse(x,y,20,20); setfillstyle(1,14);fillellipse(x,y,5,5); end; procedure lega(x,y,rx,ry:integer); begin setfillstyle(7,6);fillellipse(x,y,rx,ry); end; procedure lega1(x,y,rx,ry:integer); begin setfillstyle(7,5);fillellipse(x,y,rx,ry); end; procedure orbi(x,y,f:integer); var rx,ry:integer; begin rx:=30;ry:=20;setfillstyle(f,f);fillellipse(x,y,rx,ry); end; procedure sx(x,y:integer;s:string); begin outtextxy(x,y,s); end; procedure tipo; begin setcolor(4);outtextxy(100,400,'orbitale di legame'); end; procedure carica(a,b:integer;s:string); begin outtextxy(a,b,s); end; procedure cloro; begin omopo(200,200,7,2);pau;omopo(400,200,7,2);pau; sx(200,180,'s2');sx(400,180,'s2'); orbi(260,200,3);orbi(340,200,3);sx(260,240,'pz1+');sx(340,240,'pz1-'); orbi(160,160,7);orbi(160,240,7);sx(160,120,'px2');sx(160,280,'py2'); orbi(440,160,7);orbi(440,240,7);sx(440,120,'px2');sx(440,280,'py2'); frase;lega(300,200,70,30);tipo;frase;cancella; end; procedure solfo; begin omopo(200,200,7,2);pau;omopo(400,200,7,2);pau; sx(200,180,'s2');sx(400,180,'s2'); orbi(150,200,7);orbi(450,200,7);sx(150,200,'px2');sx(450,200,'px2'); orbi(250,160,3);orbi(250,240,4);sx(250,120,'py1+');sx(250,280,'pz1+'); orbi(350,160,3);orbi(350,240,4);sx(350,120,'py1-');sx(350,280,'pz1-'); frase;lega(300,240,80,30);lega1(300,160,80,30); tipo;frase;cancella; end; procedure azoto; begin omopo(200,200,7,2);pau;omopo(400,200,7,2);pau; sx(200,180,'s2');sx(400,180,'s2'); orbi(250,200,3);orbi(350,200,4);sx(130,200,'px2');sx(450,200,'px2'); orbi(250,160,3);orbi(350,160,4);sx(250,120,'py1+');sx(250,270,'pz1+'); orbi(250,240,3);orbi(350,240,4);sx(350,120,'py1-');sx(350,270,'pz1-'); frase;lega(300,240,80,30);lega1(300,160,80,30);lega1(300,200,80,30); tipo;frase;cancella; end; procedure polare; begin omopo(200,200,7,2);pau;omopo1(370,200,6,2);pau; carica(400,200,dp);carica(100,200,dn); sx(200,180,'s2');sx(400,180,'s1-'); orbi(260,200,3);sx(260,240,'pz1+'); orbi(160,160,7);orbi(160,240,7);sx(160,120,'px2'); sx(160,280,'py2'); frase;lega(300,200,70,30);tipo;frase;cancella; end; procedure doppio; begin omopo(200,200,7,2);pau;omopo1(350,160,6,2);omopo1(350,240,6,2);pau; sx(200,180,'s2'); carica(50,200,dn);carica(400,160,dp);carica(400,240,dp); orbi(150,200,7);sx(150,200,'px2');orbi(250,160,3);orbi(250,240,3); sx(250,130,'py1+');sx(250,280,'pz1+'); sx(350,130,'s1-');sx(350,280,'s1-'); frase;lega(290,240,50,20);lega(290,160,50,20); tipo;frase;cancella; end; procedure tipox(a,b:string); begin outtextxy(100,350,'carica parziale positiva su '+a); outtextxy(100,360,'carica parziale negativa su '+b); end; procedure triplo; begin omopo(200,200,7,2);pau;omopo1(370,200,7,2);pau; omopo1(370,160,6,2);omopo1(370,240,6,2);pau; sx(200,180,'s2');sx(400,200,'s1-'); carica(50,200,dn);carica(400,150,dp);carica(400,230,dp); carica(400,190,dp); orbi(250,200,3);sx(130,200,'px2'); orbi(250,160,3);sx(250,120,'py1+');sx(250,270,'pz1+'); orbi(250,240,3);sx(400,240,'s1-');sx(400,160,'s1-'); frase;lega(310,240,50,20);lega(310,160,50,20);lega(310,200,50,20); tipo;frase;cancella; end; procedure dativo; begin omopo(300,200,7,2);sx(300,180,'s2'); orbi(350,160,3);sx(350,120,'py1+'); orbi(350,240,3);sx(350,280,'pz1+'); orbi(250,200,7);sx(250,160,'px2');pau; omopo(500,200,7,3);sx(500,180,'s2'); orbi(450,160,3);sx(450,120,'py1-'); orbi(450,240,3);sx(450,280,'pz1-'); orbi(550,200,7);sx(550,160,'px2');pau; lega(400,160,70,20); outtextxy(100,350,'legame covalente polare sigma');pau; lega(400,240,70,20); outtextxy(100,360,'legame covalente polare pigreco');pau; omopo(100,200,7,3);sx(100,180,'s2'); orbi(50,160,7);sx(50,120,'px2'); orbi(50,240,7);sx(50,280,'py2'); orbi(150,200,0);sx(150,160,'pz0'); lega(200,200,70,20); outtextxy(100,380,'legame covalente polare dativo sigma'); outtextxy(100,390,'Zolfo donatore doppietto di legame'); outtextxy(100,400,'Ossigeno accettore con orbitale vacante'); end; procedure ionico; begin setcolor(c2);circle(250,200,70); setcolor(c3);circle(400,200,70); outtextxy(200,300,'atomo neutro'); outtextxy(400,300,'atomo neutro'); frase; setfillstyle(7,3);fillellipse(250,200,40,40); setfillstyle(7,4);fillellipse(400,200,90,90); setcolor(2);circle(400,200,50); outtextxy(100,320,'catione con carica positiva diffusa'); outtextxy(300,80,'anione con carica negativa diffusa'); outtextxy(100,340,'forza elettrostatica genera legame ionico'); end; procedure ionico2; begin setcolor(c2);circle(250,200,70); setcolor(c3);circle(400,200,70); setcolor(c3);circle(100,200,70); outtextxy(200,300,'atomo neutro'); outtextxy(400,300,'atomo neutro'); outtextxy(50,300,'atomo neutro'); frase; setfillstyle(7,3);fillellipse(250,200,40,40); setfillstyle(7,4);fillellipse(400,200,90,90); setfillstyle(7,4);fillellipse(100,200,90,90); setcolor(2);circle(400,200,50);circle(100,200,50); outtextxy(100,320,'catione con carica positiva diffusa'); outtextxy(100,80,'anioni con carica negativa diffusa'); outtextxy(100,340,'forza elettrostatica genera legame ionico'); end; procedure pro1; begin outtextxy(100,20,'legame covalente omopolare H2 H-H De=0 '); outtextxy(100,30,'1s1+ 1s1- con condivisione doppietto elettroni'); outtextxy(100,40,'per raggiungere configurazione stabile s2'); omopo(100,100,5,2);pau;omopo(300,100,3,2);pau; sx(100,170,'s1+');sx(300,170,'s1-');frase; lega(200,100,80,30);tipo;frase;cancella; outtextxy(100,20,'legame covalente omopolare Cl2 Cl-Cl De=0'); outtextxy(100,30,'3pz1+ 3pz1- con condivisione doppietto elettroni'); outtextxy(100,40,'per raggiungere configurazione stabile s2,p6'); cloro; outtextxy(100,20,'legame covalente omopolare F2 F-F De=0'); outtextxy(100,30,'2pz1+ 2pz1- con condivisione doppietto elettroni'); outtextxy(100,40,'per raggiungere configurazione stabile s2,p6'); cloro; outtextxy(100,20,'legame covalente omopolare I2 I-I De=0'); outtextxy(100,30,'5pz1+ 5pz1- con condivisione doppietto elettroni'); outtextxy(100,40,'per raggiungere configurazione stabile s2,p6'); cloro; outtextxy(100,20,'legame covalente omopolare Br2 Br-Br De=0'); outtextxy(100,30,'4pz1+ 4pz1- con condivisione doppietto elettroni'); outtextxy(100,40,'per raggiungere configurazione stabile s2,p6'); cloro;pausa; outtextxy(100,20,'legame covalente omopolare O2 O=O De=0'); outtextxy(100,30,'2py1+...2py1- 2pz1+...2pz1- condivisione di due doppietti'); outtextxy(100,40,'per raggiungere configurazione stabile s2,p6'); outtextxy(100,350,'legame doppio: 1 sigma+forte,1 pigreco+debole'); solfo;pausa; outtextxy(100,20,'legame covalente omopolare N2 N---N De=0'); outtextxy(100,30,'(2px1+.2px1-) (2py1+.2py1-) (2pz1+.2pz1-) condivisione di tre doppietti'); outtextxy(100,40,'per raggiungere configurazione stabile s2,p6'); outtextxy(100,350,'legame triplo: 1 sigma+forte,2 pigreco+debole'); azoto;pausa; outtextxy(100,20,'legame covalente polare HCl H-Cl con De<1.7'); outtextxy(100,30,'pz1+ s1- con condivisione doppietto elettroni'); outtextxy(100,40,'per raggiungere configurazione stabile s2p6 s2'); tipox('H','Cl');polare;pausa; outtextxy(100,20,'legame covalente polare HBr H-Br con De<1.7'); outtextxy(100,30,'pz1+ s1- con condivisione doppietto elettroni'); outtextxy(100,40,'per raggiungere configurazione stabile s2p6 s2'); tipox('H','Br');polare;pausa; outtextxy(100,20,'legame covalente polare HI H-I con De<1.7'); outtextxy(100,30,'pz1+ s1- con condivisione doppietto elettroni'); outtextxy(100,40,'per raggiungere configurazione stabile s2p6 s2'); tipox('H','I');polare;pausa; outtextxy(100,20,'legame covalente polare H2O H-O-H con De<1.7'); outtextxy(100,30,'(pz1+ s1-) (py1+ s1-) con condivisione doppietto elettroni'); outtextxy(100,40,'per raggiungere configurazione stabile s2p6 s2'); tipox('H','O');doppio;pausa; outtextxy(100,20,'legame covalente polare H2S H-S-H con De<1.7'); outtextxy(100,30,'(pz1+ s1-) (py1+ s1-) con condivisione doppietto elettroni'); outtextxy(100,40,'per raggiungere configurazione stabile s2p6 s2'); tipox('H','S');doppio;pausa; outtextxy(100,20,'legame covalente polare NH3 con De<1.7'); outtextxy(100,30,'(pz1+ s1-) (py1+ s1-) (pz1+ s1-) con condivisione doppietto elettroni'); outtextxy(100,40,'per raggiungere configurazione stabile s2p6 s2'); tipox('H','N');triplo;pausa;cancella; outtextxy(20,20,'legame covalente in SO2 con De<1.7 '); outtextxy(20,30,'S s2,px2,py1+,pz1+ O s2,px2,py1,pz1- O s2,px2,py2,pz0'); outtextxy(20,40,'per raggiungere configurazione stabile'); outtextxy(20,60,'S 3s2,3p6 O 2s2,2p6 '); outtextxy(20,70,'legame covalente polare sigma,pigreco tra S=O '); outtextxy(20,80,'legame covalente polare dativo sigma tra S-->O '); dativo;pausa;cancella; outtextxy(20,20,'legame ionico in NaCl Na+ Cl- con De>1.7 '); outtextxy(20,30,'s1- pz1+ con cessione acquisto di elettrone'); outtextxy(20,40,'per raggiungere configurazione stabile'); outtextxy(20,60,'Na 3s1 ---> 2s2,2p6 Cl 3s2,3p5 ---> 3s2,3p6 '); ionico;pausa;cancella; outtextxy(20,20,'legame ionico in KF K+ F- con De>1.7 '); outtextxy(20,30,'s1- pz1+ con cessione acquisto di elettrone'); outtextxy(20,40,'per raggiungere configurazione stabile'); outtextxy(20,60,'K 4s1 ---> 3s2,3p6 F 2s2,2p5 ---> 2s2,2p6 '); ionico;pausa;cancella; outtextxy(20,20,'legame ionico in CaF2 Ca++ 2 F- con De>1.7 '); outtextxy(20,30,'s2 pz1+ pz1+ con cessione acquisto di elettroni'); outtextxy(20,40,'per raggiungere configurazione stabile'); outtextxy(20,60,'Ca 4s2 ---> 3s2,3p6 F 2s2,2p5 ---> 2s2,2p6 '); ionico2;pausa;cancella; outtextxy(20,20,'legame ionico in MgF2 Mg++ 2 F- con De>1.7 '); outtextxy(20,30,'s2 pz1+ pz1+ con cessione acquisto di elettroni'); outtextxy(20,40,'per raggiungere configurazione stabile'); outtextxy(20,60,'Ca 3s2 ---> 2s2,2p6 F 2s2,2p5 ---> 2s2,2p6 '); ionico2;pausa;cancella; end; begin pulire; dp:='delta+';dn:='delta-'; c1:=2;c2:=3;c0:=0;C3:=4;C4:=14; writeln('formazione di legami tra atomi:'); writeln('LEGAME COVALENTE OMOPOLARE o PURO : se De<=0.2 '); writeln('LEGAME COVALENTE POLARE : se 0.2 < De < 1.7 '); writeln('LEGAME COVALENTE POLARE DATIVO : se 0.2 < De < 1.7'); writeln('LEGAME IONICO o ETEROPOLARE : se De > 1.7 '); writeln('------------------------------------------------------'); writeln('1..si deve scrivere la configurazione ultimo livello secondo Lewis'); writeln(' per ogni elemento da legare'); writeln('2..si deve cercare il valore della elettronegativit per ogni'); writeln(' elemento da legare'); writeln('3..si deve fare la differenza tra i valori delle elettronegativit '); writeln('4..si prevede il tipo di legame probabile seguendo le regole'); writeln(' indicate in precedenza'); writeln; repeat write('scrivi valore per velocit : da 1 veloce a 200 lento ');readln(tx); until tx<201; pausa;pulire;grafica;pro1;closegraph;restorecrtmode;textmode(2); end.