Esercizi. Codifica file di testo
|
|
- Paolina Longo
- 8 anni fa
- Visualizzazioni
Transcript
1 Politecnico di Milano Esercizi Esercizi di riepilogo sul linguaggio C: file, puntatori, liste Codifica file di testo Utilizzando la codifica di Cesare, scrivere un programma in grado di criptare e decriptare un file di testo Il programma chiederà all utente il nome del file da elaborare, il nome del file in cui scrivere il risultato, l operazione da effettuare (codifica o decodifica) ed il codice
2 #include <stdio.h> #include <string.h> Codifica file di testo const unsigned int CRIPTA = 0; const unsigned int DECRIPTA = 1; void codificacesare (char *car, unsigned int k, unsigned int azione) int temp; Codifica file di testo if (azione == CRIPTA) *car = *car - 'a'; temp = *car + k; if (temp < 26) *car = temp; else *car = temp - 26; *car = *car + 'a';
3 Codifica file di testo else /* decripta */ *car = *car - 'a'; temp = *car - k; if (temp >= 0) *car = temp; else *car = temp + 26; *car = *car + 'a'; Codifica file di testo void codificafile(char nfilein[], char nfileout[], unsigned int cod, unsigned int oper) FILE *filein, *fileout; char car; filein = fopen (nfilein, "r"); fileout = fopen (nfileout, "w"); fscanf (filein, "%c", &car); while (!feof(filein)) codificacesare (&car, cod, oper); fprintf (fileout, "%c", car); fscanf (filein, "%c", &car); fclose (filein); fclose (fileout);
4 Codifica file di testo void main() char nomefilein[100], nomefileout[100]; unsigned int codice, operazione; printf ("File input: "); scanf ("%s", nomefilein); printf ("File output: "); scanf ("%s", nomefileout); printf ("Codice: "); scanf ("%u", &codice); printf ("0=cripta, 1=decripta: "); scanf ("%u", &operazione); codificafile (nomefilein, nomefileout, codice, operazione); Elimina tag HTML Il programma legge un file di testo contenente una pagina HTML, elimina i tag presenti e salva il testo in un altro file. I tag scartati saranno visualizzati sul monitor. Miglioramenti: Scrivere solo il testo che si trova in <body> </body> Scrivere i tag in modo più leggibile: uso sotto l altro con i simboli < e > - 8-4
5 #include <stdio.h> Elimina tag HTML void eliminatag (char nomefilehtml[], char nomefiletesto[]) typedef enum tag, testo, errore TipoStato; FILE *dochtml, *doctesto; char car; TipoStato stato = testo; dochtml = fopen (nomefilehtml, "r"); if (dochtml == NULL) printf ("File %s non trovato\n", nomefilehtml); return; Elimina tag HTML doctesto = fopen (nomefiletesto, "w"); fscanf (dochtml, "%c", &car); while (!feof(dochtml) && stato!= errore) if (stato == testo) switch (car) case '<': stato = tag; break; case '>': stato = errore; break; default: fprintf (doctesto, "%c", car); break;
6 Elimina tag HTML else if (stato == tag) switch (car) case '<': stato = errore; break; case '>': stato = testo; break; default: printf ("%c", car); break; fscanf (dochtml, "%c", &car); fclose (doctesto); fclose (dochtml); Elimina tag HTML void main() char nomefilehtml[255], nomefiletesto[255]; printf ("Nome file HTML: "); scanf ("%s", nomefilehtml); printf ("Nome file testo: "); scanf ("%s", nomefiletesto); eliminatag (nomefilehtml, nomefiletesto);
7 Archivio film Il programma dovrà permettere all utente, tramite un menù, di gestire un archivio di film Dovranno essere disponibili le seguenti operazioni: 1. L utente inserisce un certo numero di film: Codice identificativo numerico e titolo (senza spazi) L inserimento della lista di film è terminato immettendo uno codice pari a zero 2. L utente inserisce un codice e l elaboratore verifica se il corrispondente film è presente nel file (ed in questo caso ne scrive i dati sul monitor) Utilizzare l algoritmo di ricerca binaria e l algoritmo bubble-sort E se usassimo l ordinamento per inserzione? Archivio film: ricerca binaria Valore della variabile inizio Valore della variabile medio Valore della variabile fine Posizione iniziale all apertura del file Posizione dopo fseek() archivio = fopen ("pippo", "rb"); fseek (archivio, -sizeof(film), SEEK_END); inizio = 0; fine = ftell(archivio) / sizeof(film); medio = (inizio + fine) / 2;
8 Archivio film #include <stdio.h> typedef struct unsigned int codice; char titolo[100]; Film; void ordina (char nomefile[]) typedef enum falso, vero Booleano; FILE *archivio; Film filmcorrente, filmsuccessivo; unsigned int numfilm, i; Booleano scambio; Archivio film /* "r+b" permette di leggere/scrivere su file binario esistente */ archivio = fopen (nomefile, "r+b"); fseek (archivio, -sizeof(film), SEEK_END); /* calcola numero di film inseriti nel file */ numfilm = ftell (archivio) / sizeof(film) + 1 ; do scambio = falso; /* si riporta a inizio file */ fseek (archivio, 0, SEEK_SET);
9 Archivio film for (i = 0; i < numfilm - 1; i++) fread (&filmcorrente, sizeof(film), 1, archivio); fread (&filmsuccessivo, sizeof(film), 1, archivio); if (filmcorrente.codice > filmsuccessivo.codice) /* sposta testina due record all'indietro */ fseek(archivio,-2*sizeof(film), SEEK_CUR); fwrite (&filmsuccessivo, sizeof(film),1, archivio); Archivio film fwrite (&filmcorrente, sizeof(film), 1, archivio); scambio = vero; while (scambio); fclose (archivio);
10 Archivio film void inserisci (char nomefile[]) FILE *archivio; Film nuovofilm; /* apertura file per scrivere in append */ archivio = fopen (nomefile, "ab"); printf ("Codice film diverso da 0: "); scanf ("%u", &nuovofilm.codice); if (nuovofilm.codice!= 0) printf ("Titolo film: "); scanf ("%s", nuovofilm.titolo); Archivio film while (nuovofilm.codice!= 0) fwrite (&nuovofilm, sizeof(nuovofilm), 1, archivio); printf ("Codice film diverso da 0: "); scanf ("%u", &nuovofilm.codice); if (nuovofilm.codice!= 0) printf ("Titolo film: "); scanf ("%s", nuovofilm.titolo); fclose (archivio); ordina (nomefile); /* riordina tutto il file */
11 Archivio film void cerca (char nomefile[]) typedef enum falso, vero Booleano; Booleano trovato = falso; FILE *archivio; Film filmcorrente; unsigned int codcercato; int inizio, fine, medio; printf ("Codice cercato: "); scanf ("%u", &codcercato); archivio = fopen (nomefile, "rb"); inizio = 0; fseek (archivio, -sizeof(film), SEEK_END); fine = ftell (archivio) / sizeof(film); Archivio film do medio = (inizio + fine) / 2; fseek (archivio, medio * sizeof(film), SEEK_SET); fread (&filmcorrente, sizeof(filmcorrente), 1, archivio); if (codcercato < filmcorrente.codice) fine = medio - 1; else if (codcercato > filmcorrente.codice) inizio = medio + 1;
12 Archivio film else trovato = vero; while (!trovato && inizio <= fine); if (trovato) printf ("Trovato in posiz: %u\n", medio); printf("codice: %u\n",filmcorrente.codice); printf("titolo: %s\n",filmcorrente.titolo); else printf ("Non trovato!\n"); fclose (archivio); Archivio film unsigned int menu () unsigned int scelta; printf ("1. Inserisci elenco film\n"); printf ("2. Cerca film\n"); printf ("3. Esci\n"); printf ("\nscelta: "); scanf ("%u", &scelta); return scelta;
13 Archivio film void main() char nomearchivio[] = "numeri.dat"; unsigned int n; do n = menu(); switch (n) case 1: inserisci (nomearchivio); case 2: while (n!= 3); break; cerca (nomearchivio); break; Riepilogo sui file Le funzioni fscanf(), fread(), fprintf(), fwrite() leggono/scrivono a partire dalla posizione corrente della testina all interno del file Dopo l operazione, la testina si sposta in avanti di una quantità di byte pari al numero di byte letti/scritti Il tipo del dato letto dal file deve essere in accordo con quanto la funzione si aspetta: Se un file contiene una stringa e lo leggo con: fscanf (file, "%d", &varintera); la variabile varintera conterrà un valore scorretto! Idem per quanto riguarda fread()
14 Riepilogo sui file Uso di sizeof() con fread() e fwrite(): Quando leggo/scrivo variabili che non siano vettori, uso il nome della variabile: int v; fread (&v, sizeof(v), 1, ilfile); Quando leggo/scrivo variabili vettore, uso: Il nome della variabile, per leggere/scrivere tutto il vettore in un colpo solo: int vet[10]; fread (vet, sizeof(vet), 1, ilfile); Il nome del tipo, per leggere/scrivere solo una cella del vettore: int vet[10], i = 0; fread (&vet[i], sizeof(int), 1, ilfile); Riepilogo sui file File di testo o binari? Quando è richiesto di leggere/scrivere delle variabili strutturate, si usano i file binari Quando è richiesto di spostarsi all interno del file (fseek()), si usano i file binari Quando è richiesto di leggere/scrivere stringhe di caratteri, si usano (tipicamente) file di testo Quando scrivo con fprintf(), leggo con fscanf(), quando scrivo con fwrite(), leggo con fread()
15 Puntatori char *p, s[]= xyz ; p = s; p x y z \0 s int *p2; p2 = 23; oppure int *p3; *p3 = 23; oppure int *p4, var; p4 = &var; *p4 = 23; p2 p p3 99 Es. di valore casuale 23 var Indirizzo: 23? Indirizzo: Puntatori Dato il seguente frammento di programma C: int *p1, *p2, x, y; x = 10; y = 20; p1 = &x; p2 = p1; *p1 = 5; p2 = &y; y = 30; *p2 = *p1 + *p2; *p1 = *p1 + x; Disegnare il valore di tutte le variabili al termine dell esecuzione di ogni riga. Le variabili x e y si trovano, rispettivamente, nelle celle di memoria di indirizzo 1000 e
16 Puntatori int *p1, *p2, x, y; x = 10; y = 20; p1 = &x; p2 = p1; p1 x y p2????? 10??? 10 20? ? Puntatori *p1 = 5; p2 = &y; y = 30; *p2 = *p1 + *p2; *p1 = *p1 + x; p1 x y p
17 Le liste dinamiche Le liste dinamiche: operazioni tipiche Inserimento di un elemento: In testa alla lista In coda alla lista In un punto generico (equivale ad inserire in testa ad una sotto-lista) Cancellazione di un elemento: Dalla testa Dalla coda Da un punto generico (equivale a cancellare la testa di una sotto-lista) Cancellazione totale della lista Ricerca Stampa della lista Ordinamento
18 Le liste dinamiche: definizione #include <stdio.h> #include <stdlib.h> struct Elem int dato; struct Elem *prox; ; typedef struct Elem ElementoLista; typedef ElementoLista *Lista; Le liste dinamiche: libreria di funzioni Lista inserisciintesta (Lista lista, int dato); Lista inserisciincoda (Lista lista, int dato); Lista cancellatesta (Lista lista); Lista cancellacoda (Lista lista); Lista cancellalista (Lista lista); Lista cercainlista (Lista lista, int dato); void scrivilista (Lista lista); In un caso reale, sostituirò int con il tipo che mi interessa Per esempio, potrei definire il tipo CartaIdentita e costruire quindi un lista di carte di identità
19 Le liste dinamiche: il main void main() unsigned int num, i; int d, cercato; Lista lamialista, elem; /* Nessuna limitazione a priori! */ printf ("Quanti dati? "); scanf ("%u", &num); for (i = 0; i < num; i++) printf ("Dato: "); scanf ("%d", &d); lamialista=inserisciincoda(lamialista,d); printf ("Dato da cercare: "); scanf ("%d", &cercato); Le liste dinamiche: il main scrivilista(lamialista); elem = cercainlista (lamialista, cercato); if (elem!= NULL) printf ("Dato cercato: %d\n", elem->dato); else printf ("Dato non trovato\n"); lamialista = cancellatesta (lamialista); scrivilista(lamialista); lamialista = cancellacoda (lamialista); scrivilista(lamialista); lamialista = cancellalista (lamialista); scrivilista(lamialista);
20 Le liste dinamiche: inserisci in testa Lista inserisciintesta (Lista lista, int dato) Lista nuovoelem; nuovoelem=(lista)malloc(sizeof(elementolista)); nuovoelem->dato = dato; nuovoelem->prox = lista; return nuovoelem; Dopo ogni inserimento, lista (il puntatore alla testa della lista) viene modificato Le liste dinamiche: inserisci in coda Lista inserisciincoda (Lista lista, int dato) Lista nuovoelem, cursore; nuovoelem=(lista)malloc(sizeof(elementolista)); nuovoelem->dato = dato; nuovoelem->prox = NULL; if (lista == NULL) return nuovoelem; else cursore = lista; while (cursore->prox!= NULL) cursore = cursore->prox; cursore->prox = nuovoelem; return lista;
21 Le liste dinamiche: inserisci in coda Due casi: Lista vuota il nuovo elemento è il primo della lista; la funzione ne ritorna l indirizzo Lista non vuota arriva all ultimo elemento e vi appende il nuovo. Nel secondo caso, lista non viene modificato La funzione deve comunque ritornare qualcosa: ritorna lista Le liste dinamiche: cancella la testa Lista cancellatesta (Lista lista) Lista temp; temp = lista->prox; free (lista); return temp; Dopo ogni cancellazione, lista (il puntatore alla testa della lista) viene modificato
22 Le liste dinamiche: cancella la coda Lista cancellacoda (Lista lista) Lista cursore; if (lista == NULL) return lista; else if (lista->prox == NULL) free (lista); return NULL; Le liste dinamiche: cancella la coda else cursore = lista; while (cursore->prox->prox!= NULL) cursore = cursore->prox; free (cursore->prox); cursore->prox = NULL; return lista;
23 Le liste dinamiche: cancella la coda Tre casi: Lista già vuota non fa nulla Lista composta da un solo elemento la testa punta a NULL Lista composta da più elementi il penultimo punta a NULL Le liste dinamiche: cancellazione totale Lista cancellalista (Lista lista) Lista temp, cursore; cursore = lista; while (cursore!= NULL) temp = cursore->prox; free (cursore); cursore = temp; return cursore; Come potrei definirla usando le funzioni cancellatesta() o cancellacoda()?
24 Le liste dinamiche: ricerca Lista cercainlista (Lista lista, int dato) Lista cursore; int trovato = 0; cursore = lista; while (cursore!= NULL && trovato == 0) if (cursore->dato == dato) trovato = 1; else cursore = cursore->prox; if (trovato == 1) return cursore; else return NULL; Le liste dinamiche: ricerca Ricerca lineare: parto dal primo elemento e vado avanti Non molto efficiente (la ricerca binaria è molto più veloce) Ma, posso fare diversamente? Liste accesso sequenziale!
25 Le liste dinamiche: scrivi lista void scrivilista (Lista lista) Lista cursore; printf ("Inizio lista\n"); cursore = lista; while (cursore!= NULL) printf ("%d\n", cursore->dato); cursore = cursore->prox; printf ("Fine lista\n"); Le liste dinamiche: conclusione Allocazione dinamica il programmatore non è obbligato a porre dei limiti al numero di dati da memorizzare in RAM Prendo spazio quando serve, usando la malloc() Libero spazio quando posso, usando la free() Scomodo i vettori sono più facili da usare Non esistono pasti gratis!!! Accesso solo sequenziale Idem come sopra!!!
Informatica A (per gestionali) A.A. 2004/2005. Esercizi di riepilogo
Informatica A (per gestionali) A.A. 2004/2005 Esercizi di riepilogo Indice 1 File... 3 1.1 Codifica file di testo...3 1.2 Elimina tag HTML...4 1.3 File binario ordinato...6 1.4 Archivio film...7 1.5 Archivio
File di testo con stringhe
File di testo con stringhe Testo L utente inserisce una serie di nomi (stringhe prive di spazi); la stringa # indica la fine della fase di inserimento. L elaboratore scrive i nomi in un file di testo.
Esercizi. I File ed il C
Politecnico di Milano Esercizi File di testo,, file binari I File ed il C Insieme omogeneo di dati, memorizzato su disco e caratterizzato da un nome La lunghezza di un file non è fissata a priori Astrazione
Informatica A (per gestionali) A.A. 2004/2005. Esercizi di programmazione C Stringhe Ricerca binaria
Informatica A (per gestionali) A.A. 2004/2005 Esercizi di programmazione C Stringhe Ricerca binaria Indice 1 Stringhe... 3 1.1 Codice di Cesare...3 1.2 Ricerca binaria...4 1.3 Indirizzi Internet...7 1.4
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)
Gestione dei File. Credits Prof. Campi
Gestione dei File Credits Prof. Campi 1 Perché i file? Sono strutture dati persistenti Sono solitamente memorizzati sui dischi Si usano dall'interno dei programmi Realizzano la persistenza dei dati cioè
Gestione dei file. File di testo e binari
Gestione dei file Un file e definito come un oggetto, presente nel file system, costituito da una sequenza continua di bytes Un file, per poter essere utilizzato, deve essere aperto Successivamente e possibile
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
Gestione dei File in C
Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte
Politecnico di Milano. Strutture dati dinamiche
Politecnico di Milano Strutture dati dinamiche Strutture dati statiche e dinamiche In C le dimensioni di ogni dato sono note prima dell esecuzione Sarebbe utile avere contenitori la cui dimensione varia
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
Gestione dei file. Linguaggio ANSI C Input/Output - 13
Gestione dei file Necessità di persistenza dei file archiviare i file su memoria di massa. Un file è una astrazione fornita dal sistema operativo, il cui scopo è consentire la memorizzazione di informazioni
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)
Linguaggio C. Esercizio 1
Linguaggio C Esercizi su puntatori e liste Walter Didimo (e-mail:didimo@dia.uniroma3.it) supplemento al Corso di Calcolatori Elettronici (Riccardo Torlone) 1 Esercizio 1 Siano p e q due puntatori a variabili
Esercizi C su array e matrici
Politecnico di Milano Esercizi C su array e matrici Massimo, media e varianza,, ordinamento, ricerca e merge, matrice simmetrica, puntatori Array Array o vettore Composto da una serie di celle int vett[4]
Informatica (A-K) 23. Linguaggio C -8
Modalità di accesso ai file Informatica (A-K) 23. Linguaggio C -8 Accesso sequenziale: in fase di lettura i dati possono essere ritrovati (sequenzialmente) scorrendo tutti i record del file a partire dal
Lezione 11: Liste a Puntatori e Input/Output
Lezione 11: Liste a Puntatori e Input/Output Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione Richiamo: strutture (struct)
Esercitazioni di Fondamenti di Informatica - Lez. 9 4/12/2018
Esercitazioni di Fondamenti di Informatica - Lez. 9 /1/018 Esercizi sulla gestione dei file in C Il codice degli esercizi e contenuto nella cartella parte1 1. Creare una funzione C che legga tutto cio
Strutture dati dinamiche
Strutture dati dinamiche - Liste concatenate - Pile -> LIFO (last in first out) - Code -> FIFO (first in first out) - Alberi binari: gestione dati in algoritmi complessi Liste Concatenate Formata da elementi
ELEMENTI DI INFORMATICA. Linguaggio C
Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica ELEMENTI DI INFORMATICA http://agile.diee.unica.it A.A. 2015/2016 Ing. Marco Ortu Diee, secondo piano Tel. 070-6755774 mail:
Liste concatenate. Violetta Lonati
Liste concatenate Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 2 novembre 2017 Violetta Lonati Liste
Esercitazioni di FONDAMENTI DI INFORMATICA MODULO B
Università di Ferrara Dipartimento di Ingegneria Esercitazioni di FONDAMENTI DI INFORMATICA MODULO B Tutor Arnaud Nguembang Fadja: ngmrnd@unife.it Damiano Azzolini: damiano.azzolini@student.unife.it Esercizio
Gestione dei file in C
Gestione dei file in C Fondamenti di Informatica Che cos è un file e a cosa serve? Memoria di massa vs memoria centrale q La memoria di massa (disco fisso) è un dispositivo di memorizzazione generalmente
Gestione dei File. Indice. Il file system in C. Principali operazioni sui file (dalla Standard Library) Esempi. Corso di Informatica A.
Gestione dei File Corso di Informatica A Vito Perrone 1 Il file system in C Indice Principali operazioni sui file (dalla Standard Library) Esempi 2 Il file system in C Flusso di comunicazione: binario
Fondamenti di Informatica
Cosa sono i file? Un file è un archivio di dati che puo essere registrato su un supporto di massa (testo, lettera, programma, archivio di dati, ecc.) Fondamenti di Informatica 12. Linguaggio C - Gestione
Informatica C CHI/MAT
Informatica C CHI/MAT Giovanni Agosta Informatica C CHI/MAT p.1/76 Gestione dei File 1. L input da file 2. Cos è un file 3. Dichiarare una variabile file 4. Funzioni di apertura e chiusura dei file 5.
Il linguaggio C. Breve panoramica su stdio.h
Il linguaggio C Breve panoramica su stdio.h 1 Input/Output: stdio.h Contiene definizioni di costanti legate all I/O es. EOF (end of file) #define EOF (-1) valore restituito alla fine di un file Contiene
L'Allocazione Dinamica della Memoria nel linguaggio C
L'Allocazione Dinamica della Memoria nel linguaggio C Prof. Rio Chierego riochierego@libero.it http://www.riochierego.it/informatica.htm Sommario Questo documento tratta l'allocazione dinamica della memoria
Operazioni su file di caratteri
Operazioni su file di caratteri Apertura fopen Chiusura fclose Scrittura fprintf Lettura fscanf Controllo fine file feof Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1 Apertura di un file: Si
Sono file di caratteri, organizzati in linee. Ogni linea e` terminata da una marca di fine linea (newline, cara ttere '\n').
I File Il file e` l'unita` logica di memorizzazione dei dati su memoria di massa. Consente una memorizzazione persistente dei dati, non limitata dalle dimensioni della memoria centrale. Generalmente un
Strutture Dinamiche. Strutture Dinamiche
Corso di Informatica A Vito Perrone 1 Indice Allocazione e de-allocazione di memoria Liste e loro gestione 2 Allocazione e cancellazione di memoria malloc (sizeof (TipoDato)); Crea in memoria una variabile
Gestione dei file in C
Gestione dei file in C Fondamenti di Informatica Che cos è un file e a cosa serve? Memoria di massa vs memoria centrale q La memoria di massa (disco fisso) è un dispositivo di memorizzazione generalmente
Titolo presentazione INFORMATICA. sottotitolo A.A Milano, XX mese 20XX Laboratorio n 6 Ing. Gian Enrico Conti Dott.
Titolo presentazione INFORMATICA A sottotitolo A.A. 2017-18 Milano, XX mese 20XX Laboratorio n 6 Ing. Gian Enrico Conti Dott. Michele Zanella Info Logistiche (cont d) Calendario laboratori Data Orario
Strutture Dinamiche. Fondamenti di Informatica
Strutture Dinamiche Fondamenti di Informatica 1 Indice Allocazione e de-allocazione di memoria Liste e loro gestione Companies, srl 2 Allocazione e cancellazione di memoria malloc (sizeof (TipoDato));
Il linguaggio C. Puntatori e dintorni
Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;
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
Gestione dei File. dischi nastri cd
Gestione dei File Per mantenere disponibili i dati tra le diverse esecuzioni di un programma, questi si devono archiviare in file su memoria di massa (dati persistenti): dischi nastri cd Un file è un astrazione
Gestione dei files. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Via Leopardi 132
Gestione dei files Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Via Leopardi 132 Struttura del disco fisso Un disco fisso è composto da una serie di piatti sovrapposti Ogni piatto è
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
Strutture Dati Dinamiche
Strutture Dati Dinamiche Motivazioni Le variabili considerate fino a questo punto devono essere dichiarate staticamente, ossia la loro esistenza, il loro nome e la loro dimensione devono essere previsti
INFORMATICA. Esercizi. Esempio: giorni nell anno. Esempio: giorni nell anno. Esempio: giorni nell anno
INFORMATICA Esercizi Realizzare un programma che legga da tastiera l anno di riferimento e la sigla del primo giorno di quell anno (1 gennaio) composta dai primi tre caratteri del nome (ad esempio: 2003
Perchè i files? Realizzano la persistenza dei dati. Sono delle strutture di dati sequenziali. dati che sopravvivono all esecuzione del programma
Perchè i files? Realizzano la persistenza dei dati dati che sopravvivono all esecuzione del programma Sono delle strutture di dati sequenziali Files e S.O. I files sono gestiti dal S.O. e resi visibili
Previously on TDP. LISTA rappresentata mediante "struct e puntatori" Cosa e aux? Di che tipo e e cosa contiene?
Previously on TDP lis ^ ^ 7 21 ** ** 14 *** memoria 9 NULL LISTA rappresentata mediante "struct e puntatori" *** lis->info == cosa? lis->next == ^^; /*cosa e ^^?*/ che cosa e' (*lis)? Cosa e aux? Di che
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
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;
Laboratorio Informatica Classe 4A Serale Venerdì 18/02/2011. Gruppo. Cognome Riontino Nome Raffaele. Cognome Nome
Laboratorio Informatica Classe 4A Serale Venerdì 18/02/2011 Gruppo Cognome Riontino Nome Raffaele Cognome Nome TRACCIA 2 ARGOMENTO: LISTE TEMPO: 4h 1. Utilizzando Typedef definire un nuovo tipo di dato
Introduzione. L elaborazione dei files in C. Elaborazione dei files (1) Elaborazione dei files (2) D.D. cap. 11+ pp K.P. pp.
Introduzione L elaborazione dei files in C D.D. cap. 11+ pp. 569-572 K.P. pp. 581-583 La memorizzazione dei dati nelle variabili e nei vettori è temporanea: tutti quei dati andranno persi quando il programma
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
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
Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter
Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Ripasso Liste: typedef struct EL{TipoElemento Info; struct EL *Prox;} ElemLista; typedef ElemLista
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
ADT LISTA: altre operazioni non primitive ADT LISTA COSTRUZIONE ADT LISTA COSTRUZIONE ADT LISTA (2)
ADT LISTA Pochi Linguaggi forniscono tipo lista fra predefiniti (LISP, Prolog); per gli altri, ADT lista si costruisce a partire da altre strutture dati (in C tipicamente vettori o puntatori) OPERAZIONI
Informatica A (per gestionali) A.A. 2004/2005. Esercizi di programmazione C Funzioni: passaggio di parametri per indirizzo, passaggio di array.
Informatica A (per gestionali) A.A. 2004/2005 Esercizi di programmazione C Funzioni: passaggio di parametri per indirizzo, passaggio di array. Indice 1 Funzioni: passaggio di parametri per indirizzo; puntatori...3
I File. Il file e` l'unita` logica di memorizzazione dei dati su memoria di massa.
I File Il file e` l'unita` logica di memorizzazione dei dati su memoria di massa. Consente una memorizzazione persistente dei dati, non limitata dalle dimensioni della memoria centrale. Generalmente un
4 Le liste collegate 4.0. Le liste collegate. 4 Le liste collegate Rappresentazione di liste 4.1 Rappresentazione di liste
4 Le liste collegate 4.0 Le liste collegate c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 2001/2002 4.0 0 4 Le liste collegate Rappresentazione di liste 4.1
Compendio sottoinsieme del C++ a comune col C. (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica)
Compendio sottoinsieme del C++ a comune col C (Libreria standard, Input/Output, Costanti, Dichiarazioni e typedef, Memoria Dinamica) Librerie 1/2 Il solo insieme di istruzioni di un linguaggio di programmazione
Prof. G. Ascia. Gestione dei File C
Gestione dei File C 1 Generalità Il linguaggio C non contiene alcuna istruzione di Input/Output. Tali operazioni vengono svolte mediante chiamate a funzioni definite nella libreria standard contenute nel
LP1 Lezione 13: i File in C. Maurizio Tucci
LP1 Lezione 13: i File in C Maurizio Tucci mtucci@unisa.it 1 Il File: Dichiarazione Memorizzare dati in maniera non volatile In C (libreria ) è definito un tipo FILE che astrae il concetto di sequenza
Politecnico di Milano - Dipartimento di Elettronica e informazione Prof. Mauro Negri
Politecnico di Milano - Dipartimento di Elettronica e informazione Prof. Mauro Negri Fondamenti di Informatica II prova in itinere 25 gennaio 2011 Matricola Cognome Nome Durata prova: 2 ore Istruzioni
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
I files in C. A cura del prof. Ghezzi
I files in C A cura del prof. Ghezzi 1 Perchè i files? Realizzano la persistenza dei dati dati che sopravvivono all esecuzione del programma Sono delle strutture di dati sequenziali 2 Files e S.O. I files
Esercizi. FUNZIONI Passaggio di parametri per valore, variabili e tipi locali e globali, prototipo. Funzioni
Politecnico di Milano Esercizi FUNZIONI Passaggio di parametri per valore, variabili e tipi locali e globali, prototipo Definizione: Funzioni tipo_ritornato nome (lista di parametri) istruzioni; Segnatura
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
La gestione dei file in C
Gestione dei file La gestione dei file in C Il file è un astrazione molto ampia nella descrizione di un sistema informatico nastro di I/O supporto di comunicazione macchina/ambiente di ogni tipo (sensori,
Indice. La gestione dei file in C e gli stream. Apertura e chiusura di un file. Operazioni sui file. Accesso sequenziale e non sequenziale
File in C Indice La gestione dei file in C e gli stream Apertura e chiusura di un file Operazioni sui file Accesso sequenziale e non sequenziale La gestione del buffer Gestione dei file in C In C all interno
Laurea In Ingegneria dell Informazione. Esercitazioni Guidate di Tecniche della Programmazione
Laurea In Ingegneria dell Informazione Esercitazioni Guidate di Tecniche della Programmazione Note introduttive: 1) Le soluzioni agli esercizi e le versioni di programmi menzionate nel testo delle esercitazioni
Laboratorio di Programmazione
Laboratorio di Programmazione (Laurea triennale in matematica) Lezione 21 Strutture dinamiche Gli array ci permettono di memorizzare un insieme di dati dello stesso tipo Deve essere noto staticamente il
Corso di Fondamenti di Programmazione canale E-O. Introduzione. Elaborazione dei files (2)
Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri L elaborazione dei files in C DD, Cap. 11 + pp. 569-572 KP, pp. 581-583 Introduzione La memorizzazione dei dati nelle variabili e nei
Indice. La gestione dei file in C e gli stream. Apertura e chiusura di un file. Operazioni sui file. Accesso sequenziale e non sequenziale
File in C Indice La gestione dei file in C e gli stream Apertura e chiusura di un file Operazioni sui file Accesso sequenziale e non sequenziale Gestione dei file in C In C all interno della standard library
Gestione dei file in C
Gestione dei file in C Generalità Il linguaggio C non contiene alcuna istruzione di Input/Output. Tali operazioni vengono svolte mediante chiamate a funzioni definite nella libreria standard contenute
Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica
Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica Dipartimento di Elettronica, Informazione e Bioingegneria Informatica B Sezione D Franchi Alessio Mauro,
Esercitazione n. 7. Gestione dei file (seconda parte)
Esercitazione n. 7 Gestione dei file (seconda parte) dott. Carlo Todeschini tode@cremona.polimi.it Politecnico di Milano A.A. 2010/2011 Queste slide sono distribuite con licenza Creative Commons Attribuzione-Non
Gestione dei File C. Generalità
Gestione dei File C 1 Generalità Il linguaggio C non contiene alcuna istruzione di Input/Output. Tali operazioni vengono svolte mediante chiamate a funzioni definite nella libreria standard contenute nel
Gestione di files Motivazioni
Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)
Fondamenti di Programmazione
A.A. 08/09 Fondamenti di Programmazione (canale E-O) Docente: Prof.ssa Tiziana Calamoneri calamo@di.uniroma1.it Esercitatore: Dott. Roberto Petroccia petroccia@di.uniroma1.it Pagina del corso: http://twiki.di.uniroma1.it/twiki/view/programmazione1/eo/webhome
Laboratorio di Programmazione
Laboratorio di Programmazione (Laurea triennale in matematica) Lezione 26 Sommario: Gestione dei file in C. File ad accesso sequenziale: apertura, chiusura, lettura e scrittura. File binari. Gestione files
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
Lezione 8 Liste. Rossano Venturini. Pagina web del corso.
Lezione 8 Liste Rossano Venturini rossano.venturini@unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 1 Prova del 18/05/2009 Scrivere un programma
Input/Output Input = clienti.bin, n (funzione richiesta dall utente), Cognome (per il punto 1) Output = dati_cliente, top2, sconti.
Fondamenti di Informatica L-A (Elettronica/Automazione) A.A. 2005/2006, quarto scritto (5/4/2005) Proposta di soluzione (ragionata) dell esercizio di progetto 1 Input/Output Input = clienti.bin, n (funzione
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
I puntatori e l allocazione dinamica di memoria
I puntatori e l allocazione dinamica di memoria Vettore = puntatore Vettore come parametro a funzione Puntatori e stringhe Vettori di puntatori 2 2006 Politecnico di Torino 1 Vettore = puntatore Data una
Lezione 10 Liste. Rossano Venturini. Pagina web del corso.
Lezione 10 Liste Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Esercizio 1 Prova del 18/05/2009 Scrivere un programma che legga
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
Esercizi C sui tipi definiti dall utente
Politecnico di Milano Esercizi C sui tipi definiti dall utente Typedef,, tipi enumerativi e strutturati Sinonimi: typedef int Intero; Intero a; int b; Definire un nuovo tipo typedef char Stringa[10]; Stringa
GESTIONE DEI FILE. File come tipo di dati
GESTIONE DEI FILE File come tipo di dati Nel linguaggio C, i file vengono trattati come un tipo di dati derivato, cioè ottenuto dai tipi elementari esistenti. In pratica, quando si apre e si gestisce un
Se vogliamo cambiarlo: i dati vengono sovrascritti. 300 White Jones (vecchio valore) 300 Worthington 0.00
File position pointer File position pointer Indica la posizione da cui leggere/scrivere i prossimi byte Non un puntatore, ma un valore intero (specifica la posizione dall inizio file in termini di numero
Linguaggio C: i file
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica A - GES Prof. Plebani A.A. 2006/2007 Linguaggio C: i file La presente dispensa e da utilizzarsi ai soli fini didattici previa
Titolo presentazione INFORMATICA. sottotitolo A.A Milano, XX mese 20XX Laboratorio n 4 Ing. Gian Enrico Conti Dott.
Titolo presentazione INFORMATICA A sottotitolo A.A. 2017-18 Milano, XX mese 20XX Laboratorio n 4 Ing. Gian Enrico Conti Dott. Michele Zanella Info Logistiche (cont d) Calendario laboratori Data Orario
FILE SEQUENZIALI E AD ACCESSO DIRETTO
FILE SEQUENZIALI E AD ACCESSO DIRETTO L input-output astratto (stream) Le periferiche disponibili in un sistema di elaborazione sono, dal punto di vista hardware, anche molto diverse fra di loro anche
Input/Output Input = clienti.bin, n (funzione richiesta dall utente), Cognome (per il punto 1) Output = dati_cliente, top10, sconti
Fondamenti di Informatica L-A (Elettronica/Automazione) A.A. 2005/2006, terzo scritto (18/1/2005) Proposta di soluzione (ragionata) dell esercizio di progetto Input/Output Input = clienti.bin, n (funzione
FILE BINARI. I file di testo non sono indispensabili: sono semplicemente comodi 1
FILE BINARI Un file binario è una pura sequenza di byte, senza alcuna strutturazione particolare È un'astrazione di memorizzazione assolutamente generale, usabile per memorizzare su file informazioni di
File binari e file di testo
I file File binari e file di testo distinzione tra file binari file di testo si possono usare funzioni diverse per la gestione di tipi di file diversi Programmazione Gestione dei file 2 File binari e file
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
Sistemi Operativi (M. Cesati)
Sistemi Operativi (M. Cesati) Compito scritto del 19 febbraio 2013 Nome: Matricola: Corso di laurea: Cognome: Crediti da conseguire: 5 6 9 Scrivere i dati richiesti in stampatello. Al termine consegnare
ALGORITMI E STRUTTURE DATI
ALGORITMI E STRUTTURE DATI Esercitazioni AndreA Orlandini http://www.dia.uniroma3.it/~orlandin/asd/ e-mail: orlandin@dia.uniroma3.it Orario di ricevimento: Martedì 14.00-16.00 Puntatori e Liste StudentiDIA
File e puntatori a file
File e puntatori a file Vitoantonio Bevilacqua vitoantonio.bevilacqua@poliba.it La libreria stdio.h mette a disposizione delle funzioni che hanno la peculiarità di trattare con questa nuova tipologia di
STRINGHE: ARRAY DI CARATTERI! 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ù
Lezione 22: Input/Output e Files
Lezione 22: Input/Output e Files Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università di Salerno Struttura della lezione Esami: date e modalità Funzioni di libreria standard