Le strutture /3. Riprendiamo ora la struttura definita alcune lezioni fa e completiamo il set di funzioni che servono per gestire un elenco di libri.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Le strutture /3. Riprendiamo ora la struttura definita alcune lezioni fa e completiamo il set di funzioni che servono per gestire un elenco di libri."

Transcript

1 Le strutture /3 Riprendiamo ora la struttura definita alcune lezioni fa e completiamo il set di funzioni che servono per gestire un elenco di libri. typedef struct {char titolo[200]; char autore[100]; int pagine; libro; Le funzioni implementate sino ad ora sono: /* una funzione per l'allocazione della memoria necessaria a contenere l'array di variabili di tipo libro */ libro *crea_array(int); /* una funzione per inizializzare i campi di una variabile di tipo libro */ void riempi_libro(libro *); /* una funzione che permette, al variare del parametro di tipo FILE*, di visualizzare i valori dei campi di una variabile di tipo libro o di memorizzarli su file in modalità testo */ void mostra_libro(libro *, FILE *); /* una funzione che permette di disporre gli elementi dell'array in modo tale che i numeri di pagina siano ordinati dal più piccolo al più grande */ void ordina_biblioteca_pag(libro*,int); Ora ci manca solo la funzione che disponga gli elementi dell'array in modo tale che i titoli dei libri seguano l'ordine alfabetico. Date due stringhe, per stabilire quale venga prima, secondo l'ordine alfabetico, è possibile usare la funzione int strcmp(char*str1,char*str2)

2 facente parte del gruppo di funzioni definite in string.h. La funzione restituisce un valore negativo se la prima stringa, secondo l'ordine alfabetico, viene prima della seconda, 0 se le due sono identiche, un numero positivo se, secondo l'ordine alfabetico, la prima stringa viene dopo la seconda. void ordina_biblioteca_titolo(libro*,int); void ordina_biblioteca_titolo(libro* elenco,int numero_libri) {int i,scambio; libro temp; /* la variabile d'appoggio che serve ad effettuare lo scambio */ scambio = 1; while(scambio) {scambio=0; for(i = 0; i<numero_libri-1; i++) {if( strcmp( elenco[i].titolo, elenco[i+1].titolo) > 0 ) {temp = elenco[i]; elenco[i] = elenco[i+1]; elenco[i+1] = temp; scambio=1; Ora siamo pronti per scrivere il codice /* inizio codice */ #include <stdio.h> #include <stdlib.h> /* prima di tutto la definizione del nuovo tipo di variabile, in quanto tutti i prototipi delle funzioni contengono il tipo libro */ typedef struct {char titolo[200]; char autore[100]; int pagine; libro; libro *crea_array(int); void riempi_libro(libro *); void mostra_libro(libro *, FILE *);

3 void ordina_biblioteca_pag(libro*,int); void ordina_biblioteca_titolo(libro*,int); int main() {libro *biblioteca; int numero_libri,i, pagina; char nome[200]; /* ecco il puntatore che servirà per la gestione di tre canali di output: uno per il salvataggio dei dati originali, uno per il salvataggio dei dati ordinati in funzione del numero di pagina ed uno per il salvataggio dei dati ordinati in funzione dell'autore */ FILE *libri_biblio; printf("\n Di quanti libri vuoi inserire i dati?"); scanf("%d", & numero_libri); biblioteca = crea_array(numero_libri); /* inizializzo gli elementi dell'array */ riempi_libro(biblioteca+i); /* visualizzo sul monitor i valori degli elementi dell'array */ printf("i dati inseriti sono: \n"); mostra_libro(biblioteca+i,stdout); /* salvo in un file i valori degli elementi dell'array */ printf("\n inizia il salvataggio su file dei dati originali "); libri_biblio = fopen("libreria.txt","w"); if(libri_biblio==null) exit(0); mostra_libro(biblioteca+i,libri_biblio); printf("\n fine del salvataggio su file dei dati originali "); /* scambio i valori degli elementi in modo che i numeri di pagina risultino disposti in ordine crescente */

4 ordina_biblioteca_pag(biblioteca,numero_libri); printf("\n inizia il salvataggio su file dei dati ordinati /1 "); printf("\n inserisci il nome del file su cui salvare i dati ordinati:") scanf("%s",nome); libri_biblio = fopen(nome,"w"); mostra_libro(biblioteca+i,libri_biblio); printf("\n fine del salvataggio su file dei dati ordinati /1 "); /* riusciamo a leggere i dati appena salvati? */ libri_biblio = fopen(nome,"r"); {fgets(nome,100,libri_biblio); printf("\n ecco il titolo: %s",nome); fgets(nome,100,libri_biblio); printf("\n ecco l'autore: %s",nome); fscanf(libri_biblio,"%d",&pagina); printf("\n ecco il numero di pagine: %d",pagina); /* se non avessi saputo di quante strutture di tipo libro erano stati salvati i valori, come avrei fatto a scegliere quando interrompere le operazioni di lettura? */ /* scambio i valori degli elementi in modo che i titoli dei libri risultino disposti in ordine alfabetico */ ordina_biblioteca_titolo(biblioteca,numero_libri); printf("\n inizia il salvataggio su file dei dati ordinati /2");

5 printf("\n inserisci il nome del file su cui salvare i dati ordinati (in modo binario!):") scanf("%s",nome); libri_biblio = fopen(nome,"wb"); fwrite(biblioteca,sizeof(libro)*numero_libri,1,libri_biblio); printf("\n fine del salvataggio su file dei dati ordinati /2"); return 0; /* inizio codice */ Provate ad aprire, con un editor di testo, il file salvato in modalità binaria...

Le strutture /2. Iniziamo ora a progettare il codice per la gestione del database. Quali sono le funzionalità da implementare?

Le strutture /2. Iniziamo ora a progettare il codice per la gestione del database. Quali sono le funzionalità da implementare? Le strutture /2 Iniziamo ora a progettare il codice per la gestione del database. Quali sono le funzionalità da implementare? Per ora è possibile gestire l'elenco dei libri (e quindi delle strutture) mediante

Dettagli

La copia di un file. contare di quanti caratteri sia composto il file (e quindi determinare la dimensione del file di origine)

La copia di un file. contare di quanti caratteri sia composto il file (e quindi determinare la dimensione del file di origine) La copia di un file Nell'esercizio di oggi cerchiamo di implementare un programma che permetta di effettuare la copia di un file di testo. L'operazione di copia, oltre a permettere di creare un nuovo file

Dettagli

da_costruire = da_costruire ^ 1; /* inserisco un bit nella prima posizione a destra */

da_costruire = da_costruire ^ 1; /* inserisco un bit nella prima posizione a destra */ Precisazione: int da_costruire = 0; da_costruire = da_costruire ^ 1; /* inserisco un bit nella prima posizione a destra -> 0000000000000001 (da_costruire vale 1) da_costruire = 0; da_costruire = da_costruire

Dettagli

Prova Scritta del 20/09/10

Prova Scritta del 20/09/10 Avvertenze Usare ESCLUSIVAMENTE penne ad inchiostro nero o blu (NO MATITE). Consegnare solo fogli formato A4 scritti da solo da un lato se si vogliono avere le fotocopie del compito. In testa a ciascun

Dettagli

Gli array. impone al programma, in fase di esecuzione, di riservare dello spazio in memoria per 10 variabili di tipo int

Gli array. impone al programma, in fase di esecuzione, di riservare dello spazio in memoria per 10 variabili di tipo int Gli array Gli array rappresentano una modalità molto compatta per accedere ad un gruppo di variabili; tale gruppo è identificato dal nome dell'array; i tipi delle variabili appartenenti al gruppo devono

Dettagli

Prova Scritta del 20/09/10

Prova Scritta del 20/09/10 Avvertenze Usare ESCLUSIVAMENTE penne ad inchiostro nero o blu (NO MATITE). Consegnare solo fogli formato A4 scritti da solo da un lato se si vogliono avere le fotocopie del compito. In testa a ciascun

Dettagli

Costruiamo un programma per crittografare del testo

Costruiamo un programma per crittografare del testo Costruiamo un programma per crittografare del testo Per codificare un messaggio in modo tale che il suo testo non risulti leggibile a persone che non siano in possesso dell'opportuna procedura di decodifica,

Dettagli

Le strutture /1. struct temp {char titolo[200]; char autore[100]; int pagine; } ; typedef struct temp libro;

Le strutture /1. struct temp {char titolo[200]; char autore[100]; int pagine; } ; typedef struct temp libro; Le strutture /1 Le strutture rappresentano un tipo di variabile che, diversamente dagli array, consente di gestire in modo compatto, mediante un'unico identificatore, un insieme di valori che non possiedano

Dettagli

Esercitazione 12. Esercizi di Ricapitolazione

Esercitazione 12. Esercizi di Ricapitolazione Esercitazione 12 Esercizi di Ricapitolazione Esercizio Scrivere un programma che, dato un numero intero positivo, stampa la sua rappresentazione binaria. ALGORITMO Scriviamo una procedura stampa_bin che,

Dettagli

Corso di Fondamenti di Informatica Prof. Aldo Franco Dragoni Prova scritta del 21/06/2010. Avvertenze. Specifiche

Corso di Fondamenti di Informatica Prof. Aldo Franco Dragoni Prova scritta del 21/06/2010. Avvertenze. Specifiche Avvertenze Usare ESCLUSIVAMENTE penne ad inchiostro nero o blu (NO MATITE). Consegnare solo fogli formato A4 scritti da ambo le parti. In testa a ciascun foglio scrivere: cognome, nome, numero progressivo

Dettagli

Esercizi. Stringhe. Stringhe Ricerca binaria

Esercizi. Stringhe. Stringhe Ricerca binaria Politecnico di Milano Esercizi Stringhe Stringhe Array di caratteri Funzioni: strcpy() strcmp() strlen() char stringaa[10], stringab[10]; strcpy(stringaa, stringab); Copia if (strcmp(stringaa, stringab)

Dettagli

Scrittura formattata - printf

Scrittura formattata - printf Esercizi su Input/Output con formato FormattedIO 1 Scrittura formattata - printf Funzione printf int printf ( , ) La funzione restituisce un valore intero uguale ai caratteri

Dettagli

#include <stdio.h> #include <stdlib.h> //necessaria per la malloc #include <string.h> // costante #define MAX_L 30

#include <stdio.h> #include <stdlib.h> //necessaria per la malloc #include <string.h> // costante #define MAX_L 30 /* Dopo aver definito una lista in grado di contenere i dati di alcune persone (nome, genere e altezza in metri), scrivere un programma che consenta di verificare che inizialmente la lista sia vuota e

Dettagli

Il processo di compilazione

Il processo di compilazione Il processo di compilazione Il processo che porta dal codice scritto in linguaggio C alla creazione del corrispondente file eseguibile può essere schematizzato in questo modo: 0. Scrittura del codice C

Dettagli

ESERCIZIO: SHIFT ARRAY (1)

ESERCIZIO: SHIFT ARRAY (1) ARRAY E STRINGHE ARRAY ESERCIZIO: SHIFT ARRAY (1) Utilizzando le funzioni scrivere un programma che: genera una sequenza di N = 20 numeri interi e li memorizza in un array ( riempi_array( )) visualizza

Dettagli

Esercizi di programmazione in linguaggio C English Dictionary

Esercizi di programmazione in linguaggio C English Dictionary Esercizi di programmazione in linguaggio C English Dictionary Il file di testo wordnet.txt contiene un certo numero di parole (word) e il corrispondente significato (meaning) secondo il seguente formato:

Dettagli

Introduzione al C. Lez. 2 Funzioni e Puntatori

Introduzione al C. Lez. 2 Funzioni e Puntatori Introduzione al C Lez 2 Funzioni e Puntatori Esercizio 1: test primalità Scrivere un programma che prenda in input un intero n, e stampa SI se n è primo, NO altrimenti (NB: un intero n è primo se e solo

Dettagli

Fondamenti di Informatica 2

Fondamenti di Informatica 2 Fondamenti di Informatica 2 della prova scritta del 25 Luglio 2006 Esercizio 1 (4 punti) Date le seguenti variabili int A[] = 2,3,7,-2,5,-8,-4; int N = 7; int i; Scrivere la porzione di codice che sostituisca

Dettagli

Esercizio 1: media di numeri reali (uso funzioni e struct)

Esercizio 1: media di numeri reali (uso funzioni e struct) Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 5 Esercitazione: 2 novembre 2005 Esercizi sulle funzioni Esercizio 1: media di numeri reali (uso funzioni e struct) Le

Dettagli

Introduzione al C. Lez. 2. Funzioni e Puntatori

Introduzione al C. Lez. 2. Funzioni e Puntatori Introduzione al C Lez 2 Funzioni e Puntatori Esercizio 1: test primalità Scrivere un programma che prenda in input un intero n, e stampa SI se n è primo, NO altrimenti (NB: un intero n è primo se è solo

Dettagli

Esempio di costruzione di una classe: un dizionario

Esempio di costruzione di una classe: un dizionario Esempio di costruzione di una classe: un dizionario Problema: si vuole disporre di un dizionario per tradurre parole dall italiano in un altra lingua e viceversa. Il dizionario deve consentire di ottenere

Dettagli

I puntatori sono tipi di variabili il cui valore rappresenta un indirizzo della memoria.

I puntatori sono tipi di variabili il cui valore rappresenta un indirizzo della memoria. Puntatori I puntatori sono tipi di variabili il cui valore rappresenta un indirizzo della memoria. NOTA: quando un programma viene mandato in esecuzione, ad esso viene assegnata un area di memoria di lavoro

Dettagli

Fondamenti di Informatica T-1 Modulo 2

Fondamenti di Informatica T-1 Modulo 2 Fondamenti di Informatica T-1 Modulo 2 Obiettivo di questa esercitazione Allocazione dinamica della memoria ed esempi di problemi tipici d esame 2 Esercizio 1 Una ditta utilizza un sistema informatico

Dettagli

Aritmetica dei puntatori

Aritmetica dei puntatori Aritmetica dei puntatori Marco Alberti Programmazione e Laboratorio, A.A. 2016-2017 Dipartimento di Matematica e Informatica - Università di Ferrara Ultima modifica: 7 dicembre 2016 sizeof L operatore

Dettagli

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }

ERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} } ERRATA CORRIGE Pulizia del buffer di input: come fare? (1) Dopo aver richiamato getchar() per prelevare un carattere dal buffer di input, inseriamo una seconda chiamata a getchar(), senza assegnare il

Dettagli

Fondamenti di Informatica 1 - Compito A

Fondamenti di Informatica 1 - Compito A Fondamenti di Informatica 1 - Compito A Prof. Marco Gavanelli 18 Giugno 2007 Esercizio (16 punti) Un programma in linguaggio C deve accedere ad un database di studenti, memorizzato in un file binario studenti.bin.

Dettagli

L accesso ai dispositivi esterni (tastiera, monitor, file,...) viene gestito mediante canali di comunicazione.

L accesso ai dispositivi esterni (tastiera, monitor, file,...) viene gestito mediante canali di comunicazione. I file L accesso ai dispositivi esterni (tastiera, monitor, file,...) viene gestito mediante canali di comunicazione. I canali, sono delle strutture dati che contengono informazioni sul dispositivo fisico,

Dettagli

giapresente( ) leggi( ) char * strstr(char * cs, char * ct) NULL

giapresente( ) leggi( ) char * strstr(char * cs, char * ct) NULL Materiale di ausilio utilizzabile durante l appello: tutto il materiale è a disposizione, inclusi libri, lucidi, appunti, esercizi svolti e siti Web ad accesso consentito in Lab06. L utilizzo di meorie

Dettagli

Fondamenti di Informatica L-A

Fondamenti di Informatica L-A Fondamenti di Informatica L-A Esercitazione del 23/11/07 Ing. Giorgio Villani Ripasso Teoria Funzioni ricorsive 2 fatt(2) 1 2*fatt(1) fatt(1) 1 2*1 1*fatt(0) fatt(0) 1*1 caso base fatt(0)=1 Esercizio 1

Dettagli

Prova Scritta del 20/09/10

Prova Scritta del 20/09/10 Avvertenze Usare ESCLUSIVAMENTE penne ad inchiostro nero o blu (NO MATITE). Consegnare solo fogli formato A4 scritti da solo da un lato se si vogliono avere le fotocopie del compito. In testa a ciascun

Dettagli

File di testo e file binari Soluzione 1 (2)

File di testo e file binari Soluzione 1 (2) File di testo e file binari Soluzione 1 (2) printf("cifrazione del file: "); scanf("%s",nome); // Controllo che il file esista. while((fs=fopen(nome,"r"))==null) { printf("errore nel nome del file, file

Dettagli

Informatica A (per gestionali) A.A. 2004/2005. Esercizi C. Funzioni: variabili e tipi locali e globali, passaggio parametri per valore, prototipo

Informatica A (per gestionali) A.A. 2004/2005. Esercizi C. Funzioni: variabili e tipi locali e globali, passaggio parametri per valore, prototipo Informatica A (per gestionali) A.A. 2004/2005 Esercizi C Funzioni: variabili e tipi locali e globali, passaggio parametri per valore, prototipo Indice 1 Funzioni: passaggio di parametri per valore, variabili

Dettagli

Esercizio 1: funzione con valore di ritorno di tipo puntatore

Esercizio 1: funzione con valore di ritorno di tipo puntatore Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 7 Esercitazione: 14 dicembre 2005 Esercizi su ricorsione, manipolazione stringhe, strutture dinamiche Problema: Esercizio

Dettagli

prova.c #include <stdio.h> char funzione(char); codice oggetto del main()

prova.c #include <stdio.h> char funzione(char); codice oggetto del main() prova.c #include char funzione(char); {char c= a ; printf( Ecco il carattere: %c\n,c); c=funzione(c); printf( Ecco il carattere modificato: %c\n,c); char funzione(char tmp) {if(tmp

Dettagli

Input/Output. Lettura e scrittura Caratteri e Stringhe: Terminale e file. Input/output. caratteri stringhe formattato ascii binari

Input/Output. Lettura e scrittura Caratteri e Stringhe: Terminale e file. Input/output. caratteri stringhe formattato ascii binari Input/Output Lettura e scrittura Caratteri e Stringhe: Terminale e file Input/output console file caratteri stringhe formattato ascii binari Linguaggio ANSI C Input/Output - 1 La libreria standard del

Dettagli

Lettura da tastiera e scrittura su monitor

Lettura da tastiera e scrittura su monitor Lettura da tastiera e scrittura su monitor Per poter leggere UN SINGOLO CARATTERE dalla tastiera e visualizzare UN SINGOLO CARATTERE sul monitor si possono utilizzare le funzioni: int getchar (void) (per

Dettagli

Esercizio 1: calcolo insieme intersezione

Esercizio 1: calcolo insieme intersezione Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 3 Esercitazione: 19 ottobre 2005 Esercizi su array e matrici Esercizio 1: calcolo insieme intersezione Problema: *******************************************************************

Dettagli

Lezione 8 Struct e qsort

Lezione 8 Struct e qsort Lezione 8 Struct e qsort Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 3 QuickSort strambo Modificare il Quicksort

Dettagli

Allocazione dinamica memoria

Allocazione dinamica memoria Allocazione dinamica memoria Marco Casazza 11/12/2017 1 Esercizio 1 1 /* 2 Creare una lista bidirezionale di interi, ovvero una lista 3 che permette lo scorrimento in entrambe le direzioni ( dal primo

Dettagli

Il buffer di input. In questo modo, tutte le chiamate alla funzione permetteranno all'utente di inserire caratteri.

Il buffer di input. In questo modo, tutte le chiamate alla funzione permetteranno all'utente di inserire caratteri. Il buffer di input In C, l'input fornito dall'utente viene gestito mediante un buffer; nel buffer vengono inseriti i caratteri premuti dall'utente sulla tastiera e, a chiusura del buffer, viene aggiunto

Dettagli

Esercitazione 6. Corso di Fondamenti di Informatica

Esercitazione 6. Corso di Fondamenti di Informatica Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Esercitazione 6 Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti

Dettagli

I puntatori. Il C ci permette di conoscere tale indirizzo, ovvero di determinare dove la variabile sia stata effettivamente memorizzata.

I puntatori. Il C ci permette di conoscere tale indirizzo, ovvero di determinare dove la variabile sia stata effettivamente memorizzata. I puntatori La memoria RAM del calcolatore è formata da un insieme di celle di memoria; per poter localizzare ciascuna cella, ad ognuna di esse è associato un numero, ovvero il suo indirizzo, che viene

Dettagli

Esercizi. La funzione swapint() primo tentativo

Esercizi. La funzione swapint() primo tentativo Politecnico di Milano Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio di array. #include

Dettagli

Lab 09 Gestione file di testo

Lab 09 Gestione file di testo Fondamenti di Informatica e Laboratorio T-AB e Fondamenti di Informatica T1 Ingegneria Elettronica e Telecomunicazioni e Ingegneria dell Automazione a.a. 2010/2011 Lab 09 Gestione file di testo Lab15 1

Dettagli

Fondamenti di Informatica 12. Linguaggio C -4

Fondamenti di Informatica 12. Linguaggio C -4 Strutture Dati in C Le strutture dati sono entità che permettono di memorizzare dati in modo organizzato e funzionale a particolari esigenze Fondamenti di Informatica 12. Linguaggio C -4 Strutture Dati

Dettagli

Esercitazione Matrici e Struct

Esercitazione Matrici e Struct Esercitazione Matrici e Struct Informatica B, AA 2017/2018 Luca Cassano 19 Ottobre 2017 luca.cassano@polimi.it Breve riassunto della puntata precedente Breve riassunto della puntata precedente Matrici

Dettagli

Lezione 6 Struct e qsort

Lezione 6 Struct e qsort Lezione 6 Struct e qsort Rossano Venturini rossano.venturini@unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Struct Struct Fino ad ora abbiamo utilizzato

Dettagli

Fondamenti di Informatica 2

Fondamenti di Informatica 2 Fondamenti di Informatica 2 della prova scritta del 27 Giugno 2006 Esercizio 1 (4 punti) Date le seguenti variabili int A[] = 2,3,7,-2,5,8,-4; int N = 7; int i; Scrivere la porzione di codice che sostituisca

Dettagli

Esercitazioni di Fondamenti di Informatica - Lez. 8 27/11/2018

Esercitazioni di Fondamenti di Informatica - Lez. 8 27/11/2018 Esercitazioni di Fondamenti di Informatica - Lez. 8 27/11/2018 Esercizi sull allocazione dinamica della memoria in C Il codice di questi esercizi é contenuto nella cartella parte1 1. Implementare una lista

Dettagli

Fondamenti di Informatica 2

Fondamenti di Informatica 2 Fondamenti di Informatica 2 della prova scritta del 6 Aprile 2006 Esercizio 1 (4 punti) Date le seguenti variabili int A[] = 2,3,7,-2,5,8,-4; int N = 7; int x = -1; Scrivere la porzione di codice che inserisce

Dettagli

Esercizio 1. Esercizio 1 - Soluzione

Esercizio 1. Esercizio 1 - Soluzione Esercizio 1 Realizzare un programma che, aperto un file di testo di nome Prova.txt in modalità scrittura, provveda a leggere da input delle parole separate da spazi (stringhe di al più 63 caratteri) e

Dettagli

Corso di Informatica A.A

Corso di Informatica A.A Corso di Informatica A.A. 2009-2010 Lezione 15 Corso di Informatica 2009-2010 Lezione 15 1 Liste concatenate Liste concatenate Una lista concatenata costituisce un metodo molto utile per immagazzinare

Dettagli

Esercitazioni di Prog. II (funzioni su insiemi) Chiara Petrioli

Esercitazioni di Prog. II (funzioni su insiemi) Chiara Petrioli Esercitazioni di Prog. II (funzioni su insiemi) Chiara Petrioli Esercizi per la manipolazione di insiemi (rappresentati tramite liste) Insiemi.c /*Questo file include i prototipi e le definizioni di specifiche

Dettagli

Indovina la lettera...

Indovina la lettera... Indovina la lettera... La lezione di oggi consiste nel preparare un programma che chiede all'utente di indovinare quale sia il carattere generato dal programma stesso in modo casuale. Il numero totale

Dettagli

E12 Esercizi su Strutture dati dinamiche in C

E12 Esercizi su Strutture dati dinamiche in C E12 Esercizi su Strutture dati dinamiche in C Esercizio 1. Si vuole realizzare una lista caratteri in C utilizzando una rappresentazione semplicemente collegata. Scrivere una struttura nodo che contiene

Dettagli

Relativamente agli esempi sopra riportati, al termine dell esecuzione della funzione il file di uscita dovrà contenere quanto riportato a lato.

Relativamente agli esempi sopra riportati, al termine dell esecuzione della funzione il file di uscita dovrà contenere quanto riportato a lato. Corsi di laurea in Ingegnera Elettronica e Ingegneria Gestionale Fondamenti di Programmazione / Fondamenti di Informatica I Prova scritta del 2 febbraio 2016 Esercizio 1 (16 punti) Un file di testo contiene

Dettagli

Dati strutturati in C

Dati strutturati in C Dati strutturati in C Fondamenti di Informatica Array Perchè usare gli array? float venditegennaio, venditefebbraio, venditemarzo, venditeaprile, venditemaggio, venditegiugno, venditeluglio, venditeagosto,

Dettagli

Esercizi. Filtraggio

Esercizi. Filtraggio Politecnico di Milano Esercizi Preparazione alla prima prova intermedia Filtraggio L utente inserisce un array di numeri reali non negativi (un numero negativo indica la fine della fase di inserimento)

Dettagli

#include <stdio.h> #include <stdlib.h> #define L 20 void Proc(char [], int); int N=L; main () { char *s; int i;

#include <stdio.h> #include <stdlib.h> #define L 20 void Proc(char [], int); int N=L; main () { char *s; int i; Fondamenti di Informatica L-A (A.A. 2002/2003) - Ingegneria Informatica Prof.ssa Mello & Prof. Bellavista Prova d Esame di Martedì 09/09/2003 durata 2h:30m ESERCIZIO 1 (12 punti) Si scriva una procedura

Dettagli

Fondamenti di Informatica L-A. Esercitazione 6

Fondamenti di Informatica L-A. Esercitazione 6 Fondamenti di Informatica L-A Esercitazione 6 Passaggio dei Parametri nelle Funzioni Ordinamento di Vettori Paolo Torroni Università degli Studi di Bologna Laurea in Ingegneria Elettronica e delle Telecomunicazioni

Dettagli

Esercitazioni di Informatica (CIV)

Esercitazioni di Informatica (CIV) Esercitazioni di Informatica (CIV) Puntatori, Tema d esame Andrea Romanoni e-mail: andrea.romanoni@polimi.it website: http://home.deib.polimi.it/romanoni/ 26 novembre 2015 Esame del 21 luglio 2014 Testo

Dettagli

Implementazione dell albero binario in linguaggio C++

Implementazione dell albero binario in linguaggio C++ Implementazione dell albero binario in linguaggio C++ Costruire il programma per gestire le operazioni su un albero binario. Ogni nodo dell albero contiene un codice e una descrizione; il programma deve

Dettagli

Informatica 1. Prova di recupero 21 Settembre 2001

Informatica 1. Prova di recupero 21 Settembre 2001 Informatica 1 Prova di recupero 21 Settembre 2001 Si risolvano i seguenti esercizi. Ai fini della determinazione del voto finale il loro punteggio andrà sommato al punteggio del laboratorio. Il tempo complessivo

Dettagli

Lezione X Definizione di vettori a run-time

Lezione X Definizione di vettori a run-time Programmazione e Laboratorio di Programmazione Lezione X Definizione di vettori a run-time Programmazione e Laboratorio di Programmazione: Definizione di vettori a run-time 1 Definizione statica di vettori

Dettagli

Stringhe in C. Luca Abeni. Informatica Luca Abeni 1 / 10

Stringhe in C. Luca Abeni. Informatica Luca Abeni 1 / 10 Stringhe in C Luca Abeni Informatica Luca Abeni 1 / 10 Stringhe in C Stringhe: tipo di dato strutturato Sequenze di caratteri Linguaggio C: progettato per la semplicità No supporto nativo per le stringhe

Dettagli

Esercizio 1: Puntatori impiegati che sono manager

Esercizio 1: Puntatori impiegati che sono manager Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 10 Esercitazione: 25 gennaio 2006 Esercizi di riepilogo Problema: Esercizio 1: Puntatori impiegati che sono manager Si

Dettagli

Input/Output su disco

Input/Output su disco Input/Output su disco In C, la gestione dei dispositivi di lettura (tastiera, file su disco,...) e scrittura (monitor, file su disco, stampante,...) viene effettuata mediante canali di comunicazione. Tali

Dettagli

Fondamenti di Informatica 2

Fondamenti di Informatica 2 Fondamenti di Informatica 2 della prova scritta del 25 Marzo 2005 Esercizio 1 (2 punti) Convertire in formato binario, ed esadecimale il numero 372. Mostrare il procedimento usato per ottenere il risultato.

Dettagli

Fondamenti di Informatica 1 - Compito A

Fondamenti di Informatica 1 - Compito A Fondamenti di Informatica 1 - Compito A Prof. Marco Gavanelli 9 Gennaio 2007 Esercizio (16 punti) Un programma in linguaggio C deve rilevare se un punto del piano, le cui coordinate sono lette da tastiera,

Dettagli

Informatica (A-K) 14. Linguaggio C -4

Informatica (A-K) 14. Linguaggio C -4 Strutture Dati in C Le strutture dati sono entità che permettono di memorizzare dati in modo organizzato e funzionale a particolari esigenze Informatica (A-K) 14. Linguaggio C -4 Strutture Dati tipiche

Dettagli

C: panoramica. Violetta Lonati

C: panoramica. Violetta Lonati C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati

Dettagli

Fondamenti di Informatica: Ingegneria Meccanica Prova scritta del 12 luglio 2008

Fondamenti di Informatica: Ingegneria Meccanica Prova scritta del 12 luglio 2008 Fondamenti di Informatica: Ingegneria Meccanica Prova scritta del 12 luglio 2008 Gli studenti dell a.a. 2007-2008 e 2006-2007 (6CFU) devono svolgere i 6 esercizi. Gli studenti degli anni precedenti non

Dettagli

1 (4) 2 (4) 3 (12) 4 (6) 5 (6)

1 (4) 2 (4) 3 (12) 4 (6) 5 (6) CORSO DI LAUREA IN INGEGNERIA ELETTRICA, CHIMICA e MATERIALI Informatica B, C Anno Accademico 2016-2017 Proff. Danilo ARDAGNA Prima Prova in Itinere 4.5.2017 Cognome Nome Matricola Firma Durata: 2h Valutazioni

Dettagli

Un file è un astrazione di memorizzazione di dimensione potenzialmente illimitata (ma non infinita), ad accesso sequenziale.

Un file è un astrazione di memorizzazione di dimensione potenzialmente illimitata (ma non infinita), ad accesso sequenziale. IL CONCETTO DI FILE Un file è una astrazione fornita dal sistema operativo, il cui scopo è consentire la memorizzazione di informazioni su memoria di massa. Concettualmente, un file è una sequenza di registrazioni

Dettagli

Esercizio 1 (15 punti)

Esercizio 1 (15 punti) Esercizio 1 (15 punti) Corsi di laurea in Ingegnera Elettronica e Ingegneria Gestionale Fondamenti di Programmazione / Fondamenti di Informatica I Prova scritta del 16 giugno 2017 Il noto gioco MasterMind

Dettagli

Corso di Informatica A.A

Corso di Informatica A.A Corso di Informatica A.A. 2009-2010 Lezione 11 Corso di Informatica 2009-2010 Lezione 11 1 Utilizzo dei puntatori Funzioni Perche i Puntatori? I puntatori hanno tre importanti applicazioni: 1. Passaggio

Dettagli

PROVA SCRITTA DEL MODULO DI

PROVA SCRITTA DEL MODULO DI PROVA SCRITTA DEL MODULO DI MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI ESERCIZIO 1 (4 punti) Convertire in notazione binaria il valore 289 utilizzando al massimo

Dettagli

Fondamenti di Programmazione

Fondamenti di Programmazione Fondamenti di Programmazione Ingegneria dell Automazione Industriale Ingegneria Elettronica e delle Comunicazioni Alessandro Saetti Marco Sechi e Andrea Bonisoli (email: alessandro.saetti,marco.sechi,andrea.bonisoli@unibs.it)

Dettagli

Fondamenti di Informatica: Ingegneria Meccanica Prova scritta del 11 aprile 2008

Fondamenti di Informatica: Ingegneria Meccanica Prova scritta del 11 aprile 2008 Fondamenti di Informatica: Ingegneria Meccanica Prova scritta del 11 aprile 2008 Gli studenti dell a.a. 2007-2008 e 2006-2007 (6CFU) devono svolgere i 7 esercizi marcati 6CFU e 3/6 CFU. Gli studenti degli

Dettagli

Liste a puntatori: un esercizio passo passo

Liste a puntatori: un esercizio passo passo Liste a puntatori: un esercizio passo passo Prof. Orazio Mirabella Liste a puntatori: un esercizio passo passo (for dummies) Prof. Orazio Mirabella 1 Ripassiamo le Liste lineari Una lista lineare è una

Dettagli

Esame di Informatica Generale 9 CFU 19 Aprile 2011 Professori: Carulli, Fiorino, Mazzei

Esame di Informatica Generale 9 CFU 19 Aprile 2011 Professori: Carulli, Fiorino, Mazzei 9cfu 19 aprile Soluzioni.doc 1/14 22/04/2011 17.39.25 Esame di Informatica Generale 9 CFU 19 Aprile 2011 Professori: Carulli, Fiorino, Mazzei Docente Risultati Scritto Orali Carulli Me 27/04/11 ore 15:00

Dettagli

Allocazione dinamica della memoria

Allocazione dinamica della memoria Allocazione dinamica della memoria Allocazione statica: limiti Per quanto sappiamo finora, in C le variabili sono sempre dichiarate staticamente la loro esistenza deve essere prevista e dichiarata a priori

Dettagli

Informatica (A-K) 19. Linguaggio C -6

Informatica (A-K) 19. Linguaggio C -6 Informatica (A-K) 19. Linguaggio C -6 Una struttura è un insieme finito di variabili (dette campi) non necessariamente dello stesso tipo, ognuna identificata con un nome l insieme dei campi è denominato

Dettagli

IEIM Esercitazione II Elementi di programmazione C. Alessandro A. Nacci -

IEIM Esercitazione II Elementi di programmazione C. Alessandro A. Nacci - IEIM 2017-2018 Esercitazione II Elementi di programmazione C Alessandro A. Nacci alessandro.nacci@polimi.it - www.alessandronacci.it 1 Esercizio 4 Dati un numero, stampare il primo numero successivo pari

Dettagli

Opinione calcolamedia( ) Opinione inverti( )

Opinione calcolamedia( ) Opinione inverti( ) Materiale di ausilio utilizzabile durante l appello: tutto il materiale è a disposizione, inclusi libri, lucidi, appunti, esercizi svolti e siti Web ad accesso consentito in Lab06. L utilizzo di memorie

Dettagli

Fondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 2A di Mercoledì 13 Gennaio 2010 tempo a disposizione 2h30'

Fondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 2A di Mercoledì 13 Gennaio 2010 tempo a disposizione 2h30' Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit2A.zip contenente i file necessari (solution di VS2008 e progetto compresi). Avvertenze per la consegna: apporre all inizio

Dettagli

Fondamenti di Informatica: Ingegneria Meccanica SOLUZIONI 26 marzo 2008

Fondamenti di Informatica: Ingegneria Meccanica SOLUZIONI 26 marzo 2008 Fondamenti di Informatica: Ingegneria Meccanica SOLUZIONI 26 marzo 2008 Gli studenti dell a.a. 2007-2008 e 2006-2007 (6CFU) devono svolgere i 7 esercizi marcati 6CFU e 3/6 CFU. Gli studenti degli anni

Dettagli

Programmazione I - Laboratorio

Programmazione I - Laboratorio Programmazione I - Laboratorio Esercitazione 6 - Liste Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti di.unipi.it 2. Dipartimento

Dettagli

Laboratorio di Programmazione: Linguaggio C Lezione 21 del 19 maggio 2014

Laboratorio di Programmazione: Linguaggio C Lezione 21 del 19 maggio 2014 Laboratorio di Programmazione: Linguaggio C Lezione 21 del 19 maggio 2014 Damiano Macedonio Esercizio 1 Scrivere una funzione che riceve in ingresso un puntatore ad un array di interi e modifica tale array

Dettagli

Esercitazione 7. Soluzione:

Esercitazione 7. Soluzione: Esercitazione 7 Esercizio 1: Scrivere una funzione ricorsiva che calcoli il MCD di due numeri interi positivi. Ricordare che la funzione MCD(N,M) termina quando N == M e si ritorna N. int MCD(int N, int

Dettagli

Esercitazione 11. Liste semplici

Esercitazione 11. Liste semplici Esercitazione 11 Liste semplici Liste semplici (o lineari) Una lista semplice (o lineare) è una successione di elementi omogenei che occupano in memoria una posizione qualsiasi. Ciascun elemento contiene

Dettagli

Una stringa di caratteri in C è un array di caratteri terminato dal carattere '\0' a p e \0

Una stringa di caratteri in C è un array di caratteri terminato dal carattere '\0' a p e \0 STRINGHE: ARRAY DI CARATTERI Una stringa di caratteri in C è un array di caratteri terminato dal carattere '\0' s a p e \0 0 1 2 3 Un vettore di N caratteri può dunque ospitare stringhe lunghe al più N-1

Dettagli

Lezione IX Gestione dinamica della memoria

Lezione IX Gestione dinamica della memoria Programmazione e Laboratorio di Programmazione Lezione IX Gestione dinamica della memoria Programmazione e Laboratorio di Programmazione: Gestione dinamica della memoria 1 Direttiva per il preprocessore

Dettagli

Stringhe in C. Nicu Sebe. Informatica Nicu Sebe 1 / 14

Stringhe in C. Nicu Sebe. Informatica Nicu Sebe 1 / 14 Stringhe in C Nicu Sebe Informatica Nicu Sebe 1 / 14 Stringhe in C Stringhe: tipo di dato strutturato Sequenze di caratteri Linguaggio C: progettato per la semplicità No supporto nativo per le stringhe

Dettagli

Calcolatori Elettronici Lezione 2 8/10/2012. Emiliano Casalicchio

Calcolatori Elettronici Lezione 2 8/10/2012. Emiliano Casalicchio Calcolatori Elettronici Lezione 2 Emiliano Casalicchio Emiliano.Casalicchio@uniroma2.it Argomenti della lezione Esercitazione collettiva. La lezione si svolge come segue: Docente: Esposizione del problema

Dettagli

Rappresentazione binaria delle variabili (int e char)

Rappresentazione binaria delle variabili (int e char) Rappresentazione binaria delle variabili (int e char) int e char son i due tipi utilizzati dal linguaggio C per la rappresentazione di valori interi; ai valori delle variabili del primo tipo sono assegnati

Dettagli

Esercizi di programmazione in linguaggio C Ricerca

Esercizi di programmazione in linguaggio C Ricerca Esercizi di programmazione in linguaggio C Ricerca Nota: memorizzare i programmi in cartelle separate. Ogni cartella deve contenere, oltre al codice sorgente e al file eseguibile, gli eventuali file di

Dettagli

Corso di Fondamenti di Programmazione canale E-O. Strutture. Strutture. Definizione di strutture (2) Definizione di strutture (1)

Corso di Fondamenti di Programmazione canale E-O. Strutture. Strutture. Definizione di strutture (2) Definizione di strutture (1) Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri Strutture e Unioni DD Cap. 10, pp. 379-391, 405-406 KP Cap. 9, pp. 361-379 Strutture Strutture Collezioni di variabili correlate (aggregati)

Dettagli

accesso * leggiaccessi(char * nomefile, int * dim);

accesso * leggiaccessi(char * nomefile, int * dim); Fondamenti di Informatica L-A (A.A. precedenti al 2008/2009) - Ingegneria Informatica Prof.ssa Mello & Prof. Bellavista Prova d Esame di Martedì 22 Dicembre 2009 durata 2h ESERCIZIO 1 (10 punti) Un'azienda

Dettagli

Lezione 8: Stringhe ed array multidimensionali

Lezione 8: Stringhe ed array multidimensionali Lezione 8: Stringhe ed array multidimensionali Vittorio Scarano Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione AVVISO: la lezione di laboratorio di 28/5 non si

Dettagli