Matematica - SMID : Programmazione 16 Febbraio 2004

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Matematica - SMID : Programmazione 16 Febbraio 2004"

Transcript

1 Matematica - SMID : Programmazione 16 Febbraio 2004 Testo e Risposte (in fondo) Esercizio 1 Comprensione codice C (punti 10 in prima approssimazione) Consideriamo il seguente codice C (che non è un buon esempio di codice C!) #include <stdio.h> #define MM 3 #define SUP 8 int r = 2; void pp( ) ; void qq (float *, float) ; main() { FILE * filein; float a = 1.0; float b = 2.0; int prova[sup]; int k; pp( ); printf ("main 1: %d \n", r ) ; qq(&a, b) ; printf ("main 2: %f %f \n", a, b) ; filein = fopen("dati.txt", "r"); /* qui supponiamo che tutto vada bene: il file si apre...*/ for (k =0; k<sup; k++) prova[k] = -3; k = 0; fscanf(filein, "%d", &prova[k]); while ( prova[k] && (k<sup) ) { k++; fscanf(filein, "%d", &prova[k]); } } for (k =0; k<sup; k++) printf ("\n" ); printf ("%d ; ", prova[k]); void pp() { r = r/2 ; printf ("pp: %d \n", r*r*mm ) ; } void qq( float *x, float y) { y = 1.0/y; *x = (*x) * y; printf ("qq: %f %f \n", *x, y ) ; } 2

2 Supponiamo che il file DATI.txt sia: Sul foglio risposte scrivere l'output del programma; tutto l'output, però non state a contare gli spazi bianchi... per la stampa dei float, scrivere nel modo solito (es 3.14, invece di ) Esercizio 2 Progetto di algoritmo (punti 20 in prima approssimazione) Si tratta di progettare un algoritmo che simula un sistema (molto semplice) di vendita all'asta. L'enfasi è sul progetto piu' che sui dettagli; perciò si consiglia di usare pseudo-codice. Lo schema (del funzionamento) dell'algoritmo è il seguente: 1) Inizializzazione ) Carica, da un file di nome OGG, i dati sugli oggetti da vendere all'asta: nome oggetto, prezzo base (intero strettamente positivo). 2.2) Carica, da altro file di nome COMPRA, i dati sulle persone che parteciperanno all'asta (nel seguito, i compratori): per ciascuno, solo un "nome". 3) Per ciascun oggetto da mettere all'asta (in un ordine a piacere): 3.1) annuncia: nome oggetto e prezzo base (semplice messaggio a video); 3.2) interroga (semplice messaggio a video), uno alla volta, sempre nello stesso ordine (scegliete voi...), i compratori; 2 possibili risposte da parte di ciascun compratore (supponiamo che i compratori si alternino alla tastiera...): "nulla", oppure un'offerta; l'offerta, per essere valida, deve essere maggiore o uguale al prezzo base (se è la prima) o maggiore dell'offerta piu' alta registrata fino a quel momento, per quell'oggetto; si va avanti finchè ci sono "rilanci"; appena si verifica che in un "giro completo dei compratori" non ci sono rilanci, allora l'oggetto risulta: "venduto" a chi ha fatto l'offerta piu' alta, oppure invenduto, se nessuno ha fatto offerte valide. 4) Alla fine, l'algoritmo stampa a video: prima l'elenco degli oggetti venduti, con "nome del compratore" e prezzo finale; poi quello degli oggetti invenduti. 3

3 Specifiche sull'algoritmo: L'algoritmo deve seguire (grosso modo) la struttura delineata sopra. La messa all'asta di ciascun oggetto (punti 3.1, 3.2) va demandata ad una procedura o funzione. Non usare "variabili globali". I passaggi di dati tra "main" e procedure e funzioni devono avvenire tramite parametri e il risultato delle funzioni. Si possono usare procedure / funzioni ausiliarie. Per tutto quello che non è precisato nel testo, siete liberi di decidere voi, ma dovete dichiarare le scelte fatte. Domande a) Precisare come sono codificati dati nei due file. b) Precisare le strutture dati principali usate nell'algoritmo. Se non trovo la risposta ad a) e b) non correggo il resto. c) Scrivere, usando lo pseudo-codice utilizzato nelle dispense (oppure il C, ma non ve lo consiglio), l'algoritmo completo, commentando, quando necessario. Non perdere tempo a dettagliare: apertura file, formato nelle istruzioni di input / output,... ed altri aspetti di poco conto. Precisare bene, al contrario: la struttura, il ruolo delle variabili principali, i parametri delle procedure / funzioni... 4

4 Risposta all'esercizio 1: pp: 3 main 1: 1 qq: main 2: ; 9 ; 11 ; -2 ; 0 ; -3 ; -3 ; -3 ; Risposta all'es 2 (una delle tante possibili) a) Il file con gli oggetti è composto da : una prima riga che contiene il numero degli oggetti (e quindi delle righe che seguono), sia numogg tante righe quanti sono gli oggetti, con un nome (stringa di lunghezza al piu' MAXS) ed un intero, il prezzo. Il file dei compratori è strutturato in maniera analoga: prima il numero di compratori, sia numcomp, e poi tante righe con il nome (stringa di lunghezza al piu' MAXS). b) Per immagazzinare i dati relativi agli oggetti ed ai compratori uso due array. L'array compratori è un array di stringhe (i nomi) con indici da 1 a numcomp, i nomi sono nell'ordine in cui compaiono nel file; L'array oggetti è un array di record (di tipo Rogg, vedere oltre) con indici da 1 a numogg, nell'ordine in cui gli oggetti compaiono nel file. I record di tipo Rogg hanno 4 campi: un campo nome (stringa come sopra); un campo base, il prezzo base; un campo offmax che contiene l'offerta massima del momento; inizialmente questo campo viene posto a zero; se anche alla fine è a zero, allora l'oggetto è rimasto invenduto; un campo compratore, che è un intero che punta alla riga dell'array compratori contenente il nome della persona che ha fatto l'offerta massima del momento, inizialmente è posto a zero (anche se non sarebbe necessario...). Non ci sono altre strutture dati significative. c) Qui ho dettagliato tutto; ovviamente non posso pretendere tutto questo dettaglio... 5

5 dichiarazioni comuni a "main" e procedure const MAXS =... type Stringa = array [1.. MAXS] of char type Rogg = record nome : Stringa base, offmax, compratore : integer end "main": dichiarazioni var fileogg, filecomp di tipo "file" numogg, numcomp procedura asta di tipo integer vedere commento nel main e codice in fondo "main": istruzioni apri i file COMPRA e OGG in lettura e legali a filecomp e fileogg, rispettivamente leggi (fileogg, numogg) leggi(filecomp, numcomp) { qui apro un blocco, dove dichiaro i due array e metto il resto dell'algoritmo dichiarazioni compratori: array [1.. numcomp ] of Stringa oggetti: array [ 1.. numogg] of Rogg k : intero serve come indice istruzioni per k = 1, 2,..., numcomp: leggi (filecomp, compratori[k]) per k = 1, 2,..., numogg: leggi (fileogg, oggetti[k].nome, oggetti[k].base) per k = 1, 2,..., numogg: { oggetti[k].offmax 0 ; oggetti[k].compratore 0 } chiudi filecomp e fileogg per k = 1, 2,..., numogg: asta ( k, oggetti, compratori) la procedura asta gestisce completamente la messa all'asta del k-mo oggetto; se l'asta ha successo, modifica l'elemento k-mo dell'array oggetti modificando, correttamente, i campi offmax e compratore scrivi ("Elenco oggetti venduti :") ; vai a capo sull'output per k = 1, 2,..., numogg: if oggetti[k].offmax > 0 then { scrivi ( oggetti[k].nome, oggetti[k].offmax, compratori[oggetti[k].compratore] ) vai a capo sull'output } 6

6 scrivi ("Elenco oggetti invenduti :") ; vai a capo sull'output per k = 1, 2,..., numogg: if oggetti[k].offmax = 0 then { scrivi (oggetti[k].nome) ; vai a capo sull'output } } fine del blocco e del main procedura asta ( index : intero, IN ; ogg : array [ 1.. numogg] of Rogg IN - OUT comp : array [ 1.. numcomp] of Stringhe IN ) dichiarazioni var j : intero per ciclare sui compratori nulla: booleano per segnalare : giro nullo (senza rilanci); off : intero è l'offerta del compratore j-mo ( 0 = nessuna offerta ) istruzioni nulla falso while not nulla do { per j = 1, 2,..., nc : { scrivi ("Il compratore", comp[j], "vuole fare un offerta?") leggi (off) 0 = nessuna offerta if ( ogg[index].maxoff =0 and off >= ogg[index].base ) or ( ogg[index].maxoff >0 and off >ogg[index].maxoff ) then { ogg[index].maxoff off ogg[index].compratore j nulla falso } } chiude il per } chiude il while e termina la procedura 7

Matematica - SMID : Programmazione Giugno 2007 FOGLIO RISPOSTE

Matematica - SMID : Programmazione Giugno 2007 FOGLIO RISPOSTE Matematica - SMID : Programmazione Giugno 2007 FOGLIO RISPOSTE NOME: COGNOME: ============================================================== Esercizio 1 ci sono tante "righe"; non è detto servano tutte...

Dettagli

Matematica - SMID : Programmazione Luglio 2007 FOGLIO RISPOSTE

Matematica - SMID : Programmazione Luglio 2007 FOGLIO RISPOSTE Matematica - SMID : Programmazione Luglio 2007 FOGLIO RISPOSTE NOME: COGNOME: ============================================================== Esercizio 1 ci sono tante "righe"; non è detto servano tutte...

Dettagli

Matematica - SMID : Programmazione 20 Febbraio 2007 FOGLIO RISPOSTE

Matematica - SMID : Programmazione 20 Febbraio 2007 FOGLIO RISPOSTE Matematica - SMID : Programmazione 20 Febbraio 2007 FOGLIO RISPOSTE NOME: COGNOME: ============================================================== Esercizio 1 ci sono tante "righe"; non è detto servano

Dettagli

Matematica - SMID : Programmazione Gennaio 2009 FOGLIO RISPOSTE

Matematica - SMID : Programmazione Gennaio 2009 FOGLIO RISPOSTE Matematica - SMID : Programmazione Gennaio 2009 FOGLIO RISPOSTE NOME: COGNOME: ============================================================== Esercizio 1 ci sono tante "righe"; non è detto servano tutte...

Dettagli

Matematica - SMID : Programmazione 22 Gennaio 2004 Testo e Risposte

Matematica - SMID : Programmazione 22 Gennaio 2004 Testo e Risposte Matematica - SMID : Programmazione 22 Gennaio 2004 Testo e Risposte Esercizio 1 Comprensione codice C (punti 9 in prima approssimazione) Consideriamo il seguente codice C (che non è un buon esempio di

Dettagli

Esame di Programmazione 18 Febbraio 2003 TESTO E RISPOSTE

Esame di Programmazione 18 Febbraio 2003 TESTO E RISPOSTE Esame di Programmazione 18 Febbraio 2003 TESTO E RISPOSTE Esercizio 1 Comprensione codice C (punti 8 in prima approssimazione) Consideriamo il seguente codice C ( NON è un esempio di buon codice C!!! )

Dettagli

Scritto di Algoritmi e s.d. (1o anno) 27 Settembre 2005 RISPOSTE

Scritto di Algoritmi e s.d. (1o anno) 27 Settembre 2005 RISPOSTE Scritto di Algoritmi e s.d. (o anno) 7 Settembre 005 RISPOSTE COGNOME: NOME: Esercizio TOT VOTO Esercizio a stampa: a stampa: Esercizio a) h : b) Il resto su fogli protocollo, ORDINATAMENTE Scritto di

Dettagli

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE NOME: COGNOME: ============================================================== Esercizio 1 ci sono tante "righe"; non è detto servano tutte...

Dettagli

1a Prova parziale di Programmazione 29 Novembre 2002 TESTO E RISPOSTE

1a Prova parziale di Programmazione 29 Novembre 2002 TESTO E RISPOSTE 1a Prova parziale di Programmazione 29 Novembre 2002 TESTO E RISPOSTE Esercizio 1 Comprensione codice C (punti 10 in prima approssimazione) Consideriamo il seguente codice C #include #define

Dettagli

Scritto di Algoritmi e s.d. (1o anno) 5 Luglio 2005

Scritto di Algoritmi e s.d. (1o anno) 5 Luglio 2005 Scritto di Algoritmi e s.d. (1o anno) Luglio 200 Esercizio 1 (punti in prima approssimazione) Consideriamo il seguente codice C: #include #include typedef struct cella * List; struct

Dettagli

Scritto di Algoritmi e s.d. (1o anno) 30 Giugno 2006 RISPOSTE

Scritto di Algoritmi e s.d. (1o anno) 30 Giugno 2006 RISPOSTE Scritto di Algoritmi e s.d. (1o anno) 30 Giugno 2006 RISPOSTE COGNOME: NOME: Esercizio 1 Esercizio 2 se necessario usare anche il retro del foglio 1 Esercizio 3 2 Esercizio 4 3 Esercizio 5 Indicare chiaramente

Dettagli

Prova di Algoritmi e s.d. (1o anno) 17 Settembre TESTO e RISPOSTE

Prova di Algoritmi e s.d. (1o anno) 17 Settembre TESTO e RISPOSTE Prova di Algoritmi e s.d. (1o anno) 17 Settembre 2002 TESTO e RISPOSTE Esercizio 1 (punti 7 in prima approssimazione) Consideriamo alberi binari con insieme dei nodi NODI = N (l'insieme dei naturali).

Dettagli

Scritto di Algoritmi e s.d. (1o anno) 16 Gennaio 2004 TESTO E RISPOSTE

Scritto di Algoritmi e s.d. (1o anno) 16 Gennaio 2004 TESTO E RISPOSTE Scritto di Algoritmi e s.d. (1o anno) 16 Gennaio 2004 TESTO E RISPOSTE Esercizio 1 (punti 1 + 4 in prima approssimazione) Consideriamo il seguente codice C: typedef struct nodo * Alb; struct nodo { int

Dettagli

Esercizi di complessità (presi da scritti di esame)

Esercizi di complessità (presi da scritti di esame) Esercizi di complessità (presi da scritti di esame) Esercizio... (punti 8 in prima approssimazione) L'algoritmo che segue simula un torneo ad "eliminazione diretta"; la procedura elimina, ad ogni passo,

Dettagli

Pag. 1. La formalizzazione dell informazione: Dati e Diagrammi di Flusso. Codifica degli algoritmi

Pag. 1. La formalizzazione dell informazione: Dati e Diagrammi di Flusso. Codifica degli algoritmi 1 Università degli studi di Parma Dipartimento di Ingegneria dell Informazione Informatica a.a. 2012/13 Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni La formalizzazione

Dettagli

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN

Breve Manuale di Riferimento sulla Sintassi Linguaggi C++ e FORTRAN Breve Manuale di Riferimento sulla Sintassi Linguaggi e versione aggiornata al 05/02/2004 Sommario Elementi di Base... 2 Dati, Tipi e Dichiarazioni... 2 Tipi di Dato di Base... 2 Tipi di Dato Strutturati...

Dettagli

Aggregati di dati eterogenei: il tipo struct. Esercizi risolti

Aggregati di dati eterogenei: il tipo struct. Esercizi risolti Esercizi risolti 1 Esercizio Si vuole realizzare un tipo utilizzato per informazioni su operazioni di vendita, avente i seguenti campi: codice: numero intero indicante il codice di riferimento dell articolo

Dettagli

Prova di Algoritmi e s.d. (1o anno) 7 Febbraio TESTO e RISPOSTE

Prova di Algoritmi e s.d. (1o anno) 7 Febbraio TESTO e RISPOSTE Prova di Algoritmi e s.d. (1o anno) 7 Febbraio 2003 TESTO e RISPOSTE Esercizio 1 (punti 5 in prima approssimazione) Consideriamo alberi binari con insieme dei nodi NODI = N (l'insieme dei naturali). Riportiamo

Dettagli

Scritto di Algoritmi e s.d. (1o anno) 14 Luglio 2004 TESTO e RISPOSTE (in fondo)

Scritto di Algoritmi e s.d. (1o anno) 14 Luglio 2004 TESTO e RISPOSTE (in fondo) Scritto di Algoritmi e s.d. (1o anno) 14 Luglio 2004 TESTO e RISPOSTE (in fondo) Esercizio 1 (punti 4 in prima approssimazione) Consideriamo il seguente codice C: typedef struct nodo * Alb; struct nodo

Dettagli

La formalizzazione dell informazione: Dati e Diagrammi di Flusso

La formalizzazione dell informazione: Dati e Diagrammi di Flusso La formalizzazione dell informazione: Dati e Diagrammi di Flusso Codifica degli algoritmi Algoritmo formulato per essere comunicato tra esseri umani chiaro, sintetico e intuitivo codificato in linguaggi

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

2 Operatori matematici e costrutto if

2 Operatori matematici e costrutto if Questa dispensa propone esercizi sulla scrittura di algoritmi, in linguaggio C, utili alla comprensione delle operazioni tra numeri e del costrutto condizionale if. Si introducono anche le due funzioni

Dettagli

Introduzione alla programmazione in linguaggio C

Introduzione alla programmazione in linguaggio C Introduzione alla programmazione in linguaggio C Il primo programma in C commento Header della libreria Funzione principale Ogni istruzione in C va terminata con un ; Corso di Informatica AA. 2007-2008

Dettagli

RELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA

RELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA RELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA Anno scolastico Lab informatica AULA n 35 Data inizio svolgimento Progr. relazione primo trimestre secondo pentamestre Cognome e Nome DATI DELLO STUDENTE

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

Introduzione al C. Lez. 1 Elementi

Introduzione al C. Lez. 1 Elementi Introduzione al C Lez. 1 Elementi Introduzione al C Strumento che adotteremo in queste esercitazioni per implementare e testare gli algoritmi visti a lezione Configurazione minimale suggerita: Editing

Dettagli

Codice Gray. (versione Marzo 2007)

Codice Gray. (versione Marzo 2007) Codice Gray (versione Marzo 27) Data una formula booleana con n variabili, per costruire una tavola di verità per questa formula è necessario generare tutte le combinazioni di valori per le n variabili.

Dettagli

Programmazione di base

Programmazione di base Fondamenti di Informatica Quinto Appello 016-1 1 Luglio 01 Rispondi alle domande negli appositi spazi. I punti assegnati per ogni domanda sono indicati nel riquadro a lato. L'esame contiene 10 domande,

Dettagli

Esercitazioni di Fondamenti di Informatica - Lez. 4 23/10/2018

Esercitazioni di Fondamenti di Informatica - Lez. 4 23/10/2018 Esercitazioni di Fondamenti di Informatica - Lez. 4 2/0/20 Esercizi sui tipi in C I codici e le soluzioni degli esercizi sono nella cartella parte. Dato il seguente codice, trovare gli errori, correggerli

Dettagli

Il linguaggio C. Notate che...

Il linguaggio C. Notate che... Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione

Dettagli

Dati due punti sul piano calcolare la loro distanza

Dati due punti sul piano calcolare la loro distanza Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12

Dettagli

Programmazione in Java e gestione della grafica. Lezione 6

Programmazione in Java e gestione della grafica. Lezione 6 Programmazione in Java e gestione della grafica Lezione 6 La scorsa lezione.. Operatori incremento/decremento ++ -- Istruzione while Riscritto programmi precedenti usando istruzione while Esercizio della

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

Esercitazione 4. Comandi iterativi for, while, do-while

Esercitazione 4. Comandi iterativi for, while, do-while Esercitazione 4 Comandi iterativi for, while, do-while Comando for for (istr1; cond; istr2) istr3; Le istruzioni vengono eseguite nel seguente ordine: 1) esegui istr1 2) se cond è vera vai al passo 3 altrimenti

Dettagli

Introduzione al C. Lezione 1 Elementi. Rossano Venturini. Pagina web del corso

Introduzione al C. Lezione 1 Elementi. Rossano Venturini. Pagina web del corso Introduzione al C Lezione 1 Elementi Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Lezioni di ripasso C Mercoledì 19 Giovedì

Dettagli

Introduzione al C. Lez. 1 Elementi. Rossano Venturini

Introduzione al C. Lez. 1 Elementi. Rossano Venturini Introduzione al C Lez. 1 Elementi Rossano Venturini rossano.venturini@isti.cnr.it URL del corso http://www.cli.di.unipi.it/doku/doku.php/informatica/all-b/start Lezioni - Lunedì 16-18 Aula M - Martedì

Dettagli

Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol.

Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol. Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione prof. Lorenzo Porcelli e mail: genna18@iol.it sito: users.iol.it/genna18 Risoluzione di un problema Dato

Dettagli

Quicksort e qsort() Alessio Orlandi. 28 marzo 2010

Quicksort e qsort() Alessio Orlandi. 28 marzo 2010 Quicksort e qsort() Alessio Orlandi 28 marzo 2010 Intro Quicksort è l algoritmo di ordinamento più implementato, insieme con Mergesort. Tutte le librerie standard UNIX ne prevedono una implementazione.

Dettagli

Esercitazione 2. Espressioni booleane Il comando if-else

Esercitazione 2. Espressioni booleane Il comando if-else Esercitazione 2 Espressioni booleane Il comando if- Espressioni booleane L espressione (i==100) è un espressione booleana. La sua valutazione può restituire solo uno dei due valori booleani true = 1 (in

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

PROGRAMMAZIONE: Le strutture di controllo

PROGRAMMAZIONE: Le strutture di controllo PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l

Dettagli

Elementi di Informatica A. A. 2016/2017

Elementi di Informatica A. A. 2016/2017 Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Programmazione C++ Parte 1

Dettagli

GESTIONE DEI FILE IN C. Docente: Giorgio Giacinto AA 2008/2009

GESTIONE DEI FILE IN C. Docente: Giorgio Giacinto AA 2008/2009 Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

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

Introduzione al C. Lez. 1 Elementi. Rossano Venturini

Introduzione al C. Lez. 1 Elementi. Rossano Venturini Introduzione al C Lez. 1 Elementi Rossano Venturini rossano@di.unipi.it Pagine del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start http://algoritmica.spox.spoj.pl/alglab2013 Lezioni

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica CdL in Matematica e CdL in Matematica per le Applicazioni Prof. G. Nicosia Dipartimento di Matematica e Informatica Facoltà di Scienze MM.FF.NN. Università degli Studi di Catania A.

Dettagli

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt); Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i

Dettagli

RICORSIONE, PUNTATORI E ARRAY. Quarto Laboratorio

RICORSIONE, PUNTATORI E ARRAY. Quarto Laboratorio RICORSIONE, PUNTATORI E ARRAY Quarto Laboratorio 16 DICEMBRE 2011 SCADENZA TERZA ESERCITAZIONE FUNZIONI RICORSIVE ESERCIZIO Scrivere una funzione ricorsiva che, assegnati due interi N1 ed N2, restituisca

Dettagli

NOTA: I codici proposti sono solo una delle possibile soluzioni, non sono da intendersi come unica soluzione possibile o corretta

NOTA: I codici proposti sono solo una delle possibile soluzioni, non sono da intendersi come unica soluzione possibile o corretta Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 26 Novembre 2014 Tema d esame B COGNOME E NOME MATRICOLA Spazio riservato ai docenti Il presente plico contiene

Dettagli

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi

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

Array. Aggragati di variabili omogenee...

Array. Aggragati di variabili omogenee... Array Aggragati di variabili omogenee... Cosa è un array È un insieme di variabili omogenee identificato da un indice, ad esempio Se devo leggere 1 numeri dallo standard input e memorizzarli all'interno

Dettagli

Cosa serve per cominciare?

Cosa serve per cominciare? Cosa serve per cominciare? La linea di comando Il notepad (o equivalente) Saper scrivere qualcosa a video da programma risultato dell elaborazione elaborazione Ma come si fa?! 1 Input / Output L'immissione

Dettagli

Programmazione di base

Programmazione di base Fondamenti di Informatica Quarto Appello 016-17 4 luglio 017 Rispondi alle domande negli appositi spazi. I punti assegnati per ogni domanda sono indicati nel riquadro a lato. L'esame contiene 10 domande,

Dettagli

Selezioni scolastiche 2018

Selezioni scolastiche 2018 Selezioni scolastiche 2018 Come funziona lo pseudocodice Lo Staff 4 novembre 2018 Da questa edizione delle fasi scolastiche delle Olimpiadi Italiane di Informatica nella sezione Problemi di Programmazione

Dettagli

2a Prova parziale di Algoritmi e s.d. (1o anno) 13 Giugno 2002 TESTO E RISPOSTE. ATTENZIONE: questa e` una delle varianti...

2a Prova parziale di Algoritmi e s.d. (1o anno) 13 Giugno 2002 TESTO E RISPOSTE. ATTENZIONE: questa e` una delle varianti... 2a Prova parziale di Algoritmi e s.d. (1o anno) 13 Giugno 2002 TESTO E RISPOSTE ATTENZIONE: questa e` una delle varianti... Esercizio 1 (punti 3 + 1 per chi si e` accorto dell'errore...e) Consideriamo

Dettagli

NOTA: I codici proposti sono solo una delle possibile soluzioni, non sono da intendersi come unica soluzione possibile o corretta

NOTA: I codici proposti sono solo una delle possibile soluzioni, non sono da intendersi come unica soluzione possibile o corretta Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 26 Novembre 2014 Tema d esame A COGNOME E NOME MATRICOLA Spazio riservato ai docenti Il presente plico contiene

Dettagli

Lezione 4: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive (2p) Venerdì 7 Ottobre 2009

Lezione 4: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive (2p) Venerdì 7 Ottobre 2009 Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria Meccanica & Ingegneria Gestionale Mat. Pari Docente : Ing. Secondulfo Giovanni Anno Accademico 2009-2010 Lezione 4: La

Dettagli

Informatica (A-K) 5. Algoritmi e pseudocodifica

Informatica (A-K) 5. Algoritmi e pseudocodifica Vettori e matrici #1 Informatica (A-K) 5. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

L AMBIENTE CODE BLOCKS E L IO

L AMBIENTE CODE BLOCKS E L IO L AMBIENTE CODE BLOCKS E L IO Il primo programma #include main() { printf("ciao Mondo!"); } Il file deve essere salvato con estensione.c Il primo programma in C++ #include using

Dettagli

Lab 16 Gestione file binari"

Lab 16 Gestione file binari Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 16 Gestione file binari" Lab16 1 Esercizio 1" n Un registratore di cassa registra su di un file binario alcuni

Dettagli

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

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

TIPI DI DATO. T = { D, {F 1,...,F n }, {P 1,...,P m } } Un tipo di dato T è definito come:

TIPI DI DATO. T = { D, {F 1,...,F n }, {P 1,...,P m } } Un tipo di dato T è definito come: TIPI DI DATO Un tipo di dato T è definito come: un dominio di valori, D un insieme di funzioni F 1,..,F n sul dominio D un insieme di predicati P 1,..,P m sul dominio D T = { D, {F 1,...,F n }, {P 1,...,P

Dettagli

Informatica per Statistica Riassunto della lezione del 17/10/2012

Informatica per Statistica Riassunto della lezione del 17/10/2012 Informatica per Statistica Riassunto della lezione del 17/10/2012 Igor Melatti Altri costrutti del linguaggio C: dichiarazioni di array e istruzioni Si consideri il programma C di Figura 1 è un implementazione

Dettagli

Laboratorio di Informatica I

Laboratorio di Informatica I Struttura della lezione Lezione 3: Istruzioni ed operatori booleani. Vittorio Scarano Corso di Laurea in Informatica Università di Salerno Soluzioni agli esercizi Istruzioni (statement) semplici e di controllo

Dettagli

Informatica A (per gestionali) A.A. 2004/2005. Esercizi C e diagrammi a blocchi. Preparazione prima prova intermedia

Informatica A (per gestionali) A.A. 2004/2005. Esercizi C e diagrammi a blocchi. Preparazione prima prova intermedia Informatica A (per gestionali) A.A. 2004/2005 Esercizi C e diagrammi a blocchi Preparazione prima prova intermedia Indice 1 Array... 3 1.1 Filtraggio...3 1.2 Trasformazione...3 2 Struct e array... 5 2.1

Dettagli

Lab 04 Programmazione Strutturata"

Lab 04 Programmazione Strutturata Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 04 Programmazione Strutturata" Lab04 1 Valutazione in cortocircuito (1)" In C, le espressioni booleane sono valutate

Dettagli

Università degli Studi di Ferrara

Università degli Studi di Ferrara Università degli Studi di Ferrara Corso di Laurea in Matematica - A.A. 2018-2019 Programmazione Lezione 12 Esercizi in C Docente: Michele Ferrari - michele.ferrari@unife.it Nelle lezioni precedenti Abbiamo

Dettagli

Qualsiasi programma in C++ segue lo schema:

Qualsiasi programma in C++ segue lo schema: Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni

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

Programmazione in Java (I modulo)

Programmazione in Java (I modulo) Programmazione in Java (I modulo) Lezione 14: ALGORITMI di ordinamento di array RICERCA sequenziale e binaria Array bidimensionali (matrici) Passaggio di argomenti al main Operazioni su array Un array

Dettagli

Programmazione Appello d esame del 18 giugno 2010 Compito B

Programmazione Appello d esame del 18 giugno 2010 Compito B Programmazione Appello d esame del 18 giugno 2010 Compito B PARTE 0 (propedeutica) Esercizio 0.1 Descrivere il costrutto DOWHILE (sintassi e funzionamento) e darne il diagramma di flusso. Il costrutto

Dettagli

STRUTTURA DI UN ALGORITMO 1) LIBRERIE. 2) EVENTUALI COMMENTI // testo

STRUTTURA DI UN ALGORITMO 1) LIBRERIE. 2) EVENTUALI COMMENTI // testo STRUTTURA DI UN ALGORITMO 1) LIBRERIE #include #include include le funzioni di input/output include funzioni di base (pausa...) 2) EVENTUALI COMMENTI // testo 3) MAIN (corpo dell'algoritmo

Dettagli

Università degli Studi di Ferrara

Università degli Studi di Ferrara Università degli Studi di Ferrara Corso di Laurea in Matematica - A.A. 2018 2019 Programmazione Lezione 8 Esercizi in C Docente: Michele Ferrari - michele.ferrari@unife.it Informazioni Docente di supporto

Dettagli

Laboratorio di Programmazione(corso A) Laurea in Informatica - A.A. 2000/2001 Docente: A. Lanza

Laboratorio di Programmazione(corso A) Laurea in Informatica - A.A. 2000/2001 Docente: A. Lanza Laboratorio di Programmazione(corso A) Laurea in Informatica - A.A. 2000/2001 Docente: A. Lanza 1.1. Introduzione al linguaggio Pascal Struttura di programma Elementi lessicali: le parole riservate e gli

Dettagli

Struttura di un. Struttura dei programmi C

Struttura di un. Struttura dei programmi C Parte 4 Struttura di un Programma Struttura dei programmi C Un programma C deve essere contenuto in uno o più file (salvo diversa specifica, per ora si assume in un file): 1. Una parte contenente direttive

Dettagli

dott. Sabrina Senatore

dott. Sabrina Senatore dott. Sabrina Senatore Dipartimento di Informatica Riepilogo strutture 1 Sintassi della dichiarazione: typedef struct nome_tipo { Dichiarazione dei campi nome_tipo; typedef struct point{ int x; int y;

Dettagli

Parte Input e output in linguaggio i C. 3. Programmazione strutturata 1 (if, switch, comunque segnalare dei warning

Parte Input e output in linguaggio i C. 3. Programmazione strutturata 1 (if, switch, comunque segnalare dei warning Obiettivi di questa esercitazione Fondamenti di Informatica T-1 Parte 2 Laboratorio 01 1. Input e output in linguaggio i C 2. Espressioni 3. Programmazione strutturata 1 (if, switch, do while) 1 2 Warning

Dettagli

Algoritmi di ordinamento: Array e ricorsione

Algoritmi di ordinamento: Array e ricorsione Laboratorio di Algoritmi e Strutture Dati Aniello Murano http://people.na.infn.it people.na.infn.it/~murano/ 1 Algoritmi di ordinamento: Array e ricorsione 2 1 Indice Algoritmi di ordinamento: Insertion

Dettagli

1 Operatori matematici e costrutto if

1 Operatori matematici e costrutto if Questa dispensa propone esercizi sulla scrittura di algoritmi, in linguaggio C, utili alla comprensione delle operazioni tra numeri e del costrutto condizionale if. Si introducono anche le due funzioni

Dettagli

Strutture di controllo in C. Strutture di controllo in C -- Flow Chart --

Strutture di controllo in C. Strutture di controllo in C -- Flow Chart -- -- Flow Chart -- Corso di Informatica A Vito Perrone 1 Indice Rappresentazione degli algoritmi tramite flow chart Istruzione La parte dichiarativa L I/O Primi esempi che girano 2 Codifica degli algoritmi

Dettagli

int ninv; /* numero di inventario */

int ninv; /* numero di inventario */ 1) Scrivere il programma C che legga da un file di testo ("dati.dat") i record con dati relativi ad un archivio di dischi (utilizzando la struttura data) e scriva il file dati1.dat con i nomi degli artisti

Dettagli

Informatica per Statistica Riassunto della lezione del 21/10/2011

Informatica per Statistica Riassunto della lezione del 21/10/2011 Informatica per Statistica Riassunto della lezione del 1/10/011 Igor Melatti Costrutti del linguaggio C: ripasso Si consideri il programma C alla Figura 1 ci sono due dichiarazioni di funzioni, insertion

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Strutture di Controllo Parte 4 Conclusioni G. Mecca M. Samela Università della Basilicata Strutture di Controllo >> Sommario Sommario Ricapitolazione Alcune

Dettagli

Un esempio per cominciare. Inizio e fine di un programma. La somma di 3 numeri PASCAL ANSI C. Regole sintattiche

Un esempio per cominciare. Inizio e fine di un programma. La somma di 3 numeri PASCAL ANSI C. Regole sintattiche Un esempio per cominciare La somma di 3 numeri Vs ANSI PROGRAM SOMMA; VAR A,B,,d:REAL; BEGIN (* Inizializzazione di A,B, *) READLN(); A:5.; B:7.; (* alcolo della somma tra A,B e *) d:a+b+; (* Stampa del

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

PRIMA PROVA INTERMEDIA DEL MODULO DI

PRIMA PROVA INTERMEDIA DEL MODULO DI PRIMA PROVA INTERMEDIA DEL MODULO DI MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI ESERCIZIO 1 (4 punti) L espressione booleana F = A + B ha un espressione equivalente

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Dettagli

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Puntatori. Marco D. Santambrogio Ver. aggiornata al 20 Aprile 2016

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Puntatori. Marco D. Santambrogio Ver. aggiornata al 20 Aprile 2016 Puntatori Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 20 Aprile 2016 Come rappresento un pixel? Il pixel è Il colore Come ottengo il verde? Con il formato RGB R: 91 G: 191 B:

Dettagli

Tipi strutturati in C. Stringhe

Tipi strutturati in C. Stringhe Tipi strutturati in C Stringhe Stringhe Una stringa di caratteri in C è un array di caratteri terminato dal carattere \0 Un vettore di N caratteri può dunque ospitare stringhe lunghe al più N-1 caratteri,

Dettagli

Input / Output. Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard

Input / Output. Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard Stdio.h Input / Output Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard Sia i file che i dispositivi (tastiera, schermo...) sono visti come

Dettagli

Informatica/ Ing. Meccanica e Ing. Edile/ Prof. Verdicchio/ 16/07/2013 / Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica e Ing. Edile/ Prof. Verdicchio/ 16/07/2013 / Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica e Ing. Edile/ Prof. Verdicchio/ 16/07/2013 / Foglio delle domande / VERSIONE 1 1) In un diagramma di flusso, la rappresentazione di un ciclo WHILE include sicuramente almeno:

Dettagli

Corso sul linguaggio C

Corso sul linguaggio C Corso sul linguaggio C Modulo 1 1.1 Istruzioni semplici 1 Prerequisiti Saper progettare algoritmi Saper descrivere algoritmi (NLS, ddf) Conoscere il concetto di espressione 2 1 Introduzione In questa lezione

Dettagli

Università degli Studi di Verona. Esercizi. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie

Università degli Studi di Verona. Esercizi. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie Università degli Studi di Verona Dipartimento di Biotecnologie Laurea in Biotecnologie Corso di Informatica 2014/2015 Esercizi Gennaio 2015 - Sergio Marin Vargas Scrivere un programma Una volta che avete

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