Codice degli esempi e degli esercizi risolti

Fondamenti di programmazione in C++ - Algoritmi, strutture dati e oggetti
Luis Joyanes Aguilar
Copyright © 2008 – The McGraw-Hill Companies srl
Codice degli esempi e degli esercizi risolti
Capitolo 2
Pag. 55
Esempio
Uso della direttiva using e riconoscimento dell’identificatore cout.
#include <iostream>
using namespace std;
int main()
{
cout << "Ciao mondo C++\n";
return 0;
}
Se non si utilizza la direttiva using bisognerà far precedere il nome std a
parecchi elementi del programma.
Esempio
Programma senza direttiva using namespace std;
#include <iostream>
int main()
{
std::cout << "Ciao mondo, C++\n";
return 0;
}
Pag. 61
Esercizio risolto
Supponiamo di dover far stampare molte volte un nome e un indirizzo da un
programma C++. Anziché scrivere tante volte quelle istruzioni di stampa,
sarà possibile scriverle una sola volta in un file (ad esempio
mioindir.cpp)
e poi includere quel file in ogni punto del programma in cui bisogna far
stampare quel nome e quell’indirizzo.
Per esempio, digitare le seguenti righe e salvarle in un file denominato
mioindir.cpp.
// file mioindir.cpp
cout << "Luis Joyanes Aguilar\n";
cout << "Avda de Andalucia, 48\n";
cout << "Carchelejo, JAEN\n";
cout << "Andalucia, SPAGNA\n";
Il programma seguente
#include <iostream>
using namespace std;
int main()
{
#include "mioindir.cpp"
return 0;
Fondamenti di programmazione in C++ - Algoritmi, strutture dati e oggetti
Luis Joyanes Aguilar
Copyright © 2008 – The McGraw-Hill Companies srl
}
equivale a
#include <iostream>
using namespace std;
int main()
{
cout << "Luis Joyanes Aguilar\n";
cout << "Avda de Andalucia, 48\n";
cout << "Carchelejo, JAEN\n";
cout << "Andalucia, SPAGNA\n";
return 0;
}
Pag. 62
Esercizio risolto
#include <iostream>
#include <string>
using namespace std;
int main()
{
char messaggio[20];
strcpy (messaggio, "ciao mondo\n");
// Le due righe precedenti possono anche
// essere sostituite da
// char messaggio[20] = "ciao mondo\n";
cout << messaggio;
return 0;
}
Pag. 63
Codice sorgente
#include <iostream> //uso di cout, cin
#include <cmath> //uso di sqrt(), anche math.h
using namespace std;
int maint()
{
double numero, soluzione;
cout << "Introduca un numero: "; //chiedere numero
cin >> numero; //leggere numero
soluzione = sqrt(numero); //ottenere radice quadrata
cout << "La radice quadrata è " << soluzione <<
endl;
return 0;
}
Fondamenti di programmazione in C++ - Algoritmi, strutture dati e oggetti
Luis Joyanes Aguilar
Copyright © 2008 – The McGraw-Hill Companies srl
Pag. 76
Esempi
float f;
// definizione di f
f = 5.65
// assegnamento
cout << "f:" << f << endl;
// visualizzazione di
f:5.65
double h;
// definizione di h
h = 0.0
// assegnamento
cout << "h:" << h << endl;
// visualizza h: 0.0
Pagg. 77-78
Esempio
bool bisestile;
bisestile = true;
bool trovato, flag;
trovato = true; // trovato prende il valore vero
indicatore = false; // indicatore prende il valore
falso
trovato = indicatore; // trovato prende il valore di
// indicatore
Esempio
#include <iostream>
using namespace std;
void main()
{
bool b1;
bool b2 = false;
bool b3 = true;
int i1 = true;
int i2 = false;
int i3 = b3;
int i4 = 10;
bool b4 = i4;
bool b5 = -i4;
// errore, non è possibile assegnare
// valori a true e false
true = 2;
false = -1;
cout << "b1:" << b1 << endl;
…
}
Fondamenti di programmazione in C++ - Algoritmi, strutture dati e oggetti
Luis Joyanes Aguilar
Copyright © 2008 – The McGraw-Hill Companies srl
Pag. 85
Esempi
long
double
float
float
short
dNumero;
OreAccumulate;
OrePerSettimana;
VotoMedio;
GiornoSettimana;
Pagg. 86-87
Esempio
// Distanza alla luna in chilometri
#include <iostream>
using namespace std;
void main()
{
const int Luna = 238857; // distanza in miglia
cout << "Distanza alla Luna " << luna;
cout << " miglia\n";
int luna_chilo;
luna_chilo = luna*1.609; // un miglio = 1.609
chilometri
cout << "In chilometri è " << luna_chilo;
cout << " km.\n";
}
Esempio
#include <iostream.h>
using namespace std;
// Differenti definizioni
main()
{
int x, y1; // definizione delle variabili x e y1
x = 75;
y1 = 89;
int y2 = 50; // definizione della variabile y2
// inizializzata a 50
cout << x << "," << y1 << "," << y2 << endl;
return 0;
}
Esempi
char risposta = 'S';
int contatore = 1;
float peso = 156.45;
int anno = 1992;
char
char var2
char
char
var1 = 'A';
= '\t';
var3 = 'B';
var4 = 'C';
Fondamenti di programmazione in C++ - Algoritmi, strutture dati e oggetti
Luis Joyanes Aguilar
Copyright © 2008 – The McGraw-Hill Companies srl
Pagg. 89
Esempio
# include <iostream>
Ambito globale
int Q;
Q, variabile globale
void main()
{
Locale alla main()
int A;
A, variabile locale
A = 124;
Q = 1;
{
Primo sottolivello della main()
int B;
B, variabile locale
B = 124;
A = 457;
Q = 2;
{
Sottolivello più interno della main()
int C;
C, variabile locale
C = 124;
B = 457;
A = 788;
Q = 3;
}
}
}
Pagg. 89-90
Esempio
temperatura = 75.45;
conto = conto + 5;
spazio = velocita * tempo;
int risposta;
// risultato di un'operazione
risposta = (1+4)*5;
Alla variabile a sinistra dell’operatore di assegnamento (l’operatore =) è
assegnato il valore dell’espressione a destra; il punto e virgola termina
l’istruzione.
Esempio
#include <iostream>
using namespace std;
int main()
{
aux = 4*5;
cout << "Due per " << aux << " fa: " << 2*aux <<
"\n";
cout << "Tre per " << aux << " fa: " << 3*aux <<
"\n";
return (0);
}
Fondamenti di programmazione in C++ - Algoritmi, strutture dati e oggetti
Luis Joyanes Aguilar
Copyright © 2008 – The McGraw-Hill Companies srl
Pagg. 91-92
Esempi
1. cout << "Introduca il numero di euro.\n";
<< "seguito dal numero dei centesimi.\n";
cin >> euro >> centesimi;
2. La sentenza cin si può anche scrivere così:
cin >> euro
>> centesimi;
pag. 93
Esempio
Qual è l’output del seguente programma, se si introducono in input le lettere
LJ?
main()
{
char primo, ultimo;
cout << "Introduca la sua prima e ultima
iniziale:";
cin >> primo >> ultimo;
cout << "Ciao," << primo << "." << ultimo <<
".!\n";
}
Esempio
Supponendo che
i = 5, j = 12, C = 'A', n = 40.791512
L’istruzione
cout << i << j << c << n;
visualizza sullo schermo
512A40.791512
Pag. 94
Esempio
cout << "Il buono, il";
cout << "brutto";
cout << "e il cattivo";
cout << endl;
visualizza l’output
Il buono, il brutto e il cattivo
– cursore
Fondamenti di programmazione in C++ - Algoritmi, strutture dati e oggetti
Luis Joyanes Aguilar
Copyright © 2008 – The McGraw-Hill Companies srl
Pag. 95
Esempio
Quando si esegue
cout << "Introduca numero di litri d'olio: ";
cin >> numLitri;
appare sullo schermo
Introduca numero di litri d'olio:
e quando l’utente introduce il dato in input (per esempio 12.50), esso
apparirà nella stessa riga
Introduca numero di litri d'olio: 12.50
Pag. 97
Esempio
namespace geo
{
const double PIGRECO = 3.141592;
double lungcircon (double raggio)
{ return 2*PIGRECO*raggio; }
} // fine spazio di nome geo
Pag. 98
Esempio
int test;
variabile globale
namespace demo
{
int test;
stesso
}
void main () {
::test = 0;
demo::test = 10;
// test è una
// inizio namespace demo
// variabile locale con lo
// nome della variabile
globale
// fine namespace demo
// assegna il valore 0
// alla variabile globale
// assegna il valore
10
// alla variabile locale
}
Fondamenti di programmazione in C++ - Algoritmi, strutture dati e oggetti
Luis Joyanes Aguilar
Copyright © 2008 – The McGraw-Hill Companies srl
Pag. 99
Esempio
Sottospazi di nomi
namespace Continente
{
namespace StruttureDati
{
class Lista ();
class Pila ();
}
namespace FunzioniDati
{
using namespace StrutturaDati;
void ordinareLista (Lista l);
}
}
Un’applicazione dello spazio Continente
using namspace Continente;
void namespace Continente::StruttureDati
int main (int argc, char * argv[])
{
Lista l;
return 0;
}
Pag. 100
Esempio
Nella libreria standard del C++, numerosi header file utilizzano lo spazio
di nomi std.
// fileA.h
namespace alfa
{
void funzA();
}
// fileB.h
namespace alfa
{
void funzB();
}
// file Main.cpp
#include "fileA.L"
#include "fileB.L"
using namespace alfa;
funzA();
funzB();