Home  >  Informatica  >  Corso C  >  Introduzione agli Array

Introduzione agli array

Una esercitazione con gli scacchi che utilizza le condizioni con gli operatori logici AND e OR e fornisce una breve introduzione all'utilità degli array monodimensionali.

Download Slides in formato .pdf

Didattica

Gli scacchi sono molti utili nella didattica dell'informatica perchè offrono spunti per creare simpatiche esercitazioni su tanti e disparati argomenti.
In questa lezione ho anticipato una vera e propria lezione sull'array facendo utilizzare un piccolo array monodimensionale per contenere l'informazione "posizione" di un determinato pezzo sulla scacchiera.
Il vantaggio di utilizzare un array, per gli scacchi, è una cosa molto utile. Prima abbiamo quattro variabili slegate, e poi, introducento gli array, abbiamo solo due variabili con una identità ben precisa: la posizione del pezzo sulla scacchiera.


Materiali


Il sorgente dell'esercitazione mostrata nella slide numero 6.
Gli studenti tenderanno a risolvere il problema con meno righe di codice, eliminando il controllo sulla regolarità della posizione.
Credo che questa si una buona esercitazione per abituarli a controllare sempre i dati in input, sia interi che caratteri. In que


Download del codice
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <stdio.h>

int main(){

char colonnaRe, colonnaTorre;
int rigaRe, rigaTorre;

printf("Inserire la colonna dove si trova il re bianco:");
scanf(" %c",&colonnaRe);
if(colonnaRe>='a' && colonnaRe <='h')
{
    printf("Inserire la riga dove si trova il re bianco:");
    scanf("%d",&rigaRe);
    if(rigaRe>=1 && rigaRe<=8)
    {
            printf("Inserire la colonna dove si trova la torre nera:");
            scanf(" %c",&colonnaTorre);
            if(colonnaTorre>='a' && colonnaTorre <='h')
            {
                printf("Inserire la riga dove si trova  la torre nera:");
                scanf("%d",&rigaTorre); 
                  if(rigaTorre>=1 && rigaTorre<=8)
                  {
                    //Controlliamo se la torre ha sotto scacco il Re!
                    if(colonnaTorre == colonnaRe || rigaRe == rigaTorre)
                            printf("ATTENZIONE! Il Re è sotto scacco!\n");
                    else     
                        printf("Il Re non è sotto scacco!\n");
                        
              } else printf("Riga Torre non corretta!"  ); 
            } else printf("Colonna Torre non corretta!"  ); 
    } else printf("Riga Re non corretta!"  ); 
} else printf("Colonna Re non corretta!"  ); 

return 0;
}
 

Il sorgente dell'esercitazione mostrata nella slide numero 9.
Gli studenti tenderanno a risolvere il problema con meno righe di codice, eliminando il controllo sulla regolarità della posizione.


Download del codice
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>

int main(){

char posizioneRe[3], posizioneTorre[3];

printf("Inserire la posizione del Re bianco:");
scanf("%s", posizioneRe);

if((posizioneRe[0]>='a' && posizioneRe[0] <='h' )
&& (posizioneRe[1]>='1' && posizioneRe[1]<='8'))
{
  printf("Inserire la posizione della Torre nera:");
  scanf(" %s", posizioneTorre);
  
 if(posizioneTorre[0]>='a' && posizioneTorre[0] <='h' 
    && posizioneTorre[1]>='1' && posizioneTorre[1]<='8')
       {
        //Controlliamo se la torre ha sotto scacco il Re!
        if(posizioneRe[0] == posizioneTorre[0] || 
            posizioneRe[1] == posizioneTorre[1])
            printf("ATTENZIONE! Il Re è sotto scacco!\n");
        else     
                    printf("Il Re non è sotto scacco!\n");
                        
         }    else printf("Posizione Torre non corretta!"  );                  
    } else printf("Posizione Re non corretta!"  ); 
    
return 0;
}

 

Linguaggio C