Visualizzazione post con etichetta Modulo_consolidamento_Linguaggio_C. Mostra tutti i post
Visualizzazione post con etichetta Modulo_consolidamento_Linguaggio_C. Mostra tutti i post

lunedì 6 ottobre 2008

Ottima implementazione dello studente Tommaso

Prima implementazione del gioco del filetto

#include <stdio.h>

int board[10];

char simboli[3]={' ','X','O'};

int c;

void azzeraBoard();

void stampaBoard();

void mossaUmano();

void mossaComputer();

int vincitore();

int main() {

        int i;

        int finito=0;

        int conta=0;

        azzeraBoard();

        stampaBoard();

        c=0;

        while (conta<9){

            printf("conta=%d",conta);

            mossaUmano();

            conta++;

            stampaBoard();

            finito=vincitore();

            if (finito==1)

             break;

            mossaComputer();

            conta++;

            stampaBoard();

            finito=vincitore();

            if (finito==1)

                break;

        }

        if (c==0)

            printf("il gioco è patto");

        

}

void azzeraBoard() {

        int i;

        for (i=1;i<10;i++) {

            board[i]=0;

        }

}

void stampaBoard(){

        int i;

        for (i=1;i<10;i++) {

            if (i==1)

                printf("\n___________________\n");

            if ( (i==3)||(i==6)){

                printf("%c", simboli[board[i]]);

                printf("\n");

                printf("--------\n");

                } else

            printf("%c |", simboli[board[i]]);

        }

}


 

void mossaUmano(){

    int numero;

    int mossaGiusta=0;

    while (mossaGiusta==0){

     printf("\nfai la tua mossa, dammi il numero della casella");

     scanf("%d",&numero);

     if ((numero<1) || (numero>9) || (board[numero]>0)) {

         mossaGiusta=0;

     }

     else {

     mossaGiusta=1;

     }

    }

    board[numero]=1;

}

void mossaComputer(){

    int i;

    for (i=1; i<10; i++){

        if (board[i]==0) {

            board[i]=2;

            i=10;

        }

    }        

}

int vincitore(){

    int v=0;

    

    if ((board[1]==board[2])&& (board[2]==board[3])&& (board[1]>0)){

        v=1;

        c=board[1];

    }

    if ((board[4]==board[5])&& (board[5]==board[6])&& (board[4]>0)){

        v=1;

        c=board[4];

    }

    if ((board[7]==board[8])&& (board[8]==board[9])&& (board[7]>0)){

        v=1;

        c=board[7];

    }

    if ((board[1]==board[4])&& (board[4]==board[7])&& (board[1]>0)){

        v=1;

        c=board[1];

    }

    if ((board[2]==board[5])&& (board[5]==board[8])&& (board[2]>0)){

        v=1;

        c=board[2];

    }

    if ((board[3]==board[6])&& (board[6]==board[9])&& (board[3]>0)){

        v=1;

        c=board[3];

    }

    if ((board[1]==board[5])&& (board[5]==board[9])&& (board[1]>0)){

        v=1;

        c=board[1];

    }

    if ((board[3]==board[5])&& (board[5]==board[7])&& (board[3]>0)){

        v=1;

        c=board[3];

    }

    printf("v=%d",v);

    if (v==1) {

        if (c==1)

            printf("ha vinto l'umano");

        if (c==2)

            printf("ha vinto il computer");

    }

    

    return v;

}


 

    
 

        

    

azzeramento dell'array della board

struttura dati per memorizzare la board del filetto

domenica 28 settembre 2008

Test di ingresso per la classe IVA liceo tecnico


 

  1. Le istruzioni del tipo "scrivi, write, display" sono istruzioni di __________________________,
  2. Le istruzioni di tipo "leggi, read, accept" sono istruzioni di__________________________ ,
  3. Associa alle tre frasi seguenti i corrispondenti simboli del flowchart
    1. a=b


 


 

  1. a>b


 


 

  1. Leggi(a,b)


 


 

  1. stabilire quale è l'output del seguente programma, supponendo che da tastiera venga assegnato ad a il valore 2 e a b il valore 4
    1. main() {

      int a;

      scanf("%d",&a); a=____________

      a++;

      printf("%d",a);

      }

    2. main() {

      int a;

      scanf("%d",&a); a=____________

      a=a*a;

      printf("%d",a);

      }

    3. main() {

      int a,b,s;

      scanf("%d",&a); s=____________

      scanf("%d",&b);

      s=a+b;

      printf("%d",s);

      }

  2. In un programma C, per comunicare un risultato si utilizza l'istruzione ____________________
  3. In un programma C, per acquisire un dato si utilizza l'istruzione____________________
  4. Completa le frasi seguenti utilizzando una tra le parole elencate alla fine della domanda
    1. Un dato non numerico formato da più caratteri si chiama __________________________
    2. Un dato che cambia valore durante l'esecuzione del programma si dice ______________
    3. La codifica produce il programma __________________________
    4. Il linking produce il programma ______________________
    5. La compilazione produce il programma ____________________

"sorgente, istruzione, eseguibile, oggetto, statement, identificatore, variabile, stringa, costante"

  1. Un padre manda il figlio all'edicola per comprare il giornale e gli dà le seguenti istruzioni:
    1. Esci di casa
    2. Fermati all'edicola
    3. Paga con una banconota da 5 euro
    4. Fatti dare il resto di 4 euro
    5. Torna a casa
    6. Dammi il giornale

La descrizione è completa oppure manca qualche istruzione ? ______________________________

  1. indica l'output ______________________prodotto dall'esecuzione del seguente algoritmo:
    1. x ß0

      a ß0

      ESEGUI

          aßa+1

          xßx+5

          scrivi(x)

      RIPETI MENTRE a<=3


       

  2. indica l'output ______________________prodotto dall'esecuzione del seguente algoritmo:
    1. xß0

      aß0

      MENTRE a<3

          x ßx+5

          aßa+1

          scrivi(x)

      RIPETI


       

  3. quale valore scrive _________________con l'istruzione di output il seguente programma ?
    1. #include <stdio.h>

      void Modifica(int y) {

          y+=5;

      }

      int main (void) {

          int x;

          x=8;

          Modifica(x);

          printf("%d\n",x);

          return 0;

      }


       

  4. che cosa scrive in output _____________________________________ il seguente algoritmo ?
    1. Funzione Varia(a,b)

    INIZIO

        aßa+6

        bßb+8

    FINE funzione

    MAIN

        xß0

        yß0

        Varia(x,y)

        Scrivi(x,y)

    FINE main

------------------------------------------------------------------------------------------------------------------------punteggio delle risposte corrette in centesimi, supera la prova chi ha ottenuto >= 60/100:

1à3, 2à3, 3aà3, 3bà3, 3cà3 ; 4aà3, 4bà3, 4cà3, 5à4, 6à4, 7aà2, 7bà2, 7cà2, 7dà2, 7eà2, 8à8, 9à15, 10à15, 11à10, 12à10

    


 

lunedì 22 settembre 2008

Modulo di consolidamente linguaggio C

Oggi, con tutti gli studenti della IV liceo tecnico A. volta di Perugia, abbiamo svolto la prima lezione di ripasso del linguaggio C. A questo scopo ho chiesto agli studenti di riflettere su come poter realizzare su di una finestra Dos il gioco del filetto (tic-tac-toe in inglese). Abbiamo suddiviso il problema in quattro task o funzioni. Realizzare la stampa su monitor della scacchiera o board a 9 caselle. Realizzare la funzione che esegue la mossa dell'umano e quella che esegue la mossa del computer. Infine occorre fare la funzione che controlla chi ha vinto, o se al termine del gioco c'è la patta. Abbiamo introdotto come struttura dati per memorizzare la configurazione della scacchiera un array con dieci caselle. Ce ne occorrono nove, ma la prima essendo indicizzata da zero, la ignoriamo.