esercizi di chimica con turbo pascal 1.1 su mac
Program forma6; (* nomenclatura composti chimici IDROSSIDI *)
USES Memtypes,QuickDraw,OSIntf,ToolIntf,fixmath; const k=20; var esatte,errate,totale,a,b,i,n,g:integer; ris,rip,s1,s2,k1,h1,k2,k3,k4:string; dx:array[1..k] of string; rs:array[1..k] of string; mx:array[1..k] of string; nx:array[1..k] of string;
procedure dati; begin mx[1]:='Li';mx[2]:='Na';mx[3]:='K';mx[4]:='Rb';mx[5]:='Cs';mx[6]:='Cu'; mx[7]:='Ca';mx[8]:='Ba';mx[9]:='Zn';mx[10]:='Cd';mx[11]:='Hg';mx[12]:='Fe'; mx[13]:='Cu';mx[14]:='Sn';mx[15]:='Pb';mx[16]:='Mg'; mx[17]:='Fe';mx[18]:='Al'; mx[19]:='Pb';mx[20]:='Sn';
nx[1]:='LITIO1';nx[2]:='SODIO1';nx[3]:='POTASSIO1';nx[4]:='RUBIDIO1'; nx[5]:='CESIO1';nx[6]:='RAME1';nx[7]:='CALCIO2';nx[8]:='BARIO2'; nx[9]:='ZINCO2';nx[10]:='CADMIO2';nx[11]:='MERCURIO2';nx[12]:='FERRO2'; nx[13]:='RAME2';nx[14]:='STAGNO2';nx[15]:='PIOMBO2';nx[16]:='MAGNESIO2'; nx[17]:='FERRO3';nx[18]:='ALLUMINIO3';nx[19]:='PIOMBO4';nx[20]:='STAGNO4';
dx[1]:='OH';rs[1]:='IDROSSIDO DI '; dx[2]:='OH';rs[2]:='IDROSSIDO DI '; dx[3]:='OH';rs[3]:='IDROSSIDO DI '; dx[4]:='OH';rs[4]:='IDROSSIDO DI ';
dx[5]:='(OH)';rs[5]:='IDROSSIDO DI '; dx[6]:='(OH)';rs[6]:='IDROSSIDO DI '; dx[7]:='(OH)';rs[7]:='IDROSSIDO DI '; dx[8]:='(OH)';rs[8]:='IDROSSIDO DI '; dx[9]:='(OH)';rs[9]:='IDROSSIDO DI '; dx[10]:='(OH)';rs[10]:='IDROSSIDO DI '; dx[11]:='(OH)';rs[11]:='IDROSSIDO DI '; dx[12]:='(OH)';rs[12]:='IDROSSIDO DI '; dx[13]:='(OH)';rs[13]:='IDROSSIDO DI '; dx[14]:='(OH)';rs[14]:='IDROSSIDO DI '; dx[15]:='(OH)';rs[15]:='IDROSSIDO DI ';
dx[16]:='(OH)';rs[16]:='IDROSSIDO DI '; dx[17]:='(OH)';rs[17]:='IDROSSIDO DI '; dx[18]:='(OH)';rs[18]:='IDROSSIDO DI '; dx[19]:='(OH)';rs[19]:='IDROSSIDO DI ';
dx[20]:='(OH)';rs[20]:='IDROSSIDO DI '; end;
procedure pausa; begin writeln('premi enter');readln; end;
procedure cancella; begin clearscreen; end;
procedure fine; begin writeln('fine operazione:confermare :premi enter'); readln; end;
procedure verifica2(ris,s1:string); begin rip:=concat(h1,nx[a]); if ris=rip then begin writeln(' esatto ');esatte:=esatte+1;end else begin writeln(' errato:era ',rip);errate:=errate+1;end; end;
procedure verifica2a(s1,s2:string;g:integer); begin rip:=concat(rs[g],nx[a]); if ris=rip then begin writeln(' esatto ');esatte:=esatte+1;end else begin writeln(' errato:era ',rip);errate:=errate+1;end; end;
procedure verifica3(s1,s2:string;g:integer); begin rip:=concat(rs[a],nx[g]); if ris=rip then begin writeln(' esatto ');esatte:=esatte+1;end else begin writeln(' errato:era ',rip);errate:=errate+1;end; end;
procedure sali1(i,n:integer); (* metalli monovalenti *) begin writeln('scrivi:es. IDROSSIDO DI SODIO1 oppure premi ENTER'); writeln; dati;a:=0; for b:=1 to n do begin a:=i+b; write(mx[a],k1,' ');readln(ris);s1:=mx[a]; verifica2(ris,s1); end; end;
procedure sali2(i,n:integer); (* metalli bivalenti *) begin writeln('scrivi :es. IDROSSIDO DI CALCIO2 oppure premi ENTER'); writeln; dati;a:=0; for b:=0 to n do begin a:=i+b; write(mx[a],k2,' ');readln(ris);s1:=mx[a]; verifica2(ris,s1); end; end;
procedure sali3(i,n:integer); (* metalli trivalenti *) begin writeln('scrivi :es.IDROSSIDO DI FERRO3 oppure premi ENTER'); writeln; dati;a:=0; for b:=1 to n do begin a:=i+b; write(mx[a],k3,' ');readln(ris);s1:=mx[a]; verifica2(ris,s1); end;end;
procedure sali4(i,n:integer); (* metalli tetravalenti *) begin writeln('scrivi:es. IDROSSIDO DI GERMANIO4 oppure premi ENTER'); writeln; dati;a:=0; for b:=1 to n do begin a:=i+b; write(mx[a],k4,' ');readln(ris);s1:=mx[a]; verifica2(ris,s1); end; end;
procedure sali5(i,n,g:integer); (* metalli trivalenti acidi monovalenti *) begin writeln('scrivi:es. CLORURO DI SODIO1 oppure premi ENTER'); writeln; dati;a:=0; for b:=1 to n do begin a:=i+b; write(mx[g],dx[a],3,' ');readln(ris);s2:=nx[g]; verifica3(ris,s2,g); end; end;
procedure sali6(i,n,g:integer); (* metalli trivalenti acidi bivalenti *) begin writeln('scrivi:es. CLORURO DI SODIO1 oppure premi ENTER'); writeln; dati;a:=0; for b:=1 to n do begin a:=i+b; write(mx[g],2,dx[a],3,' ');readln(ris);s2:=nx[g]; verifica3(ris,s2,g); end; end;
procedure sali7(i,n,g:integer); (* metalli tetravalenti acidi monovalenti *) begin writeln('scrivi:es. CLORURO DI SODIO1 oppure premi ENTER'); writeln; dati;a:=0; for b:=1 to n do begin a:=i+b; write(mx[g],dx[a],4,' ');readln(ris);s2:=nx[g]; verifica3(ris,s2,g); end; end;
procedure sali8(i,n,g:integer); (* metalli tetravalenti acidi monovalenti *) begin writeln('scrivi :es. CLORURO DI SODIO1 oppure premi ENTER'); writeln; dati;a:=0; for b:=1 to n do begin a:=i+b; write(mx[g],dx[a],2,' ');readln(ris);s2:=nx[g]; verifica3(ris,s2,g); end; end;
procedure pro1; begin writeln('scopo del programma e verificare la conoscenza della nomenclatura'); writeln('dei composti chimici:IDROSSIDI '); pausa; end;
procedure pro2; begin (* da quale elemento iniziare e quanti elementi contare *) sali1(0,6);pausa;cancella;sali2(7,8);pausa;cancella; sali3(16,2);pausa;cancella;sali4(18,2);pausa;cancella; end;
procedure pro3; begin sali4(18,2);pausa;cancella; sali1(0,6);pausa;cancella;sali2(7,8);pausa;cancella; sali3(16,2);pausa;cancella;sali4(18,2);pausa;cancella; sali2(7,8);pausa;cancella; end;
procedure pro4; begin
end;
procedure pro5; begin
end;
procedure pro6; begin
end;
procedure scelta; var s,sn:string;opzione:integer; begin cancella;; writeln('seleziona opzione per NOMENCLATURA CHIMICA '); writeln('selezionare le diverse opzioni per scrivere i nomi di idrossidi'); writeln('-----------------------------------------------------------'); writeln('nello scrivere i nomi fare molta attenzione '); writeln('scrivere tutto maiuscolo,evitando spaziature inutili '); writeln('e scrivere anche la valenza del metallo '); writeln('IDROSSIDO DI SODIO1'); writeln('IDROSSIDO DI FERRO3'); writeln('es.di nome scritto con i soli due spazi indicati');writeln; writeln('1...istruzioni e spiegazione programma '); writeln('2.... ...........scrivi il nome dello idrossido'); writeln('3................riassuntivo precedenti'); writeln('9...fine '); writeln('scelta =');readln(opzione);cancella; case opzione of 1:pro1;2:pro2;3:pro3; 9:fine; end; writeln('altra operazione?Esperimenti?:premi S...fine:premi N '); readln(sn); if ((sn='S') or (sn='s')) then scelta ; end;
begin (* programma di lancio *) cancella; k1:='OH';h1:='IDROSSIDO DI ';k2:='(OH)2';k3:='(OH)3';k4:='(OH)4'; esatte:=0;errate:=0;totale:=0; scelta;cancella; writeln('risposte esatte ',esatte,' su domande ',totale); writeln('risposte errate ',errate,' su domande ',totale); writeln('chiama insegnante per valutazione '); pausa; end.