Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Primi programmi in C:
variabili, semplici espressioni, I/O formattato
Roberto Casadei, Sara Montagna
versione documento: 2022–03–09
1. Preparazione
In questa esercitazione, si avrà a che fare con i seguenti concetti introdotti a lezione:
• sorgenti di programmi C (cf. funzione main);
• compilazione di programmi C (cf. gcc);
• esecuzione di programmi compilati;
• dichiarazione di variabili;
• inizializzazione, assegnamento di variabili;
• tipi di dato (quali sono?);
• valori e letterali (quali notazioni sintattiche per esprimere quali valori?);
• espressioni (quali operatori?);
• istruzioni, o statement;
• input e output formattati (cf. printf, scanf).
E SERCIZIO 1.1. (O PZIONALE ) S TUDIO ED ESECUZIONE DEI PROGRAMMI VISTI A LEZIONE
Si scarichi lo zip con i sorgenti C dei programmi descritti a lezione. Per ognuno:
1. si compili il sorgente;
2. si determini il risultato osservabile atteso dall’esecuzione;
3. si esegua il programma;
4. si confronti l’aspettativa con il risultato attuale.
1
2. Creazione dei primi programmi in C
3. Espressioni condizionali
Si consideri l’operatore ternario ?:, che consente di esprimere espressioni condizionali. L’espressione e1
? e2 : e3 viene valutata come segue:
• viene valutata l’espressione e1 per dedurne il valore Booleano b ;
• se il valore Booleano b è vero (in C, un valore diverso da zero), allora viene valutata l’espressione e2
e il valore risultante è il valore dell’espressione complessiva;
• se il valore Booleano b è falso (ovvero b == 0), allora viene valutata l’espressione e3 e il valore
risultante è il valore dell’espressione complessiva.
Ad esempio, l’espressione 1 ? 7 : 8+1 viene valutata nel valore 7, mentre 0 ? 7 : 8+1 viene valutata nel
valore 9. Si usi questo operatore per esprimere risultati in modo dipendente dal verificarsi di certe condizioni.
E SERCIZIO 3.1. PARI / DISPARI
Si scriva un programma che legga da tastiera un valore intero e visualizzi la stringa “pari” se pari (ovvero
se il resto modulo 2 è zero) o “dispari” altrimenti. Si ricordi:
• Letterali stringa si rappresentano usando i doppi apici: ad esempio "pari"
• Per “stampare” in standard out un valore stringa (contenuto in una variabile o fornito mediante letterale
o espressione), si usi formattatore %s in printf.
2
E SERCIZIO 3.2. M AGGIORE / MINORE
Si scriva un programma che legga da tastiera due valori interi i0 e i1 e visualizzi la stringa “i0 è maggiore di
i1 ” se i0 > i1 , “i0 è minore di i1 ” se i0 < i1 , oppure “i0 è uguale a i1 ” altrimenti.
Consiglio:
• Si usi due volte l’operatore ternario nella stessa espressione, come segue: A ? B : (C ? D : E).