Corso di Programmazione - Prova Pratica - 19 giugno 2002


Una rubrica è un array di lunghezza fissata (100) i cui elementi sono record aventi come campi il cognome, il nome, e l'indirizzo di una persona:

#define N 100

typedef struct Persona{

char *cognome;
char *nome;
char *indirizzo;

} Persona;

typedef Persona Rubrica[N];


Esercizio 1: Implementare la seguente procedura:

void stampa_selezione(Rubrica r, int dim, char c);

La procedura stampa_selezione deve stampare a video le informazioni relative alle persone nella rubrica r passata come primo parametro, ma solo di quelle che iniziano con il carattere c (passato come terzo parametro). Poiché non è detto che tutti e 100 gli elementi dell'array r siano stati utilizzati, la procedura chiede come secondo parametro la dimensione dim del segmento iniziale dell'array r che deve essere considerato.

La stampa a video deve seguire la seguente sintassi:

<cognome> <nome> : <indirizzo>
<cognome> <nome> : <indirizzo>
...


Esercizio 2: Implementare la seguente funzione:

int controlla_maiuscole(Rubrica r, int dim);

La funzione controlla_maiuscole prende come parametro attuale una rubrica r e la dimensione dim del suo segmento iniziale significativo. Restituisce 1 se tutti i caratteri del campo cognome di ogni valore dell'array r sono caratteri maiuscoli (compresi tra 'A' e 'Z'). Altrimenti la funzione deve restituire 0.


La modalità di consegna dell'esame è analoga a quella delle esercitazioni durante il corso: è sufficiente inviarlo come esercitazione numero 127. Bisogna inserire esclusivamente la definizione delle procedure, per consentirne la correzione automatica.