edutecnica

Programmazione ad oggetti in linguaggio C++: esercizi risolti

Esercizio no.1
Realizza una classe 'contatore' che contiene una variabile intera 'valore' come attributo e due metodi, il primo è un costruttore senza parametri che inizializza 'valore' a 0 il secondo incrementa semplicemente 'valore ' di 1 tutte le volte che viene invocato.
Esegui il test del programma con un ciclo for .
Esercizio no.2
Scrivi una classe D (data) i cui oggetti possano essere inizializzati come: d(22,08,01); implementare il costruttore, il metodo out() per la stampa a video, il metodo mod(gg,mm,aa) per consentirne la modifica e un metodo val() per consentire la validazione della data .
Esercizio no.3
Implementare un algoritmo di crittografia basato su una classe C che codifica una stringa di caratteri in ingresso in una stringa crittata illegibile.
Il sistema deve funzionare attraverso una chiave numerica che prende tutte le occorrenze di ogni lettera della stringa e le sostituisce con la lettera che sta in k (chiave numerica) posizioni più a destra nell'ordine alfabetico.

codice di cesare

Se k è negativa lo spostamento deve avvenire verso sinistra.
Esercizio no.4
Scrivi un programma che preveda la classe X che possa essere inizializzata indifferentemente con un numero binario (max 8 bit) o decimale e possa restituire in uscita lo stesso numero, indifferentemente in formato binario (max 8 bit) o decimale .
Esercizio no.5
Scrivere una classe C (cronometro) che svolga operazioni di cronometraggio del tempo. Deve essere dotata di metodi start(), stop(), per far partire e fermare il cronometro.
Deve poi, esserci una classe print() per stampare l'intervallo di tempo misurato .
Esercizio no.6
Scrivi un programma per manipolare stringhe e numeri che implementi un metodo somma() che chiamato in questi modi:
somma(2,3) restituisce in output 5
somma("coco","nut") restituisce in output 'coconut'.
Il programma deve essere costituito da tre classi la classe O (operazione) che implementa i metodi per la manipolazione dei dati e le due classi derivate dalla classe O; N, per l'acquisizione e la restituzione di numeri e la classe S per l'acquisizione e la restituzione di stringhe.
Esercizio no.7
Scrivi un programma che istanziata una classe T permetta ad un oggetto di tale classe di comportarsi indifferentemente come una coda (il primo entrante è il primo uscente) oppure come una pila (il primo entrante è l'ultimo uscente).
La classe T può essere derivata dalla classe V dove viene allocato un vettore di n posti. La classe V, genitrice, sarà dotata di un costruttore che inizializza il vettore e l'indice delle posizioni occupate, di un metodo print() per stampare il vettore e di un metodo set() per inserire un elemento nel vettore. La classe derivata T, può essere dotata soltanto di due metodi getpila() e getcoda(); che permettono di estrarre i dati secondo la modalità della pila oppure quello della coda .
Esercizio no.8
Realizza la classe Q (Quadrato) dotata degli attributi lato, posx e posy; questi ultimi due sono le coordinate cartesiane dell'angolo superiore sinistro del quadrato.L'oggetto di classe Q può essere istanziato solo tramite costruttore.
Realizza poi la classe I (insieme) che riceve in ingresso due quadrati e restituisce in uscita l'esito di una loro eventuale intersezione (sovrapposizione); in tal caso l'oggetto di classe I deve restituire l'area dell' intersezione e dell'unione dei due quadrati. (esempio di scambio di dati fra classi non derivate fra loro).



edutecnica