04. Es. svolto: ordine crescente
Traccia:
Scrivere un programma che riceve da tastiera cinque numeri interi. Indicare se i numeri sono inseriti in ordine strettamente crescente.
Strategia:
La variabile di nome ordinato è utilizzata come flag, può cioè assumere solo due valori: 1 e 0.
Se alla fine dei confronti la variabile vale 1 allora la sequenza è ordinata, se vale 0 non lo è.
Inizialmente la variabile ordinato è inizializzata ad 1, ad indicare che, "provvisoriamente", si ritiene la sequenza ordinata.
Notare che quando anche uno solo degli if è verificato vuol dire che la sequenza non è ordinata. In corrispondenza di un if la cui condizione è verificata la variabile ordinato assume definitivamente il valore 0.
Se nessun if è verificato, la variabile ordinato non cambia valore e mantiene il valore 1 con cui era stata inizializzata.
Nota:
In questo esercizio non si fa uso di array né di operatori logici AND e OR perché non sono stati ancora introdotti.
Soluzione:
#include <stdio.h>
int main()
{
int x1, x2, x3, x4, x5;
int ordinato = 1;
printf("Inserire una sequenza di cinque numeri interi: \n");
scanf("%d %d %d %d %d", &x1, &x2, &x3, &x4, &x5);
if (x1 >= x2){
ordinato = 0;
}
if (x2 >= x3){
ordinato = 0;
}
if (x3 >= x4){
ordinato = 0;
}
if (x4 >= x5){
ordinato = 0;
}
if (ordinato)
printf("La sequenza inserita e' strettamente crescente\n");
else
printf("La sequenza inserita NON e' strettamente crescente\n");
return 0;
}
int ordinato = 1;
Notare che in questo programma le variabili di tipo int sono dichiarate su due distinte righe, ripetendo il tipo.
E' solo una scelta "estetica", le variabili si potevano infatti dichiarare tutte su una sola riga, utilizzando un solo descrittore di tipo.
La variabile ordinato è inizializzata al momento della dichiarazione.
if (ordinato)
In questo if la condizione è rappresentata da una variabile di tipo intero.
Il test risulta verificato se la variabile ordinato è diversa da zero (può essere anche un numero negativo). Se la variabile vale zero il test non è verificato.
Sito: 7ecnologie
Sezione: 08. C language
Capitolo: 02. Introduzione al C
Paragrafo: 04. Controllo condizionale if
Approfondimento: 04. Es. svolto: ordine crescente
Indice dei capitoli: 00. Risorse - 01 Ambiente di sviluppo - 02. Introduzione al C - 03. Le librerie - 04. Tutorial - 05. Esercizi svolti - 98. Esercizi
Indice dei paragrafi: 01. Hello World - 02. Variabile di tipo int - 03. Input da tastiera - 04. Controllo condizionale if - 05. Operatori logici - 06. Ciclo while - 07. Operatore modulo - 08. Array - 09. Ciclo for - 10. Ciclo do/while - 11. Variabili di tipo float - 12. Funzione random() - 13. Impostazione del set di caratteri - 14. Definizione di funzioni - 15. Passaggio di parametri: gli array - 16. Variabili: visibilità e durata - 17. Il tipo char - 18. I file - 19. Funzioni matematiche
Indice degli approfondimenti: 01. Es. svolto: multiplo - 02. Es. svolto: minori di 10 - 03. Es. svolto: min e max - 04. Es. svolto: ordine crescente - 05. Es. svolto: cifra unità - 06. Es. svolto: speculare