Esercitazioni di Fondamenti di Informatica

modulo C



Il corso e le librerie di riferimento (prof. Claudio Sartori)

Nota Bene
Le soluzioni proposte in questa pagina hanno UNICAMENTE lo scopo di fornire una metodologia per la soluzione del problema. Pertanto possono non essere esaustive e presentare delle imprecizioni.
Esercitazione del 9 Marzo 2001

Esercizio 1
Si scriva una estensione delle librerie per le liste (sia nella implementazione ad Array, sia nella implementazione a Puntatori) che consenta sia di copiare la lista in un altra lista, sia di salvare (e recuperare) la lista su file.

Soluzione per lista Array
Soluzione per lista Puntatori

Esercizio 2
Creare una estensione della libreria utilizzata per i Bst che permetta il salvataggio (e il recupero) dell'albero su file.

Una soluzione proposta

Esercitazione del 6 Marzo 2001

Esercizio 1
Si scriva un programma per la gestione attraverso un menu delle funzionalità di un albero binario di ricerca. In particolare devono essere disponibili le seguenti funzionalita':

  • I : Inserimento di un nuovo nodo
  • E : Eliminazione di un nodo (occorre richiedere la chiave)
  • V : Visualizzazione del nodo avente la chiave inserita dall'utente
  • T : Visualizzazione dell'intero albero
  • F : Fine del programma
Una soluzione proposta

Esercizio 2
Creare il programma di gestione di una lista in cui ogni atomo sia un albero binario di ricerca.

Denotiamo con bsti l'albero nell'elemento i-esimo della lista

Si scriva una procedura C a menu per la gestione della lista con le seguenti funzionalità:

  1. Se il comando è I si inserisce un nuovo elemento della lista.
  2. Se il comando è U, si acquisisce da input due numeri interi i e j e se i, j sono non superiori alla lunghezza della lista, si inserisce il contenuto di tutti i nodi di bstj in bsti lasciando bstj intatto.
  3. Se il comando è D, si acquisisce da input un intero i e se i è non superiore alla lunghezza della lista si cancella bsti.

Una soluzione proposta

Esercitazione del 27 Febbraio 2001

Esercizio 1
Si scriva un programma per la gestione della coda di un pronto soccorso, che accetta comandi con le seguenti funzionalità

  • I : Accetta da input il nome di un paziente e un valore di urgenza, espresso come intero fra 1 e N (costante assegnata), ed inserisce questi dati, assieme all'ora corrente, in una struttura dati opportuna.
  • E : visualizza su output il nome del paziente con massima urgenza e a parità di urgenza il nome del paziente arrivato prima. Il paziente visualizzato deve essere eliminato dalla struttura dati.
  • F : fine del programma
Una soluzione proposta

Esercizio 2
Implementare una lista a puntatori, il cui tipo Atomo, rappresentante un punto sul piano euclideo, deve essere così dichiarato:

typedef struct{
float x,y;
} Atomo;

Scrivere un programma C che prenda da tastiera una serie di punti e che visualizzi, per ogni atomo A del file, gli atomi della lista che si trovano a distanza euclidea minima da A.
Si noti che l'Atomo della lista a distanza minima non e' necessariamete unico.

Una soluzione proposta

Esercitazione del 20 Febbraio 2001

Esercizio 1
Creare un programma che gestisca una lista ordinata nel seguente modo: nel caso in cui l'utente inserisca il carattere:

  • O : vengono immessi nuovi elementi nella lista fino a che non si inserisce lo 0 (zero)
  • V : viene visualizzata la lista corrente
  • F : fine del programma
soluzione

Esercizio 2
Creare un programma che presa una riga da tastiera rovesci il testo di una parola si e una parola no alternativamente.

soluzione