Sei sulla pagina 1di 3

12BHD INFORMATICA, A.A.

2011/2012
Esercitazione di Laboratorio 3
Obiettivi dellesercitazione
Risolvere problemi che implichino pi scelte logiche consecutive
Contenuti tecnici
Uso di scanf e printf
Uso avanzato di espressioni aritmetiche
Uso di espressioni logiche e relazionali
Uso dei costrutti condizionali if e if-then-else
Da risolvere preferibilmente in laboratorio

Esercizio 1.

Scrivere un programma che:


a. Definisca 2 variabili di tipo intero: int_1 e int_2
b. Definisca 2 variabili di tipo reale: float_1 e float_2.
c. Acquisisca un valore reale da tastiera tramite la funzione scanf, e lo assegni
a tutte le 4 variabili.
d. Visualizzi su schermo usando la funzione printf il valore assunto dalle 4
variabili con il seguente formato:
i. int_1 occupando almeno 5 spazi,
ii. int_2 occupando almeno 5 spazi e completando gli eventuali spazi liberi
con zeri,
iii. float_1 occupando almeno 5 spazi e con una precisione di 2 posizioni
dopo il punto decimale,
iv. float_2 occupando almeno 2 spazi e con una precisione di 3 posizioni
dopo il punto decimale.
Esempio: valore acquisito da tastiera 3.5
Variable Value
int_1
3
int_2
00003
float _1
3.50
float_2
3.500
e. Si provi il programma con i seguenti valori: -3.5, 1000.4567, 1, 100000

Esercizio 2.

Definire delle variabili intere A, B e C. Se eseguo la seguente istruzione:


C = (A==B)
qual il valore di C? Si ripeta lesperimento con gli operatori relazionali
!= , <= , >=
Approfondimento: si calcoli e visualizzi il valore di C per tutte le
combinazioni di 0 e 1 come valore delle variabili A e B nella seguente
equazione
C = ( (A && B) || (!B) ) && (!A)

Esercizio 3.

Si scriva un programma in linguaggio C in grado di determinare se


l'equazione di secondo grado ax2 + bx + c = 0 ha soluzioni reali. In
particolare:
a. Si definiscano tre variabili chiamate a, b e c, corrispondenti ai parametri
dellequazione
b. Si acquisisca da tastiera il valore di a, b e c
c. Si calcoli il cosiddetto discriminante della formula risolutiva
i. In caso il sia positivo, visualizzare il seguente messaggio
Lequazione ha due soluzioni REALI distinte
ii. In caso il sia nullo, visualizzare il seguente messaggio
Lequazione ha due soluzioni REALI coincidenti
iii. In caso il sia negativo stampare a video un messaggio per segnalare
che lequazione non ha soluzioni reali

Da risolvere a casa

Esercizio 4.

Desidero acquistare un cellulare e, tra le possibili offerte, potr scegliere un


prodotto che:
i. Costa meno di 100, oppure
ii. costa fra 100 e 200 e ha pi di 5 delle caratteristiche a cui sono
interessato.
iii. In qualsiasi caso, la rata mensile deve essere inferiore o uguale a 20.
Si realizzi un programma C che:
a. Definisca le variabili intere price, features, rate e buy.
b. Acquisisca da tastiera il valore per le prime 3 variabili.
c. Calcoli il valore di buy utilizzando esclusivamente operatori relazionali e
logici; tale valore dovr essere
1. buy uguale a 0 se lofferta valutata non soddisfa i miei
criteri/vincoli
2. buy uguale a 1 se invece lofferta compatibile con i miei vincoli
Approfondimento: il programma stampi infine un messaggio a video
indicando se lofferta valida oppure no.

Esercizio 5.

Disegnare il flow-chart e, successivamente, scrivere un programma C che


classifichi un triangolo date le lunghezze dei suoi lati. Il programma deve
implementare le seguenti funzionalit:
a. Ricevere da tastiera 3 numeri interi corrispondenti alle lunghezze dei lati
b. Stabilire se il triangolo valido, degenere o non valido
c. In caso sia valido, stabilire se si tratta di un triangolo
i. equilatero, isoscele o scaleno
Suggerimento: un triangolo valido se ogni lato strettamente minore della
somma degli altri due, degenere se un lato uguale alla somma degli altri
due.

Esercizio 6.

Si scriva un programma C che acquisisca due numeri interi (positivi o


negativi) da tastiera e ne calcoli la media. Il programma dovr:
a. Sommare i valori acquisiti in una variabile somma opportunamente definita
b. Effettuare la divisione tra somma e il numero di valori K, con K uguale a 2
c. Visualizzi il risultato sullo schermo
d. Si controlli il risultato per le seguenti copie: (1,1) (0,8) (2,5) (-5,0) (-3,3).