Ciao a tutti,
voglio chiedervi una cortesia:
ho da implementare dei programmi in C++ entro il 17 giugno i quali poi dovrò presentare per un esame.
Mi appello alla clemenza di voi tutti!!!!!
Di seguito troverete una lista delle possibili tracce!!!!!!!!
Grazie!!!
Programmi (possibili tracce)
Gestione di stringhe: contare i diversi caratteri ordinarli scrivere e leggere stringhe
Usando le operazioni bit a bit simulare le operazioni aritmetiche su interi.
Data una espressione aritmetica definire la sua notazione postfissa e infissa.
Definire una struttura stack usando un vettore unidimensionale.
Definire una struttura stack usando una lista linkata.
Data una espressione aritmetica in forma postfissa calcolarla usando uno stack.
Date una serie di linee di programma con assegnazioni e operazioni aritmatiche calcolarne il valore. Esempio a=5; b=a+2; d=a+b; calcolare i valori di a,b e c.
Ordinamenti di stringhe e di numeri: merge sort, Quick sort, scambio, alberi etc-. Usando menu e puntatori a funzioni (typedef).
Alberi , liste e pile viste come classi e template.
Dati due file a e b costruire un nuovo file c il cui primo elemento è il primo elemento di a il secondo è il primo elemento di b il terzo è il secondo elemento di a etc..
Costruire un programma che gestisca le date e il tempo, guardare il programma “date” (lez. 5 lucidi C++) e il programma time (lez 6 lucidi C++)
Costruire una classe che simuli la gestione delle liste in programmazione funzionale e che abbia come funzioni pubbliche il car il cdr il cons e la possibilità di comporre le suddette funzioni e di usare i costrutti lambda e define.
Implementare una lista bidirezionale con i puntatori; ogni campo della lista contiene un intero. ordinare la lista con uno degli ordinamenti che avete studiato. Implementare (almeno) gli operatori dell'algebra utili alla soluzione. La realizzazione è richiesta in linguaggio C++.
Il tipo di dato dequeue (double ended queue) è una sequenza modificabile ad entrambi gli estremi, in cui è possibile inserire un elemento in testa o in fondo, e/o cancellare un elemento dalla testa o dal fondo. Fornire una realizzazione in C++ di tale tipo di dato, mediante puntatori, implementando gli operatori di inserimento e cancellazione dalla testa e dalla coda
La profondità di un albero è il massimo livello delle sue foglie. Si fornisca una realizzazione in C++ di tale struttura (a scelta fra quelle che conoscete, scrivendo gli operatori utili alla soluzione) e la funzione che calcola la profondità dell’albero.
Si fornisca una realizzazione in C++ di un albero (a scelta fra quelle che conoscete) i cui nodi contengono valori interi.. Dopo aver scritto gli operatori necessari alla soluzione, si implementi la funzione che cancella tutte le foglie per le quali il percorso radice-foglia ha somma complessiva dei valori uguale a k.
Dati due insiemi realizzati con liste non ordinate, realizzare in C++ la funzione INTERSEZIONE, implementando (almeno) gli operatori dell’algebra utili alla soluzione.
Realizzare il quicksort su un vettore di interi in C o in C++, con ordine decrescente.
Scrivere in C++ l’implementazione di due liste monodirezionali ordinate, realizzate con i puntatori, (scrivere gli operatori utili alla soluzione del problema). Scrivere la funzione che le fonde, restituendo una unica lista ordinata
Data una pila realizzata con puntatori, scrivere la funzione C++ che restituisce la pila rovesciata. Scrivete gli operatori utili alla soluzione del problema.
Dato un grafo realizzato con matrice di adiacenza, realizzare in C (o C++) la funzione che restituisce il numero di archi afferenti ad un nodo n. Scrivete tutti gli operatori utili alla soluzione del problema.
Dato un albero i cui nodi contengno valori interi, scrivere gli operatori tipici di tale struttura (in particolare, l’inserimento e la cancellazione di una foglia), e elencare i valori contenuti nei nodi effettuando una visita in ampiezza.