listati per programmi in turbo
pascal
su argomenti di chimica, con interazione e correzione
program confi1; (* scrivere configurazione elettronica ULTIMO livello e BLOCCO *) (* scrivere gruppo appartenenza e periodo *) (* variante di orbita1 :presenta configurazione completa e ultima *) (* con correzione e valutazione finale *) (* NOTA il GRUPPO PER ELEMENTI TRANSIZIONE VIENE ASSEGNATO=2 *) (* Z casuale *) uses crt; const n=55; var a,z,esatte,errate,prove,caso,numero,gruppo,periodo:integer; blocco:string[5]; d:array[1..n] of string; u:array[1..n] of string[20]; b:array[1..n] of string[5]; e:array[1..n] of integer; p:array[1..n] of integer; r:string; c:real; procedure cancella; begin clrscr; end; procedure pausa; begin writeln('premi INVIO ');readln; end; procedure dati; begin d[1]:='1s1';u[1]:='1s1';b[1]:='s';e[1]:=1; d[2]:='1s2';u[2]:='1s2';b[2]:='s';e[2]:=2; d[3]:='1s2,2s1';u[3]:='2s1';b[3]:='s';e[3]:=1; d[4]:='1s2,2s2';u[4]:='2s2';b[4]:='s';e[4]:=2; d[5]:='1s2,2s2,2p1';u[5]:='2s2,2p1';b[5]:='p';e[5]:=3; d[6]:='1s2,2s2,2p2';u[6]:='2s2,2p2';b[6]:='p';e[6]:=4; d[7]:='1s2,2s2,2p3';u[7]:='2s2,2p3';b[7]:='p';e[7]:=5; d[8]:='1s2,2s2,2p4';u[8]:='2s2,2p4';b[8]:='p';e[8]:=6; d[9]:='1s2,2s2,2p5';u[9]:='2s2,2p5';b[9]:='p';e[9]:=7; d[10]:='1s2,2s2,2p6';u[10]:='2s2,2p6';b[10]:='p';e[10]:=8; d[11]:='1s2,2s2,2p6,3s1';u[11]:='3s1';b[11]:='s';e[11]:=1; d[12]:='1s2,2s2,2p6,3s2';u[12]:='3s2';b[12]:='s';e[12]:=2; d[13]:='1s2,2s2,2p6,3s2,3p1';u[13]:='3s2,3p1';b[13]:='p';e[13]:=3; d[14]:='1s2,2s2,2p6,3s2,3p2';u[14]:='3s2,3p2';b[14]:='p';e[14]:=4; d[15]:='1s2,2s2,2p6,3s2,3p3';u[15]:='3s2,3p3';b[15]:='p';e[15]:=5; d[16]:='1s2,2s2,2p6,3s2,3p4';u[16]:='3s2,3p4';b[16]:='p';e[16]:=6; d[17]:='1s2,2s2,2p6,3s2,3p5';u[17]:='3s2,3p5';b[17]:='p';e[17]:=7; d[18]:='1s2,2s2,2p6,3s2,3p6';u[18]:='3s2,3p6';b[18]:='p';e[18]:=8; d[19]:='1s2,2s2,2p6,3s2,3p6,4s1';u[19]:='4s1';b[19]:='s';e[19]:=1; d[20]:='1s2,2s2,2p6,3s2,3p6,4s2';u[20]:='4s2';b[20]:='s';e[20]:=2; d[21]:='1s2,2s2,2p6,3s2,3p6,4s2,3d1';u[21]:='4s2';b[21]:='d';e[21]:=2; d[22]:='1s2,2s2,2p6,3s2,3p6,4s2,3d2';u[22]:='4s2';b[22]:='d';e[22]:=2; d[23]:='1s2,2s2,2p6,3s2,3p6,4s2,3d3';u[23]:='4s2';b[23]:='d';e[23]:=2; d[24]:='1s2,2s2,2p6,3s2,3p6,4s2,3d4';u[24]:='4s2';b[24]:='d';e[24]:=2; d[25]:='1s2,2s2,2p6,3s2,3p6,4s2,3d5';u[25]:='4s2';b[25]:='d';e[25]:=2; d[26]:='1s2,2s2,2p6,3s2,3p6,4s2,3d6';u[26]:='4s2';b[26]:='d';e[26]:=2; d[27]:='1s2,2s2,2p6,3s2,3p6,4s2,3d7';u[27]:='4s2';b[27]:='d';e[27]:=2; d[28]:='1s2,2s2,2p6,3s2,3p6,4s2,3d8';u[28]:='4s2';b[28]:='d';e[28]:=2; d[29]:='1s2,2s2,2p6,3s2,3p6,4s2,3d9';u[29]:='4s2';b[29]:='d';e[29]:=2; d[30]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10';u[30]:='4s2';b[30]:='d';e[30]:=2; d[31]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p1';u[31]:='4s2,4p1';b[31]:='p';e[31]:=3; d[32]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p2';u[32]:='4s2,4p2';b[32]:='p';e[32]:=4; d[33]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p3';u[33]:='4s2,4p3';b[33]:='p';e[33]:=5; d[34]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p4';u[34]:='4s2,4p4';b[34]:='p';e[34]:=6; d[35]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p5';u[35]:='4s2,4p5';b[35]:='p';e[35]:=7; d[36]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6';u[36]:='4s2,4p6';b[36]:='p';e[36]:=8; d[37]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s1';u[37]:='5s1';b[37]:='s';e[37]:=1; d[38]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2';u[38]:='5s2';b[38]:='s';e[38]:=2; d[39]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d1';u[39]:='5s2';b[39]:='d';e[39]:=2; d[40]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d2';u[40]:='5s2';b[40]:='d';e[40]:=2; d[41]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d3';u[41]:='5s2';b[41]:='d';e[41]:=2; d[42]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d4';u[42]:='5s2';b[42]:='d';e[42]:=2; d[43]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d5';u[43]:='5s2';b[43]:='d';e[43]:=2; d[44]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d6';u[44]:='5s2';b[44]:='d';e[44]:=2; d[45]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d7';u[45]:='5s2';b[45]:='d';e[45]:=2; d[46]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d8';u[46]:='5s2';b[46]:='d';e[46]:=2; d[47]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d9';u[47]:='5s2';b[47]:='d';e[47]:=2; d[48]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10';u[48]:='5s2';b[48]:='d';e[48]:=2; d[49]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p1';u[49]:='5s2,5p1';b[49]:='p';e[49]:=3; d[50]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p2';u[50]:='5s2,5p2';b[50]:='p';e[50]:=4; d[51]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p3';u[51]:='5s2,5p3';b[51]:='p';e[51]:=5; d[52]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p4';u[52]:='5s2,5p4';b[52]:='p';e[52]:=6; d[53]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p5';u[53]:='5s2,5p5';b[53]:='p';e[53]:=7; d[54]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p6';u[54]:='5s2,5p6';b[54]:='p';e[54]:=8; d[55]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p6,6s1';u[55]:='6s1';b[55]:='s';e[55]:=1; p[1]:=1;p[2]:=1; p[3]:=2;p[4]:=2;p[5]:=2;p[6]:=2;p[7]:=2;p[8]:=2;p[9]:=2;p[10]:=2; p[11]:=3;p[12]:=3;p[13]:=3;p[14]:=3;p[15]:=3;p[16]:=3;p[17]:=3;p[18]:=3; p[19]:=4;p[20]:=4;p[21]:=4;p[22]:=4;p[23]:=4;p[24]:=4;p[25]:=4;p[26]:=4; p[27]:=4;p[28]:=4;p[29]:=4;p[30]:=4;p[31]:=4;p[32]:=4; p[33]:=4;p[34]:=4;p[35]:=4;p[36]:=4; p[37]:=5;p[38]:=5;p[39]:=5;p[40]:=5;p[41]:=5;p[42]:=5;p[43]:=5;p[44]:=5; p[45]:=5;p[46]:=5;p[47]:=5;p[48]:=5;p[49]:=5;p[50]:=6;p[51]:=5;p[52]:=5; p[53]:=5;p[54]:=5; p[55]:=6; end; procedure scelta; begin dati; esatte:=0;errate:=0; for a:=1 to prove do begin cancella; writeln('scrivere configurazione elettronica '); writeln('osservando la sintassi indicata nello esempio che segue'); writeln('1s2,2s2,2p3'); writeln('separando ogni sottolivello con la virgola,eccetto ultimo'); writeln('---------------------------------------------------------'); randomize; c:=60*random; caso:=round(c)+1; if caso >55 then caso :=55; if caso=38 then caso:=37; writeln(' numero atomico elemento =',caso); write('configurazione COMPLETA =');readln(r); if r=d[caso] then begin writeln('esatto:',d[caso]);esatte:=esatte+1;end else begin writeln('errato:era ',d[caso]);errate:=errate+1;end; pausa;cancella; writeln('elemento numero atomico =',caso); writeln(d[caso]); writeln('scrivi configurazione ULTIMO LIVELLO '); write('configurazione=');readln(r); writeln('---------------------------------------------------------'); if r=u[caso] then begin writeln('esatto');esatte:=esatte+1 ;end else begin writeln('errato:era='); writeln('configurazione completa =',d[caso]); writeln('e quindi configurazione ultimo livello='); writeln(u[caso]);errate:=errate+1;end; writeln('--------------------------------------------------------------'); write('scrivi blocco di appartenenza s,p,d,f ');readln(blocco); if blocco=b[caso] then begin writeln('esatto');esatte:=esatte+1;end else begin writeln('errato:era blocco :',b[caso]);errate:=errate+1;end; writeln('-------------------------------------------------------------'); write('scrivi gruppo di appartenenza 1,2,3,4,5,6,7,8 ? ');readln(gruppo); if gruppo=e[caso] then begin writeln('esatto');esatte:=esatte+1;end else begin writeln('errato:era gruppo :',e[caso]);errate:=errate+1;end; writeln('-------------------------------------------------------------'); write('scrivi PERIODO appartenenza 1,2,3,4,5,6 ? ');readln(periodo); if periodo=p[caso] then begin writeln('esatto ',p[caso]);esatte:=esatte+1;end else begin writeln('errato:era ',p[caso]);errate:=errate+1;end; writeln('------------------------------------------------------'); writeln('premi enter per altra prova');readln;cancella; end;end; begin cancella; repeat write('indica numero di prove da eseguire:da 1 a 20 ');readln(prove); until prove<21; cancella; scelta; writeln('risposte esatte =',esatte); writeln('risposte errate =',errate); writeln('chiama insegnante per valutazione');readln; end.
program orbi2; (* scrivere configurazione elettronica ultimo livello *) (* variante di orbita1 :presenta configurazione completa e ultima *) (* con correzione e valutazione finale *) (* si devono inserire ogni volta i numeri atomici fino al 56 *) uses crt; const n=56; var a,z,esatte,errate,prove,caso:integer; d:array[1..n] of string; u:array[1..n] of string[20]; r:string; procedure cancella; begin clrscr; end; procedure dati; begin d[1]:='1s1';u[1]:='1s1'; d[2]:='1s2';u[2]:='1s2'; d[3]:='1s2,2s1';u[3]:='2s1'; d[4]:='1s2,2s2';u[4]:='2s2'; d[5]:='1s2,2s2,2p1';u[5]:='2s2,2p1'; d[6]:='1s2,2s2,2p2';u[6]:='2s2,2p2'; d[7]:='1s2,2s2,2p3';u[7]:='2s2,2p3'; d[8]:='1s2,2s2,2p4';u[8]:='2s2,2p4'; d[9]:='1s2,2s2,2p5';u[9]:='2s2,2p5'; d[10]:='1s2,2s2,2p6';u[10]:='2s2,2p6'; d[11]:='1s2,2s2,2p6,3s1';u[11]:='3s1'; d[12]:='1s2,2s2,2p6,3s2';u[12]:='3s2'; d[13]:='1s2,2s2,2p6,3s2,3p1';u[13]:='3s2,3p1'; d[14]:='1s2,2s2,2p6,3s2,3p2';u[14]:='3s2,3p2'; d[15]:='1s2,2s2,2p6,3s2,3p3';u[15]:='3s2,3p3'; d[16]:='1s2,2s2,2p6,3s2,3p4';u[16]:='3s2,3p4'; d[17]:='1s2,2s2,2p6,3s2,3p5';u[17]:='3s2,3p5'; d[18]:='1s2,2s2,2p6,3s2,3p6';u[18]:='3s2,3p6'; d[19]:='1s2,2s2,2p6,3s2,3p6,4s1';u[19]:='4s1'; d[20]:='1s2,2s2,2p6,3s2,3p6,4s2';u[20]:='4s2'; d[21]:='1s2,2s2,2p6,3s2,3p6,4s2,3d1';u[21]:='4s2'; d[22]:='1s2,2s2,2p6,3s2,3p6,4s2,3d2';u[22]:='4s2'; d[23]:='1s2,2s2,2p6,3s2,3p6,4s2,3d3';u[23]:='4s2'; d[24]:='1s2,2s2,2p6,3s2,3p6,4s2,3d4';u[24]:='4s2'; d[25]:='1s2,2s2,2p6,3s2,3p6,4s2,3d5';u[25]:='4s2'; d[26]:='1s2,2s2,2p6,3s2,3p6,4s2,3d6';u[26]:='4s2'; d[27]:='1s2,2s2,2p6,3s2,3p6,4s2,3d7';u[27]:='4s2'; d[28]:='1s2,2s2,2p6,3s2,3p6,4s2,3d8';u[28]:='4s2'; d[29]:='1s2,2s2,2p6,3s2,3p6,4s2,3d9';u[29]:='4s2'; d[30]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10';u[30]:='4s2'; d[31]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p1';u[31]:='4s2,4p1'; d[32]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p2';u[32]:='4s2,4p2'; d[33]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p3';u[33]:='4s2,4p3'; d[34]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p4';u[34]:='4s2,4p4'; d[35]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p5';u[35]:='4s2,4p5'; d[36]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6';u[36]:='4s2,4p6'; d[37]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s1';u[37]:='5s1'; d[38]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2';u[38]:='5s2'; d[39]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d1';u[39]:='5s2'; d[40]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d2';u[40]:='5s2'; d[41]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d3';u[41]:='5s2'; d[42]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d4';u[42]:='5s2'; d[43]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d5';u[43]:='5s2'; d[44]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d6';u[44]:='5s2'; d[45]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d7';u[45]:='5s2'; d[46]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d8';u[46]:='5s2'; d[47]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d9';u[47]:='5s2'; d[48]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10';u[48]:='5s2'; d[49]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p1';u[49]:='5s2,5p1'; d[50]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p2';u[50]:='5s2,5p2'; d[51]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p3';u[51]:='5s2,5p3'; d[52]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p4';u[52]:='5s2,5p4'; d[53]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p5';u[53]:='5s2,5p5'; d[54]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p6';u[54]:='5s2,5p6'; d[55]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p6,6s1';u[55]:='6s1'; d[56]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p6,6s2';u[56]:='6s2'; end; procedure scelta; begin dati; esatte:=0;errate:=0; for a:=1 to prove do begin writeln('scrivere configurazione elettronica ultimo livello'); writeln('osservando la sintassi indicata nello esempio che segue'); writeln('1s2,2s2,2p3'); writeln('separando ogni sottolivello con la virgola,eccetto ultimo'); writeln('---------------------------------------------------------'); repeat write('scrivi numero atomico elemento da 1 a 56 =');readln(caso); until caso<57; write('configurazione=');readln(r); writeln('---------------------------------------------------------'); if r=u[caso] then begin writeln('esatto');esatte:=esatte+1 ;end else begin writeln('errato:era='); writeln('configurazione completa =',d[caso]); writeln('e quindi configurazione ultimo livello='); writeln(u[caso]);errate:=errate+1;end; writeln('--------------------------------------------------------------'); writeln('premi enter per altra prova');readln;cancella; end; end; begin cancella; repeat write('indica numero di prove da eseguire:da 1 a 56 ');readln(prove); until prove<57; cancella; scelta; writeln('risposte esatte =',esatte); writeln('risposte errate =',errate); writeln('chiama insegnante per valutazione');readln; end.
program orbi3; (* scrivere configurazione elettronica ULTIMO livello e BLOCCO *) (* variante di orbita1 :presenta configurazione completa e ultima *) (* con correzione e valutazione finale *) (* si devono inserire ogni volta i numeri atomici fino al 56 *) uses crt; const n=56; var a,z,esatte,errate,prove,caso:integer; blocco:string[5]; d:array[1..n] of string; u:array[1..n] of string[20]; b:array[1..n] of string[5]; r:string; procedure cancella; begin clrscr; end; procedure dati; begin d[1]:='1s1';u[1]:='1s1';b[1]:='s'; d[2]:='1s2';u[2]:='1s2';b[2]:='s'; d[3]:='1s2,2s1';u[3]:='2s1';b[3]:='s'; d[4]:='1s2,2s2';u[4]:='2s2';b[4]:='s'; d[5]:='1s2,2s2,2p1';u[5]:='2s2,2p1';b[5]:='p'; d[6]:='1s2,2s2,2p2';u[6]:='2s2,2p2';b[6]:='p'; d[7]:='1s2,2s2,2p3';u[7]:='2s2,2p3';b[7]:='p'; d[8]:='1s2,2s2,2p4';u[8]:='2s2,2p4';b[8]:='p'; d[9]:='1s2,2s2,2p5';u[9]:='2s2,2p5';b[9]:='p'; d[10]:='1s2,2s2,2p6';u[10]:='2s2,2p6';b[10]:='p'; d[11]:='1s2,2s2,2p6,3s1';u[11]:='3s1';b[11]:='s'; d[12]:='1s2,2s2,2p6,3s2';u[12]:='3s2';b[12]:='s'; d[13]:='1s2,2s2,2p6,3s2,3p1';u[13]:='3s2,3p1';b[13]:='p'; d[14]:='1s2,2s2,2p6,3s2,3p2';u[14]:='3s2,3p2';b[14]:='p'; d[15]:='1s2,2s2,2p6,3s2,3p3';u[15]:='3s2,3p3';b[15]:='p'; d[16]:='1s2,2s2,2p6,3s2,3p4';u[16]:='3s2,3p4';b[16]:='p'; d[17]:='1s2,2s2,2p6,3s2,3p5';u[17]:='3s2,3p5';b[17]:='p'; d[18]:='1s2,2s2,2p6,3s2,3p6';u[18]:='3s2,3p6';b[18]:='p'; d[19]:='1s2,2s2,2p6,3s2,3p6,4s1';u[19]:='4s1';b[19]:='s'; d[20]:='1s2,2s2,2p6,3s2,3p6,4s2';u[20]:='4s2';b[20]:='s'; d[21]:='1s2,2s2,2p6,3s2,3p6,4s2,3d1';u[21]:='4s2';b[21]:='d'; d[22]:='1s2,2s2,2p6,3s2,3p6,4s2,3d2';u[22]:='4s2';b[22]:='d'; d[23]:='1s2,2s2,2p6,3s2,3p6,4s2,3d3';u[23]:='4s2';b[23]:='d'; d[24]:='1s2,2s2,2p6,3s2,3p6,4s2,3d4';u[24]:='4s2';b[24]:='d'; d[25]:='1s2,2s2,2p6,3s2,3p6,4s2,3d5';u[25]:='4s2';b[25]:='d'; d[26]:='1s2,2s2,2p6,3s2,3p6,4s2,3d6';u[26]:='4s2';b[26]:='d'; d[27]:='1s2,2s2,2p6,3s2,3p6,4s2,3d7';u[27]:='4s2';b[27]:='d'; d[28]:='1s2,2s2,2p6,3s2,3p6,4s2,3d8';u[28]:='4s2';b[28]:='d'; d[29]:='1s2,2s2,2p6,3s2,3p6,4s2,3d9';u[29]:='4s2';b[29]:='d'; d[30]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10';u[30]:='4s2';b[30]:='d'; d[31]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p1';u[31]:='4s2,4p1';b[31]:='p'; d[32]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p2';u[32]:='4s2,4p2';b[32]:='p'; d[33]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p3';u[33]:='4s2,4p3';b[33]:='p'; d[34]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p4';u[34]:='4s2,4p4';b[34]:='p'; d[35]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p5';u[35]:='4s2,4p5';b[35]:='p'; d[36]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6';u[36]:='4s2,4p6';b[36]:='p'; d[37]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s1';u[37]:='5s1';b[37]:='s'; d[38]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2';u[38]:='5s2';b[38]:='s'; d[39]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d1';u[39]:='5s2';b[39]:='d'; d[40]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d2';u[40]:='5s2';b[40]:='d'; d[41]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d3';u[41]:='5s2';b[41]:='d'; d[42]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d4';u[42]:='5s2';b[42]:='d'; d[43]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d5';u[43]:='5s2';b[43]:='d'; d[44]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d6';u[44]:='5s2';b[44]:='d'; d[45]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d7';u[45]:='5s2';b[45]:='d'; d[46]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d8';u[46]:='5s2';b[46]:='d'; d[47]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d9';u[47]:='5s2';b[47]:='d'; d[48]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10';u[48]:='5s2';b[48]:='d'; d[49]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p1';u[49]:='5s2,5p1';b[49]:='p'; d[50]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p2';u[50]:='5s2,5p2';b[50]:='p'; d[51]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p3';u[51]:='5s2,5p3';b[51]:='p'; d[52]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p4';u[52]:='5s2,5p4';b[52]:='p'; d[53]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p5';u[53]:='5s2,5p5';b[53]:='p'; d[54]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p6';u[54]:='5s2,5p6';b[54]:='p'; d[55]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p6,6s1';u[55]:='6s1';b[55]:='s'; d[56]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p6,6s2';u[56]:='6s2';b[56]:='s'; end; procedure scelta; begin dati; esatte:=0;errate:=0; for a:=1 to prove do begin writeln('scrivere configurazione elettronica ultimo livello'); writeln('osservando la sintassi indicata nello esempio che segue'); writeln('1s2,2s2,2p3'); writeln('separando ogni sottolivello con la virgola,eccetto ultimo'); writeln('---------------------------------------------------------'); repeat write('scrivi numero atomico elemento da 1 a 56 =');readln(caso); until caso<57; write('configurazione=');readln(r); writeln('---------------------------------------------------------'); if r=u[caso] then begin writeln('esatto');esatte:=esatte+1 ;end else begin writeln('errato:era='); writeln('configurazione completa =',d[caso]); writeln('e quindi configurazione ultimo livello='); writeln(u[caso]);errate:=errate+1;end; writeln('--------------------------------------------------------------'); writeln('scrivi blocco di appartenenza s,p,d,f ');readln(blocco); if blocco=b[caso] then begin writeln('esatto');esatte:=esatte+1;end else begin writeln('errato:era blocco :',b[caso]);errate:=errate+1;end; writeln('premi enter per altra prova');readln;cancella; end; end; begin cancella; repeat write('indica numero di prove da eseguire:da 1 a 56 ');readln(prove); until prove<57; cancella; scelta; writeln('risposte esatte =',esatte); writeln('risposte errate =',errate); writeln('chiama insegnante per valutazione');readln; end.
program orbi3a; (* scrivere configurazione elettronica ULTIMO livello e BLOCCO *) (* variante di orbita1 :presenta configurazione completa e ultima *) (* con correzione e valutazione finale *) (* Z casuale *) uses crt; const n=56; var a,z,esatte,errate,prove,caso:integer; blocco:string[5]; d:array[1..n] of string; u:array[1..n] of string[20]; b:array[1..n] of string[5]; r:string; c:real; procedure cancella; begin clrscr; end; procedure dati; begin d[1]:='1s1';u[1]:='1s1';b[1]:='s'; d[2]:='1s2';u[2]:='1s2';b[2]:='s'; d[3]:='1s2,2s1';u[3]:='2s1';b[3]:='s'; d[4]:='1s2,2s2';u[4]:='2s2';b[4]:='s'; d[5]:='1s2,2s2,2p1';u[5]:='2s2,2p1';b[5]:='p'; d[6]:='1s2,2s2,2p2';u[6]:='2s2,2p2';b[6]:='p'; d[7]:='1s2,2s2,2p3';u[7]:='2s2,2p3';b[7]:='p'; d[8]:='1s2,2s2,2p4';u[8]:='2s2,2p4';b[8]:='p'; d[9]:='1s2,2s2,2p5';u[9]:='2s2,2p5';b[9]:='p'; d[10]:='1s2,2s2,2p6';u[10]:='2s2,2p6';b[10]:='p'; d[11]:='1s2,2s2,2p6,3s1';u[11]:='3s1';b[11]:='s'; d[12]:='1s2,2s2,2p6,3s2';u[12]:='3s2';b[12]:='s'; d[13]:='1s2,2s2,2p6,3s2,3p1';u[13]:='3s2,3p1';b[13]:='p'; d[14]:='1s2,2s2,2p6,3s2,3p2';u[14]:='3s2,3p2';b[14]:='p'; d[15]:='1s2,2s2,2p6,3s2,3p3';u[15]:='3s2,3p3';b[15]:='p'; d[16]:='1s2,2s2,2p6,3s2,3p4';u[16]:='3s2,3p4';b[16]:='p'; d[17]:='1s2,2s2,2p6,3s2,3p5';u[17]:='3s2,3p5';b[17]:='p'; d[18]:='1s2,2s2,2p6,3s2,3p6';u[18]:='3s2,3p6';b[18]:='p'; d[19]:='1s2,2s2,2p6,3s2,3p6,4s1';u[19]:='4s1';b[19]:='s'; d[20]:='1s2,2s2,2p6,3s2,3p6,4s2';u[20]:='4s2';b[20]:='s'; d[21]:='1s2,2s2,2p6,3s2,3p6,4s2,3d1';u[21]:='4s2';b[21]:='d'; d[22]:='1s2,2s2,2p6,3s2,3p6,4s2,3d2';u[22]:='4s2';b[22]:='d'; d[23]:='1s2,2s2,2p6,3s2,3p6,4s2,3d3';u[23]:='4s2';b[23]:='d'; d[24]:='1s2,2s2,2p6,3s2,3p6,4s2,3d4';u[24]:='4s2';b[24]:='d'; d[25]:='1s2,2s2,2p6,3s2,3p6,4s2,3d5';u[25]:='4s2';b[25]:='d'; d[26]:='1s2,2s2,2p6,3s2,3p6,4s2,3d6';u[26]:='4s2';b[26]:='d'; d[27]:='1s2,2s2,2p6,3s2,3p6,4s2,3d7';u[27]:='4s2';b[27]:='d'; d[28]:='1s2,2s2,2p6,3s2,3p6,4s2,3d8';u[28]:='4s2';b[28]:='d'; d[29]:='1s2,2s2,2p6,3s2,3p6,4s2,3d9';u[29]:='4s2';b[29]:='d'; d[30]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10';u[30]:='4s2';b[30]:='d'; d[31]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p1';u[31]:='4s2,4p1';b[31]:='p'; d[32]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p2';u[32]:='4s2,4p2';b[32]:='p'; d[33]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p3';u[33]:='4s2,4p3';b[33]:='p'; d[34]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p4';u[34]:='4s2,4p4';b[34]:='p'; d[35]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p5';u[35]:='4s2,4p5';b[35]:='p'; d[36]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6';u[36]:='4s2,4p6';b[36]:='p'; d[37]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s1';u[37]:='5s1';b[37]:='s'; d[38]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2';u[38]:='5s2';b[38]:='s'; d[39]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d1';u[39]:='5s2';b[39]:='d'; d[40]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d2';u[40]:='5s2';b[40]:='d'; d[41]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d3';u[41]:='5s2';b[41]:='d'; d[42]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d4';u[42]:='5s2';b[42]:='d'; d[43]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d5';u[43]:='5s2';b[43]:='d'; d[44]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d6';u[44]:='5s2';b[44]:='d'; d[45]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d7';u[45]:='5s2';b[45]:='d'; d[46]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d8';u[46]:='5s2';b[46]:='d'; d[47]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d9';u[47]:='5s2';b[47]:='d'; d[48]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10';u[48]:='5s2';b[48]:='d'; d[49]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p1';u[49]:='5s2,5p1';b[49]:='p'; d[50]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p2';u[50]:='5s2,5p2';b[50]:='p'; d[51]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p3';u[51]:='5s2,5p3';b[51]:='p'; d[52]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p4';u[52]:='5s2,5p4';b[52]:='p'; d[53]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p5';u[53]:='5s2,5p5';b[53]:='p'; d[54]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p6';u[54]:='5s2,5p6';b[54]:='p'; d[55]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p6,6s1';u[55]:='6s1';b[55]:='p'; d[56]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p6,6s2';u[56]:='6s2';b[56]:='p'; end; procedure scelta; begin dati; esatte:=0;errate:=0; for a:=1 to prove do begin writeln('scrivere configurazione elettronica ultimo livello'); writeln('osservando la sintassi indicata nello esempio che segue'); writeln('1s2,2s2,2p3'); writeln('separando ogni sottolivello con la virgola,eccetto ultimo'); writeln('---------------------------------------------------------'); randomize; c:=60*random; caso:=round(c)+1; if caso>56 then caso:=56; writeln(' numero atomico elemento =',caso); write('configurazione=');readln(r); writeln('---------------------------------------------------------'); if r=u[caso] then begin writeln('esatto');esatte:=esatte+1 ;end else begin writeln('errato:era='); writeln('configurazione completa =',d[caso]); writeln('e quindi configurazione ultimo livello='); writeln(u[caso]);errate:=errate+1;end; writeln('--------------------------------------------------------------'); writeln('scrivi blocco di appartenenza s,p,d,f ');readln(blocco); if blocco=b[caso] then begin writeln('esatto');esatte:=esatte+1;end else begin writeln('errato:era blocco :',b[caso]);errate:=errate+1;end; writeln('premi enter per altra prova');readln;cancella; end; end; begin cancella; repeat write('indica numero di prove da eseguire:da 1 a 56 ');readln(prove); until prove<57; cancella; scelta; writeln('risposte esatte =',esatte); writeln('risposte errate =',errate); writeln('chiama insegnante per valutazione');readln; end.
program orbi4; (* scrivere configurazione elettronica ULTIMO livello e BLOCCO *) (* scrivere gruppo appartenenza *) (* variante di orbita1 :presenta configurazione completa e ultima *) (* con correzione e valutazione finale *) (* si devono inserire ogni volta i numeri atomici fino al 56 *) (* NOTA il GRUPPO PER ELEMENTI TRANSIZIONE VIENE ASSEGNATO=2 *) uses crt; const n=56; var a,z,esatte,errate,prove,caso,numero,gruppo:integer; blocco:string[5]; d:array[1..n] of string; u:array[1..n] of string[20]; b:array[1..n] of string[5]; e:array[1..n] of integer; r:string; procedure cancella; begin clrscr; end; procedure dati; begin d[1]:='1s1';u[1]:='1s1';b[1]:='s';e[1]:=1; d[2]:='1s2';u[2]:='1s2';b[2]:='s';e[2]:=2; d[3]:='1s2,2s1';u[3]:='2s1';b[3]:='s';e[3]:=1; d[4]:='1s2,2s2';u[4]:='2s2';b[4]:='s';e[4]:=2; d[5]:='1s2,2s2,2p1';u[5]:='2s2,2p1';b[5]:='p';e[5]:=3; d[6]:='1s2,2s2,2p2';u[6]:='2s2,2p2';b[6]:='p';e[6]:=4; d[7]:='1s2,2s2,2p3';u[7]:='2s2,2p3';b[7]:='p';e[7]:=5; d[8]:='1s2,2s2,2p4';u[8]:='2s2,2p4';b[8]:='p';e[8]:=6; d[9]:='1s2,2s2,2p5';u[9]:='2s2,2p5';b[9]:='p';e[9]:=7; d[10]:='1s2,2s2,2p6';u[10]:='2s2,2p6';b[10]:='p';e[10]:=8; d[11]:='1s2,2s2,2p6,3s1';u[11]:='3s1';b[11]:='s';e[11]:=1; d[12]:='1s2,2s2,2p6,3s2';u[12]:='3s2';b[12]:='s';e[12]:=2; d[13]:='1s2,2s2,2p6,3s2,3p1';u[13]:='3s2,3p1';b[13]:='p';e[13]:=3; d[14]:='1s2,2s2,2p6,3s2,3p2';u[14]:='3s2,3p2';b[14]:='p';e[14]:=4; d[15]:='1s2,2s2,2p6,3s2,3p3';u[15]:='3s2,3p3';b[15]:='p';e[15]:=5; d[16]:='1s2,2s2,2p6,3s2,3p4';u[16]:='3s2,3p4';b[16]:='p';e[16]:=6; d[17]:='1s2,2s2,2p6,3s2,3p5';u[17]:='3s2,3p5';b[17]:='p';e[17]:=7; d[18]:='1s2,2s2,2p6,3s2,3p6';u[18]:='3s2,3p6';b[18]:='p';e[18]:=8; d[19]:='1s2,2s2,2p6,3s2,3p6,4s1';u[19]:='4s1';b[19]:='s';e[19]:=1; d[20]:='1s2,2s2,2p6,3s2,3p6,4s2';u[20]:='4s2';b[20]:='s';e[20]:=2; d[21]:='1s2,2s2,2p6,3s2,3p6,4s2,3d1';u[21]:='4s2';b[21]:='d';e[21]:=2; d[22]:='1s2,2s2,2p6,3s2,3p6,4s2,3d2';u[22]:='4s2';b[22]:='d';e[22]:=2; d[23]:='1s2,2s2,2p6,3s2,3p6,4s2,3d3';u[23]:='4s2';b[23]:='d';e[23]:=2; d[24]:='1s2,2s2,2p6,3s2,3p6,4s2,3d4';u[24]:='4s2';b[24]:='d';e[24]:=2; d[25]:='1s2,2s2,2p6,3s2,3p6,4s2,3d5';u[25]:='4s2';b[25]:='d';e[25]:=2; d[26]:='1s2,2s2,2p6,3s2,3p6,4s2,3d6';u[26]:='4s2';b[26]:='d';e[26]:=2; d[27]:='1s2,2s2,2p6,3s2,3p6,4s2,3d7';u[27]:='4s2';b[27]:='d';e[27]:=2; d[28]:='1s2,2s2,2p6,3s2,3p6,4s2,3d8';u[28]:='4s2';b[28]:='d';e[28]:=2; d[29]:='1s2,2s2,2p6,3s2,3p6,4s2,3d9';u[29]:='4s2';b[29]:='d';e[29]:=2; d[30]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10';u[30]:='4s2';b[30]:='d';e[30]:=2; d[31]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p1';u[31]:='4s2,4p1';b[31]:='p';e[31]:=3; d[32]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p2';u[32]:='4s2,4p2';b[32]:='p';e[32]:=4; d[33]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p3';u[33]:='4s2,4p3';b[33]:='p';e[33]:=5; d[34]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p4';u[34]:='4s2,4p4';b[34]:='p';e[34]:=6; d[35]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p5';u[35]:='4s2,4p5';b[35]:='p';e[35]:=7; d[36]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6';u[36]:='4s2,4p6';b[36]:='p';e[36]:=8; d[37]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s1';u[37]:='5s1';b[37]:='s';e[37]:=1; d[38]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2';u[38]:='5s2';b[38]:='s';e[38]:=2; d[39]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d1';u[39]:='5s2';b[39]:='d';e[39]:=2; d[40]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d2';u[40]:='5s2';b[40]:='d';e[40]:=2; d[41]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d3';u[41]:='5s2';b[41]:='d';e[41]:=2; d[42]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d4';u[42]:='5s2';b[42]:='d';e[42]:=2; d[43]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d5';u[43]:='5s2';b[43]:='d';e[43]:=2; d[44]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d6';u[44]:='5s2';b[44]:='d';e[44]:=2; d[45]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d7';u[45]:='5s2';b[45]:='d';e[45]:=2; d[46]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d8';u[46]:='5s2';b[46]:='d';e[46]:=2; d[47]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d9';u[47]:='5s2';b[47]:='d';e[47]:=2; d[48]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10';u[48]:='5s2';b[48]:='d';e[48]:=2; d[49]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p1';u[49]:='5s2,5p1';b[49]:='p';e[49]:=3; d[50]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p2';u[50]:='5s2,5p2';b[50]:='p';e[50]:=4; d[51]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p3';u[51]:='5s2,5p3';b[51]:='p';e[51]:=5; d[52]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p4';u[52]:='5s2,5p4';b[52]:='p';e[52]:=6; d[53]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p5';u[53]:='5s2,5p5';b[53]:='p';e[53]:=7; d[54]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p6';u[54]:='5s2,5p6';b[54]:='p';e[54]:=8; d[55]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p6,6s1';u[55]:='6s1';b[55]:='s';e[55]:=1; d[56]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p6,6s2';u[56]:='6s2';b[56]:='s';e[56]:=2; end; procedure scelta; begin dati; esatte:=0;errate:=0; for a:=1 to prove do begin writeln('scrivere configurazione elettronica ultimo livello'); writeln('osservando la sintassi indicata nello esempio che segue'); writeln('1s2,2s2,2p3'); writeln('separando ogni sottolivello con la virgola,eccetto ultimo'); writeln('---------------------------------------------------------'); repeat write('scrivi numero atomico elemento da 1 a 56 =');readln(caso); until caso<57; write('configurazione=');readln(r); writeln('---------------------------------------------------------'); if r=u[caso] then begin writeln('esatto');esatte:=esatte+1 ;end else begin writeln('errato:era='); writeln('configurazione completa =',d[caso]); writeln('e quindi configurazione ultimo livello='); writeln(u[caso]);errate:=errate+1;end; writeln('--------------------------------------------------------------'); write('scrivi blocco di appartenenza s,p,d,f ');readln(blocco); if blocco=b[caso] then begin writeln('esatto');esatte:=esatte+1;end else begin writeln('errato:era blocco :',b[caso]);errate:=errate+1;end; writeln('-------------------------------------------------------------'); write('scrivi gruppo di appartenenza 1,2,3,4,5,6,7,8 ? ');readln(gruppo); if gruppo=e[caso] then begin writeln('esatto');esatte:=esatte+1;end else begin writeln('errato:era gruppo :',e[caso]);errate:=errate+1;end; writeln('-------------------------------------------------------------'); writeln('premi enter per altra prova');readln;cancella; end; end; begin cancella; repeat write('indica numero di prove da eseguire:da 1 a 56 ');readln(prove); until prove<57; cancella; scelta; writeln('risposte esatte =',esatte); writeln('risposte errate =',errate); writeln('chiama insegnante per valutazione');readln; end.
program orbi4a; (* scrivere configurazione elettronica ULTIMO livello e BLOCCO *) (* scrivere gruppo appartenenza *) (* variante di orbita1 :presenta configurazione completa e ultima *) (* con correzione e valutazione finale *) (* NOTA il GRUPPO PER ELEMENTI TRANSIZIONE VIENE ASSEGNATO=2 *) (* Z casuale *) uses crt; const n=56; var a,z,esatte,errate,prove,caso,numero,gruppo:integer; blocco:string[5]; d:array[1..n] of string; u:array[1..n] of string[20]; b:array[1..n] of string[5]; e:array[1..n] of integer; r:string; c:real; procedure cancella; begin clrscr; end; procedure dati; begin d[1]:='1s1';u[1]:='1s1';b[1]:='s';e[1]:=1; d[2]:='1s2';u[2]:='1s2';b[2]:='s';e[2]:=2; d[3]:='1s2,2s1';u[3]:='2s1';b[3]:='s';e[3]:=1; d[4]:='1s2,2s2';u[4]:='2s2';b[4]:='s';e[4]:=2; d[5]:='1s2,2s2,2p1';u[5]:='2s2,2p1';b[5]:='p';e[5]:=3; d[6]:='1s2,2s2,2p2';u[6]:='2s2,2p2';b[6]:='p';e[6]:=4; d[7]:='1s2,2s2,2p3';u[7]:='2s2,2p3';b[7]:='p';e[7]:=5; d[8]:='1s2,2s2,2p4';u[8]:='2s2,2p4';b[8]:='p';e[8]:=6; d[9]:='1s2,2s2,2p5';u[9]:='2s2,2p5';b[9]:='p';e[9]:=7; d[10]:='1s2,2s2,2p6';u[10]:='2s2,2p6';b[10]:='p';e[10]:=8; d[11]:='1s2,2s2,2p6,3s1';u[11]:='3s1';b[11]:='s';e[11]:=1; d[12]:='1s2,2s2,2p6,3s2';u[12]:='3s2';b[12]:='s';e[12]:=2; d[13]:='1s2,2s2,2p6,3s2,3p1';u[13]:='3s2,3p1';b[13]:='p';e[13]:=3; d[14]:='1s2,2s2,2p6,3s2,3p2';u[14]:='3s2,3p2';b[14]:='p';e[14]:=4; d[15]:='1s2,2s2,2p6,3s2,3p3';u[15]:='3s2,3p3';b[15]:='p';e[15]:=5; d[16]:='1s2,2s2,2p6,3s2,3p4';u[16]:='3s2,3p4';b[16]:='p';e[16]:=6; d[17]:='1s2,2s2,2p6,3s2,3p5';u[17]:='3s2,3p5';b[17]:='p';e[17]:=7; d[18]:='1s2,2s2,2p6,3s2,3p6';u[18]:='3s2,3p6';b[18]:='p';e[18]:=8; d[19]:='1s2,2s2,2p6,3s2,3p6,4s1';u[19]:='4s1';b[19]:='s';e[19]:=1; d[20]:='1s2,2s2,2p6,3s2,3p6,4s2';u[20]:='4s2';b[20]:='s';e[20]:=2; d[21]:='1s2,2s2,2p6,3s2,3p6,4s2,3d1';u[21]:='4s2';b[21]:='d';e[21]:=2; d[22]:='1s2,2s2,2p6,3s2,3p6,4s2,3d2';u[22]:='4s2';b[22]:='d';e[22]:=2; d[23]:='1s2,2s2,2p6,3s2,3p6,4s2,3d3';u[23]:='4s2';b[23]:='d';e[23]:=2; d[24]:='1s2,2s2,2p6,3s2,3p6,4s2,3d4';u[24]:='4s2';b[24]:='d';e[24]:=2; d[25]:='1s2,2s2,2p6,3s2,3p6,4s2,3d5';u[25]:='4s2';b[25]:='d';e[25]:=2; d[26]:='1s2,2s2,2p6,3s2,3p6,4s2,3d6';u[26]:='4s2';b[26]:='d';e[26]:=2; d[27]:='1s2,2s2,2p6,3s2,3p6,4s2,3d7';u[27]:='4s2';b[27]:='d';e[27]:=2; d[28]:='1s2,2s2,2p6,3s2,3p6,4s2,3d8';u[28]:='4s2';b[28]:='d';e[28]:=2; d[29]:='1s2,2s2,2p6,3s2,3p6,4s2,3d9';u[29]:='4s2';b[29]:='d';e[29]:=2; d[30]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10';u[30]:='4s2';b[30]:='d';e[30]:=2; d[31]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p1';u[31]:='4s2,4p1';b[31]:='p';e[31]:=3; d[32]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p2';u[32]:='4s2,4p2';b[32]:='p';e[32]:=4; d[33]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p3';u[33]:='4s2,4p3';b[33]:='p';e[33]:=5; d[34]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p4';u[34]:='4s2,4p4';b[34]:='p';e[34]:=6; d[35]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p5';u[35]:='4s2,4p5';b[35]:='p';e[35]:=7; d[36]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6';u[36]:='4s2,4p6';b[36]:='p';e[36]:=8; d[37]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s1';u[37]:='5s1';b[37]:='s';e[37]:=1; d[38]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2';u[38]:='5s2';b[38]:='s';e[38]:=2; d[39]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d1';u[39]:='5s2';b[39]:='d';e[39]:=2; d[40]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d2';u[40]:='5s2';b[40]:='d';e[40]:=2; d[41]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d3';u[41]:='5s2';b[41]:='d';e[41]:=2; d[42]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d4';u[42]:='5s2';b[42]:='d';e[42]:=2; d[43]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d5';u[43]:='5s2';b[43]:='d';e[43]:=2; d[44]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d6';u[44]:='5s2';b[44]:='d';e[44]:=2; d[45]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d7';u[45]:='5s2';b[45]:='d';e[45]:=2; d[46]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d8';u[46]:='5s2';b[46]:='d';e[46]:=2; d[47]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d9';u[47]:='5s2';b[47]:='d';e[47]:=2; d[48]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10';u[48]:='5s2';b[48]:='d';e[48]:=2; d[49]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p1';u[49]:='5s2,5p1';b[49]:='p';e[49]:=3; d[50]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p2';u[50]:='5s2,5p2';b[50]:='p';e[50]:=4; d[51]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p3';u[51]:='5s2,5p3';b[51]:='p';e[51]:=5; d[52]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p4';u[52]:='5s2,5p4';b[52]:='p';e[52]:=6; d[53]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p5';u[53]:='5s2,5p5';b[53]:='p';e[53]:=7; d[54]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p6';u[54]:='5s2,5p6';b[54]:='p';e[54]:=8; d[55]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p6,6s1';u[55]:='6s1';b[55]:='s';e[55]:=1; d[56]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p6,6s2';u[56]:='6s2';b[56]:='s';e[56]:=2; end; procedure scelta; begin dati; esatte:=0;errate:=0; for a:=1 to prove do begin writeln('scrivere configurazione elettronica ultimo livello'); writeln('osservando la sintassi indicata nello esempio che segue'); writeln('1s2,2s2,2p3'); writeln('separando ogni sottolivello con la virgola,eccetto ultimo'); writeln('---------------------------------------------------------'); randomize; c:=60*random; caso:=round(c)+1; if caso >56 then caso :=56; writeln(' numero atomico elemento =',caso); write('configurazione=');readln(r); writeln('---------------------------------------------------------'); if r=u[caso] then begin writeln('esatto');esatte:=esatte+1 ;end else begin writeln('errato:era='); writeln('configurazione completa =',d[caso]); writeln('e quindi configurazione ultimo livello='); writeln(u[caso]);errate:=errate+1;end; writeln('--------------------------------------------------------------'); write('scrivi blocco di appartenenza s,p,d,f ');readln(blocco); if blocco=b[caso] then begin writeln('esatto');esatte:=esatte+1;end else begin writeln('errato:era blocco :',b[caso]);errate:=errate+1;end; writeln('-------------------------------------------------------------'); write('scrivi gruppo di appartenenza 1,2,3,4,5,6,7,8 ? ');readln(gruppo); if gruppo=e[caso] then begin writeln('esatto');esatte:=esatte+1;end else begin writeln('errato:era gruppo :',e[caso]);errate:=errate+1;end; writeln('-------------------------------------------------------------'); writeln('premi enter per altra prova');readln;cancella; end; end; begin cancella; repeat write('indica numero di prove da eseguire:da 1 a 56 ');readln(prove); until prove<57; cancella; scelta; writeln('risposte esatte =',esatte); writeln('risposte errate =',errate); writeln('chiama insegnante per valutazione');readln; end.
program orbi5a; (* scrivere configurazione elettronica ULTIMO livello e BLOCCO *) (* scrivere gruppo appartenenza *) (* variante di orbita1 :presenta configurazione completa e ultima *) (* con correzione e valutazione finale *) (* NOTA il GRUPPO PER ELEMENTI TRANSIZIONE VIENE ASSEGNATO=2 *) (* Z casuale *) uses crt; const n=55; var a,z,esatte,errate,prove,caso,numero,gruppo,na:integer; blocco:string[5]; d:array[1..n] of string; u:array[1..n] of string[20]; b:array[1..n] of string[5]; e:array[1..n] of integer; r:string; c:real; procedure cancella; begin clrscr; end; procedure dati; begin d[1]:='1s1';u[1]:='1s1';b[1]:='s';e[1]:=1; d[2]:='1s2';u[2]:='1s2';b[2]:='s';e[2]:=2; d[3]:='1s2,2s1';u[3]:='2s1';b[3]:='s';e[3]:=1; d[4]:='1s2,2s2';u[4]:='2s2';b[4]:='s';e[4]:=2; d[5]:='1s2,2s2,2p1';u[5]:='2s2,2p1';b[5]:='p';e[5]:=3; d[6]:='1s2,2s2,2p2';u[6]:='2s2,2p2';b[6]:='p';e[6]:=4; d[7]:='1s2,2s2,2p3';u[7]:='2s2,2p3';b[7]:='p';e[7]:=5; d[8]:='1s2,2s2,2p4';u[8]:='2s2,2p4';b[8]:='p';e[8]:=6; d[9]:='1s2,2s2,2p5';u[9]:='2s2,2p5';b[9]:='p';e[9]:=7; d[10]:='1s2,2s2,2p6';u[10]:='2s2,2p6';b[10]:='p';e[10]:=8; d[11]:='1s2,2s2,2p6,3s1';u[11]:='3s1';b[11]:='s';e[11]:=1; d[12]:='1s2,2s2,2p6,3s2';u[12]:='3s2';b[12]:='s';e[12]:=2; d[13]:='1s2,2s2,2p6,3s2,3p1';u[13]:='3s2,3p1';b[13]:='p';e[13]:=3; d[14]:='1s2,2s2,2p6,3s2,3p2';u[14]:='3s2,3p2';b[14]:='p';e[14]:=4; d[15]:='1s2,2s2,2p6,3s2,3p3';u[15]:='3s2,3p3';b[15]:='p';e[15]:=5; d[16]:='1s2,2s2,2p6,3s2,3p4';u[16]:='3s2,3p4';b[16]:='p';e[16]:=6; d[17]:='1s2,2s2,2p6,3s2,3p5';u[17]:='3s2,3p5';b[17]:='p';e[17]:=7; d[18]:='1s2,2s2,2p6,3s2,3p6';u[18]:='3s2,3p6';b[18]:='p';e[18]:=8; d[19]:='1s2,2s2,2p6,3s2,3p6,4s1';u[19]:='4s1';b[19]:='s';e[19]:=1; d[20]:='1s2,2s2,2p6,3s2,3p6,4s2';u[20]:='4s2';b[20]:='s';e[20]:=2; d[21]:='1s2,2s2,2p6,3s2,3p6,4s2,3d1';u[21]:='4s2';b[21]:='d';e[21]:=2; d[22]:='1s2,2s2,2p6,3s2,3p6,4s2,3d2';u[22]:='4s2';b[22]:='d';e[22]:=2; d[23]:='1s2,2s2,2p6,3s2,3p6,4s2,3d3';u[23]:='4s2';b[23]:='d';e[23]:=2; d[24]:='1s2,2s2,2p6,3s2,3p6,4s2,3d4';u[24]:='4s2';b[24]:='d';e[24]:=2; d[25]:='1s2,2s2,2p6,3s2,3p6,4s2,3d5';u[25]:='4s2';b[25]:='d';e[25]:=2; d[26]:='1s2,2s2,2p6,3s2,3p6,4s2,3d6';u[26]:='4s2';b[26]:='d';e[26]:=2; d[27]:='1s2,2s2,2p6,3s2,3p6,4s2,3d7';u[27]:='4s2';b[27]:='d';e[27]:=2; d[28]:='1s2,2s2,2p6,3s2,3p6,4s2,3d8';u[28]:='4s2';b[28]:='d';e[28]:=2; d[29]:='1s2,2s2,2p6,3s2,3p6,4s2,3d9';u[29]:='4s2';b[29]:='d';e[29]:=2; d[30]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10';u[30]:='4s2';b[30]:='d';e[30]:=2; d[31]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p1';u[31]:='4s2,4p1';b[31]:='p';e[31]:=3; d[32]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p2';u[32]:='4s2,4p2';b[32]:='p';e[32]:=4; d[33]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p3';u[33]:='4s2,4p3';b[33]:='p';e[33]:=5; d[34]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p4';u[34]:='4s2,4p4';b[34]:='p';e[34]:=6; d[35]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p5';u[35]:='4s2,4p5';b[35]:='p';e[35]:=7; d[36]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6';u[36]:='4s2,4p6';b[36]:='p';e[36]:=8; d[37]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s1';u[37]:='5s1';b[37]:='s';e[37]:=1; d[38]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2';u[38]:='5s2';b[38]:='s';e[38]:=2; d[39]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d1';u[39]:='5s2';b[39]:='d';e[39]:=2; d[40]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d2';u[40]:='5s2';b[40]:='d';e[40]:=2; d[41]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d3';u[41]:='5s2';b[41]:='d';e[41]:=2; d[42]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d4';u[42]:='5s2';b[42]:='d';e[42]:=2; d[43]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d5';u[43]:='5s2';b[43]:='d';e[43]:=2; d[44]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d6';u[44]:='5s2';b[44]:='d';e[44]:=2; d[45]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d7';u[45]:='5s2';b[45]:='d';e[45]:=2; d[46]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d8';u[46]:='5s2';b[46]:='d';e[46]:=2; d[47]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d9';u[47]:='5s2';b[47]:='d';e[47]:=2; d[48]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10';u[48]:='5s2';b[48]:='d';e[48]:=2; d[49]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p1';u[49]:='5s2,5p1';b[49]:='p';e[49]:=3; d[50]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p2';u[50]:='5s2,5p2';b[50]:='p';e[50]:=4; d[51]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p3';u[51]:='5s2,5p3';b[51]:='p';e[51]:=5; d[52]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p4';u[52]:='5s2,5p4';b[52]:='p';e[52]:=6; d[53]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p5';u[53]:='5s2,5p5';b[53]:='p';e[53]:=7; d[54]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p6';u[54]:='5s2,5p6';b[54]:='p';e[54]:=8; d[55]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p6,6s1';u[55]:='6s1';b[55]:='s';e[55]:=1; end; procedure scelta; begin dati; esatte:=0;errate:=0; for a:=1 to prove do begin randomize; c:=60*random; caso:=round(c)+1; if caso >55 then caso:=55; if caso=38 then caso:=37; writeln(d[caso]); write('scrivi numero atomico elemento =');readln(na); if na=caso then begin writeln('esatto:',caso);esatte:=esatte+1;end else begin writeln('errato:era ',caso);errate:=errate+1;end; writeln; writeln('---------------------------------------------------------'); write('scrivi configurazione ultimo livello =');readln(r); writeln('---------------------------------------------------------'); if r=u[caso] then begin writeln('esatto');esatte:=esatte+1 ;end else begin writeln('errato:era='); writeln('configurazione completa =',d[caso]); writeln('e quindi configurazione ultimo livello='); writeln(u[caso]);errate:=errate+1;end; writeln('--------------------------------------------------------------'); write('scrivi blocco di appartenenza s,p,d,f ');readln(blocco); if blocco=b[caso] then begin writeln('esatto');esatte:=esatte+1;end else begin writeln('errato:era blocco :',b[caso]);errate:=errate+1;end; writeln('-------------------------------------------------------------'); write('scrivi gruppo di appartenenza 1,2,3,4,5,6,7,8 ? ');readln(gruppo); if gruppo=e[caso] then begin writeln('esatto');esatte:=esatte+1;end else begin writeln('errato:era gruppo :',e[caso]);errate:=errate+1;end; writeln('-------------------------------------------------------------'); writeln('premi enter per altra prova');readln;cancella; end; end; begin cancella; repeat write('indica numero di prove da eseguire:da 1 a 20 ');readln(prove); until prove<21; cancella; scelta; writeln('risposte esatte =',esatte); writeln('risposte errate =',errate); writeln('chiama insegnante per valutazione');readln; end.
program orbi6; (* scrivere configurazione elettronica ULTIMO livello e BLOCCO *) (* scrivere gruppo appartenenza *) (* variante di orbita1 :presenta configurazione completa e ultima *) (* con correzione e valutazione finale *) (* NOTA il GRUPPO PER ELEMENTI TRANSIZIONE VIENE ASSEGNATO=2 *) (* numero Z casuale tra 1 e 56 *) uses crt; const n=56; var a,z,esatte,errate,prove,caso,numero,gruppo:integer; blocco:string[5]; d:array[1..n] of string; u:array[1..n] of string[20]; b:array[1..n] of string[5]; e:array[1..n] of integer; r:string; c:real; procedure cancella; begin clrscr; end; procedure dati; begin d[1]:='1s1';u[1]:='1s1';b[1]:='s';e[1]:=1; d[2]:='1s2';u[2]:='1s2';b[2]:='s';e[2]:=2; d[3]:='1s2,2s1';u[3]:='2s1';b[3]:='s';e[3]:=1; d[4]:='1s2,2s2';u[4]:='2s2';b[4]:='s';e[4]:=2; d[5]:='1s2,2s2,2p1';u[5]:='2s2,2p1';b[5]:='p';e[5]:=3; d[6]:='1s2,2s2,2p2';u[6]:='2s2,2p2';b[6]:='p';e[6]:=4; d[7]:='1s2,2s2,2p3';u[7]:='2s2,2p3';b[7]:='p';e[7]:=5; d[8]:='1s2,2s2,2p4';u[8]:='2s2,2p4';b[8]:='p';e[8]:=6; d[9]:='1s2,2s2,2p5';u[9]:='2s2,2p5';b[9]:='p';e[9]:=7; d[10]:='1s2,2s2,2p6';u[10]:='2s2,2p6';b[10]:='p';e[10]:=8; d[11]:='1s2,2s2,2p6,3s1';u[11]:='3s1';b[11]:='s';e[11]:=1; d[12]:='1s2,2s2,2p6,3s2';u[12]:='3s2';b[12]:='s';e[12]:=2; d[13]:='1s2,2s2,2p6,3s2,3p1';u[13]:='3s2,3p1';b[13]:='p';e[13]:=3; d[14]:='1s2,2s2,2p6,3s2,3p2';u[14]:='3s2,3p2';b[14]:='p';e[14]:=4; d[15]:='1s2,2s2,2p6,3s2,3p3';u[15]:='3s2,3p3';b[15]:='p';e[15]:=5; d[16]:='1s2,2s2,2p6,3s2,3p4';u[16]:='3s2,3p4';b[16]:='p';e[16]:=6; d[17]:='1s2,2s2,2p6,3s2,3p5';u[17]:='3s2,3p5';b[17]:='p';e[17]:=7; d[18]:='1s2,2s2,2p6,3s2,3p6';u[18]:='3s2,3p6';b[18]:='p';e[18]:=8; d[19]:='1s2,2s2,2p6,3s2,3p6,4s1';u[19]:='4s1';b[19]:='s';e[19]:=1; d[20]:='1s2,2s2,2p6,3s2,3p6,4s2';u[20]:='4s2';b[20]:='s';e[20]:=2; d[21]:='1s2,2s2,2p6,3s2,3p6,4s2,3d1';u[21]:='4s2';b[21]:='d';e[21]:=2; d[22]:='1s2,2s2,2p6,3s2,3p6,4s2,3d2';u[22]:='4s2';b[22]:='d';e[22]:=2; d[23]:='1s2,2s2,2p6,3s2,3p6,4s2,3d3';u[23]:='4s2';b[23]:='d';e[23]:=2; d[24]:='1s2,2s2,2p6,3s2,3p6,4s2,3d4';u[24]:='4s2';b[24]:='d';e[24]:=2; d[25]:='1s2,2s2,2p6,3s2,3p6,4s2,3d5';u[25]:='4s2';b[25]:='d';e[25]:=2; d[26]:='1s2,2s2,2p6,3s2,3p6,4s2,3d6';u[26]:='4s2';b[26]:='d';e[26]:=2; d[27]:='1s2,2s2,2p6,3s2,3p6,4s2,3d7';u[27]:='4s2';b[27]:='d';e[27]:=2; d[28]:='1s2,2s2,2p6,3s2,3p6,4s2,3d8';u[28]:='4s2';b[28]:='d';e[28]:=2; d[29]:='1s2,2s2,2p6,3s2,3p6,4s2,3d9';u[29]:='4s2';b[29]:='d';e[29]:=2; d[30]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10';u[30]:='4s2';b[30]:='d';e[30]:=2; d[31]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p1';u[31]:='4s2,4p1';b[31]:='p';e[31]:=3; d[32]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p2';u[32]:='4s2,4p2';b[32]:='p';e[32]:=4; d[33]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p3';u[33]:='4s2,4p3';b[33]:='p';e[33]:=5; d[34]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p4';u[34]:='4s2,4p4';b[34]:='p';e[34]:=6; d[35]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p5';u[35]:='4s2,4p5';b[35]:='p';e[35]:=7; d[36]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6';u[36]:='4s2,4p6';b[36]:='p';e[36]:=8; d[37]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s1';u[37]:='5s1';b[37]:='s';e[37]:=1; d[38]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2';u[38]:='5s2';b[38]:='s';e[38]:=2; d[39]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d1';u[39]:='5s2';b[39]:='d';e[39]:=2; d[40]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d2';u[40]:='5s2';b[40]:='d';e[40]:=2; d[41]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d3';u[41]:='5s2';b[41]:='d';e[41]:=2; d[42]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d4';u[42]:='5s2';b[42]:='d';e[42]:=2; d[43]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d5';u[43]:='5s2';b[43]:='d';e[43]:=2; d[44]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d6';u[44]:='5s2';b[44]:='d';e[44]:=2; d[45]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d7';u[45]:='5s2';b[45]:='d';e[45]:=2; d[46]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d8';u[46]:='5s2';b[46]:='d';e[46]:=2; d[47]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d9';u[47]:='5s2';b[47]:='d';e[47]:=2; d[48]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10';u[48]:='5s2';b[48]:='d';e[48]:=2; d[49]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p1';u[49]:='5s2,5p1';b[49]:='p';e[49]:=3; d[50]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p2';u[50]:='5s2,5p2';b[50]:='p';e[50]:=4; d[51]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p3';u[51]:='5s2,5p3';b[51]:='p';e[51]:=5; d[52]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p4';u[52]:='5s2,5p4';b[52]:='p';e[52]:=6; d[53]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p5';u[53]:='5s2,5p5';b[53]:='p';e[53]:=7; d[54]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p6';u[54]:='5s2,5p6';b[54]:='p';e[54]:=8; d[55]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p6,6s1';u[55]:='6s1';b[55]:='s';e[55]:=1; d[56]:='1s2,2s2,2p6,3s2,3p6,4s2,3d10,4p6,5s2,4d10,5p6,6s2';u[56]:='6s2';b[56]:='s';e[56]:=2; end; procedure scelta; begin dati; esatte:=0;errate:=0; for a:=1 to prove do begin randomize; c:=60*random; caso:=round(c)+1; if caso>56 then caso:=56; write('numero atomico elemento =',caso); writeln; writeln(d[caso]); writeln('---------------------------------------------------------'); write('scrivi configurazione ultimo livello =');readln(r); writeln('---------------------------------------------------------'); if r=u[caso] then begin writeln('esatto');esatte:=esatte+1 ;end else begin writeln('errato:era='); writeln('configurazione completa =',d[caso]); writeln('e quindi configurazione ultimo livello='); writeln(u[caso]);errate:=errate+1;end; writeln('--------------------------------------------------------------'); write('scrivi blocco di appartenenza s,p,d,f ');readln(blocco); if blocco=b[caso] then begin writeln('esatto');esatte:=esatte+1;end else begin writeln('errato:era blocco :',b[caso]);errate:=errate+1;end; writeln('-------------------------------------------------------------'); write('scrivi gruppo di appartenenza 1,2,3,4,5,6,7,8 ? ');readln(gruppo); if gruppo=e[caso] then begin writeln('esatto');esatte:=esatte+1;end else begin writeln('errato:era gruppo :',e[caso]);errate:=errate+1;end; writeln('-------------------------------------------------------------'); writeln('premi enter per altra prova');readln;cancella; end; end; begin cancella; repeat write('indica numero di prove da eseguire:da 1 a 56 ');readln(prove); until prove<57; cancella; scelta; writeln('risposte esatte =',esatte); writeln('risposte errate =',errate); writeln('chiama insegnante per valutazione');readln; end.
program OSSIDA; (* determinazione numero ossidazione elementi composto INTERATTIVO *) (* senza valutazione finale *) uses crt; const k1=64; var n:array[1..k1] of string; q:array[1..k1] of integer; va:array[1..k1] of integer; s,a,d,x,n1,n2,n3,h1,h2,h3,hy,v1,v2,h2y,h2f,totale,f:integer; y,e1,e2,e3:string; hx:real; fx:array[1..40] of string[15]; procedure datiy; begin n[1]:='Li';va[1]:=1;q[1]:=1; n[2]:='Na';va[2]:=1;q[2]:=1; n[3]:='K';va[3]:=1;q[3]:=1; n[4]:='Rb';va[4]:=1;q[4]:=1; n[5]:='Cs';va[5]:=1;q[5]:=1; n[6]:='Fr';va[6]:=1;q[6]:=1; n[7]:='Be';va[7]:=2;q[7]:=1; n[8]:='Mg';va[8]:=2;q[8]:=1; n[9]:='Ca';va[9]:=2;q[9]:=1; n[10]:='Sr';va[10]:=2;q[10]:=1; n[11]:='Ba';va[11]:=2;q[11]:=1; n[12]:='Ra';va[12]:=2;q[12]:=1; n[13]:='Sc';va[13]:=3;q[13]:=1; n[14]:='Y';va[14]:=3;q[14]:=1; n[15]:='La';va[15]:=3;q[15]:=1; n[16]:='Ac';va[16]:=3;q[16]:=1; n[17]:='Zr';va[17]:=4;q[17]:=1; n[18]:='Hf';va[18]:=4;q[18]:=1; n[19]:='Ku';va[19]:=4;q[19]:=1; n[20]:='Ta';va[20]:=5;q[20]:=1; n[21]:='Ag';va[21]:=1;q[21]:=1; n[22]:='Cd';va[22]:=2;q[22]:=1; n[23]:='Zn';va[23]:=2;q[23]:=1; n[24]:='Al';va[24]:=3;q[24]:=1; n[25]:='Ga';va[25]:=3;q[25]:=1; n[26]:='In';va[26]:=3;q[26]:=1; n[27]:='Ti';va[27]:=3;q[27]:=2; n[28]:='Ti';va[28]:=4;q[28]:=2; n[29]:='V';va[29]:=2;q[29]:=2; n[30]:='V';va[30]:=3;q[30]:=2; n[31]:='Cr';va[31]:=2;q[31]:=2; n[32]:='Cr';va[32]:=3;q[32]:=2; n[33]:='Mo';va[33]:=2;q[33]:=2; n[34]:='Mo';va[34]:=3;q[34]:=2; n[35]:='Mn';va[35]:=2;q[35]:=2; n[36]:='Mn';va[36]:=3;q[36]:=2; n[37]:='Fe';va[37]:=2;q[37]:=2; n[38]:='Fe';va[38]:=3;q[38]:=2; n[39]:='Co';va[39]:=2;q[39]:=2; n[40]:='Co';va[40]:=3;q[40]:=2; n[41]:='Ni';va[41]:=2;q[41]:=2; n[42]:='Ni';va[42]:=3;q[42]:=2; n[43]:='Pd';va[43]:=2;q[43]:=2; n[44]:='Pd';va[44]:=4;q[44]:=2; n[45]:='Pt';va[45]:=2;q[45]:=2; n[46]:='Pt';va[46]:=4;q[46]:=2; n[47]:='Cu';va[47]:=1;q[47]:=2; n[48]:='Cu';va[48]:=2;q[48]:=2; n[49]:='Au';va[49]:=1;q[49]:=2; n[50]:='Au';va[50]:=3;q[50]:=2; n[51]:='Hg';va[51]:=1;q[51]:=2; n[52]:='Hg';va[52]:=2;q[52]:=2; n[53]:='Sn';va[53]:=2;q[53]:=2; n[54]:='Sn';va[54]:=4;q[54]:=2; n[55]:='Pb';va[55]:=2;q[55]:=2; n[56]:='Pb';va[56]:=4;q[56]:=2; n[57]:='Sb';va[57]:=3;q[57]:=2; n[58]:='Bi';va[58]:=3;q[58]:=2; n[59]:='Po';va[59]:=2;q[59]:=2; n[60]:='Po';va[60]:=4;q[60]:=2; n[61]:='Th';va[61]:=4;q[61]:=2; n[62]:='Nd';va[62]:=3;q[62]:=2; n[63]:='U';va[63]:=3;q[63]:=2; n[64]:='Co';va[64]:=4;q[64]:=2; end; procedure formule; begin fx[1]:='Ba(OH)2';fx[2]:='Ca(NO3)2';fx[3]:='HCl';fx[4]:='HClO2'; fx[5]:='NaF';fx[6]:='H2SO4';fx[7]:='H2CO3';fx[8]:='HClO'; fx[9]:='NaNO3';fx[10]:='K2SO3';fx[11]:='ZnSO4';fx[12]:='HNO2'; fx[13]:='HClO4';fx[14]:='CaSO3';fx[15]:='KClO2';fx[16]:='CaCO3'; fx[17]:='BaSO4';fx[18]:='H2S';fx[19]:='SO3';fx[20]:='N2O5'; fx[20]:='KCl';fx[21]:='CaCl2';fx[22]:='KNO2';fx[23]:='KNO3';fx[24]:='BaCl2'; fx[25]:='KOH';fx[26]:='Ca(OH)2';fx[27]:='MgO';fx[28]:='Al(OH)3';fx[29]:='KF'; fx[30]:='N2O3';fx[31]:='H3PO4';fx[32]:='AlPO4';fx[33]:='NaOH';fx[34]:='SO3'; fx[35]:='CO2';fx[36]:='P2O3';fx[37]:='Ca(NO3)2';fx[38]:='Mg(OH)2'; fx[39]:='CaSO3'; fx[40]:='MgF' ; end; procedure cancella; begin; clrscr; end; procedure fine; begin writeln('premi enter'); readln; end; procedure pausa; begin writeln('premi ENTER ');readln; end; procedure pro1; begin WRITELN('formula OSSIACIDO ',fx[f]); writeln('scrivi simboli elementi e loro indici o numero di atomi'); write('indice o numero atomi IDROGENO ');readln(n1); write('simbolo non metallo ');readln(e2); write('indice o numero atomi elemento ');readln(n2); write('indice o numero atomi OSSIGENO ');readln(n3); e1:='H';e3:='O'; h2:=n3*2-n1*1; writeln('-----------------------------------------------------'); writeln('scrivi numeri ossidazione preceduti da segno + o - '); writeln(e1,n1,e2,n2,e3,n3); write('numero ossidazione di ',e1);readln(x); if x=+1 then writeln('esatto ') else writeln('errato:era +1 '); write('numero ossidazione di ',e2);readln(x); if x=+h2 then writeln('esatto ') else writeln('errato:era +',h2); write('numero ossidazione di ',e3);readln(x); if x=-2 then writeln('esatto ') else writeln('errato:era -2 '); end; procedure pro2; begin writeln('formula IDROSSIDO ',fx[f]); writeln('scrivi simboli elementi e loro indici o numero di atomi'); write('simbolo elemento metallico ');readln(e1); write('indice o numero atomi OSSIGENO ');readln(n2); e2:='O';e3:='H';n1:=1; h1:=n2; writeln('-----------------------------------------------------'); writeln(e1,e2,n2,e3,n2); writeln(e1,'(',e2,e3,')',n2); writeln('scrivi numeri ossidazione preceduti da segno + o - '); write('numero ossidazione di ',e1);readln(x); if x=+h1 then writeln('esatto ') else writeln('errato:era +',h1); write('numero ossidazione di ',e2);readln(x); if x=-2 then writeln('esatto ') else writeln('errato:era -2 '); write('numero ossidazione di ',e3);readln(x); if x=+1 then writeln('esatto ') else writeln('errato:era +1 '); end; procedure pro3; begin writeln('formula IDRACIDO ',fx[f]); writeln('scrivi simboli elementi e loro indici o numero di atomi'); write('indice o numero atomi IDROGENO ');readln(n1); write('simbolo radicale acido ');readln(e2); e1:='H'; WRITELN('-----------------------------------------------------'); writeln('scrivi numeri ossidazione preceduti da segno + o - '); writeln(e1,n1,e2); write('numero ossidazione di ',e1);readln(x); if x=+1 then writeln('esatto ') else writeln('errato:era +1 '); write('numero ossidazione di ',e2);readln(x); if x=-n1 then writeln('esatto ') else writeln('errato:era -',n1); end; procedure pro4; begin writeln('formula OSSIDO o ANIDRIDE ',fx[f]); writeln('scrivi simboli elementi e loro indici o numero di atomi'); writeln('es.SO3....N2O5...CaO....Al2O3...'); writeln('----------------------------------------------------------------'); writeln('calcola :TOTALE cariche negative=atomi ossigeno*(-2)'); writeln('calcola :N.OSSIDAZIONE elemento =totale negative/indice elemento'); writeln('----------------------------------------------------------------'); write('simbolo elemento ');readln(e1); write('indice o numero atomi elemento ');readln(n1); write('indice o numero atomi ossigeno ');readln(n2); h1:=round(n2*2/n1); WRITELN('-----------------------------------------------------'); writeln('scrivi numeri ossidazione preceduti da segno + o - '); writeln(e1,n1,'0',n2); write('numero ossidazione di ',e1);readln(x); if x=+h1 then writeln('esatto ') else writeln('errato:era +',h1); write('numero ossidazione di ','0');readln(x); if x=-2 then writeln('esatto ') else writeln('errato:era -2'); end; procedure pro5; label salta2,salta; begin writeln('formula SALE binario ',fx[f]); writeln('scrivi simboli elementi e loro indici o numero di atomi'); writeln('es.NaCl....CaF2...CaS..'); writeln('----------------------------------------------------------------'); writeln('calcola :TOTALE cariche negative=atomi alogeno*(-1)'); writeln('calcola :TOTALE cariche negative=atomi zolfo*(-2)'); writeln('calcola :N.OSSIDAZIONE elemento =totale negative/indice elemento'); writeln('----------------------------------------------------------------'); write('simbolo elemento metallico ');readln(e1); write('indice o numero atomi elemento ');readln(n1); write('simbolo radicale acido ');readln(e2); write('indice o numero atomi radicale ');readln(n2); if e2='S' then h3:=2*n2 else h3:=n2; h1:=round(h3/n1); writeln('----------------------------------------------'); begin writeln('scrivi numeri ossidazione preceduti da segno + o - '); writeln(e1,n1,e2,n2); write('numero ossidazione di ',e1);readln(x); if x=+h1 then writeln('esatto ') else writeln('errato:era +',h1); write('numero ossidazione di ',e2);readln(x); if e2='S' then goto salta2 ; if (x=-1) then writeln('esatto ') else writeln('errato:era -1');goto salta; salta2: if x=-2 then writeln('esatto ') else writeln('errato:era -2'); end; salta: end; procedure pro6; begin writeln('formula SALI OSSIGENATI ',fx[f]); WRITELN('nel caso di metalli con piu valenze,usare solo la valenza maggiore'); WRITELN('1,2=2...2,3=3...2,4=4 essendo programma ancora incompleto '); WRITELN('in caso contrario si avranno risposte non corrette '); writeln('----------------------------------------------------------------'); writeln('scrivi simboli elementi e loro indici o numero di atomi'); writeln('es.NaNO3....CaSO4...Ca(NO3)2..'); write('simbolo 1 elemento ');readln(e1); write('indice o numero atomi elemento ');readln(n1); writeln('cerco valenza metallo '); writeln('Cm =valenza*indice metallo'); datiy; for a:=1 to k1 do if e1=n[a] then begin v1:=va[a];v2:=va[a+1]; h1:=va[a]*n1;hy:=va[a+1]*n1; end; write('simbolo 2 elemento ');readln(e2); write('indice o numero atomi elemento ');readln(n2); e3:='O'; write('indice o numero atomi ossigeno ');readln(n3); writeln('cariche negative Cn = -2*indice ossigeno '); writeln('n.ossidazione ',e2,' (Cn-Cm)/indice elemento ',e2); h3:=2*n3; (* cariche negative ossigeno *) h2:=round((h3-h1)/n2); (* cariche positive elemento intermedio *) h2y:=round((h3-hy)/n2); if h2=(h3-h1)/n2 then h2f:=h2 else h2f:=h2y; writeln('-------------------------------------------------'); writeln('scrivi i numeri di ossidazione preceduti da segno + o - '); writeln(e1,n1,e2,n2,e3,n3); writeln(e1,n1,'(',e2,e3,n3/n2:0:0,')',n2); write('elemento ',e1:8);readln(x); if x=v1 then writeln('esatto:') else writeln('errato:era ',v1); write('elemento ',e2:8);readln(x); if x=h2f then writeln('esatto:') else writeln('errato:era ',h2f); write('elemento ',e3:8);readln(x); if x=-2 then writeln('esatto:') else writeln('errato:era ',-2); end; procedure scelta; var ancora:integer; begin cancella; f:=0; repeat cancella; f:=f+1; write('formula da esaminare ');writeln(fx[f]); writeln('---------------------------------------------------------'); writeln('seleziona tipo problema '); writeln('1...composti ternari come OSSIACIDI............H2SO4..HNO3 '); writeln('2...composti ternari come IDROSSIDI............NaOH..Ca(OH)2'); writeln('3...composti binari come IDRACIDI..............HCl....H2S '); writeln('4...composti binari come OSSIDI,ANIDRIDI.......Al2O3..SO3 '); writeln('5...composti binari come SALI di ALOGENI,ZOLFO.NaCl...CaS '); WRITELN('6...composti ternari come SALI OSSIGENATI......CaSO4..NaNO3'); writeln('9...fine '); write('opzione=');readln(s); cancella; case s of 1:pro1; 2:pro2; 3:pro3; 4:pro4; 5:pro5; 6:pro6; 9:fine; end; writeln('----------------------------'); writeln('altro problema:scrivi 1...fine:scrivi 2 ');readln(ancora); until ancora=2; fine; end; begin cancella; formule; repeat write('indica numero prove da eseguire <40 ');readln(totale); until totale<40; writeln('programma:richiesta assegnazione numeri ossidazione elementi'); writeln('---------------------------------------------------'); writeln('premi enter');readln; scelta; end.
program ossida4; (* terminologia reazioni redox con valutazione finale *) uses crt; const n=20; var a,b,esatte,errate:integer; ox,rd:string[5]; s:array[1..n] of string[200]; os:array[1..n] of string[5]; ri:array[1..n] of string[5]; no:array[1..n] of string[15]; nr:array[1..n] of string[15]; procedure cancella; begin clrscr; end; procedure dati; begin s[1]:='2H2 + O2 -----> 2 H2O ';os[1]:='O';ri[1]:='H'; no[1]:='0..-2';nr[1]:='0..+1'; s[2]:='H2 + Cl2 -----> 2 HCl ';os[2]:='Cl';ri[2]:='H'; no[2]:='0..-1';nr[2]:='0..+1'; s[3]:='3H2 + N2 -----> 2 NH3 ';os[3]:='N';ri[3]:='H'; no[3]:='0..-3';nr[3]:='0..+1'; s[4]:='H2 + S -----> H2S ';os[4]:='S';ri[4]:='H'; no[4]:='0..-2';nr[4]:='0..+1'; s[5]:='S + O2 -----> SO2 ';os[5]:='O';ri[5]:='S'; no[5]:='0..-2';nr[5]:='0..+4'; s[6]:='Zn + 2HCl -----> ZnCl2 + H2 ';os[6]:='H';ri[6]:='Zn'; no[6]:='+1..0';nr[6]:='0..+2'; s[7]:='Fe + CuSO4 -----> FeSO4 + Cu ';os[7]:='Cu';ri[7]:='Zn'; no[7]:='+2..0';nr[7]:='0..+2'; s[8]:='Cu + AgNO3 -----> CuNO3 + Ag ';os[8]:='Ag';ri[8]:='Cu'; no[8]:='+1..0';nr[8]:='0..+1'; s[9]:='4Al + 3O2 -----> 2Al2O3 ';os[9]:='O';ri[9]:='Al'; no[9]:='0..-2';nr[9]:='0..+3'; s[10]:='C + O2 -----> CO2 ';os[10]:='O';ri[10]:='C'; no[10]:='0..-2';nr[10]:='0..+4'; s[11]:='P + HNO3 + H2O ----> H3PO4 + NO ';os[11]:='N';ri[11]:='P'; no[11]:='+5..+2';nr[11]:='0..+5'; s[12]:='Cu + H2SO4 ---->CuSO4 + SO2 + H2O ';os[12]:='S';ri[12]:='Cu'; no[12]:='+6..+4';nr[12]:='0..+2'; s[13]:='Cu + HNO3 ---->Cu(NO3)2 + NO + H2O ';os[13]:='N';ri[13]:='Cu'; no[13]:='+5..+2';nr[13]:='0..+2'; s[14]:='Ag + HClO3 + HCl ---->AgCl + H2O ';os[14]:='Cl';ri[14]:='Ag'; no[14]:='+5..-1';nr[14]:='0..+1'; s[15]:='FeCl2 + SnCl4 ---->FeCl3 + SnCl2 ';os[15]:='Sn';ri[15]:='Fe'; no[15]:='+4..+2';nr[15]:='+2..+3'; s[16]:='NH3 + O2 ---->NO + H2O ';os[16]:='O';ri[16]:='N'; no[16]:='0..-2';nr[16]:='-3..+2'; s[17]:='KMnO4 + HCl ----> KCl + MnCl2 +Cl2 H2O ';os[17]:='Mn';ri[17]:='Cl'; no[17]:='+7..+2';nr[17]:='-1..0'; s[18]:='KBrO3 + HBr + FeBr2 ---->FeBr3 + KBr+H2O';os[18]:='Br';ri[18]:='Fe'; no[18]:='+5..-1';nr[18]:='+2..+3'; s[19]:='Cl2+NaOH ---->NaCl+NaClO+H2O ';os[19]:='Cl';ri[19]:='Cl'; no[19]:='0..-1';nr[19]:='0..+1'; s[20]:='NaNO2+H2SO4 ---->NaHSO4+HNO3+NO+H2O ';os[20]:='N';ri[20]:='N'; no[20]:='+3..+2';nr[20]:='+3..+5'; end; procedure test; begin esatte:=0;errate:=0; dati; for a:=1 to b do begin writeln('reazione redox da esaminare '); writeln('si deve assegnare il numero di ossidazione ad ogni elemento'); writeln('scrivendo su carta'); writeln('si deve quindi osservare elemento che si ossida ,riduce '); writeln('si devono scrivere i simboli dello elemento ossidante,riducente'); writeln('---------------------------------------------------------------'); writeln(s[a]);writeln; write('simbolo ossidante =');readln(ox); write('simbolo riducente =');readln(rd); if ox=os[a] then begin writeln('esatto:ossidante=',ox); esatte:=esatte+1;end else begin writeln('errato:era ossidante=',os[a]);end; if rd=ri[a] then begin writeln('esatto:riducente=',rd);esatte:=esatte+1;end else writeln('errato:era riducente=',ri[a]); writeln; writeln('--------------------------------------------------'); writeln('confronta i cambiamenti di numeri di ossidazione '); writeln('elemento ossidante :',no[a]); writeln('elemento riducente :',nr[a]); writeln('--------------------------------------------------'); writeln('premi INVIO');readln;cancella; end; end; begin cancella; repeat write('indica numero di prove da eseguire <21 ');readln(b); until b<21; cancella; test; writeln('risultato prova'); errate:=2*b-esatte; writeln('esatte=',esatte); writeln('errate=',errate); writeln('chiama insegnante per valutazione:spera in bene...'); writeln('poi premi INVIO'); readln;cancella; end.
program polare4; (* determinazione tipo di legame tra elementi DIMOSTRATIVO *) (* elementi e composti chimici IN FORMULE *) uses crt; const k=92; var n:array[1..k] of string; p:array[1..k] of integer; e:array[1..k] of real; fx:array[1..40] of string[15]; s,a,f,prove:integer; h1,h2,h3,h4:real; e1,e2,legame:string; procedure fine; begin writeln('premi enter'); readln; end; procedure pausa; begin writeln('premi ENTER ');readln; end; procedure cancella; begin clrscr; end; procedure formule; begin fx[1]:='Ba(OH)2';fx[2]:='Ca(NO3)2';fx[3]:='HCl';fx[4]:='HClO2'; fx[5]:='NaF';fx[6]:='H2SO4';fx[7]:='H2CO3';fx[8]:='HClO'; fx[9]:='NaNO3';fx[10]:='K2SO3';fx[11]:='ZnSO4';fx[12]:='HNO2'; fx[13]:='HClO4';fx[14]:='CaSO3';fx[15]:='KClO2';fx[16]:='CaCO3'; fx[17]:='BaSO4';fx[18]:='H2S';fx[19]:='SO3';fx[20]:='N2O5'; fx[20]:='KCl';fx[21]:='CaCl2';fx[22]:='KNO2';fx[23]:='KNO3';fx[24]:='BaCl2'; fx[25]:='KOH';fx[26]:='Ca(OH)2';fx[27]:='MgO';fx[28]:='Al(OH)3';fx[29]:='KF'; fx[30]:='N2O3';fx[31]:='H3PO4';fx[32]:='AlPO4';fx[33]:='NaOH';fx[34]:='SO3'; fx[35]:='CO2';fx[36]:='P2O3';fx[37]:='Ca(NO3)2';fx[38]:='Mg(OH)2'; fx[39]:='CaSO3'; fx[40]:='MgF2'; end; procedure datipo; begin n[1]:='H';p[1]:=1;e[1]:=2.1; n[2]:='He';p[2]:=4;e[2]:=0; n[3]:='Li';p[3]:=7;e[3]:=1; n[4]:='Be';p[4]:=9;e[4]:=1.5; n[5]:='B';p[5]:=11;e[5]:=2; n[6]:='C';p[6]:=12;e[6]:=2.5; n[7]:='N';p[7]:=14;e[7]:=3; n[8]:='O';p[8]:=16;e[8]:=3.5; n[9]:='F';p[9]:=19;e[9]:=4; n[10]:='Ne';p[10]:=20;e[10]:=0; n[11]:='Na';p[11]:=23;e[11]:=0.9; n[12]:='Mg';p[12]:=24;e[12]:=1.2; n[13]:='Al';p[13]:=27;e[13]:=1.5; n[14]:='Si';p[14]:=28;e[14]:=1.8; n[15]:='P';p[15]:=31;e[15]:=2.1; n[16]:='S';p[16]:=32;e[16]:=2.5; n[17]:='Cl';p[17]:=35;e[17]:=3; n[18]:='Ar';p[18]:=40;e[18]:=0; n[19]:='K';p[19]:=39;e[19]:=0.8; n[20]:='Ca';p[20]:=40;e[20]:=1; n[21]:='Sc';p[21]:=45;e[21]:=1.3; n[22]:='Ti';p[22]:=48;e[22]:=1.6; n[23]:='V';p[23]:=51;e[23]:=1.6; n[24]:='Cr';p[24]:=52;e[24]:=1.6; n[25]:='Mn';p[25]:=55;e[25]:=1.5; n[26]:='Fe';p[26]:=56;e[26]:=1.8; n[27]:='Co';p[27]:=59;e[27]:=1.8; n[28]:='Ni';p[28]:=59;e[28]:=1.8; n[29]:='Cu';p[29]:=64;e[29]:=1.9; n[30]:='Zn';p[30]:=65;e[30]:=1.6; n[31]:='Ga';p[31]:=70;e[31]:=1.6; n[32]:='Ge';p[32]:=73;e[32]:=1.8; n[33]:='As';p[33]:=75;e[33]:=2; n[34]:='Se';p[34]:=79;e[34]:=2.4; n[35]:='Br';p[35]:=80;e[35]:=2.8; n[36]:='Kr';p[36]:=84;e[36]:=0; n[37]:='Rb';p[37]:=85;e[37]:=0.8; n[38]:='Sr';p[38]:=88;e[38]:=1; n[39]:='Y';p[39]:=89;e[39]:=1.2; n[40]:='Zr';p[40]:=91;e[40]:=1.4; n[41]:='Nb';p[41]:=93;e[41]:=1.6; n[42]:='Mo';p[42]:=96;e[42]:=1.8; n[43]:='Tc';p[43]:=99;e[43]:=1.9; n[44]:='Ru';p[44]:=101;e[44]:=2.2; n[45]:='Rh';p[45]:=103;e[45]:=2.2; n[46]:='Pd';p[46]:=106;e[46]:=2.2; n[47]:='Ag';p[47]:=108;e[47]:=1.9; n[48]:='Cd';p[48]:=112;e[48]:=1.7; n[49]:='In';p[49]:=115;e[49]:=1.7; n[50]:='Sn';p[50]:=119;e[50]:=1.8; n[51]:='Sb';p[51]:=122;e[51]:=1.9; n[52]:='Te';p[52]:=128;e[52]:=2.1; n[53]:='I';p[53]:=127;e[53]:=2.5; n[54]:='Xe';p[54]:=131;e[54]:=0; n[55]:='Cs';p[55]:=133;e[55]:=0.7; n[56]:='Ba';p[56]:=137;e[56]:=0.9; n[57]:='La';p[57]:=139;e[57]:=1.1; n[58]:='Ce';p[58]:=140;e[58]:=1.1; n[59]:='Pr';p[59]:=141;e[59]:=1.1; n[60]:='Nd';p[60]:=144;e[60]:=1.2; n[61]:='Pm';p[61]:=145;e[61]:=1.2; n[62]:='Sm';p[62]:=150;e[62]:=1.2; n[63]:='Eu';p[63]:=152;e[63]:=1.2; n[64]:='Gd';p[64]:=157;e[64]:=1.1; n[65]:='Tb';p[65]:=159;e[65]:=1.2; n[66]:='Dy';p[66]:=162;e[66]:=1.2; n[67]:='Ho';p[67]:=165;e[67]:=1.2; n[68]:='Er';p[68]:=167;e[68]:=1.2; n[69]:='Tm';p[69]:=169;e[69]:=1.2; n[70]:='Yb';p[70]:=173;e[70]:=1.1; n[71]:='Lu';p[71]:=174;e[71]:=1.2; n[72]:='Hf';p[72]:=178;e[72]:=1.3; n[73]:='Ta';p[73]:=181;e[73]:=1.5; n[74]:='W';p[74]:=184;e[74]:=1.7; n[75]:='Re';p[75]:=186;e[75]:=1.9; n[76]:='Os';p[76]:=190;e[76]:=2.2; n[77]:='Ir';p[77]:=192;e[77]:=2.2; n[78]:='Pt';p[78]:=195;e[78]:=2.2; n[79]:='Au';p[79]:=197;e[79]:=2.4; n[80]:='Hg';p[80]:=201;e[80]:=1.9; n[81]:='Tl';p[81]:=204;e[81]:=1.8; n[82]:='Pb';p[82]:=207;e[82]:=1.8; n[83]:='Bi';p[83]:=209;e[83]:=1.9; n[84]:='Po';p[84]:=209;e[84]:=2; n[85]:='At';p[85]:=210;e[85]:=2.2; n[86]:='Rn';p[86]:=222;e[86]:=0; n[87]:='Fr';p[87]:=223;e[87]:=0.7; n[88]:='Ra';p[88]:=226;e[88]:=0.9; n[89]:='Ac';p[89]:=227;e[89]:=1.1; n[90]:='Th';p[90]:=232;e[90]:=1.3; n[91]:='Pa';p[91]:=231;e[91]:=1.5; n[92]:='U';p[92]:=238;e[92]:=1.7; end; procedure cerca1; begin datipo; for a:=1 to k do if e1=n[a] then h1:=e[a]; end; procedure cerca2; begin datipo; for a:=1 to k do if e2=n[a] then h2:=e[a]; end; procedure pro1; begin writeln(fx[f]); writeln('------------------------------------------'); write('scrivi simbolo primo elemento ');readln(e1); cerca1; write('scrivi simbolo secondo elemento ');readln(e2); cerca2; WRITELN('------------------------------------------------'); writeln('legame covalente omopolare se De <0.2 '); writeln('legame covalente polare se 0.2 < De < 1.7 '); writeln('legame ionico se De >=1.7'); writeln('==============================================================='); h3:=abs(h1-h2); writeln('stampa valori elettronegativita e calcola differenza '); WRITELN(e1:8,e2:8,'De':8); writeln(h1:8:2,h2:8:2,h3:8:2); if h3<0.2 then legame:='legame covalente omopolare' else if ((h3>0.2) and (h3<1.7)) then legame:='legame covalente polare' else legame:='legame ionico'; writeln('legame tra elementi tipo :',legame); writeln('--------------------------------------------------------------'); writeln('carica parziale o totale positiva:elemento meno elettronegativo'); writeln('carica parziale o totale negativa:elemento piu elettronegativo'); if ((h3>0.2) and (h3<1.7) and (h1<h2)) then writeln(e1,' +d ',e2,' -d'); if ((h3>0.2) and (h3<1.7) and (h1>h2)) then writeln(e2,' +d ',e1,' -d'); if ((h3=1.7) or (h3>1.7) and (h1<h2)) then writeln(e1,' + ',e2,' -'); if ((h3=1.7) or (h3>1.7) and (h1>h2)) then writeln(e2,' + ',e1,' -'); end; procedure pro2; begin writeln(fx[f]); writeln('------------------------------------------'); write('scrivi simbolo metallo ');readln(e1); cerca1; h3:=3.5-h1; h2:=1.4; writeln('legame covalente omopolare se De <0.2 '); writeln('legame covalente polare se 0.2 < De < 1.7 '); writeln('legame ionico se De >=1.7'); writeln('stampa valori elettronegativita e calcola differenze '); writeln(e1:8,h1:8:2,'O':8,3.5:8:2,'H':8,2.1:8:2); writeln('De tra Ossigeno e ',e1:8,' = ',h3:0:2,' legame ionico'); writeln('De tra Ossigeno e Idrogeno = 1.4..legame covalente polare'); end; procedure pro3; var le:string; begin writeln(fx[f]); writeln('------------------------------------------'); write('scrivi simbolo elemento intermedio S,N,P,Cl.. ');readln(e1); cerca1; h3:=3.5-h1; h2:=1.4; if h3<1.7 then le:=' legame covalente polare' else le:=' legame ionico'; writeln('legame covalente omopolare se De <0.2 '); writeln('legame covalente polare se 0.2 < De < 1.7 '); writeln('legame ionico se De >=1.7'); writeln('stampa valori elettronegativita e calcola differenze '); writeln(e1:8,h1:8:2,'O':8,3.5:8:2,'H':8,2.1:8:2); writeln('De tra Ossigeno e ',e1:8,' = ',h3:0:2,le:8); writeln('De tra Ossigeno e Idrogeno = 1.4..legame covalente polare'); end; procedure pro6; var le:string; begin writeln(fx[f]); writeln('------------------------------------------'); write('scrivi simbolo metallo ..K..Ca..Na.. ');readln(e2); cerca2; h4:=3.5-h2; write('scrivi simbolo elemento intermedio S,N,P,Cl.. ');readln(e1); cerca1; h3:=3.5-h1; if h3<1.7 then le:=' legame covalente polare' else le:=' legame ionico'; writeln('legame covalente omopolare se De <0.2 '); writeln('legame covalente polare se 0.2 < De < 1.7 '); writeln('legame ionico se De >=1.7'); writeln('stampa valori elettronegativita e calcola differenze '); writeln(e2:8,h2:8:2,e1:8,h1:8:2,'O':8,3.5:8:2); writeln('De tra Ossigeno e ',e1:8,' = ',h3:0:2,le:8); writeln('De tra Ossigeno e ',e2:8,' = ',h4:0:2,' legame ionico'); end; procedure scelta; var ancora:integer; begin cancella; f:=0; repeat f:=f+1; if f>39 then f:=1; writeln('formula da analizzare ',fx[f]); writeln('seleziona problema o fine'); writeln('1...cerca legame tra due atomi o elementi.. HCl..H2..NaF..'); writeln('2...cerca legame tra elementi in idrossido NaOH..Ca(OH)2.'); writeln('3...cerca legame tra elementi in ossiacidi HNO3..H2SO4 '); writeln('4...cerca legame tra due atomi in ossidi o anidridi CaO..SO3..'); writeln('5...cerca legame tra atomi in sali ossigenati.NaNO3...'); writeln('6...cerca legame tra atomi in sali binari .. KCl..K2S..NaF..'); writeln('9...fine '); write('opzione=');readln(s); cancella; case s of 1:pro1; 2:pro2; 3:pro3; 4:pro1; 5:pro6; 6:pro1; 9:fine; end; writeln('----------------------------'); writeln('altro problema:scrivi 1...fine:scrivi 2 ');readln(ancora);cancella; until ancora=2; end; begin cancella; FORMULE; writeln('programma:determina tipo legame chimico tra elementi'); writeln('---------------------------------------------------'); repeat write('indica numero prove <40 :');readln(prove); until prove<40; writeln('premi enter');readln; scelta; end.
program polare4; (* determinazione tipo di legame tra elementi DIMOSTRATIVO *) (* elementi e composti chimici IN FORMULE *) uses crt; const k=92; var n:array[1..k] of string; p:array[1..k] of integer; e:array[1..k] of real; fx:array[1..40] of string[15]; s,a,f,prove:integer; h1,h2,h3,h4:real; e1,e2,legame:string; procedure fine; begin writeln('premi enter'); readln; end; procedure pausa; begin writeln('premi ENTER ');readln; end; procedure cancella; begin clrscr; end; procedure formule; begin fx[1]:='Ba(OH)2';fx[2]:='Ca(NO3)2';fx[3]:='HCl';fx[4]:='HClO2'; fx[5]:='NaF';fx[6]:='H2SO4';fx[7]:='H2CO3';fx[8]:='HClO'; fx[9]:='NaNO3';fx[10]:='K2SO3';fx[11]:='ZnSO4';fx[12]:='HNO2'; fx[13]:='HClO4';fx[14]:='CaSO3';fx[15]:='KClO2';fx[16]:='CaCO3'; fx[17]:='BaSO4';fx[18]:='H2S';fx[19]:='SO3';fx[20]:='N2O5'; fx[20]:='KCl';fx[21]:='CaCl2';fx[22]:='KNO2';fx[23]:='KNO3';fx[24]:='BaCl2'; fx[25]:='KOH';fx[26]:='Ca(OH)2';fx[27]:='MgO';fx[28]:='Al(OH)3';fx[29]:='KF'; fx[30]:='N2O3';fx[31]:='H3PO4';fx[32]:='AlPO4';fx[33]:='NaOH';fx[34]:='SO3'; fx[35]:='CO2';fx[36]:='P2O3';fx[37]:='Ca(NO3)2';fx[38]:='Mg(OH)2'; fx[39]:='CaSO3'; fx[40]:='MgF2'; end; procedure datipo; begin n[1]:='H';p[1]:=1;e[1]:=2.1; n[2]:='He';p[2]:=4;e[2]:=0; n[3]:='Li';p[3]:=7;e[3]:=1; n[4]:='Be';p[4]:=9;e[4]:=1.5; n[5]:='B';p[5]:=11;e[5]:=2; n[6]:='C';p[6]:=12;e[6]:=2.5; n[7]:='N';p[7]:=14;e[7]:=3; n[8]:='O';p[8]:=16;e[8]:=3.5; n[9]:='F';p[9]:=19;e[9]:=4; n[10]:='Ne';p[10]:=20;e[10]:=0; n[11]:='Na';p[11]:=23;e[11]:=0.9; n[12]:='Mg';p[12]:=24;e[12]:=1.2; n[13]:='Al';p[13]:=27;e[13]:=1.5; n[14]:='Si';p[14]:=28;e[14]:=1.8; n[15]:='P';p[15]:=31;e[15]:=2.1; n[16]:='S';p[16]:=32;e[16]:=2.5; n[17]:='Cl';p[17]:=35;e[17]:=3; n[18]:='Ar';p[18]:=40;e[18]:=0; n[19]:='K';p[19]:=39;e[19]:=0.8; n[20]:='Ca';p[20]:=40;e[20]:=1; n[21]:='Sc';p[21]:=45;e[21]:=1.3; n[22]:='Ti';p[22]:=48;e[22]:=1.6; n[23]:='V';p[23]:=51;e[23]:=1.6; n[24]:='Cr';p[24]:=52;e[24]:=1.6; n[25]:='Mn';p[25]:=55;e[25]:=1.5; n[26]:='Fe';p[26]:=56;e[26]:=1.8; n[27]:='Co';p[27]:=59;e[27]:=1.8; n[28]:='Ni';p[28]:=59;e[28]:=1.8; n[29]:='Cu';p[29]:=64;e[29]:=1.9; n[30]:='Zn';p[30]:=65;e[30]:=1.6; n[31]:='Ga';p[31]:=70;e[31]:=1.6; n[32]:='Ge';p[32]:=73;e[32]:=1.8; n[33]:='As';p[33]:=75;e[33]:=2; n[34]:='Se';p[34]:=79;e[34]:=2.4; n[35]:='Br';p[35]:=80;e[35]:=2.8; n[36]:='Kr';p[36]:=84;e[36]:=0; n[37]:='Rb';p[37]:=85;e[37]:=0.8; n[38]:='Sr';p[38]:=88;e[38]:=1; n[39]:='Y';p[39]:=89;e[39]:=1.2; n[40]:='Zr';p[40]:=91;e[40]:=1.4; n[41]:='Nb';p[41]:=93;e[41]:=1.6; n[42]:='Mo';p[42]:=96;e[42]:=1.8; n[43]:='Tc';p[43]:=99;e[43]:=1.9; n[44]:='Ru';p[44]:=101;e[44]:=2.2; n[45]:='Rh';p[45]:=103;e[45]:=2.2; n[46]:='Pd';p[46]:=106;e[46]:=2.2; n[47]:='Ag';p[47]:=108;e[47]:=1.9; n[48]:='Cd';p[48]:=112;e[48]:=1.7; n[49]:='In';p[49]:=115;e[49]:=1.7; n[50]:='Sn';p[50]:=119;e[50]:=1.8; n[51]:='Sb';p[51]:=122;e[51]:=1.9; n[52]:='Te';p[52]:=128;e[52]:=2.1; n[53]:='I';p[53]:=127;e[53]:=2.5; n[54]:='Xe';p[54]:=131;e[54]:=0; n[55]:='Cs';p[55]:=133;e[55]:=0.7; n[56]:='Ba';p[56]:=137;e[56]:=0.9; n[57]:='La';p[57]:=139;e[57]:=1.1; n[58]:='Ce';p[58]:=140;e[58]:=1.1; n[59]:='Pr';p[59]:=141;e[59]:=1.1; n[60]:='Nd';p[60]:=144;e[60]:=1.2; n[61]:='Pm';p[61]:=145;e[61]:=1.2; n[62]:='Sm';p[62]:=150;e[62]:=1.2; n[63]:='Eu';p[63]:=152;e[63]:=1.2; n[64]:='Gd';p[64]:=157;e[64]:=1.1; n[65]:='Tb';p[65]:=159;e[65]:=1.2; n[66]:='Dy';p[66]:=162;e[66]:=1.2; n[67]:='Ho';p[67]:=165;e[67]:=1.2; n[68]:='Er';p[68]:=167;e[68]:=1.2; n[69]:='Tm';p[69]:=169;e[69]:=1.2; n[70]:='Yb';p[70]:=173;e[70]:=1.1; n[71]:='Lu';p[71]:=174;e[71]:=1.2; n[72]:='Hf';p[72]:=178;e[72]:=1.3; n[73]:='Ta';p[73]:=181;e[73]:=1.5; n[74]:='W';p[74]:=184;e[74]:=1.7; n[75]:='Re';p[75]:=186;e[75]:=1.9; n[76]:='Os';p[76]:=190;e[76]:=2.2; n[77]:='Ir';p[77]:=192;e[77]:=2.2; n[78]:='Pt';p[78]:=195;e[78]:=2.2; n[79]:='Au';p[79]:=197;e[79]:=2.4; n[80]:='Hg';p[80]:=201;e[80]:=1.9; n[81]:='Tl';p[81]:=204;e[81]:=1.8; n[82]:='Pb';p[82]:=207;e[82]:=1.8; n[83]:='Bi';p[83]:=209;e[83]:=1.9; n[84]:='Po';p[84]:=209;e[84]:=2; n[85]:='At';p[85]:=210;e[85]:=2.2; n[86]:='Rn';p[86]:=222;e[86]:=0; n[87]:='Fr';p[87]:=223;e[87]:=0.7; n[88]:='Ra';p[88]:=226;e[88]:=0.9; n[89]:='Ac';p[89]:=227;e[89]:=1.1; n[90]:='Th';p[90]:=232;e[90]:=1.3; n[91]:='Pa';p[91]:=231;e[91]:=1.5; n[92]:='U';p[92]:=238;e[92]:=1.7; end; procedure cerca1; begin datipo; for a:=1 to k do if e1=n[a] then h1:=e[a]; end; procedure cerca2; begin datipo; for a:=1 to k do if e2=n[a] then h2:=e[a]; end; procedure pro1; begin writeln(fx[f]); writeln('------------------------------------------'); write('scrivi simbolo primo elemento ');readln(e1); cerca1; write('scrivi simbolo secondo elemento ');readln(e2); cerca2; WRITELN('------------------------------------------------'); writeln('legame covalente omopolare se De <0.2 '); writeln('legame covalente polare se 0.2 < De < 1.7 '); writeln('legame ionico se De >=1.7'); writeln('==============================================================='); h3:=abs(h1-h2); writeln('stampa valori elettronegativita e calcola differenza '); WRITELN(e1:8,e2:8,'De':8); writeln(h1:8:2,h2:8:2,h3:8:2); if h3<0.2 then legame:='legame covalente omopolare' else if ((h3>0.2) and (h3<1.7)) then legame:='legame covalente polare' else legame:='legame ionico'; writeln('legame tra elementi tipo :',legame); writeln('--------------------------------------------------------------'); writeln('carica parziale o totale positiva:elemento meno elettronegativo'); writeln('carica parziale o totale negativa:elemento piu elettronegativo'); if ((h3>0.2) and (h3<1.7) and (h1<h2)) then writeln(e1,' +d ',e2,' -d'); if ((h3>0.2) and (h3<1.7) and (h1>h2)) then writeln(e2,' +d ',e1,' -d'); if ((h3=1.7) or (h3>1.7) and (h1<h2)) then writeln(e1,' + ',e2,' -'); if ((h3=1.7) or (h3>1.7) and (h1>h2)) then writeln(e2,' + ',e1,' -'); end; procedure pro2; begin writeln(fx[f]); writeln('------------------------------------------'); write('scrivi simbolo metallo ');readln(e1); cerca1; h3:=3.5-h1; h2:=1.4; writeln('legame covalente omopolare se De <0.2 '); writeln('legame covalente polare se 0.2 < De < 1.7 '); writeln('legame ionico se De >=1.7'); writeln('stampa valori elettronegativita e calcola differenze '); writeln(e1:8,h1:8:2,'O':8,3.5:8:2,'H':8,2.1:8:2); writeln('De tra Ossigeno e ',e1:8,' = ',h3:0:2,' legame ionico'); writeln('De tra Ossigeno e Idrogeno = 1.4..legame covalente polare'); end; procedure pro3; var le:string; begin writeln(fx[f]); writeln('------------------------------------------'); write('scrivi simbolo elemento intermedio S,N,P,Cl.. ');readln(e1); cerca1; h3:=3.5-h1; h2:=1.4; if h3<1.7 then le:=' legame covalente polare' else le:=' legame ionico'; writeln('legame covalente omopolare se De <0.2 '); writeln('legame covalente polare se 0.2 < De < 1.7 '); writeln('legame ionico se De >=1.7'); writeln('stampa valori elettronegativita e calcola differenze '); writeln(e1:8,h1:8:2,'O':8,3.5:8:2,'H':8,2.1:8:2); writeln('De tra Ossigeno e ',e1:8,' = ',h3:0:2,le:8); writeln('De tra Ossigeno e Idrogeno = 1.4..legame covalente polare'); end; procedure pro6; var le:string; begin writeln(fx[f]); writeln('------------------------------------------'); write('scrivi simbolo metallo ..K..Ca..Na.. ');readln(e2); cerca2; h4:=3.5-h2; write('scrivi simbolo elemento intermedio S,N,P,Cl.. ');readln(e1); cerca1; h3:=3.5-h1; if h3<1.7 then le:=' legame covalente polare' else le:=' legame ionico'; writeln('legame covalente omopolare se De <0.2 '); writeln('legame covalente polare se 0.2 < De < 1.7 '); writeln('legame ionico se De >=1.7'); writeln('stampa valori elettronegativita e calcola differenze '); writeln(e2:8,h2:8:2,e1:8,h1:8:2,'O':8,3.5:8:2); writeln('De tra Ossigeno e ',e1:8,' = ',h3:0:2,le:8); writeln('De tra Ossigeno e ',e2:8,' = ',h4:0:2,' legame ionico'); end; procedure scelta; var ancora:integer; begin cancella; f:=0; repeat f:=f+1; if f>39 then f:=1; writeln('formula da analizzare ',fx[f]); writeln('seleziona problema o fine'); writeln('1...cerca legame tra due atomi o elementi.. HCl..H2..NaF..'); writeln('2...cerca legame tra elementi in idrossido NaOH..Ca(OH)2.'); writeln('3...cerca legame tra elementi in ossiacidi HNO3..H2SO4 '); writeln('4...cerca legame tra due atomi in ossidi o anidridi CaO..SO3..'); writeln('5...cerca legame tra atomi in sali ossigenati.NaNO3...'); writeln('6...cerca legame tra atomi in sali binari .. KCl..K2S..NaF..'); writeln('9...fine '); write('opzione=');readln(s); cancella; case s of 1:pro1; 2:pro2; 3:pro3; 4:pro1; 5:pro6; 6:pro1; 9:fine; end; writeln('----------------------------'); writeln('altro problema:scrivi 1...fine:scrivi 2 ');readln(ancora);cancella; until ancora=2; end; begin cancella; FORMULE; writeln('programma:determina tipo legame chimico tra elementi'); writeln('---------------------------------------------------'); repeat write('indica numero prove <40 :');readln(prove); until prove<40; writeln('premi enter');readln; scelta; end.
program polare6; (* determinazione tipo di legame tra elementi DIMOSTRATIVO *) uses crt; const k=92; var n:array[1..k] of string; p:array[1..k] of integer; e:array[1..k] of real; (*fx:array[1..40] of string[15];*) s,a,f,prove:integer; h1,h2,h3,h4:real; e1,e2,legame:string; procedure fine; begin writeln('premi enter'); readln; end; procedure pausa; begin writeln('premi ENTER ');readln; end; procedure cancella; begin clrscr; end; procedure datipo; begin n[1]:='H';p[1]:=1;e[1]:=2.1; n[2]:='He';p[2]:=4;e[2]:=0; n[3]:='Li';p[3]:=7;e[3]:=1; n[4]:='Be';p[4]:=9;e[4]:=1.5; n[5]:='B';p[5]:=11;e[5]:=2; n[6]:='C';p[6]:=12;e[6]:=2.5; n[7]:='N';p[7]:=14;e[7]:=3; n[8]:='O';p[8]:=16;e[8]:=3.5; n[9]:='F';p[9]:=19;e[9]:=4; n[10]:='Ne';p[10]:=20;e[10]:=0; n[11]:='Na';p[11]:=23;e[11]:=0.9; n[12]:='Mg';p[12]:=24;e[12]:=1.2; n[13]:='Al';p[13]:=27;e[13]:=1.5; n[14]:='Si';p[14]:=28;e[14]:=1.8; n[15]:='P';p[15]:=31;e[15]:=2.1; n[16]:='S';p[16]:=32;e[16]:=2.5; n[17]:='Cl';p[17]:=35;e[17]:=3; n[18]:='Ar';p[18]:=40;e[18]:=0; n[19]:='K';p[19]:=39;e[19]:=0.8; n[20]:='Ca';p[20]:=40;e[20]:=1; n[21]:='Sc';p[21]:=45;e[21]:=1.3; n[22]:='Ti';p[22]:=48;e[22]:=1.6; n[23]:='V';p[23]:=51;e[23]:=1.6; n[24]:='Cr';p[24]:=52;e[24]:=1.6; n[25]:='Mn';p[25]:=55;e[25]:=1.5; n[26]:='Fe';p[26]:=56;e[26]:=1.8; n[27]:='Co';p[27]:=59;e[27]:=1.8; n[28]:='Ni';p[28]:=59;e[28]:=1.8; n[29]:='Cu';p[29]:=64;e[29]:=1.9; n[30]:='Zn';p[30]:=65;e[30]:=1.6; n[31]:='Ga';p[31]:=70;e[31]:=1.6; n[32]:='Ge';p[32]:=73;e[32]:=1.8; n[33]:='As';p[33]:=75;e[33]:=2; n[34]:='Se';p[34]:=79;e[34]:=2.4; n[35]:='Br';p[35]:=80;e[35]:=2.8; n[36]:='Kr';p[36]:=84;e[36]:=0; n[37]:='Rb';p[37]:=85;e[37]:=0.8; n[38]:='Sr';p[38]:=88;e[38]:=1; n[39]:='Y';p[39]:=89;e[39]:=1.2; n[40]:='Zr';p[40]:=91;e[40]:=1.4; n[41]:='Nb';p[41]:=93;e[41]:=1.6; n[42]:='Mo';p[42]:=96;e[42]:=1.8; n[43]:='Tc';p[43]:=99;e[43]:=1.9; n[44]:='Ru';p[44]:=101;e[44]:=2.2; n[45]:='Rh';p[45]:=103;e[45]:=2.2; n[46]:='Pd';p[46]:=106;e[46]:=2.2; n[47]:='Ag';p[47]:=108;e[47]:=1.9; n[48]:='Cd';p[48]:=112;e[48]:=1.7; n[49]:='In';p[49]:=115;e[49]:=1.7; n[50]:='Sn';p[50]:=119;e[50]:=1.8; n[51]:='Sb';p[51]:=122;e[51]:=1.9; n[52]:='Te';p[52]:=128;e[52]:=2.1; n[53]:='I';p[53]:=127;e[53]:=2.5; n[54]:='Xe';p[54]:=131;e[54]:=0; n[55]:='Cs';p[55]:=133;e[55]:=0.7; n[56]:='Ba';p[56]:=137;e[56]:=0.9; n[57]:='La';p[57]:=139;e[57]:=1.1; n[58]:='Ce';p[58]:=140;e[58]:=1.1; n[59]:='Pr';p[59]:=141;e[59]:=1.1; n[60]:='Nd';p[60]:=144;e[60]:=1.2; n[61]:='Pm';p[61]:=145;e[61]:=1.2; n[62]:='Sm';p[62]:=150;e[62]:=1.2; n[63]:='Eu';p[63]:=152;e[63]:=1.2; n[64]:='Gd';p[64]:=157;e[64]:=1.1; n[65]:='Tb';p[65]:=159;e[65]:=1.2; n[66]:='Dy';p[66]:=162;e[66]:=1.2; n[67]:='Ho';p[67]:=165;e[67]:=1.2; n[68]:='Er';p[68]:=167;e[68]:=1.2; n[69]:='Tm';p[69]:=169;e[69]:=1.2; n[70]:='Yb';p[70]:=173;e[70]:=1.1; n[71]:='Lu';p[71]:=174;e[71]:=1.2; n[72]:='Hf';p[72]:=178;e[72]:=1.3; n[73]:='Ta';p[73]:=181;e[73]:=1.5; n[74]:='W';p[74]:=184;e[74]:=1.7; n[75]:='Re';p[75]:=186;e[75]:=1.9; n[76]:='Os';p[76]:=190;e[76]:=2.2; n[77]:='Ir';p[77]:=192;e[77]:=2.2; n[78]:='Pt';p[78]:=195;e[78]:=2.2; n[79]:='Au';p[79]:=197;e[79]:=2.4; n[80]:='Hg';p[80]:=201;e[80]:=1.9; n[81]:='Tl';p[81]:=204;e[81]:=1.8; n[82]:='Pb';p[82]:=207;e[82]:=1.8; n[83]:='Bi';p[83]:=209;e[83]:=1.9; n[84]:='Po';p[84]:=209;e[84]:=2; n[85]:='At';p[85]:=210;e[85]:=2.2; n[86]:='Rn';p[86]:=222;e[86]:=0; n[87]:='Fr';p[87]:=223;e[87]:=0.7; n[88]:='Ra';p[88]:=226;e[88]:=0.9; n[89]:='Ac';p[89]:=227;e[89]:=1.1; n[90]:='Th';p[90]:=232;e[90]:=1.3; n[91]:='Pa';p[91]:=231;e[91]:=1.5; n[92]:='U';p[92]:=238;e[92]:=1.7; end; procedure cerca1; begin datipo; for a:=1 to k do if e1=n[a] then h1:=e[a]; end; procedure cerca2; begin datipo; for a:=1 to k do if e2=n[a] then h2:=e[a]; end; procedure pro1(sf:string); begin writeln('esempio ',sf); writeln('------------------------------------------'); write('scrivi simbolo primo elemento ');readln(e1); cerca1; write('scrivi simbolo secondo elemento ');readln(e2); cerca2; WRITELN('------------------------------------------------'); writeln('legame covalente omopolare se De <0.2 '); writeln('legame covalente polare se 0.2 < De < 1.7 '); writeln('legame ionico se De >=1.7'); writeln('==============================================================='); h3:=abs(h1-h2); writeln('stampa valori elettronegativita e calcola differenza '); WRITELN(e1:8,e2:8,'De':8); writeln(h1:8:2,h2:8:2,h3:8:2); if h3<0.2 then legame:='legame covalente omopolare' else if ((h3>0.2) and (h3<1.7)) then legame:='legame covalente polare' else legame:='legame ionico'; writeln('legame tra elementi tipo :',legame); writeln('--------------------------------------------------------------'); writeln('carica parziale o totale positiva:elemento meno elettronegativo'); writeln('carica parziale o totale negativa:elemento piu elettronegativo'); if ((h3>0.2) and (h3<1.7) and (h1<h2)) then writeln(e1,' +d ',e2,' -d'); if ((h3>0.2) and (h3<1.7) and (h1>h2)) then writeln(e2,' +d ',e1,' -d'); if ((h3=1.7) or (h3>1.7) and (h1<h2)) then writeln(e1,' + ',e2,' -'); if ((h3=1.7) or (h3>1.7) and (h1>h2)) then writeln(e2,' + ',e1,' -'); end; procedure pro2(sf:string); begin writeln('esempio ',sf); writeln('------------------------------------------'); write('scrivi simbolo metallo ');readln(e1); cerca1; h3:=3.5-h1; h2:=1.4; writeln('legame covalente omopolare se De <0.2 '); writeln('legame covalente polare se 0.2 < De < 1.7 '); writeln('legame ionico se De >=1.7'); writeln('stampa valori elettronegativita e calcola differenze '); writeln(e1:8,h1:8:2,'O':8,3.5:8:2,'H':8,2.1:8:2); writeln('De tra Ossigeno e ',e1:8,' = ',h3:0:2,' legame ionico'); writeln('De tra Ossigeno e Idrogeno = 1.4..legame covalente polare'); end; procedure pro3(sf:string); var le:string; begin writeln('esempio ',sf); writeln('------------------------------------------'); write('scrivi simbolo elemento intermedio S,N,P,Cl.. ');readln(e1); cerca1; h3:=3.5-h1; h2:=1.4; if h3<1.7 then le:=' legame covalente polare' else le:=' legame ionico'; writeln('legame covalente omopolare se De <0.2 '); writeln('legame covalente polare se 0.2 < De < 1.7 '); writeln('legame ionico se De >=1.7'); writeln('stampa valori elettronegativita e calcola differenze '); writeln(e1:8,h1:8:2,'O':8,3.5:8:2,'H':8,2.1:8:2); writeln('De tra Ossigeno e ',e1:8,' = ',h3:0:2,le:8); writeln('De tra Ossigeno e Idrogeno = 1.4..legame covalente polare'); end; procedure pro6(sf:string); var le:string; begin writeln('esempio ',sf); writeln('------------------------------------------'); write('scrivi simbolo metallo ..K..Ca..Na.. ');readln(e2); cerca2; h4:=3.5-h2; write('scrivi simbolo elemento intermedio S,N,P,Cl.. ');readln(e1); cerca1; h3:=3.5-h1; if h3<1.7 then le:=' legame covalente polare' else le:=' legame ionico'; writeln('legame covalente omopolare se De <0.2 '); writeln('legame covalente polare se 0.2 < De < 1.7 '); writeln('legame ionico se De >=1.7'); writeln('stampa valori elettronegativita e calcola differenze '); writeln(e2:8,h2:8:2,e1:8,h1:8:2,'O':8,3.5:8:2); writeln('De tra Ossigeno e ',e1:8,' = ',h3:0:2,le:8); writeln('De tra Ossigeno e ',e2:8,' = ',h4:0:2,' legame ionico'); end; procedure scelta; var ancora:integer; begin cancella; f:=0; repeat f:=f+1; if f>39 then f:=1; (* writeln('tipo formula da analizzare ',fx[f]); *) writeln('seleziona problema o fine'); writeln('1...cerca legame tra due atomi o elementi.. HCl..H2..NaF..'); writeln('2...cerca legame tra elementi in idrossido NaOH..Ca(OH)2.'); writeln('3...cerca legame tra elementi in ossiacidi HNO3..H2SO4 '); writeln('4...cerca legame tra due atomi in ossidi o anidridi CaO..SO3..'); writeln('5...cerca legame tra atomi in sali ossigenati.NaNO3...'); writeln('6...cerca legame tra atomi in sali binari .. KCl..K2S..NaF..'); writeln('9...fine '); write('opzione=');readln(s); cancella; case s of 1:pro1('HCl..H2..NaF..'); 2:pro2('NaOH..KOH..'); 3:pro3('HNO3..H2SO4..'); 4:pro1('CaO...SO2..'); 5:pro6('NaNO3..CaSO4..'); 6:pro1('KCl..K2S..NaBr..'); 9:fine; end; writeln('----------------------------'); writeln('altro problema:scrivi 1...fine:scrivi 2 ');readln(ancora);cancella; until ancora=2; end; begin cancella; writeln('programma:determina tipo legame chimico tra elementi'); writeln('---------------------------------------------------'); repeat write('indica numero prove <40 :');readln(prove); until prove<40; writeln('premi enter');readln; scelta; end.
program REDOX; (* determinazione numeri ossidazione INTERATTIVO *) (* si presenta un formula e si richiedono i numeri di ossidazione *) uses crt; const k=20; (* modificare in funzione dati archiviati *) var f:array[1..k] of string; n:array[1..k] of string; s,esatto,errato:integer; h:string; procedure stampa; begin writeln; writeln('------risultato------------:chiama insegnante '); writeln('risposte esatte ',esatto:8); writeln('risposte errate ',errato:8); writeln('premi enter'); readln; end; procedure fine; begin stampa; writeln('premi enter'); readln; end; procedure pausa; begin writeln('premi enter per proseguire');readln; end; procedure dati; begin f[1]:='HCl';f[2]:='NaCl';f[3]:='CaCl2';f[4]:='KCl';f[5]:='AlCl3'; n[1]:='+1,-1';n[2]:='+1,-1';n[3]:='+2,-1';n[4]:='+1,-1';n[5]:='+3,-1'; f[6]:='HCl0';f[7]:='NaCl0';f[8]:='CaS03';f[9]:='KNO3';f[10]:='Al(NO3)3'; n[6]:='+1,+1,-2';n[7]:='+1,+1,-2';n[8]:='+2,+4,-2';n[9]:='+1,+5,-2'; f[10]:='Al(NO3)3'; n[10]:='+3,+5,-2'; f[11]:='HCl03';f[12]:='MgCO3';f[13]:='ZnSO3';f[14]:='CuCO3';f[15]:='CuCl2'; n[11]:='+1,+5,-2';n[12]:='+2,+4,-2';n[13]:='+2,+4,-2';n[14]:='+2,+4,-2'; f[15]:='CuCl2'; n[15]:='+2,-1'; f[16]:='HF';f[17]:='H3PO4';f[18]:='Ca(NO2)2';f[19]:='KBr';f[20]:='Al(SO3)3'; n[16]:='+1,-1';n[17]:='+1,+5,-2';n[18]:='+2,+3,-2';n[19]:='+1,-1'; f[20]:='Al(SO3)3'; n[20]:='+3,+4,-2'; end; procedure pro1; var a,p:integer;h,r:string; begin dati; esatto:=0;errato:=0; writeln('scrivi i numeri di ossidazione in ordine da sinistra a destra'); writeln('es.per H2S04...+1,+6,-2 e poi premi enter '); writeln('se non sai,premi ENTER '); writeln('------------------------------------------------------------'); repeat write('scrivi prove da eseguire..5..6..10..minore di ',k,'..');readln(p); until p<k; h:=' numeri ossidazione :'; for a:=1 to p do begin write(f[a],h);readln(r); if r=n[a] then begin writeln('esatto') ;esatto:=esatto+1;end else begin writeln('errato:erano:',n[a]);errato:=errato+1;end; end; stampa; end; procedure scelta; var ancora:integer; begin clrscr; writeln('seleziona opzione scrivendo il numero corrispondente '); writeln('1...determinare numeri ossidazione'); writeln('9...fine '); write('opzione=');readln(s); clrscr; case s of 1:pro1; 9:fine; end; writeln('----------------------------'); writeln('altro problema:scrivi 1...fine:scrivi 2 ');readln(ancora); if ancora =1 then scelta else fine; end; begin clrscr; writeln('funzione programma:determinazione numeri ossidazione'); writeln('---------------------------------------------------'); esatto:=0;errato:=0; writeln('premi enter');readln; scelta; end.
program OSSIDA; (* determinazione numero ossidazione elementi composto INTERATTIVO *) (* senza valutazione finale *) uses crt; const k1=64; var n:array[1..k1] of string; q:array[1..k1] of integer; va:array[1..k1] of integer; s,a,d,x,n1,n2,n3,h1,h2,h3,hy,v1,v2,h2y,h2f,totale,f,k:integer; y,e1,e2,e3:string; hx:real; fx:array[1..40] of string[15]; procedure datiy; begin n[1]:='Li';va[1]:=1;q[1]:=1; n[2]:='Na';va[2]:=1;q[2]:=1; n[3]:='K';va[3]:=1;q[3]:=1; n[4]:='Rb';va[4]:=1;q[4]:=1; n[5]:='Cs';va[5]:=1;q[5]:=1; n[6]:='Fr';va[6]:=1;q[6]:=1; n[7]:='Be';va[7]:=2;q[7]:=1; n[8]:='Mg';va[8]:=2;q[8]:=1; n[9]:='Ca';va[9]:=2;q[9]:=1; n[10]:='Sr';va[10]:=2;q[10]:=1; n[11]:='Ba';va[11]:=2;q[11]:=1; n[12]:='Ra';va[12]:=2;q[12]:=1; n[13]:='Sc';va[13]:=3;q[13]:=1; n[14]:='Y';va[14]:=3;q[14]:=1; n[15]:='La';va[15]:=3;q[15]:=1; n[16]:='Ac';va[16]:=3;q[16]:=1; n[17]:='Zr';va[17]:=4;q[17]:=1; n[18]:='Hf';va[18]:=4;q[18]:=1; n[19]:='Ku';va[19]:=4;q[19]:=1; n[20]:='Ta';va[20]:=5;q[20]:=1; n[21]:='Ag';va[21]:=1;q[21]:=1; n[22]:='Cd';va[22]:=2;q[22]:=1; n[23]:='Zn';va[23]:=2;q[23]:=1; n[24]:='Al';va[24]:=3;q[24]:=1; n[25]:='Ga';va[25]:=3;q[25]:=1; n[26]:='In';va[26]:=3;q[26]:=1; n[27]:='Ti';va[27]:=3;q[27]:=2; n[28]:='Ti';va[28]:=4;q[28]:=2; n[29]:='V';va[29]:=2;q[29]:=2; n[30]:='V';va[30]:=3;q[30]:=2; n[31]:='Cr';va[31]:=2;q[31]:=2; n[32]:='Cr';va[32]:=3;q[32]:=2; n[33]:='Mo';va[33]:=2;q[33]:=2; n[34]:='Mo';va[34]:=3;q[34]:=2; n[35]:='Mn';va[35]:=2;q[35]:=2; n[36]:='Mn';va[36]:=3;q[36]:=2; n[37]:='Fe';va[37]:=2;q[37]:=2; n[38]:='Fe';va[38]:=3;q[38]:=2; n[39]:='Co';va[39]:=2;q[39]:=2; n[40]:='Co';va[40]:=3;q[40]:=2; n[41]:='Ni';va[41]:=2;q[41]:=2; n[42]:='Ni';va[42]:=3;q[42]:=2; n[43]:='Pd';va[43]:=2;q[43]:=2; n[44]:='Pd';va[44]:=4;q[44]:=2; n[45]:='Pt';va[45]:=2;q[45]:=2; n[46]:='Pt';va[46]:=4;q[46]:=2; n[47]:='Cu';va[47]:=1;q[47]:=2; n[48]:='Cu';va[48]:=2;q[48]:=2; n[49]:='Au';va[49]:=1;q[49]:=2; n[50]:='Au';va[50]:=3;q[50]:=2; n[51]:='Hg';va[51]:=1;q[51]:=2; n[52]:='Hg';va[52]:=2;q[52]:=2; n[53]:='Sn';va[53]:=2;q[53]:=2; n[54]:='Sn';va[54]:=4;q[54]:=2; n[55]:='Pb';va[55]:=2;q[55]:=2; n[56]:='Pb';va[56]:=4;q[56]:=2; n[57]:='Sb';va[57]:=3;q[57]:=2; n[58]:='Bi';va[58]:=3;q[58]:=2; n[59]:='Po';va[59]:=2;q[59]:=2; n[60]:='Po';va[60]:=4;q[60]:=2; n[61]:='Th';va[61]:=4;q[61]:=2; n[62]:='Nd';va[62]:=3;q[62]:=2; n[63]:='U';va[63]:=3;q[63]:=2; n[64]:='Co';va[64]:=4;q[64]:=2; end; procedure formule; begin fx[1]:='HNO3';fx[2]:='HClO4';fx[3]:='H2SO4';fx[4]:='HClO2'; fx[5]:='H3PO4';fx[6]:='H2SO4';fx[7]:='H2CO3';fx[8]:='HClO'; fx[9]:='NaNO3';fx[10]:='K2SO3';fx[11]:='ZnSO4';fx[12]:='KNO2'; fx[13]:='NaClO4';fx[14]:='CaSO3';fx[15]:='KClO2';fx[16]:='CaCO3'; fx[17]:='SO3';fx[18]:='CO2';fx[19]:='SO2';fx[20]:='N2O5'; fx[21]:='CaCl2';fx[22]:='CaF2';fx[23]:='NaF';fx[24]:='BaCl2'; fx[25]:='KOH';fx[26]:='Ca(OH)2';fx[27]:='Mg(OH)2';fx[28]:='Al(OH)3'; fx[29]:='NaOH'; fx[30]:='HCl';fx[31]:='HF';fx[32]:='H2S';fx[33]:='HBr';fx[34]:='HI'; fx[35]:='SnO';fx[36]:='PbO2';fx[37]:='CaO';fx[38]:='MgO'; fx[39]:='Al2O3';fx[40]:='Fe2O3' ; end; procedure cancella; begin; clrscr; end; procedure fine; begin writeln('premi enter'); readln; end; procedure pausa; begin writeln('premi ENTER ');readln; end; procedure pro1; begin WRITELN('formula OSSIACIDO '); for k:=1 to 8 do writeln(fx[k]); writeln('scrivi simboli elementi e loro indici o numero di atomi'); write('indice o numero atomi IDROGENO ');readln(n1); write('simbolo non metallo ');readln(e2); write('indice o numero atomi elemento ');readln(n2); write('indice o numero atomi OSSIGENO ');readln(n3); e1:='H';e3:='O'; h2:=n3*2-n1*1; writeln('-----------------------------------------------------'); writeln('scrivi numeri ossidazione preceduti da segno + o - '); writeln(e1,n1,e2,n2,e3,n3); write('numero ossidazione di ',e1);readln(x); if x=+1 then writeln('esatto ') else writeln('errato:era +1 '); write('numero ossidazione di ',e2);readln(x); if x=+h2 then writeln('esatto ') else writeln('errato:era +',h2); write('numero ossidazione di ',e3);readln(x); if x=-2 then writeln('esatto ') else writeln('errato:era -2 '); end; procedure pro2; begin writeln('formula IDROSSIDO '); for k:=25 to 29 do writeln(fx[k]); writeln('scrivi simboli elementi e loro indici o numero di atomi'); write('simbolo elemento metallico ');readln(e1); write('indice o numero atomi OSSIGENO ');readln(n2); e2:='O';e3:='H';n1:=1; h1:=n2; writeln('-----------------------------------------------------'); writeln(e1,e2,n2,e3,n2); writeln(e1,'(',e2,e3,')',n2); writeln('scrivi numeri ossidazione preceduti da segno + o - '); write('numero ossidazione di ',e1);readln(x); if x=+h1 then writeln('esatto ') else writeln('errato:era +',h1); write('numero ossidazione di ',e2);readln(x); if x=-2 then writeln('esatto ') else writeln('errato:era -2 '); write('numero ossidazione di ',e3);readln(x); if x=+1 then writeln('esatto ') else writeln('errato:era +1 '); end; procedure pro3; begin writeln('formula IDRACIDO '); for k:=30 to 34 do writeln(fx[k]); writeln('scrivi simboli elementi e loro indici o numero di atomi'); write('indice o numero atomi IDROGENO ');readln(n1); write('simbolo radicale acido ');readln(e2); e1:='H'; WRITELN('-----------------------------------------------------'); writeln('scrivi numeri ossidazione preceduti da segno + o - '); writeln(e1,n1,e2); write('numero ossidazione di ',e1);readln(x); if x=+1 then writeln('esatto ') else writeln('errato:era +1 '); write('numero ossidazione di ',e2);readln(x); if x=-n1 then writeln('esatto ') else writeln('errato:era -',n1); end; procedure pro4; begin writeln('formula ANIDRIDE '); for k:=17 to 20 do writeln(fx[k]); writeln('scrivi simboli elementi e loro indici o numero di atomi'); writeln('es.SO3....N2O5...CaO....Al2O3...'); writeln('----------------------------------------------------------------'); writeln('calcola :TOTALE cariche negative=atomi ossigeno*(-2)'); writeln('calcola :N.OSSIDAZIONE elemento =totale negative/indice elemento'); writeln('----------------------------------------------------------------'); write('simbolo elemento ');readln(e1); write('indice o numero atomi elemento ');readln(n1); write('indice o numero atomi ossigeno ');readln(n2); h1:=round(n2*2/n1); WRITELN('-----------------------------------------------------'); writeln('scrivi numeri ossidazione preceduti da segno + o - '); writeln(e1,n1,'0',n2); write('numero ossidazione di ',e1);readln(x); if x=+h1 then writeln('esatto ') else writeln('errato:era +',h1); write('numero ossidazione di ','0');readln(x); if x=-2 then writeln('esatto ') else writeln('errato:era -2'); end; procedure pro5; label salta2,salta; begin writeln('formula SALE binario '); for k:=21 to 24 do writeln(fx[k]); writeln('scrivi simboli elementi e loro indici o numero di atomi'); writeln('es.NaCl....CaF2...CaS..'); writeln('----------------------------------------------------------------'); writeln('calcola :TOTALE cariche negative=atomi alogeno*(-1)'); writeln('calcola :TOTALE cariche negative=atomi zolfo*(-2)'); writeln('calcola :N.OSSIDAZIONE elemento =totale negative/indice elemento'); writeln('----------------------------------------------------------------'); write('simbolo elemento metallico ');readln(e1); write('indice o numero atomi elemento ');readln(n1); write('simbolo radicale acido ');readln(e2); write('indice o numero atomi radicale ');readln(n2); if e2='S' then h3:=2*n2 else h3:=n2; h1:=round(h3/n1); writeln('----------------------------------------------'); begin writeln('scrivi numeri ossidazione preceduti da segno + o - '); writeln(e1,n1,e2,n2); write('numero ossidazione di ',e1);readln(x); if x=+h1 then writeln('esatto ') else writeln('errato:era +',h1); write('numero ossidazione di ',e2);readln(x); if e2='S' then goto salta2 ; if (x=-1) then writeln('esatto ') else writeln('errato:era -1');goto salta; salta2: if x=-2 then writeln('esatto ') else writeln('errato:era -2'); end; salta: end; procedure pro6; begin writeln('formula SALI OSSIGENATI '); for k:=9 to 16 do writeln(fx[k]); WRITELN('nel caso di metalli con piu valenze,usare solo la valenza maggiore'); WRITELN('1,2=2...2,3=3...2,4=4 essendo programma ancora incompleto '); WRITELN('in caso contrario si avranno risposte non corrette '); writeln('----------------------------------------------------------------'); writeln('scrivi simboli elementi e loro indici o numero di atomi'); writeln('es.NaNO3....CaSO4...Ca(NO3)2..'); write('simbolo 1 elemento ');readln(e1); write('indice o numero atomi elemento ');readln(n1); writeln('cerco valenza metallo '); writeln('Cm =valenza*indice metallo'); datiy; for a:=1 to k1 do if e1=n[a] then begin v1:=va[a];v2:=va[a+1]; h1:=va[a]*n1;hy:=va[a+1]*n1; end; write('simbolo 2 elemento ');readln(e2); write('indice o numero atomi elemento ');readln(n2); e3:='O'; write('indice o numero atomi ossigeno ');readln(n3); writeln('cariche negative Cn = -2*indice ossigeno '); writeln('n.ossidazione ',e2,' (Cn-Cm)/indice elemento ',e2); h3:=2*n3; (* cariche negative ossigeno *) h2:=round((h3-h1)/n2); (* cariche positive elemento intermedio *) h2y:=round((h3-hy)/n2); if h2=(h3-h1)/n2 then h2f:=h2 else h2f:=h2y; writeln('-------------------------------------------------'); writeln('scrivi i numeri di ossidazione preceduti da segno + o - '); writeln(e1,n1,e2,n2,e3,n3); writeln(e1,n1,'(',e2,e3,n3/n2:0:0,')',n2); write('elemento ',e1:8);readln(x); if x=v1 then writeln('esatto:') else writeln('errato:era ',v1); write('elemento ',e2:8);readln(x); if x=h2f then writeln('esatto:') else writeln('errato:era ',h2f); write('elemento ',e3:8);readln(x); if x=-2 then writeln('esatto:') else writeln('errato:era ',-2); end; procedure pro7; begin writeln('formula OSSIDO BASICO '); for k:=35 to 40 do writeln(fx[k]); writeln('scrivi simboli elementi e loro indici o numero di atomi'); writeln('es.SO3....N2O5...CaO....Al2O3...'); writeln('----------------------------------------------------------------'); writeln('calcola :TOTALE cariche negative=atomi ossigeno*(-2)'); writeln('calcola :N.OSSIDAZIONE elemento =totale negative/indice elemento'); writeln('----------------------------------------------------------------'); write('simbolo elemento ');readln(e1); write('indice o numero atomi elemento ');readln(n1); write('indice o numero atomi ossigeno ');readln(n2); h1:=round(n2*2/n1); WRITELN('-----------------------------------------------------'); writeln('scrivi numeri ossidazione preceduti da segno + o - '); writeln(e1,n1,'0',n2); write('numero ossidazione di ',e1);readln(x); if x=+h1 then writeln('esatto ') else writeln('errato:era +',h1); write('numero ossidazione di ','0');readln(x); if x=-2 then writeln('esatto ') else writeln('errato:era -2'); end; procedure scelta; var ancora:integer; begin cancella; f:=0; repeat cancella; f:=f+1; (* write('formula da esaminare ');writeln(fx[f]);*) writeln('---------------------------------------------------------'); writeln('seleziona tipo problema '); writeln('1...composti ternari come OSSIACIDI............H2SO4..HNO3 '); writeln('2...composti ternari come IDROSSIDI............NaOH..Ca(OH)2'); writeln('3...composti binari come IDRACIDI..............HCl....H2S '); writeln('4...composti binari come ANIDRIDI..............N2O3...SO3 '); writeln('5...composti binari come SALI di ALOGENI,ZOLFO.NaCl...CaS '); WRITELN('6...composti ternari come SALI OSSIGENATI......CaSO4..NaNO3'); writeln('7...composti binari come OSSIDI BASICI.........CaO....Al2O3'); writeln('9...fine '); write('opzione=');readln(s); cancella; case s of 1:pro1; 2:pro2; 3:pro3; 4:pro4; 5:pro5; 6:pro6; 7:pro7; 9:fine; end; writeln('----------------------------'); writeln('altro problema:scrivi 1...fine:scrivi 2 ');readln(ancora); until ancora=2; fine; end; begin cancella; formule; repeat write('indica numero prove da eseguire <40 ');readln(totale); until totale<40; writeln('programma:richiesta assegnazione numeri ossidazione elementi'); writeln('---------------------------------------------------'); writeln('premi enter');readln; scelta; end.
program riduz1; (* terminologia reazioni redox con valutazione finale *) uses crt; const n=20; var a,b,esatte,errate:integer; ox,rd:string[5]; s:array[1..n] of string[200]; os:array[1..n] of string[5]; ri:array[1..n] of string[5]; no:array[1..n] of string[15]; nr:array[1..n] of string[15]; procedure cancella; begin clrscr; end; procedure dati; begin s[1]:='2H2 + O2 -----> 2 H2O ';os[1]:='O';ri[1]:='H'; no[1]:='0..-2';nr[1]:='0..+1'; s[2]:='H2 + Cl2 -----> 2 HCl ';os[2]:='Cl';ri[2]:='H'; no[2]:='0..-1';nr[2]:='0..+1'; s[3]:='3H2 + N2 -----> 2 NH3 ';os[3]:='N';ri[3]:='H'; no[3]:='0..-3';nr[3]:='0..+1'; s[4]:='H2 + S -----> H2S ';os[4]:='S';ri[4]:='H'; no[4]:='0..-2';nr[4]:='0..+1'; s[5]:='S + O2 -----> SO2 ';os[5]:='O';ri[5]:='S'; no[5]:='0..-2';nr[5]:='0..+4'; s[6]:='Zn + 2HCl -----> ZnCl2 + H2 ';os[6]:='H';ri[6]:='Zn'; no[6]:='+1..0';nr[6]:='0..+2'; s[7]:='Fe + CuSO4 -----> FeSO4 + Cu ';os[7]:='Cu';ri[7]:='Zn'; no[7]:='+2..0';nr[7]:='0..+2'; s[8]:='Cu + AgNO3 -----> CuNO3 + Ag ';os[8]:='Ag';ri[8]:='Cu'; no[8]:='+1..0';nr[8]:='0..+1'; s[9]:='4Al + 3O2 -----> 2Al2O3 ';os[9]:='O';ri[9]:='Al'; no[9]:='0..-2';nr[9]:='0..+3'; s[10]:='C + O2 -----> CO2 ';os[10]:='O';ri[10]:='C'; no[10]:='0..-2';nr[10]:='0..+4'; s[11]:='P + HNO3 + H2O ----> H3PO4 + NO ';os[11]:='N';ri[11]:='P'; no[11]:='+5..+2';nr[11]:='0..+5'; s[12]:='Cu + H2SO4 ---->CuSO4 + SO2 + H2O ';os[12]:='S';ri[12]:='Cu'; no[12]:='+6..+4';nr[12]:='0..+2'; s[13]:='Cu + HNO3 ---->Cu(NO3)2 + NO + H2O ';os[13]:='N';ri[13]:='Cu'; no[13]:='+5..+2';nr[13]:='0..+2'; s[14]:='Ag + HClO3 + HCl ---->AgCl + H2O ';os[14]:='Cl';ri[14]:='Ag'; no[14]:='+5..-1';nr[14]:='0..+1'; s[15]:='FeCl2 + SnCl4 ---->FeCl3 + SnCl2 ';os[15]:='Sn';ri[15]:='Fe'; no[15]:='+4..+2';nr[15]:='+2..+3'; s[16]:='NH3 + O2 ---->NO + H2O ';os[16]:='O';ri[16]:='N'; no[16]:='0..-2';nr[16]:='-3..+2'; s[17]:='KMnO4 + HCl ----> KCl + MnCl2 +Cl2 H2O ';os[17]:='Mn';ri[17]:='Cl'; no[17]:='+7..+2';nr[17]:='-1..0'; s[18]:='KBrO3 + HBr + FeBr2 ---->FeBr3 + KBr+H2O';os[18]:='Br';ri[18]:='Fe'; no[18]:='+5..-1';nr[18]:='+2..+3'; s[19]:='Cl2+NaOH ---->NaCl+NaClO+H2O ';os[19]:='Cl';ri[19]:='Cl'; no[19]:='0..-1';nr[19]:='0..+1'; s[20]:='NaNO2+H2SO4 ---->NaHSO4+HNO3+NO+H2O ';os[20]:='N';ri[20]:='N'; no[20]:='+3..+2';nr[20]:='+3..+5'; end; procedure test; begin esatte:=0;errate:=0; dati; for a:=1 to b do begin writeln('reazione redox da esaminare '); writeln('si deve assegnare il numero di ossidazione ad ogni elemento'); writeln('si deve quindi osservare elemento che si ossida ,riduce '); writeln('si devono scrivere i simboli dello elemento ossidante,riducente'); writeln('---------------------------------------------------------------'); writeln(s[a]);writeln; write('simbolo ossidante =');readln(ox); write('simbolo riducente =');readln(rd); if ox=os[a] then begin writeln('esatto:ossidante=',ox); esatte:=esatte+1;end else begin writeln('errato:era ossidante=',os[a]);end; if rd=ri[a] then begin writeln('esatto:riducente=',rd);esatte:=esatte+1;end else writeln('errato:era riducente=',ri[a]); writeln; writeln('--------------------------------------------------'); writeln('confronta i cambiamenti di numeri di ossidazione '); writeln('elemento ossidante :',no[a]); writeln('elemento riducente :',nr[a]); writeln('--------------------------------------------------'); writeln('premi INVIO');readln;cancella; end; end; begin cancella; repeat write('indica numero di prove da eseguire <21 ');readln(b); until b<21; cancella; test; writeln('risultato prova'); errate:=2*b-esatte; writeln('esatte=',esatte); writeln('errate=',errate); writeln('chiama insegnante per valutazione:spera in bene...'); writeln('poi premi INVIO'); readln;cancella; end.