Obiettivo: Sono riportati in seguito una serie di esercizi utili per testare le proprie conoscenze nell’ambito dei linguaggi di programmazione strutturata relativamente all’utilizzo delle strutture.
Gli esercizi, a complessità crescente, possono essere risolti utilizzando anche differenti linguaggi di programmazione come C, Python, Pascal, Java, PHP.
Per la risoluzione degli esercizi si suggerisce l’utilizzo del compilatore online:
https://www.onlinegdb.com/online_c++_compilerESERCIZI CON STRUTTURE (EASY)
1) Realizzare una struttura per modellare un rettangolo contenente base, altezza, perimetro e area. Utilizzare tale struttura per permettere all’utente di inserire base e altezza del rettangolo. Calcolare successivamente perimetro e area del rettangolo.
2) Realizzare una struttura per modellare un quadrato contenente lato, perimetro e area. Utilizzare tale struttura per permettere all’utente di inserire il lato del quadrato. Calcolare successivamente perimetro e area del quadrato.
3) Realizzare una struttura per modellare un cerchio contenente raggio, perimetro e area. Utilizzare tale struttura per permettere all’utente di inserire il raggio del cerchio. Calcolare successivamente perimetro e area del cerchio.
4) Realizzare le tre differenti strutture per modellare un rettangolo, un quadrato ed un cerchio. Utilizzare queste strutture per permettere ad un utente di inserire :
– base ed altezza del rettangolo
– lato del quadrato
– raggio del cerchio.
Calcolata l’area delle differenti forme geometriche ed indicare la figura con area maggiore.
5) Realizzare due strutture per modellare un parallelepipedo e un cilindro. Utilizzare queste strutture per permettere a un utente di inserire: le tre dimensioni del parallelepipedo (lunghezza, larghezza e altezza); il raggio e l’altezza del cilindro. Calcolare il volume delle due figure solide e indicare quale delle due ha il volume maggiore.
ESERCIZI CON STRUTTURE E FUNZIONI:
6) Realizzare una struttura per modellare una data con i campi giorno, mese e anno (espressi in formato numerico, ad esempio 28-09-1983). Scrivere una funzione per verificare se una data è valida. La funzione deve prendere come parametro di ingresso una data e restituire 1 nel caso di una data corretta e 0 nel caso di una data errata.
7) Realizzare una struttura per modellare una vettore nel piano con le coordinate x e y (origine nel punto (0,0)). Scrivere una funzione per calcolare il modulo del vettore. La funzione deve prendere come parametro di ingresso un vettore e restituire il modulo del vettore.
8) Realizzare una struttura per modellare una triangolo con le lunghezze dei tre lati. Scrivere una funzione per determinare se il triangolo è isoscele, scaleno o equilatero. La funzione deve prendere come parametro di ingresso un triangolo e restituire 1 nel caso in cui il triangolo sia isoscele, 2 nel caso in cui sia scaleno e 3 nel caso in cui sia equilatero.
9a) Realizzare una struttura per modellare un segmento nel piano attraverso le coordinate dei due punti A(xA,yA) e B(xB,yB). Scrivere una funzione per determinare la lunghezza del segmento. La funzione deve prendere come parametro di ingresso un segmento e restituire la sua lunghezza.
9b) Realizzare una struttura per modellare un segmento nel piano attraverso le coordinate dei due punti A(xA,yA) e B(xB,yB). Scrivere una funzione per determinare se due segmenti sono paralleli (stesso coefficiente angolare) . La funzione deve prendere come parametro di ingresso due segmenti e restituire 1 nel caso in cui questi siano paralleli o 0 nel caso in cui non lo siano.
9c) Realizzare una struttura per modellare un segmento nel piano attraverso le coordinate dei due punti A(xA,yA) e B(xB,yB). Scrivere una funzione per determinare se due segmenti sono perpendicolari (prodotto dei coefficienti angolari uguale a -1) . La funzione deve prendere come parametro di ingresso due segmenti e restituire 1 nel caso in cui questi siano perpendicolari o 0 nel caso in cui non lo siano.
ESERCIZI CON STRUTTURE (MEDIUM)
10) Realizzare un programma che preveda l’utilizzo di una struttura Impiegato. La struttura permette di descrivere un impiegato in base a:
– nome (dato di tipo string)
– cognome (dato di tipo string)
– stipendio base (dato di tipo int)
– anni di servizio (dato di tipo int)
– stipendio totale (dato di tipo int)
Il programma deve:
– Chiedere all’utente di inserire il nome, cognome, stipendio base e anni di servizio dell’impiegato.
– Calcolare lo stipendio totale, aggiungendo un bonus di 100€ per ogni anno di servizio.
– Stampare a schermo tutti i dati dell’impiegato, compreso lo stipendio totale calcolato. (N.B. Lo stipendio totale deve essere assegnato dopo l’inserimento dei dati, sulla base del calcolo effettuato).
11a) Realizzare un programma che preveda l’utilizzo di una struttura Auto. La struttura permette di descrivere un automobile in base a:
– marca (dato di tipo string)
– cilindrata (dato di tipo int)
– anno di immatricolazione (dato di tipo int)
– acquirente (dato di tipo string)
Il programma deve prevedere inoltre l’utilizzo di un Array di tipo auto (con dimensioni pari a 3) che consenta di inserire da tastiera i dati delle auto in vendita in un autosalone. (N.B. si utilizzi un ciclo definito per iterare su tutti gli elementi dell’array).
Visualizzare in seguito tutti i dati relativi alle automobili inserite.
11b) Realizzare un programma che preveda l’utilizzo di una struttura Auto. La struttura permette di descrivere un automobile in base a:
– marca (dato di tipo string)
– cilindrata (dato di tipo int)
– anno di immatricolazione (dato di tipo int)
– acquirente (dato di tipo string)
– prezzo (dato di tipo int)
Il programma deve prevedere inoltre l’utilizzo di un Array di tipo auto (con dimensioni pari a 3) che consenta di inserire da tastiera i dati delle auto in vendita in un autosalone. (N.B. si utilizzi un ciclo definito per iterare su tutti gli elementi dell’array).
Si determini in seguito la macchina più costosa riportando le principali informazioni relative a tale automobile quali marca, cilindrata, anno di immatricolazione, acquirente e prezzo.
12) Realizzare un programma che preveda l’utilizzo di una struttura Libro. La struttura permette di descrivere un libro in base a:
– titolo (dato di tipo string)
– autore (dato di tipo string)
– prezzo (dato di tipo float)
– numero di pagine (dato di tipo int)
Il programma deve prevedere inoltre l’utilizzo di un array di tipo Libro (con dimensioni pari a 3) che consenta di inserire da tastiera i dati di un archivio di libri. Al termine dell’inserimento, il programma deve: visualizzare l’elenco completo dei libri inseriti individuare e stampare tutte le informazioni relative al libro con il maggiore numero di pagine (N.B. si utilizzi un ciclo definito per iterare su tutti gli elementi dell’array).
13) Realizzare un programma che preveda l’utilizzo di una struttura Libro. La struttura permette di descrivere un libro in base a:
– titolo (dato di tipo string)
– autore (dato di tipo string)
– prezzo (dato di tipo float)
– numero di pagine (dato di tipo int)
Il programma deve prevedere inoltre l’utilizzo di un array di tipo Libro (con dimensioni pari a 3) che consenta di inserire da tastiera i dati di un archivio di libri. Al termine dell’inserimento, il programma deve: visualizzare l’elenco completo dei libri inseriti individuare e stampare tutte le informazioni relative al libro con il maggiore numero di pagine (N.B. si utilizzi un ciclo definito per iterare su tutti gli elementi dell’array).
14) Realizzare un programma che preveda l’utilizzo di una struttura Libro. La struttura permette di descrivere un libro in base a:
– titolo (dato di tipo string)
– autore (dato di tipo string)
– prezzo (dato di tipo float)
– numero di pagine (dato di tipo int)
Il programma deve prevedere inoltre l’utilizzo di un array di tipo Libro (con dimensioni pari a 5) che consenta di gestire un archivio di libri. L’utente deve poter interagire con il programma tramite un menu, scegliendo tra le seguenti opzioni:
1. Inserire un nuovo libro (se ci sono ancora slot disponibili)
2. Ottenere le informazioni di un libro specifico (richiedendo l’indice dell’array)
3. Visualizzare l’elenco completo dei libri inseriti
4. Visualizzare tutti i libri con più di 100 pagine
5. Visualizzare tutti i libri che iniziano con la lettera ‘a’. (N.B. string è un tipo di dato derivato ottenuto come array di caratteri)
6. Uscire dal programma
(N.B. si utilizzi un ciclo indefinito per iterare sulle operazioni fino a quando l’utente sceglie di uscire).
(N.B. si utilizzino delle funzioni per implementare ogni singola azione di ogni singolo punto).
Risoluzione Esercizio: https://onlinegdb.com/YbynFEFOx
15) Realizzare un programma che preveda l’utilizzo di una struttura Studente. La struttura permette di descrivere uno studente in base a:
– nome (dato di tipo string)
– cognome (dato di tipo string)
– eta (dato di tipo int)
– media dei voti (dato di tipo float)
– classe di appartenza (dato di tipo string)
Il programma deve prevedere inoltre l’utilizzo di un array di tipo Studente (con dimensioni pari a 5) che consenta di gestire i dati di una scuola. L’utente deve poter interagire con il programma tramite un menu, scegliendo tra le seguenti opzioni:
1. Inserire un nuovo studente (se ci sono ancora slot disponibili)
2. Ricercare uno studente per nome e cognome e visualizzarne i dettagli
3. Visualizzare l’elenco completo degli studenti
4. Calcolare la media delle medie degli studenti
5. Uscire dal programma
(N.B. si utilizzi un ciclo indefinito per iterare sulle operazioni fino a quando l’utente sceglie di uscire).
16) Realizzare un programma che preveda l’utilizzo di una struttura Studente. La struttura permette di descrivere uno studente in base a:
– nome (dato di tipo string)
– cognome (dato di tipo string)
Il programma deve prevedere inoltre l’utilizzo di un matrice di interi denominata Presenze. Questa matrice ha una dimensione 10×6 e consente di gestire le presenze di 10 alunni dal lunedì al sabato (1 lo studente è presente, 0 lo studente è assente).
Completare il programma sviluppando le seguenti funzioni
1. void inserisciStudenti(Studente elenco[], int n);
2. void registraPresenze(int presenze[][5], int n);
3. void stampaPresenze(Studente elenco[], int presenze[][5], int n);
4. void reportAssenze(Studente elenco[], int presenze[][5], int n);
5. void studentePiuAssenze(Studente elenco[], int presenze[][5], int n);
ESERCIZI DI ANALISI:
Esercizi a quiz con le strutture
