Soluzioni seconda prova in itinere febbraio 2016
Esercizio 1
Un array di interi, con un numero pari di elementi, si dice a somma costante se sommando a coppie gli elementi in posizione simmetrica rispetto al centro dell'array (cioè il primo con l'ultimo, il secondo con il penultimo, e così via) si ottiene sempre lo stesso risultato.
Domanda 1
Scrivere una porzione di codice che chieda all'utente di inserire da tastiera un intero pari, maggiore di zero e minore di 100 (si controlli che n rispetti queste condizioni e, in caso contrario, si re-iteri la richiesta di n, fino all'inserimento di un valore ammissibile):
Soluzione
int n;
do {
scanf("%d",&n);
} while (n<=0 || n>100 || n%2 == 1);
Domanda 2
Scrivere una porzione di codice che chieda all'utente di inserire da tastiera un array di n interi, verifichi se l'array inserito è a somma costante e stampi a video un messaggio per informare l'utente sull'esito della verifica:
Soluzione
int i, n, somma, cost = 1, a[100];
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
somma = a[0] + a[n - 1];
for (i = 1; i < n / 2; i++) {
if (a[i] + a[n - i - 1] != somma) {
cost = 0;
break;
}
}
}
if (cost == 1)
printf("Array a somma costante\n");
else
printf("Array non a somma costante\n");
return 0;
Esercizio 2
Un operatore telefonico è caratterizzato da un nome, il paese in cui opera e le informazioni riguardanti i piani tariffari che offre (un operatore offre al massimo 20 piani differenti). Ogni piano tariffario, a sua volta, è caratterizzato da un nome, il costo mensile del piano, il numero di minuti mensili inclusi nel piano e il numero di GB di traffico dati mensili inclusi nel piano.
Si ipotizzi quindi di avere i seguenti tipi di strutture dati:
typedef struct {
char nome[50];
float canone;
int minuti;
int dati;
} piano;
typedef struct {
char nome[50];
char paese[50];
int npiani;
piano piani[20];
} operatore;
Domanda 1
Si dichiarino due variabili, db e sel, in grado di contenere i dati di 100 operatori telefonici ciascuna; db.
(Non è necessario scrivere il frammento di codice necessario a caricare i dati nella variabile. Non è necessario scrivere un programma completo né includere le librerie utilizzate, ma è necessario includere nei frammenti di codice le dichiarazioni di tutte le variabili utilizzate.)
Soluzione
operatore db[100], sel[100];
Domanda 2
Scrivere un frammento di codice in C che, ipotizzando che la variabile sel sia stata precedentemente riempita con i dati di 100 operatori...
-
Soluzioni appello di febbraio 2016
-
Esempio di prova in Itinere con soluzioni - analisi modulo 1
-
Esempio di prova in Itinere con soluzioni - analisi modulo 1
-
Esempio di prova in Itinere con soluzioni - analisi modulo 1