Percorso: ilMac.net > Scuola di Mac > Corsi > Il linguaggio C


Il linguaggio C

Strutture di controllo decisionali

Ogni programma, in base alla scelta che facciamo esegue un’operazione prestabilita dal programmatore. Portiamo un esempio piu’ concreto: nel Finder avete un file nel Cestino e per cancellarlo scegliete il comando “Vuota il Cestino...”. A questo punto il Mac vi chiedera’ se siete sicuri di volerlo cancellare. Se darete l’OK lo cancellera’, se annullerete il file rimarra’ nel Cestino e continuerete a lavorare. Per compiere questa semplice operazione e soddisfare la nostra scelta il Mac ha ragionato in questo modo:

se il pulsante della finestra premuto = “OK” allora
cancella il file nel cestino
altrimenti
fai sparire la finestra

Questo procedimento viene applicato tale e quale nella programmazione in C.
Vediamone un esempio per mezzo della spiegazione di un listato creato ad hoc. Immaginiamo di voler far confrontare al Mac due numeri per decidere quale dei due sia maggiore.
Lo schema che seguiremo sarà il seguente:

1. immissione del primo numero (input)
2. memorizzazione del numero all’interno di una variabile
3. immissione del secondo numero (input)
4. memorizzazione di esso all’interno di una seconda variabile
5. confronto dei numeri
A questo punto pero’ si possono verificare due condizione diverse ovvero:
a. che il primo numero sia maggiore del secondo;
b. oppure che il primo numero sia minore del secondo;

Quindi se si verifica l’ipotesi a. dovremmo avere un output di questo tipo:
“Il primo numero a è maggiore del secondo numero b”.
Altrimenti, se si verifica l'ipotesi b. dovremmo prevedere il seguente testo:
“Il primo numero a è minore del secondo numero b”.

In C, per far eseguire al Mac una determinata istruzione invece che un’altra al variare di una condizione, utilizziamo il costrutto if - else (che in inglese significano rispettivamente “se” ed “allora”).
La sintassi di questo costrutto all’interno di un listato in C è la seguente:

if(espressione)
istruzione da eseguire 1
else
istruzione da eseguire 2

Cio’ significa che se espressione è vera (ad esempio si verifica che il numero a sia maggiore del numero b) allora si manderà in esecuzione l’istruzione che stampa a video il relativo messaggio.
Altrimenti, se espressione è falsa si passerà all’istruzione n° 2 che stamperà un messaggio adatto alla situazione (in questo caso che a è minore di b).

Vediamo quindi il listato del programmino menzionato.

#include <stdio.h>

main() {
int a,b;

printf("INSERISCI IL PRIMO NUMERO: ");
scanf("%d",&a);

printf("INSERISCI IL SECONDO NUMERO: ");
scanf("%d",&b);

if(a > b) printf("nIl primo numero %d è maggiore del secondo numero %d",a,b);

else
printf("nIl primo numero %d è minore del secondo numero %d",a,b);
}

Dichiarate le due variabili intere (a e b) si passa, seguendo lo schema di cui sopra, all’introdurre per mezzo della tastiera il primo numero (a), alla sua memorizzazione con l’istruzione printf e alla ripetizione dello stesso procedimento per il secondo numero (b).
A quel punto entra in gioco il nuovo costrutto if-elses:
if(a > b), che significa “se a è maggiore di b”, printf("nIl primo numero %d è maggiore del secondo numero %d",a,b) , che è l’istruzione che ovviamente stampa a video il messaggio “Il primo numero (a) è maggiore del secondo (b).
Da notare in quest’ultima istruzione che i due simboli %d stanno ad indicare i punti della stringa nei quali verranno stampati i due numeri variabili.
Il primo simbolo %d sarà in questo caso la posizione del numero a poiché al di fuori dei doppi apici esso è il primo indicato tra i due. Da cio’ capiamo che il secondo simbolo %d rappresenta il punto in cui verrà stampato b.
In seguito incontriamo else (= altrimenti) che porterà il Mac ad eseguire l’istruzione opzionale ovvero printf("nIl primo numero %d è minore del secondo numero %d",a,b);

Vediamo poi il listato di un programmino atto a stabilire se l’utente è maggiorenne ;-)

#include <stdio.h>

main() {
int a;

printf("Quanti anni hai? ");
scanf("%d",&a);

if(a>17) printf("nSei maggiorenne e puoi prendere la patente.");

else

printf("Eh eh, sotto i 18 anni. Ne devi mangiare di pane...=)");

}

L’analisi del listato è semplice ed immediata se è stato capito il precedente.
Dichiariamo una variabile intera a che conterrà l’età dell’utente. Una volta inserita l’età e memorizzata in tale variabile essa verrà confrontata con il numero 17. Se il numero a sara’ maggiore di 17 (if(a>17)) il Mac vi riconoscerà come maggiorenni e vi dira’ che potete fare la vostra prima corsa in auto con la patente.
Altrimenti, (se a sarà minore di 18) verrà eseguita l’istruzione che vi ricorderà che siete ancora piccoli per andare a vedere quel film che speravate...;-)

Tutto chiaro? Per chiarimenti potete scrivermi.



Data di pubblicazione: 12-04-2000
L'intero contenuto di questo sito dal 1998 del Team di ilMac.net, vietata ogni riproduzione senza il consenso scritto da parte degli autori.