Questa è una raccolta di esercizi C/C++, elencati in
base alla difficoltà. In tal caso si è cercato di dare la possibilità
a tutti di avere un approccio minimale ed essenziale con il linguaggio e tutto
quello che lo concerne. Gli esercizi proposti sono indicati per i corsi di Fondamenti
di Informatica. Per ogni esercizio bisogna essere in grado di sviluppare il
programma sia come programma principale che come sottoprogramma. Per ogni esercizio
viene data una possibile soluzione.
Esercizio 1
Calcolare la media di n numeri.
(soluzione)
Esercizio 2
Realizzare una funzione per il calcolo del fattoriale di un numero intero
positivo.
(soluzione)
Esercizio 3
Realizzare un convertitore, ad esempio lire/euro.
(soluzione)
Esercizio 4
Lettura e scrittura di un vettore o di una matrice.
(soluzione)
Esercizio 5
Scrivere un programma che controlla la frequenza degli elementi che hanno
valore pari a 0 in una matrice assegnata. Restituire i rispettivi valori
riga per riga.
(soluzione)
Esercizio 6
Realizzare una funzione che, dato un numero intero, verifichi se esso è
un numero primo. Utilizzando poi la funzione appena realizzata, scrivere
un programma che, dato un numero intero positivo, visualizzi a video tutti
i numeri primi minori o uguali di quello dato.
(soluzione)
Esercizio 7
Ricerca di un elemento in vettore.
(soluzione)
Esercizio 8
Trasposta di una matrice secondo la diagonale principale e secondaria.
(soluzione)
Esercizio 9
Scrivere un programma che eguaglia un vettore ad un altro utilizzando i
puntatori.
(soluzione)
Esercizio 10
Sviluppare una procedura che scambi i valori della riga i di una matrice
con i valori della riga j (con i e j parametri della procedura). Sviluppare
un programma principale che chiami la procedura.
(soluzione)
Esercizio 11
Scrivere un programma atto ad identificare nell'interno di una matrice generica
se ci sono delle sottomatrici 2x2 di soli valori nulli.
(soluzione)
Esercizio 12
Per un'assegnata matrice determinare la riga con la somma di elementi massima
e quella con la somma minima. Effettuare lo scambio tra le righe precedentemente
determinate.
(soluzione)
Esercizio 13
Considerando una matrice bidimensionale come rappresentativa dei punti della
superficie di un quadrato, scrivere un programma per porre a 0 tutti i valori
del perimetro del quadrato o di un quadrato in esso contenuto.
(soluzione)
Esercizio 14
Ordinamento di un vettore in modo crescente e decrescente.
(soluzione)
Esercizio 15
Assegnata una matrice quadrata, con indice dispari, ordinarla in modo crescente
o decrescente, riscrivendola in modo elecoidale.
(soluzione)
Esercizio 17
Scrivere un programma per la ricerca di un elemento in una matrice assegnata
e visualizzare a video la sua frequenza. Inoltre determinare il numero di
volte che si ripete ogni numero.
(soluzione)
Esercizio 18
Scrivere un programma atto alla ricerca, in una matrice assegnata, delle
righe aventi pił elementi comuni per uno stesso indice di colonna.
(soluzione)
Esercizio 19
Siano assegnati da tastiera due vettori di interi vett1 e vett2 (max 50
elementi). Si progetti una funzione ALTERNA che riceva in ingresso i due
vettori e restituisca un vettore vett3 costituito alternando gli elementi
di vett1 e vett2. La funzione ALTERNA deve anche restituire come valore
di ritorno la somma di tutti gli elementi del vettore vett3.
(soluzione)
Esercizio 20
Scrivere un programma che permetta all'utente di inserire un'intera frase.
Il programma successivamente visualizzi il numero di parole che compone
la frase. Si supponga che una frase sia costituita di parole, dove una parola
è una sequenza di caratteri diversi dallo spazio delimitata da uno
o più spazi a destra o a sinistra. Uno o più spazi possono
anche aprire e chiudere la frase.
(soluzione)
Esercizio 21
Scrivere un programma atto a creare un file di testo.
(soluzione)
Esercizio 22
Scrivere un programma atto a contare gli spazi bianchi in un file di testo
assegnato.
(soluzione)
Esercizio 23
Scrivere un programma atto al conteggio delle parole, delle lettere e delle
linee di testo presenti in un file di testo assegnato.
(soluzione)
Esercizio 24
Calcolo della funzione esponenziale f(x)=e^x.
(soluzione)
Esercizio 25
Calcolare il valore del sin(x) con precisione assegnata mediante una serie
numerica.
(soluzione)
Esercizio 27
Scrivere un programma che accetta in input un intero a 16 bit e stampi la
stringa di bit che rappresenta l'intero stesso.
(soluzione)
Esercizio 28
Sviluppare un programma che risolve un sistema di equazioni la cui matrice
associata è non singolare attraverso l'algoritmo dell'eliminazione
di Gauss.
(soluzione)
Esercizio 29
Realizzare un programma che permetta all'utente di inserire un'intera frase.
Il programma poi stampi tutte le vocali della frase.
(soluzione)
Esercizio 30
Trovare una parola assegnata all'interno di una stringa di caratteri.
(soluzione)
Esercizio 31
Si sviluppi un programma che, a partire da un stringa e da un carattere
letti da tastiera determini il numero di parole che presentano il carattere
consecutivamente ripetuto. Si ipotizzi che la stringa non contenga parole
che abbiano più di due ripetizioni.
(soluzione)
Esercizio 32
A partire da un array di record, salvato su di un file qualsiasi, si effettuino
ricerche per trovare degli elementi aventi uno specifico valore del campo
del record. Scrivere una procedura che possa permettere all'utente di scrivere
sul record e di aggiornare un campo specifico del record (ad esempio si
può considerare una Rubrica o di Bulletin Board).
(soluzione)
Esercizio 33
Definire una classe convertitore, comprensiva di costruttore e distruttore,
al fine di realizzare un convertitore di valute, ad esempio lire/euro. Per
il programma si richiede la scrittura di almeno una funzione membro di calcolo,
una di output e la definizione di uno o più campi privati ove memorizzare
i dati, nonchè la scrittura del main
(soluzione)