APPUNTI SUL LINGUAGGIO C Esercizi su File e Alberi Binari

Slides:



Advertisements
Presentazioni simili
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
Advertisements

Lezione 17 maggio 2007 Parametri da linea di comando FILE Strutture (introduzione)
“ Pseudocodice ” Un programma per computer lavorerà su in insieme di “ variabili ” contenenti i dati del problema, soluzioni intermedie, soluzioni finali.
Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo Approfondimenti di C, Stringhe e file 13 Stringhe.
Script bash I file di comandi in Linux. BASH  Bourne Again Shell  Modalità interattiva o batch (file di comandi)  Ambiente di programmazione “completo”
1 ELEMENTI DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012
Indici di Posizione Giulio Vidotto Raffaele Cioffi.
Fondamenti di Informatica A - Massimo Bertozzi LE RAPPRESENTAZIONI CONCATENATE.
.  I tipi di dati non primitivi sono gli array, le struct e le union.  Gli array sono degli aggregati di variabili dello stesso tipo.  La dichiarazione.
POTENZE
Progettazione di una base di dati relazionale
© 2007 SEI-Società Editrice Internazionale, Apogeo
Esercitazioni di Prog. II (esercizi su alberi ennari)
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Unità di apprendimento 1
Universita’ di Milano Bicocca Corso di Basi di Dati 1 in eLearning C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
La rappresentazione delle informazioni
Introduzione al linguaggio C
Rielaborato da Atzeni et al., Basi di Dati, Mc-Graw Hill
Tutorato Elementi di Informatica 2013
File con indice (sparso)
Drupal tipi di contenuto
Laboratorio II, modulo LabView.
Organizzazione fisica
I FILES AD ACCESSO SEQUENZIALE
Tipo di dato: array Un array è un tipo di dato usato per memorizzare una collezione di variabili dello stesso tipo. Per memorizzare una collezione di 7.
Process synchronization
realizzato dal prof.Conti Riccardo
Corso Java Esercizi.
Linguaggio C++ Selezione.
Programmazione e Laboratorio di Programmazione
Strutture di Controllo
Programmazione e Laboratorio di Programmazione
Dalle potenze ai numeri binari
Introduzione agli Algoritmi e alle Strutture Dati
© 2007 SEI-Società Editrice Internazionale, Apogeo
Schema generale, visita in ampiezza e profondità.
Alberi n-ary Lezioni di C.
APPUNTI SUL LINGUAGGIO C
Gestione di un banco di magliette
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
APPUNTI SUL LINGUAGGIO C
comprensione e modifica di codice
Process synchronization
APPUNTI SUL LINGUAGGIO C Implementazioni di Liste Concatenate
La struttura dei primi programma in C
Le stringhe in C++ Laboratorio 26 Aprile Dott. Serena Villata
APPUNTI SUL LINGUAGGIO C
comprensione e modifica di codice
APPUNTI SUL LINGUAGGIO C
APPUNTI SUL LINGUAGGIO C Allocazione dinamica della memoria
LINGUAGGIO C Alberi e livelli
Corso di Algoritmi e Strutture Dati APPUNTI SUL LINGUAGGIO C
Programmazione e Laboratorio di Programmazione
APPUNTI SUL LINGUAGGIO C Alberi Binari – primi esercizi
Esercizio Dato un albero binario, definiamo altezza minimale di un nodo v la minima distanza di v da una delle foglie del suo sottoalbero, definiamo invece.
APPUNTI SUL LINGUAGGIO C
Programmazione e Laboratorio di Programmazione
APPUNTI SUL LINGUAGGIO C
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Algoritmi e Strutture Dati
Programmazione e Laboratorio di Programmazione
Array e Stringhe Linguaggio C.
La programmazione strutturata
Docente: Sabato Bufano
Algoritmi.
Script su vettori Realizza uno script che chiede in input una dimensione d e crea un vettore di d numeri interi casuali. Poi calcola la somma dei due numeri.
Corso di Fondamenti di Informatica
Transcript della presentazione:

APPUNTI SUL LINGUAGGIO C Esercizi su File e Alberi Binari Corso di Algoritmi e Strutture Dati APPUNTI SUL LINGUAGGIO C Esercizi su File e Alberi Binari

Es. 1 Un file contiene una sequenza (di lunghezza ignota) di numeri interi positivi, uno per riga. I numeri sono scritti in lettere cifra per cifra, e sono terminati dalla parola stop. Come esempio si consideri il seguente file: otto cinque nove stop due due stop sette zero sette stop Il file contiene i numeri 859, 22 e 707. Si scriva un programma C, opportunamente organizzato in funzioni, che legga da tastiera il nome del file e stampi il valore della somma dei numeri ivi contenuti. Nell’esempio il programma deve stampare 1588.

Es. 2 Un file contiene una sequenza (di lunghezza ignota) di studenti iscritti per una prova d’esame. Ogni riga del file contiene la matricola, il nome, il cognome e l’anno di corso di uno studente, più un eventuale commento. Come esempio si consideri il seguente file. 29333 Mario, Rossi, 2 RG 34211 Irene, De Neri, 4 FC 23432 Pier Maria, Bianchi, 3 RG ciao mamma 35211 Giuseppe, Verdi, 4 FC odio questo esame! 36122 Luigi, Rossi, 4 FC che sia la volta buona! 22222 Chiara, Blu, 2 RG Si noti che il nome e il cognome possono contenere spazi bianchi e sono seguiti da una virgola. Si noti inoltre che l’anno di corso è composto da un numero, uno spazio bianco e i due caratteri FC o RG, a seconda che lo studente sia fuori corso o regolare, rispettivamente. Si assuma infine che il numero di spazi bianchi dopo la virgola sia arbitrario. Si scriva una funzione C che prenda come parametri il nome del file e un anno di corso (un intero tra 1 e 5), e restituisca il numero di studenti iscritti fuori corso per quell’anno. Nel caso che il file non esista, oppure l’anno di corso non sia compreso tra 1 e 5 la funzione deve restituire il valore -1.

Es. 3 Si assuma una lista composta di abbreviazioni (ad esempio TO, MI, RM) e dalle corrispondenti parole estese implementata tramite record e puntatori utilizzando la seguente struttura: struct elem { char abbr[2]; char *estesa; struct elem *next; } Scrivere una funzione C che, ricevendo come parametri il puntatore all’inizio della lista, una abbreviazione e la corrispondente parola estesa cerchi l’abbreviazione nella lista e: restituisca 0 se la coppia è presente nella lista restituisca 1 se la coppia non è presente nella lista c) restituisca 2 se l‘abbreviazione è presente ma ad essa corrisponde una parola differente. Inoltre, nel caso b) un nuovo record deve essere aggiunto in coda alla lista e nel caso c) la parola estesa deve essere sostituita da quella passata come parametro. Implementare anche due funzioni di supporto: stampa (che stampa il contenuto della lista) e crealista (che dato un numero intero k, crei una lista di k elementi chiedendo da input i valori delle coppie)

Es. 4 Sia dato un vettore di dimensione nota di stringhe contenenti tre o più caratteri (escluso il terminatore di stringa). Si vuole aggiungere ad ogni stringa s nel vettore la prima di quelle seguenti che abbia esattamente le prime due lettere iniziali in comune con le due finali di s, evitando di ripetere le due lettere in comune. Nel caso nessuna delle stringhe seguenti abbia due lettere in comune con s non bisogna modificare s. Ad esempio, se il vettore contiene le seguenti 7 stringhe: casa postino sasso osteria salvia notare renna dovrà essere trasformato nel seguente vettore: casasso postinotare sasso osteria salvia notarenna renna Si scriva una funzione C che ricevendo in ingresso l’indirizzo del vettore e la sua dimensione effettui la trasformazione di cui sopra.

Es. 5 Scrivere una funzione che cerchi un intero k all'interno di un albero binario. Scrivere una funzione che restituisca il valore massimo contenuto nei nodi di un albero binario. Scrivere una funzione che verifichi se due alberi binari sono uguali Scrivere una funzione ricorsiva che, dato un albero, inserisca in una lista solo i nodi di livello pari Scrivere una funzione che, dato un albero che rappresenta una espressione, es. (2-3)*(4+5), ne calcoli il valore e lo restituisca in output

Es. 5 Scrivere una funzione ricorsiva che restituisca il numero di foglie di un albero binario. Scrivere una funzione che, dati due insiemi numerici rappresentati mediante alberi binari di ricerca (senza ripetizioni), crei la lista rappresentante l'intersezione dei due insiemi. Scrivere una funzione ricorsiva che restituisca il numero di nodi interni di un albero binario.