Ecco degli esercizi semplici con soluzione per praticare le basi delle structure in C++.
Esercizio 1
Definisci una struttura "Persona" con i campi "nome" e "età " e crea una variabile di tipo "Persona":
#include <iostream>using namespace std;
struct Persona { string nome; int eta;};
int main() { Persona persona1; persona1.nome = "Mario"; persona1.eta = 30;
cout << "Nome: " << persona1.nome << endl; cout << "Età : " << persona1.eta << endl;
return 0;}
Esercizio 2
Definisci una struttura "Libro" con i campi "titolo", "autore" e "anno" e crea un array di libri:
#include <iostream>using namespace std;
struct Libro { string titolo; string autore; int anno;};
int main() { Libro biblioteca[3];
biblioteca[0].titolo = "Il signore degli anelli"; biblioteca[0].autore = "J.R.R. Tolkien"; biblioteca[0].anno = 1954;
biblioteca[1].titolo = "1984"; biblioteca[1].autore = "George Orwell"; biblioteca[1].anno = 1949;
biblioteca[2].titolo = "Orgoglio e pregiudizio"; biblioteca[2].autore = "Jane Austen"; biblioteca[2].anno = 1813;
for (int i = 0; i < 3; i++) { cout << "Libro " << i + 1 << endl; cout << "Titolo: " << biblioteca[i].titolo << endl; cout << "Autore: " << biblioteca[i].autore << endl; cout << "Anno: " << biblioteca[i].anno << endl; cout << endl; }
return 0;}
Esercizio 3
Definisci una struttura "Punto" con i campi "x" e "y" e calcola la distanza tra due punti:
#include <iostream>#include <cmath>using namespace std;
struct Punto { int x; int y;};
double calcolaDistanza(Punto p1, Punto p2) { int diffX = p2.x - p1.x; int diffY = p2.y - p1.y; return sqrt(diffX * diffX + diffY * diffY);}
int main() { Punto punto1 = {2, 3}; Punto punto2 = {5, 7};
double distanza = calcolaDistanza(punto1, punto2);
cout << "Distanza tra i punti: " << distanza << endl;
return 0;}
Esercizio 4
Definisci una struttura "Studente" con i campi "nome", "età " e "voto" e calcola la media dei voti di un gruppo di studenti:
#include <iostream>using namespace std;
struct Studente { string nome; int eta; double voto;};
double calcolaMedia(Studente studenti[], int lunghezza) { double somma = 0;
for (int i = 0; i < lunghezza; i++) { somma += studenti[i].voto; }
return somma / lunghezza;}
int main() { const int NUM_STUDENTI = 3; Studente studenti[NUM_STUDENTI];
studenti[0].nome = "Marco"; studenti[0].eta = 20; studenti[0].voto = 7.5;
studenti[1].nome = "Paola"; studenti[1].eta = 19; studenti[1].voto = 8.0;
studenti[2].nome = "Luca"; studenti[2].eta = 21; studenti[2].voto = 6.8;
double media = calcolaMedia(studenti, NUM_STUDENTI);
cout << "Media dei voti: " << media << endl;
return 0;}
Esercizio 5
Definisci una struttura "Auto" con i campi "marca", "modello" e "anno" e crea un'array di auto:
#include <iostream>using namespace std;
struct Auto { string marca; string modello; int anno;};
int main() { const int NUM_AUTO = 2; Auto garage[NUM_AUTO];
garage[0].marca = "Fiat"; garage[0].modello = "Panda"; garage[0].anno = 2010;
garage[1].marca = "Ford"; garage[1].modello = "Focus"; garage[1].anno = 2015;
for (int i = 0; i < NUM_AUTO; i++) { cout << "Auto " << i + 1 << endl; cout << "Marca: " << garage[i].marca << endl; cout << "Modello: " << garage[i].modello << endl; cout << "Anno: " << garage[i].anno << endl; cout << endl; }
return 0;}
Esercizio 6
Definisci una struttura "Rect" con i campi "larghezza" e "altezza" e calcola l'area di un rettangolo:
#include <iostream>using namespace std;
struct Rect { double larghezza; double altezza;};
double calcolaArea(Rect rettangolo) { return rettangolo.larghezza * rettangolo.altezza;}
int main() { Rect rettangolo; rettangolo.larghezza = 5.4; rettangolo.altezza = 3.2;
double area = calcolaArea(rettangolo);
cout << "Area del rettangolo: " << area << endl;
return 0;}
Esercizio 7
Definisci una struttura "Tempo" con i campi "ore", "minuti" e "secondi" e calcola la somma di due tempi:
#include <iostream>using namespace std;
struct Tempo { int ore; int minuti; int secondi;};
Tempo sommaTempi(Tempo tempo1, Tempo tempo2) { Tempo risultato; int totaleSecondi = tempo1.ore * 3600 + tempo1.minuti * 60 + tempo1.secondi + tempo2.ore * 3600 + tempo2.minuti * 60 + tempo2.secondi; risultato.ore = totaleSecondi / 3600; risultato.minuti = (totaleSecondi % 3600) / 60; risultato.secondi = (totaleSecondi % 3600) % 60; return risultato;}
int main() { Tempo tempo1 = {1, 30, 45}; Tempo tempo2 = {0, 45, 30};
Tempo risultato = sommaTempi(tempo1, tempo2);
cout << "Somma dei tempi:" << endl; cout << "Ore: " << risultato.ore << endl; cout << "Minuti: " << risultato.minuti << endl; cout << "Secondi: " << risultato.secondi << endl;
return 0;}
Esercizio 8
Definisci una struttura "Prodotto" con i campi "nome", "prezzo" e "quantità " e calcola il totale di spesa per un elenco di prodotti:
#include <iostream>using namespace std;
struct Prodotto { string nome; double prezzo; int quantita;};
double calcolaTotale(Prodotto prodotti[], int lunghezza) { double totale = 0;
for (int i = 0; i < lunghezza; i++) { totale += prodotti[i].prezzo * prodotti[i].quantita; }
return totale;}
int main() { const int NUM_PRODOTTI = 3; Prodotto listaProdotti[NUM_PRODOTTI];
listaProdotti[0].nome = "Maglietta"; listaProdotti[0].prezzo = 15.99; listaProdotti[0].quantita = 2;
listaProdotti[1].nome = "Jeans"; listaProdotti[1].prezzo = 49.99; listaProdotti[1].quantita = 1;
listaProdotti[2].nome = "Scarpe"; listaProdotti[2].prezzo = 79.99; listaProdotti[2].quantita = 1;
double totaleSpesa = calcolaTotale(listaProdotti, NUM_PRODOTTI);
cout << "Totale spesa: " << totaleSpesa << endl;
return 0;}
Esercizio 9
Definisci una struttura "Film" con i campi "titolo", "regista" e "anno" e crea una variabile di tipo "Film". Successivamente, permetti all'utente di inserire i dati del film e visualizzali:
#include <iostream>using namespace std;
struct Film { string titolo; string regista; int anno;};
int main() { Film film;
cout << "Inserisci il titolo del film: "; getline(cin, film.titolo);
cout << "Inserisci il nome del regista: "; getline(cin, film.regista);
cout << "Inserisci l'anno di uscita del film: "; cin >> film.anno;
cin.ignore();
cout << endl; cout << "Dati del film:" << endl; cout << "Titolo: " << film.titolo << endl; cout << "Regista: " << film.regista << endl; cout << "Anno: " << film.anno << endl;
return 0;}
Esercizio 10
Definisci una struttura "Giocatore" con i campi "nome" e "punteggio" e crea un array di giocatori. Ordina l'array in base al punteggio:
#include <iostream>#include <algorithm>using namespace std;
struct Giocatore { string nome; int punteggio;};
bool confrontaPunteggio(Giocatore giocatore1, Giocatore giocatore2) { return giocatore1.punteggio > giocatore2.punteggio;}
int main() { const int NUM_GIOCATORI = 4; Giocatore squadra[NUM_GIOCATORI];
squadra[0].nome = "Marco"; squadra[0].punteggio = 120;
squadra[1].nome = "Luca"; squadra[1].punteggio = 80;
squadra[2].nome = "Paolo"; squadra[2].punteggio = 150;
squadra[3].nome = "Giulia"; squadra[3].punteggio = 100;
sort(squadra, squadra + NUM_GIOCATORI, confrontaPunteggio);
cout << "Classifica giocatori:" << endl; for (int i = 0; i < NUM_GIOCATORI; i++) { cout << "Giocatore " << i + 1 << ": " << squadra[i].nome << ", Punteggio: " << squadra[i].punteggio << endl; }
return 0;}