Anteprima
Vedrai una selezione di 1 pagina su 5
Soluzioni seconda prova in itinere febbraio 2016 Pag. 1
1 su 5
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

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 n,

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,

inserire fino all’inserimento di un valore ammissibile):

Soluzione

int n;

do {

scanf("%d",&n);

} while (n<=0 || n>100 || n%2 == 1);

Domanda 2 a ninteri,

Scrivere una porzione di codice che chieda all’utente di inserire da tastiera un array di 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 diminuti 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 db sel,

Si dichiarino due variabili, e 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 ne 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 db

Scrivere un frammento di codice in C che, ipotizzando che la variabile sia stata precedentemente

sel

riempita con i dati di 100 operatori, copi nella variabile (senza lasciare spazi) i dati degli operatori che

hanno almeno 3 piani tariffari con più di 2 GB di traffico dati inclusi;

Soluzione

int i,j,k,n;

k = 0;

for (i=0; i<100; i++) {

n=0;

for (j=0; j<db[i].npiani; j++) {

if (db[i].piani[j].dati > 2) {

n++;

} }

if (n>=3) {

sel[k] = db[i];

k++;

}

}

Domanda 3

Scrivere un frammento di codice C che stampi a video la percentuale degli operatori contenuti insel che

operano in Italia.

Soluzione

n=0;

for (i=0; i<k; i++) {

if (strcmp(sel[i].paese,"Italia")==0) {

n++;

}}

printf("La percentuale degli operatori italiani è: %f\n",(n*100.0)/k);

Esercizio 3

Virgola fissa:

Si determini la codifica del valore 48.15 in virgola fissa:

Soluzione

Dettagli
Publisher
A.A. 2015-2016
5 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher magi612 di informazioni apprese con la frequenza delle lezioni di Informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Politecnico di Milano o del prof Zaccaria Vittorio.