Dopo aver mosso i primi passi nel mondo del C++ – confrontandolo con Python, scrivendo il classico “Hello World” e giocando un po’ con oggetti, tipi e valori – siamo pronti per affrontare un nemico universale: la matematica di base (sì, proprio quella che odiavamo alle medie).
Nel caso ve li foste persi, ecco qui i primi due articoli:
In questa lezione ci concentriamo su addizioni, sottrazioni, moltiplicazioni e divisioni – le operazioni che ci fanno compagnia sin dai tempi della scuola… con la differenza che ora ce le fa un compiler, e non la prof. di matematica.
🧮 Operazioni logiche (ma non troppo)
In C++ il compilatore è abbastanza furbo da capire quali operazioni sono consentite tra variabili… ma non abbastanza da capire se hanno senso.
Per esempio:
int age = -100;
Certo, il compilatore non si lamenterà… ma a meno che tu non sia un Highlander, probabilmente c’è un errore.
🔍 Un ripasso sui tipi
Il tipo di una variabile definisce cosa può farci il programma. Finora abbiamo usato:
int cout;
cin >> cout; // legge un numero intero
string name;
cin >> name; // legge una stringa
Un piccolo trucco del mestiere: le stringhe possono contenere numeri (es. “123”) perché in fondo sono solo sequenze di caratteri. Gli int
, invece, sono inflessibili come un revisore contabile: solo numeri interi, grazie.
🧪 Il nostro primo mini-calcolatore
Prendiamo ispirazione dal manuale di Stroustrup (“Programming: Principles and Practice Using C++”) per costruire un semplice programma che gioca un po’ con i numeri:
#include "iostream"
#include "math.h"
using namespace std;
int main ()
{
cout <<"Scrivi un numero per eseguire qualche operazione matematica: ";
double n;
cin >> n;
cout << "n == " << n
<< "\nn+1 == " << n+1
<< "\ntwice n == " << n+n
<< "\nthree n == " << n*3
<< "\nn squared == " << n*n
<< "\nhalf of n == " << n/2
<< "\nsquare root of n == " << sqrt(n)
<< endl;
}
Niente di trascendentale, ma utile per capire come funzionano gli operatori aritmetici in C++.
📚 Due note tecniche (che faranno felice il tuo compilatore):
#include "math.h"
è necessario per usaresqrt()
(la radice quadrata).double
è il nostro tipo per numeri decimali, perché più preciso difloat
. E no, non si chiama così perché “raddoppia qualcosa”, ma perché usa 64 bit al posto dei 32 delfloat
. Più bit = più numeri = più soddisfazione.
🧓 Ciao, quanti mesi hai?
Estendiamo il nostro “Hello World” facendo qualcosa di utile (forse): calcolare l’età in mesi invece che in anni.
#include "iostream"
#include "string"
using namespace std;
int main()
{
cout << "Quanti anni hai? (solo numeri, niente bugie): ";
double i;
cin >> i;
string mystr;
cout << "Come ti chiami?\n";
cin >> mystr;
cout << "Ciao, " << mystr << "! I tuoi " << i << " anni equivalgono a circa " << i * 12 << " mesi!" << endl;
return 0;
}
🎉 Voilà! Un programma che unisce l’utilità del calcolo alla bellezza dell’interazione umana (più o meno).
🤖 Parole, confronti e drammi lessicali
E per concludere, ecco un programmino che ti dice se due parole sono uguali o chi viene prima nell’alfabeto (sempre utile, no?).
#include "iostream"
#include "string"
using namespace std;
int main()
{
cout << "Scrivi due parole:\n";
string first, second;
cin >> first >> second;
if (first == second)
cout << "Hai scritto due volte la stessa parola!\n";
if (first < second)
cout << first << " viene prima di " << second << " in ordine alfabetico.\n";
if (first > second)
cout << first << " viene dopo " << second << " in ordine alfabetico.\n";
return 0;
}
Come puoi vedere, anche le parole hanno un loro ordine e… sì, if
in C++ funziona proprio come “se” nella vita reale.
🔚 In conclusione
La programmazione non è solo roba da cyborg: è fatta di logica, matematica… e anche un po’ di ironia. Ogni operazione, anche la più banale, nasconde un piccolo passo verso la padronanza del linguaggio.
Hai dubbi? Prova tutto su cpp.sh e gioca con i tuoi programmi. E se qualcosa non funziona, non temere: anche il compilatore ha le sue giornate no.
Rispondi a L’Internettuale Annulla risposta