Risoluzione esercizi Informatica - CDL in Ingegneria Industriale- A.A
3 PROGRAMMAZIONE STRUTTURATA Informatica - CDL in Ingegneria Industriale- A.A
Esercizio 1 Problema: Progettare tramite flow chart strutturato un programma che acquisisca un valore intero. Il programma dovrà controllare che tale valore sia >300 e consentire in caso contrario di acquisire nuovamente lo stesso valore per il numero di volte necessario affinché lo diventi Informatica - CDL in Ingegneria Industriale- A.A inizio “Immettere valore” valore valore <=300 si fine no
Esercizio 2 Problema: Progettare tramite flow-chart strutturato un programma che consenta di calcolare la media dei voti di uno studente universitario, acquisendo il numero complessivo di esami e assicurandosi (con un processo analogo a quello descritto nell’esercizio 1) che i valori di voto immessi siano >=18. Informatica - CDL in Ingegneria Industriale- A.A inizio “Immettere voto” voto voto<18 si fine no “Immettere numero esami” n i=0; somma=0 i<n somma=somma + voto i=i+1 si somma/n no
4. CODIFICA DEGLI ALGORITMI IN UN LINGUAGGIO DI ALTO LIVELLO Informatica - CDL in Ingegneria Industriale- A.A
Esercizio 1 Informatica - CDL in Ingegneria Industriale- A.A inizio “Immettere i tre lati” X, Y, Z X<Y+Z && Y<X+Z && Z<X+Y “I dati letti non corrispondono ad alcun triangolo” X==Y && Y==Z X==Y || Y==Z ||X==Z “I dati letti corrispondono a un triangolo equilatero” “I dati letti corrispondono a un triangolo isoscele” “I dati letti corrispondono a un triangolo scaleno” nosi fine si no
Esercizio 2 Informatica - CDL in Ingegneria Industriale- A.A inizio indice=0 x x != ‘%’ sequenza[indice]=x x indice=indice +1 indice>0 indice=indice -1 sequenza[indice] fine si no
Esercizi 3-7 Scaricare il file “Esempi.zip” che racchiude i file sorgenti dei “Codici risolutivi del Capitolo 4” Informatica - CDL in Ingegneria Industriale- A.A
5. CODIFICA BINARIA DELL’ INFORMAZIONE Informatica - CDL in Ingegneria Industriale- A.A
Esercizio 1 X = numero di lettere del nome (max 9) Y = numero di lettere del cognome (max 9) Dati i seguenti numeri interi: (-25Y) 10 (13X) 10 a)determinare quanti bit sono necessari alla loro rappresentazione in forma binaria in complemento a due b) rappresentarli entrambi in forma binaria in complemento a due c) eseguirne la somma binaria commentando il risultato Informatica - CDL in Ingegneria Industriale- A.A
Soluzione a)Con m bit si possono rappresentare i numeri nell’intervallo [-2 m-1, 2 m-1 -1] m =9 => [-256, 255] m =10 => [-512, 511] Informatica - CDL in Ingegneria Industriale- A.A (136) 10 = ( ) 2 b) (257) 10 = ( ) 2 CPL = CPL (- 257) 10 = ( ) 2
Soluzione c) Numero negativo: no anomalie! Informatica - CDL in Ingegneria Industriale- A.A
Esercizio 2 X = numero di lettere del nome (max 9) Y = numero di lettere del cognome (max 9) Z = 1 se X è pari; Z = 0 se X è dispari W = 1 se Y è pari ; W = 0 se Y è dispari Si consideri il seguente numero rappresentato in forma normalizzata mediante 32 bit, dei quali il primo rappresenta il segno del numero, i successivi 7 la caratteristica rispetto alla base 10 in complemento a 2 ed i restanti 24 la mantissa Z1W 1ZW Informatica - CDL in Ingegneria Industriale- A.A
Soluzione N= Segno + Caratteristica = 6 Mantissa 1* * 2 -2 = ½ + 1/4= ¾= 0,75 N= +0,75 * 10 6 Informatica - CDL in Ingegneria Industriale- A.A segno mantissa Caratteristica in CPL2
Esercizio 3 Determinare la tavola di verità della seguente espressione booleana: Y= (NOT(A OR B) AND (NOT A AND NOT C)) AND C Informatica - CDL in Ingegneria Industriale- A.A ABCA OR BNOT(A OR B)NOT ANOT CNOT A AND NOT CY
6. TIPI DI DATO Informatica - CDL in Ingegneria Industriale- A.A
Esercizio 1 Un’agenzia immobiliare deve tenere taccia delle proposte d’acquisto relative agli appartamenti che ha in vendita. Ogni proposta è caratterizzata da un codice che individua l’appartamento, un proprietario, un probabile acquirente, un costo proposto e una data. Scrivere un programma che consenta di acquisire le informazioni di un record e successivamente mostrarle a video FLOW-CHART CODIFICA Guardare il file fornito nella cartella esercizi_cap6.rar: immobiliare.c Informatica - CDL in Ingegneria Industriale- A.A inizio prop fine
Esercizio 2 Un centro di rilevazione meteo deve gestire le informazioni giornaliere relative alle temperature del mese di Febbraio Ogni record è caratterizzato dalle seguenti informazioni: il giorno di Febbraio interessato, la città, la temperature minima, la temperatura massima, l’eventuale presenza di precipitazioni e un campo descrittivo del tipo di precipitazione (pioggia, neve o grandine), che deve risultare vuoto in caso di assenza di precipitazioni. Scrivere un programma che consenta di acquisire le informazioni di un record e successivamente mostrarle a video. FLOW-CHART Vedi prossima slide CODIFICA Guardare il file fornito nella cartella esercizi_cap6.rar: meteo.c Informatica - CDL in Ingegneria Industriale- A.A
Esercizio 2, flow-chart Informatica - CDL in Ingegneria Industriale- A.A inizio info.giorno, info.citta, info.max, info.min, info.prec info fine “Inserisci giorno, città, temperatura massima, minima, precipitazioni(0-no, 1-sì) ” info.prec==1 info.tipo “Inserire 0 in caso di pioggia, 1 di neve, 2 di grandine” si no
Esercizio 3 Una società di capitale deve tenere traccia dei propri soci e di tutte le informazioni che li riguardano in una struttura dati opportuna. Ogni socio è caratterizzato dalle seguenti informazioni: il nome, il cognome, il codice fiscale, la quota societaria posseduta(in percentuale), il ruolo (che può essere socio semplice, amministratore o consigliere). Scrivere un programma che consenta di acquisire le informazioni di tutti i soci e successivamente calcolare la percentuale coperta dai soci che hanno cariche speciali (amministratore o consigliere). FLOW-CHART Vedi prossima slide CODIFICA Guardare il file fornito nella cartella esercizi_cap6.rar: societa.c Informatica - CDL in Ingegneria Industriale- A.A
Esercizio 3, flow-chart Informatica - CDL in Ingegneria Industriale- A.A inizio elenco[i] fine “Inserisci socio” elenco[i].ruolo ==1 || elenco[i].ruolo ==2 si no i=0 i<n n “Quanti soci?” i++ si no i=0; spec=0 i<n i++; spec=spec+elenco[i].quota; no si spec
Esercizio 4 Date le seguenti definizioni: typedef enum {Battesimo, Prima_Comunione, Compleanno, Cresima} tipo_festa; typedef struct { tipo_festa tipo; int ora; char luogo[30]; char CF[16]; float costo; }festa; festa *p, *q, festa1; dire se ciascuna delle seguenti istruzioni è valida e perché: *p.costo= 350; VALIDA perché assegna il valore 350 a un campo float della variabile *p festa1.tipo=5; NON VALIDA perché il tipo 5 non esiste p->ora = q.ora; NON VALIDA perché la dot notation non si usa sui puntatori *q.tipo=Cresima ; VALIDA perché assegna il valore Cresima a un campo di tipo enum che assume Cresima come uno dei possibili valori Informatica - CDL in Ingegneria Industriale- A.A
7. STRUTTURE DI CONTROLLO Informatica - CDL in Ingegneria Industriale- A.A
Esercizio 1 Vedere il file switch.c fornito nella cartella “Esempi switch.rar” Informatica - CDL in Ingegneria Industriale- A.A
8 FUNZIONI E PROCEDURE Informatica - CDL in Ingegneria Industriale- A.A
Esercizi 3.Vedere il file 27_09_11senzafile.c nella cartella Esempi funzioni.rar 4.Vedere il file 12_02_09senzafile.c nella cartella Esempi funzioni.rar Informatica - CDL in Ingegneria Industriale- A.A
9. GESTIONE FILE Informatica - CDL in Ingegneria Industriale- A.A
Esercizi 1.Vedere il file 07_05_08.c nella cartella Esempi file.zip 2.Vedere il file 07_05_09.c nella cartella Esempi file.zip 3.Vedere il file 12_02_09.c nella cartella Esempi file.zip 4.Vedere il file 27_09_11.c nella cartella Esempi file.zip Informatica - CDL in Ingegneria Industriale- A.A