Appunti sul C++

I miei appunti collezzionati durante lo studio di questo linguaggio

Il caro vecchio IF

Solitamente un programma in C++, procede “leggendo” il codice dall'alto verso il basso, senza mai tornare indietro, e senza mai ripetere la stessa porzione di codice; questa funzione, però, potrebbe farci comodo.

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:
if(condizione)istruzione;
Che praticamente significa “se 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
<  Minore
>=
Minore o uguale
<
Maggiore
<=
Maggiore o uguale
==
Uguale
!=
Diverso
Quindi una possibile condizione è
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
#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;
}
Analisi Codice:
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.
Attenzione! E' errore frequente scrivere a = b per imporre la condizione di uguaglianza, ma bisogna fare molta attenzione in quanto un solo uguale assegna ad a il valore b, mentre due uguali confrontano i due valori.
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+V

In 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)
if(condizione) {
istruzione_1;
istruzione_2;
......

istruzione_n;
}
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).

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

Stampa il post

0 commenti:

Posta un commento

Blog Widget by LinkWithin

Lettori fissi