Lab 11 Gestione file di testo"



Documenti analoghi
Esercizio 1. Esercizio 2

Lab 10 Gestione file di testo

Lab 15 Gestione file di testo

Esercizio 1. Esercizio 1 - Soluzione

Lab 09 Gestione file di testo

Problem solving elementare su dati vettoriali

Fondamenti di Informatica 2

Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009. Lab 13 File Binari

Fondamenti di Informatica T-1, 2009/2010 Modulo 2 Prova d Esame 5 di Giovedì 15 Luglio 2010 tempo a disposizione 2h30'

Esercizio 1. Esercizio 1

OTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C

Lab 04 Istruzioni, cicli e array"

APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO XI.2015

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Esame del 3 febbraio 2010

Compito di Fondamenti di Informatica

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

Scrivere uno script php che, dato un array associativo PERSONE le cui chiavi sono i

Gestione dei File in C

RICERCA DI UN ELEMENTO

Alcune regole di base per scrivere un programma in linguaggio C

Esempio: Array di struct

Esercizio 1. Esercizi 5. Esercizio 3. Esercizio 2 CICLI

Le stringhe. Le stringhe

Fondamenti di Informatica T-1, 2010/2011 Modulo 2. Prova d Esame 4A di Martedì 21 Giugno 2011 tempo a disposizione 2h

Moduli (schede compilabili) in Word Esempio: scheda di alimentazione per un degente

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 21 Dicembre 2006

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO V Indice

Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 17 Dicembre 2005

Gestione dei File. dischi nastri cd

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Quotazione compareto( ) Quotazione piurecente( ) Quotazione Quotazione Quotazione non trovato count( )

Introduzione al Linguaggio C

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B

Progettazione di un Database

Funzioni in C. Violetta Lonati

Problem solving avanzato

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante

Programmazione I / Informatica generale Prova scritta 11 Giugno 2008

Esercitazioni di Progettazione del Software. Esercitazione (Prova al calcolatore del 17 settembre 2010)

Esercitazione 1. Sistemi Informativi T. Versione elettronica: L01.2.DDLDMLbase.pdf

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a settembre 2011

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

Politecnico di Torino

Fondamenti di Informatica T-1 Modulo 2. Obiettivo di questa esercitazione. File di testo File binari

Corso di Laurea in Ingegneria Gestionale Esame di Informatica - a.a luglio 2013

Corso di Laurea in Matematica

Esame di Informatica Generale 9 CFU 21 Giugno 2011 Professori: Carulli, Fiorino, Mazzei

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Caratteri e stringhe Esercizi risolti

Laboratorio di Algoritmi e Strutture Dati

Funzioni matlab per la gestione dei file. Informatica B Prof. Morzenti

Corso di Laurea in Ingegneria Gestionale Esame di Informatica a.a giugno 2013

LABORATORIO DI INFORMATICA parte 6 -

Appello di Informatica B

ISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Gestione delle stringhe in C

Record in C: il costruttore struct.

File di testo e file binari Directory

Liberare la memoria allocata dinamicamente.

Compito Basi di Dati. Tempo concesso: 90 minuti 08 Giugno 2006 Nome: Cognome: Matricola:

Scheda operativa Versione rif c00. Libro Inventari

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro)

MOBS Flussi informativi sanitari regionali

Le Basi di Dati. Le Basi di Dati

Guida alla compilazione della scheda di valutazione dei progetti relativi all anno 2011 Fase di valutazione

SERVIZIO DI SUPPORTO ALLE AZIENDE PER LA RICERCA DI PERSONALE

void funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }

MANUALE UTENTE Fiscali Free

ESAME SCRITTO DI ELEMENTI DI INFORMATICA E PROGRAMMAZIONE. 13 Settembre COGNOME E NOME: MATRICOLA: Civile Ambiente e Territorio

Corso sul linguaggio Java

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

Laboratorio di Alfabetizzazione Informatica - Esame 20 settembre 2013.

Algoritmi di Ricerca. Esempi di programmi Java

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

Esercitazione 7. Procedure e Funzioni

OSSIF WEB. Manuale query builder

Indice Configurazione di PHP Test dell ambiente di sviluppo 28

Cos è una stringa (1) Stringhe. Leggere e scrivere stringhe (1) Cos è una stringa (2) DD Cap. 8 pp KP Cap. 6 pp

I file di dati. Unità didattica D1 1

TOP DOWN. Compiti in classe proposti Modulo 1 JUVENILIA SCUOLA. Iacobelli Ajme Marrone

Raccolta dati di qualità commerciale dei servizi di vendita e monitoraggio contratti non richiesti

CONTABILITÀ. Gestione Attività Multipunto. Release 5.20 Manuale Operativo

Stream EDitor (sed) sed NON modifica l'input 2. L'output viene inviato allo standard output e puo' essere rediretto

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

[MANUALE VISUAL BASIC SCUOLA24ORE PROF.SSA PATRIZIA TARANTINO] 14 dicembre 2008

Esercitazione 7 Progettazione concettuale. Versione elettronica: L07.progConcettuale.pdf

MANUALEDIUTILIZZO MODULO CRM POSTVENDITA

STAMPA UNIONE DI WORD

5.3 TABELLE RECORD Inserire, eliminare record in una tabella Aggiungere record Eliminare record

Introduzione alla programmazione in C

Matlab: Gestione avanzata dei file

BOZZA. cin per la comunicazione dal dispositivo di input standard, la tastiera, al programma (stream di input standard)

Transcript:

Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 11 Gestione file di testo" Lab15 1

Esercizio 1 n 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 le scriva nel file di testo. n Il programma termina quando l utente inserisce la parola fine. Si abbbia cura di chiudere il file prima di terminare definitivamente il programma. n Si controlli il corretto funzionamento del programma accedendo direttamente al file di testo con un editor (ad es. Notepad). Lab15 2

#include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { FILE * fp; char s[64]; Esercizio 1 - Soluzione if ((fp=fopen("prova.txt", "w")) == NULL) exit(1); do { scanf("%s", s); if (strcmp("fine", s)!= 0) fprintf(fp, "%s ", s); } while (strcmp("fine", s)!= 0); fclose (fp); } return (0); Lab15 3

Esercizio 2 n Realizzare un modulo tempi.h/tempi.c per la gestione del tempo di giro su un circuito di MotoGP. n Il modulo deve definire (utilizzando la typedef) la struttura Tempo, con i tre campi minuti, secondi, millesimi. n Il modulo deve definire la funzione: int differenza(tempo t1, Tempo t2); Che restituisce (in millesimi) la differenza tra t1 e t2. Lab15 4

Esercizio 2 n Il modulo deve poi definire la funzione: int leggitempi(file* file, Tempo partenza[], Tempo arrivo[]); n Che legge da un file di testo il tempo di partenza e di arrivo di una sequenza di giri e li inserisce nei due arrai partenza e arrivo. La funzione deve restituire il numero di elementi letti. Si supponga che il file di testo contenga una riga per ogni coppia partenza-arrivo, e che minuti, secondi e millesimi siano separati da spazi o tabulazioni. Si supponga che non vi possano essere più di 100 coppie partenza-arrivo. Si supponga che ogni linea contenga sempre 6 campi (min/sec/mill) per le due misure. Lab15 5

Esercizio 2 n Si scriva un programma che legge dal file di testo tempi.txt una serie di tempi di partenza ed arrivo (quindi, di tempi di giro), mediante la funzione leggitempi. n Il programma stampi poi a video il numero di giri effettuati in un tempo inferiore a quello impiegato per il primo giro. Lab15 6

Esercizio 3 Sia dato il file di testo "dati.txt" contenente i dati relativi agli studenti immatricolati al primo anno della Facoltà di Ingegneria In particolare, le informazioni sono memorizzate nel file "dati.txt" come segue: ognuna delle linee del file contiene i dati relativi ad un nuovo studente; in particolare: 1 Matricola: un intero che indica il numero di matricola dello studente 2 CdL: un intero che indica il corso di laurea (CdL) dello studente (es. 2145) Lab15 7

Esercizio 3 Sia dato un secondo file di testo, indirizzi.txt che contiene, invece, l indirizzo di ogni studente, e in particolare, in ogni linea, separati da uno spazio: Matricola: il numero di matricola dello studente (un intero) Nome: il nome dello studente, al più 20 caratteri senza spazi Cognome: il cognome dello studente, al più 30 caratteri senza spazi Città: una stringa che riporta la città di residenza dello studente, al più 30 caratteri senza spazi Lab15 8

Esercizio 3 Definisca il modulo studenti.h/studenti.c, che definisca (mediante typedef) la strutture: - DatiCorso, per contenere le informazioni di dati.txt - DatiIndirizzo, per quelle di indirizzi.txt - DatiStudente, per contenere tutte le informazioni su uno studente. 1. Il modulo deve definire le funzioni: int leggicorsi(file* file, DatiCorso corsi[]); int leggiindirizzi(file* file, DatiIndirizzo indirizzi[]); Per riempire i due vettori dati ed indirizzi da due file di testo (tipo dati.txt ed indirizzi.txt ). Le funzioni restituiscono il numero di elementi letti. Lab15 9

Esercizio 3 Si scriva un programma in linguaggio C che: 1. A partire dai file "dati.txt" e indirizzi.txt costruisca un array T di strutture DatiStudente. Si assuma che non vi siamo mai più di 1000 studenti. 2. A partire dall array T, e dato da input un intero C che rappresenta un CdL, stampi la percentuale di studenti (rispetto al numero totale delle matricole) iscritti al corso C [Ad esempio, se il numero totale delle matricole è 1000, e quello degli studenti iscritti a C è 200, il programma stamperà 20% ] 3. Scriva su un terzo file di testo bologna.txt, nome, cognome e numero di matricola di tutti gli studenti che abitano a Bologna Lab15 10

Esercizio 4 Sono dati due file di testo cineprogramma.txt e sale.txt che contengono, rispettivamente, il programma settimanale dei film in proiezione e le descrizioni delle sale in città. Più precisamente, ogni riga di cineprogramma.txt contiene, nell ordine: titolo del film (non più di 30 caratteri senza spazi), uno e un solo spazio di separazione nome della sala (non più di 20 caratteri senza spazi), uno e un solo spazio di separazione 3 orari di inizio proiezione (3 numeri interi separati da caratteri - ), terminatore di riga mentre ogni riga di sale.txt contiene, nell ordine: nome della sala (non più di 20 caratteri senza spazi), uno e un solo spazio di separazione costo del biglietto (numero reale), terminatore di riga Lab15 11

Esercizio 4 cineprogramma.txt: TheKingdom Nosadella 18-20-22 Dogville Fellini 17-20-22 OttoEMezzo Capitol 17-20-23 BreakingWaves Modernissimo 15-19-23 sale.txt: Capitol 6.00 Fellini 5.50 Modernissimo 6.00 Nosadella 6.50 Lab15 12

Esercizio 4 1) Si scriva una procedura load( ) che riceva come parametri di ingresso due puntatori a file di testo e restituisca come parametri di uscita un vettore y contenente strutture film (titolo film, costo biglietto) e il numero degli elementi N inseriti in y. Per semplicità si supponga che tutte le sale contenute nel primo file siano presenti anche nel secondo, e una sola volta. Si supponga che non vi possano essere più di 100 film e 10 sale. Suggerimento: si definiscano strutture e si riempiano array temporanei per raggiungere l obiettivo. Lab15 13

Esercizio 4 2) Si scriva un programma C che, utilizzando la procedura load( ) precedentemente definita, riempia un vettore prezzi (supposto di dimensione massima DIM=100) di strutture film di cui sopra, derivanti dai file cineprogramma.txt e sale.txt Il programma deve poi stampare a terminale tutti gli elementi di prezzi il cui costo del biglietto è inferiore alla media di tutti i costi caricati nel vettore Lab15 14

Esercizio 5 Sono dati due file di testo anagrafe.txt e fatture.txt che contengono, rispettivamente, i dati anagrafici di alcuni clienti e l elenco delle fatture Più precisamente, ogni riga di anagrafe.txt contiene, nell ordine: Codice Cliente (numero intero), uno e un solo spazio di separazione Nome del cliente (non più di 30 caratteri senza spazi), uno e un solo spazio di separazione Città (non più di 20 caratteri senza spazi), uno e un solo spazio di separazione Ogni cliente compare nel file di anagrafe una ed una sola volta Ogni riga di fatture.txt contiene, nell ordine: Codice Cliente (numero intero), uno e un solo spazio di separazione Numero della fattura (numero intero), uno e un solo spazio di separazione Importo della fattura (numero reale), uno e un solo spazio di separazione Un carattere ( p se la fattura è stata pagata, n altrimenti), terminatore di riga Lab15 15

Esercizio 5 anagrafe.txt: 1 Chesani Bologna 2 Bellavista Bologna 3 Mello Bologna fatture.txt: 1 23 54.00 p 1 24 102.00 n 3 25 27.00 p 1 26 88.00 n Lab15 16

Esercizio 5 1) Si scrivano due funzioni leggiclienti( ) e leggifatture( ) che ricevano ciascuna come parametro di ingresso un puntatore a file di testo e che abbiano due parametri di uscita: a) un vettore y di strutture atte a memorizzare (rispettivamente) clienti e fatture lette dal file di testo; b) il numero di elementi letti. Lab15 17

Esercizio 5 2) Si scriva una funzione contadebiti( ) che riceva come parametri di ingresso due array (rispettivamente di strutture Cliente e Fattura), con le relative dimensioni logiche. La funzione deve avere come parametri di uscita un vettore y contenente strutture Debito (nome cliente, importo) e il numero degli elementi N inseriti in y: questo vettore deve contenere solo i dati relativi a fatture non pagate. Lab15 18

Esercizio 4 3) Si scriva un programma C che, utilizzando le funzioni precedentemente definite, riempia un vettore debitori di strutture debito di cui sopra, derivanti dai file anagrafe.txt e fatture.txt. Si supponga non vi siano più di 100 clienti e 1000 fatture. Il programma stampi poi a video il valore del debito per tutti clienti, quindi chieda all utente il nome di un cliente e stampi il numero di fatture (non pagate) intestate a tale cliente. Lab15 19