Ad esempio se chiediamo all'utente di inserire un numero pari, ma lui inserisce un numero dispari, dobbiamo “dirgli” «Hey! Dovevi inserire un numero pari!» e dobbiamo far ripetere l'operazione di immissione dati al programma. Altre volte potrebbe essere necessario ripetere una funzione fino ad un dato limite.
Per questi problemi necessitiamo delle cosiddette istruzioni di controllo, e più specificatamente in questo articolo impareremo l'if (“se”).
L'istruzione if ci permette di eseguire una data istruzione solo nel caso che una data condizione sia soddisfatta. La sua struttura è la seguente:
Che praticamente significa “seif(condizione)istruzione;
condizione
è soddisfatta allora esegui istruzione
”. Ma noi ancora non sappiamo imporre una condizione: per fare ciò necessitiamo dei cosiddetti operatori di relazione che riassumo in questa tabella< MinoreQuindi una possibile condizione è
>= Minore o uguale
< Maggiore
<= Maggiore o uguale
== Uguale
!= Diverso
a>b
per cui il comando if(a>b) cout << “a e' più grande di b”
scriverà a video la frase
a è maggiore di b
solo se sarà effettivamente così.Ecco un piccolo programma che ci permette di capire, dati due numeri da tastiera, in che relazione si trovano tra loro. Verranno naturalmente sfruttati l'istruzione if e alcuni operatori di relazione
Analisi Codice:#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
int a, b;
cout << "Inserire due numeri interi A e B \n";
cin >> a;
cin >> b;
//Valutazione della relazione tra i numeri
if (a > b) cout << "A e' maggiore di B\n";
if (a < b) cout << "B e' maggiore di A\n";
if (a == b) cout << "A e' uguale a B\n";
cin.get();
return 0;
}
E' semplicissimo capire il funzionamento del programma (volendo basta un attimo compilarlo ed eseguirlo per testarlo). Le uniche novità sono le istruzioni if:
if (a > b) cout << "A e' maggiore di B\n";
scrive “A e' maggiore di B” solo se la relazione a > b è verificata.- Similmente
if (b > a) cout << "B e' maggiore di A\n";
scrive a video “B e' maggiore di A” nel solo caso in cui b è maggiore di a - Infine stessa cosa per
if (a == b) cout << "A e' uguale a B\n";
che valuta se i due numeri sono uguali.
Esercizi
1. Scrivere un programma che legga tre numeri da tastiera e dica se sono stati scritti in ordine crescente o no.
2. Scrivere un programma che dica se un blocco di massa m (inserita da tastiera) sfonderà un blocco di marmo capace di reggere una forza massima di 500N (Aiuto: Forza = [massa
x
accelerazione di gravità], accelerazione di gravita = 10m/s)Sfruttiamo le parentesi graffe.
Per adesso l'if sembra (anzi, è) una struttura fantastica, ma se dobbiamo far eseguire due comandi sotto la stessa condizione dovremo riscrivere due volte
if(condizione) comando1; if (condizione) comando2;
... E per 3 comandi? E per settordici comandi? Bruceremo i tasti Ctrl+C e Ctrl+VIn nostro aiuto vengono le parentesi graffe, che ci permettono di inserire blocchi di codice da far eseguire ad una data struttura di controllo. La sintassi e' di questo tipo (supponendo di voler eseguire n istruzioni se la condizione dell'if è verificata, ma si può fare con qualsiasi altra struttura di controllo)
Ma qualcosa del genere l'abbiamo già vista: ricordate ogni vostro programma? :D Ecco, se ci pensate subito dopo la funzione main() c'è una graffa aperta, che si chiude solo a fine programma: indica proprio il blocco di codice della funzione main()! (le funzioni verranno approfondite in seguito).if(condizione) {
istruzione_1;
istruzione_2;
......
istruzione_n;
}
Possiamo quindi creare facilmente un programma (esercizio) che, dati due numeri a e b, ci dica quale tra i due è il numero maggiore, e di questo ci dia il quadrato, il cubo e la sua “tabellina”
Ti è piaciuto questo articolo? Collegati ai feed RSS per restare sempre aggiornato sugli ultimi articoli pubblicati. Se hai suggerimenti o idee lascia un commento
0 commenti:
Posta un commento