ESAME 22-10-99 (C)

Questionario cartaceo

Rispondere alle seguenti domande:
  1. Esiste un numero naturale maggiore di 0 tale che la sue rappresentazioni in base 17 e quella in base 13 sono identiche ?
    Giustificare la risposta.

  2.  
    1. La stringa {} appartiene al linguaggio generato da cosa ?
    2. La stringa [(]) appartiene al linguaggio generato da cosa ?
    Giustificare le risposte.

  3. Che cosa stampa il seguente programma C?
    #include <stdio.h>
    #include <stdlib.h>
    
    void F(char X[10])
    {   char x = '0';
        if(X == 0) {X = '1';};
        if(X != 0) {X = '2';};
    }
    
    void C(char Y[10])
    {   char x = '0';
        if(Y[0] = 'a') {F(Y);};
        else {Y[1] = '*';};
    }
    
    void S(char A[], int L)
    {   int X;
    
        for(X=0;X<L;X++){printf("%c %,A[X]");};
        printf("\n");
    }
    
    main()
    {   char A[10] = {'0','1', ..., '9'};
        char B[10] = {'a','b', ..., 'l'};
    
        G(A); G(B);
        S(A); S(B);
    }
  4. Completare il seguente frammento di programma C come indicato dai commenti:
    #include <stdio.h>
    #include <stdlib.h>
    
    typedef struct ASSOC *MAPPA;
    struct ASSOC { int  INDEX;
                  char  ELEM;
                  MAPPA NEXT;   } ;
              
    char ASSOCIATO(MAPPA m, int i, BOOL *trovato)
    /*questa funzione ritorna l'elemento associato ad i in m
      se esiste;  trovato contiene vero ses esiste tale elemento */
    {......}

Parte laboratorio Turno A)

Completare il seguente programma C come indicato dai commenti
#include 

/*gli elementi del tipo SCHEDINA rappresentano le schedine del super Enalotto
ogni schedina contiene 5 scomparti (possono essere rienpiti da 1 a 5 scomparti)
ogni scomparto contiene le indicazioni di almeno sei numeri compresi tra 1 e 90 */
..........

/*gli elementi del tipo ESTRAZIONE rappresentano un'estrazione del Superenalotto
e consistono di 6 numeri (compresi tra 1 e 90) e del numero Jolly (compreso tra 1 e novanta) */
..........

/* sottoprogramma che controlla se una schedina contiene il Superenalotto
cioe' i sei numeri vincenti appaiono in uno degli scomparti della schedina */
........

/* sottoprogramma che controlla se una schedina contiene il 5+1
cioe' 5 numeri dei 6 numeri vincenti appaiono in uno degli scomparti della schedina
ed inoltre tale scomparto contiene anche il numero jolly */
........

/* sottoprogramma che controlla se una schedina contiene il 3
cioe' se 3 dei numeri vincenti appaiono in uno degli scomparti della schedina */
........

/* sottoprogramma per ricevere in input una schedina */
........

main()

ESTRAZIONE OGGI = ..... 
{  /* legge finche ve ne sono schedine e stampa quello che hanno vinto 
      rispetto all'estrazione OGGI*/
...... }

Parte laboratorio Turno B)

Completare il seguente programma C come indicato dai commenti
#include <stdio.h>
.......
/*gli elementi del tipo SCHACCHIERA rappresentano le situazioni durante una partita
 su una scacchiera della dama
tale scacchiera contiene 8 X 8 caselle colorate in bianco e nero vedi disegno sopra
sulla scacchiera si possono trovare delle pedine e delle dame bianche o nere)
..........

/*gli elementi del tipo MOSSA rappresentano una mossa 
(spostamento da una casella ad un'altra) di una pedina o di una dama */
..........

/* sottoprogramma che data una scacchiera S ed una mossa M modifica S 
eseguendo M, se M e' ammissibile, altrimenti informa dell'errore e non modifica S
una mossa e' ammissibile se riguarda una pedina/dama attualmente presente sulla 
scacchiera e se lo spostamento  e' in diagonale di un posto */
........

/* sottoprogramma che data una scacchiera controlla se il bianco ha vinto,
cioe' non ci sono piu' pedine/dame nere ed almeno una pedina/dama bianca;
similmente per il nero  */
........

/* sottoprogramma che ritorna la situazione iniziale (vedi disegno) */
........

/* sottoprogramma che stampa una scacchiera, 
usare p, d per pedine e dame bianche, P e D per pedine e dame nere
X per casella nera, e niente per caselle bianche non occupate da una pedina/dama*/
........

main(){

/* stampare lo svolgimento di un inizio di partita
cioe' le varie situazioni che si ottengono 
facendo fare due mosse a caso al bianco ed al nero
e poi controllare se il bianco ha vinto*/
...... 
}