Esercizio 1 File: ordinamento di un archivio di studenti (file binario)
|
|
- Giuliana Galli
- 5 anni fa
- Visualizzazioni
Transcript
1 Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 9 Esercitazione: 19 gennaio 2005 Esercizi sui file e sulle liste. Scaletta Esercizio 1 File: ordinamento di un archivio di studenti (file testuale). Esercizio 2 File: ordinamento di un archivio di studenti (file binario). Esercizio 3 File: ricerca di una parola in un file di testo Esercizio 4 Liste: tratto da un tema d esame (Di Nitto, Morzenti - 29 gennaio 2002) Esercizio 5 Liste: merge NON ordinato fra due liste Esercizio 1 File: ordinamento di un archivio di studenti (file binario) Scrivere un esercizio che: legge da un file f1 i dati di alcuni studenti. Si suppone che la memorizzazione degli studenti nel file sia avvenuta in precedenza e a opera di un altro programma, tramite l uso della primitiva fwrite. Nel file f1 sono presenti MAX_STUDENTI al massimo. ordina in memoria gli studenti letti dal file. Per ogni studente si riconoscono tre informazioni: nome, cognome e un intero rappresentante il numero di matricola. L ordinamento deve essere eseguito rispetto al numero di matricola, in modo crescente. Salva su un altro file f2 gli studenti ordinati, mediante una scrittura a blocchi (uso della primitiva fwrite). #include <stdio.h> #define MAX_LENGTH 20 #define MAX_STUDENTI 10 typedef char Stringa[MAX_LENGTH]; typedef struct Stringa nome; Stringa cognome; int matricola; Studente; typedef struct Studente vettstudenti[max_studenti]; int numstudenti; ArchivioStudenti; // lettura degli studenti dal file con nome pari a nomefile e memorizzazione // degli stessi nell'archivio puntato da arch (si noti l'archivio passato per indirizzo) void leggistudenti_dafile(archiviostudenti *arch, Stringa nomefile); // scrittura su file con nome pari a nomefile degli studenti dell'archivio arch void scrivistudenti_sufile(archiviostudenti arch, Stringa nomefile); // ordina in memoria gli studenti in archivio per numero di matricola (ordine crescente)
2 void ordinamento(archiviostudenti *arch); // stampa studenti nell'archivio void stampastudenti(archiviostudenti arch); void init_archivio(archiviostudenti *arch) int scelta = 1; arch->numstudenti = 0; while (scelta!=0) printf("nuovo studente"); printf("nome: "); scanf("%s", arch->vettstudenti[arch->numstudenti].nome); printf("cognome: "); scanf("%s", arch->vettstudenti[arch->numstudenti].cognome); printf("matricola: "); scanf("%d", &arch->vettstudenti[arch->numstudenti].matricola); arch->numstudenti++; printf("scelta - 0 per uscire"); scanf("%d", &scelta); void main() ArchivioStudenti archivio; Stringa nomef1 = "f1.txt"; Stringa nomef2 = "f2.txt"; // popolamento iniziale del file f1. /* init_archivio(&archivio); scrivistudenti_sufile(archivio, nomef1); */ // lettura da file f1 per inizializzazione archivio in memoria leggistudenti_dafile(&archivio, nomef1); // stampa studenti prima di ordinamento stampastudenti(archivio); // ordinamento studenti in memoria ordinamento(&archivio); // stampa studenti dopo ordinamento stampastudenti(archivio); // scrittura degli studenti ordinati per matricola su file con nome nomef2 scrivistudenti_sufile(archivio, nomef2);
3 void ordinamento(archiviostudenti *arch) int cont, i; Studente tmp; for (cont=0; cont< arch->numstudenti - 1;cont++) for (i=cont+1; i< arch->numstudenti; i++) if (arch->vettstudenti[cont].matricola > arch->vettstudenti[i].matricola) tmp = arch->vettstudenti[cont]; arch->vettstudenti[cont] = arch->vettstudenti[i]; arch->vettstudenti[i] = tmp; void stampastudenti(archiviostudenti arch) printf("\n\n\nstudenti in archivio \n\n\n"); for (int i=0; i< arch.numstudenti; i++) printf("nome %s Cognome %s matricola %d\n", arch.vettstudenti[i].nome, arch.vettstudenti[i].cognome, arch.vettstudenti[i].matricola); void leggistudenti_dafile(archiviostudenti *arch, Stringa nomefile) FILE *f1; int numstudentiletti; arch->numstudenti = 0; // apertura modalità binaria - sola lettura f1 = fopen(nomefile, "rb"); if (f1 == NULL) printf("impossibile aprire il file f1. Non esiste"); else // lettura di uno studente alla volta. // Si ipotizza che il file contenga al più MAX_STUDENTI numstudentiletti = fread(&arch->vettstudenti[arch->numstudenti], sizeof(studente), 1, f1); while(numstudentiletti == 1) arch->numstudenti++; // incremento il numero di studenti in archivio // procedo a una nuova lettura numstudentiletti = fread(&arch->vettstudenti[arch->numstudenti], sizeof(studente), 1, f1);
4 // si valuta se l'ultima operazione di lettura ha dato errori if (ferror(f1)!=0) printf("errore durante operazioni di lettura file f1"); else // chiusura flusso di comunicazione if (fclose(f1)!=0) printf("errore durante la chiusura del file f1"); void scrivistudenti_sufile(archiviostudenti arch, Stringa nomefile) FILE *f2; int numstudentiscritti; // apertura modalità binaria - sola scrittura partendo dall'inizio f2 = fopen(nomefile, "wb"); if (f2 == NULL) printf("impossibile aprire il file f2. Non esiste"); else // scrittura di tutti gli studenti ordinati numstudentiscritti = fwrite(arch.vettstudenti, sizeof(studente), arch.numstudenti, f2); // si valuta se l'operazione di scrittura ha dato errori if (numstudentiscritti!= arch.numstudenti) printf("errore nella scrittura degli studenti su file f2"); else // chiusura flusso di comunicazione if (fclose(f2)!=0) printf("errore durante la chiusura del file f2"); Esercizio 2 File: ordinamento di un archivio di studenti (file testuale) (Variante dell esercizio precedente) Scrivere un esercizio che: legge da un file f1 i dati di alcuni studenti. Si suppone che per ogni studente siano state memorizzate (da un altro programma) le seguenti informazioni: il nome, il cognome e un numero rappresentante la matricola. Nel file f1 sono presenti MAX_STUDENTI al massimo. ordina in memoria gli studenti letti dal file. L ordinamento deve essere eseguito rispetto al numero di matricola, in modo crescente. Salva su un altro file f2 gli studenti ordinati. Dunque, l operazione di salvataggio deve scrivere su file, per ogni studente, il nome, il cognome, il numero di matricola. #include <stdio.h> #define MAX_LENGTH 20 #define MAX_STUDENTI 10 typedef char Stringa[MAX_LENGTH]; typedef struct
5 Stringa nome; Stringa cognome; int matricola; Studente; typedef struct Studente vettstudenti[max_studenti]; int numstudenti; ArchivioStudenti; typedef enumfalse, true boolean; // lettura degli studenti dal file con nome pari a nomefile e memorizzazione // degli stessi nell'archivio puntato da arch (si noti l'archivio passato per indirizzo) void leggistudenti_dafile(archiviostudenti *arch, Stringa nomefile); // scrittura su file con nome pari a nomefile degli studenti dell'archivio arch void scrivistudenti_sufile(archiviostudenti arch, Stringa nomefile); // ordina in memoria gli studenti in archivio per numero di matricola (ordine crescente) void ordinamento(archiviostudenti *arch); // stampa studenti nell'archivio void stampastudenti(archiviostudenti arch); void init_archivio(archiviostudenti *arch) int scelta = 1; arch->numstudenti = 0; while (scelta!=0) printf("nuovo studente"); printf("nome: "); scanf("%s", arch->vettstudenti[arch->numstudenti].nome); printf("cognome: "); scanf("%s", arch->vettstudenti[arch->numstudenti].cognome); printf("matricola: "); scanf("%d", &arch->vettstudenti[arch->numstudenti].matricola); arch->numstudenti++; printf("scelta - 0 per uscire"); scanf("%d", &scelta); void main() ArchivioStudenti archivio; Stringa nomef1 = "f3.txt"; Stringa nomef2 = "f4.txt";
6 // popolamento iniziale del file f1. /* init_archivio(&archivio); scrivistudenti_sufile(archivio, nomef1); */ // lettura da file f1 per inizializzazione archivio in memoria leggistudenti_dafile(&archivio, nomef1); // stampa studenti prima di ordinamento stampastudenti(archivio); // ordinamento studenti in memoria ordinamento(&archivio); // stampa studenti dopo ordinamento stampastudenti(archivio); // scrittura degli studenti ordinati per matricola su file con nome nomef2 scrivistudenti_sufile(archivio, nomef2); void ordinamento(archiviostudenti *arch) int cont, i; Studente tmp; for (cont=0; cont< arch->numstudenti - 1;cont++) for (i=cont+1; i< arch->numstudenti; i++) if (arch->vettstudenti[cont].matricola > arch->vettstudenti[i].matricola) tmp = arch->vettstudenti[cont]; arch->vettstudenti[cont] = arch->vettstudenti[i]; arch->vettstudenti[i] = tmp; void stampastudenti(archiviostudenti arch) printf("\n\n\nstudenti in archivio \n\n\n"); for (int i=0; i< arch.numstudenti; i++) printf("nome %s Cognome %s matricola %d\n", arch.vettstudenti[i].nome, arch.vettstudenti[i].cognome, arch.vettstudenti[i].matricola);
7 void leggistudenti_dafile(archiviostudenti *arch, Stringa nomefile) FILE *f1; int numcampiletti; arch->numstudenti = 0; // apertura modalità testuale - sola lettura f1 = fopen(nomefile, "r"); if (f1 == NULL) printf("impossibile aprire il file f1. Non esiste"); else // lettura di uno studente alla volta (un campo alla volta, con fscanf). // Si ipotizza che il file contenga al più MAX_STUDENTI. // Si ipotizza che, per ogni studente, siano obbligatoriamente presenti su file nome, cognome e matricola in questo ordine. numcampiletti = fscanf(f1, "%s", arch->vettstudenti[arch->numstudenti].nome); numcampiletti = fscanf(f1, "%s", arch->vettstudenti[arch->numstudenti].cognome); numcampiletti = fscanf(f1, "%d", &arch->vettstudenti[arch->numstudenti].matricola); while(numcampiletti == 1) arch->numstudenti++; // incremento il numero di studenti in archivio // procedo a una nuova lettura numcampiletti = fscanf(f1, "%s", arch->vettstudenti[arch->numstudenti].nome); numcampiletti = fscanf(f1, "%s", arch->vettstudenti[arch- >numstudenti].cognome); numcampiletti = fscanf(f1, "%d", &arch->vettstudenti[arch- >numstudenti].matricola); // si valuta se l'ultima operazione di lettura ha dato errori if (ferror(f1)!=0) printf("errore durante operazioni di lettura file f1"); else // chiusura flusso di comunicazione if (fclose(f1)!=0) printf("errore durante la chiusura del file f1"); void scrivistudenti_sufile(archiviostudenti arch, Stringa nomefile) FILE *f2; // apertura modalità testuale - sola scrittura partendo dall'inizio f2 = fopen(nomefile, "w"); if (f2 == NULL) printf("impossibile aprire il file f2. Non esiste"); else
8 boolean error = false; // scrittura formattata su file, per ogni studente, di nome, cognome e numero di matricola for (int i=0; i< arch.numstudenti && error == false; i++) // procedo a una nuova lettura fprintf(f2, "%s\n", arch.vettstudenti[i].nome); fprintf(f2, "%s\n", arch.vettstudenti[i].cognome); fprintf(f2, "%d\n", arch.vettstudenti[i].matricola); // controllo dell'errore solo sull'ultima operazione di scrittura if (ferror(f2)==1) printf("errore in scrittura su file f2"); error = true; if (error == false) if (fclose(f2)!= 0) printf("errore durante chiusura del file f2"); Esercizio 3 File: ricerca di una parola in un file di testo Dato un file F1, si realizzi un programma che, acquisita una parola P da standard input, ricerchi P all interno del file dato e stampi sul dispositivo standard di output il numero delle occorrenze di P nel file F1. Per ogni ricerca eseguita sul file F1, il programma deve salvare la storia delle ricerche eseguite su un altro file F2. Ad esempio, nel caso della ricerca della parola Pippo sul file F1 dia come risultato 15 occorrenze, il programma deve scrivere sul file F2 la seguente stringa: Ricerca di Pippo. Numero occorrenze: 15. Si vuole inoltre che il file F2 dia traccia di tutte le ricerche eseguite dal programma, anche quelle effettuate in esecuzioni passate del programma stesso. #include <stdio.h> #include <string.h> #define MAX 80 /* ricerca di parole in un file di testo */ typedef char stringa[max]; void main() eseguite FILE *f1; FILE *f2; char nomef1[10]; char nomef2[10]; // nome del file in cui ricercare la parola // nome del file in cui memorizzare le ricerche
9 stringa P, S; int cont=0; printf("inserire il nome del file: "); scanf("%s", nomef1); f1=fopen(nomef1, "r"); if (f1==null) printf("errore nell'apertura del file!\n"); else // apertura in modalità append, in quanto il file tiene traccia // anche di ricerche eseguite in precedenza. printf("inserire il nome del file su cui memorizzare le ricerche: "); scanf("%s", nomef2); f2 = fopen(nomef2, "a"); if (f2==null) else printf("errore nell'apertura del file per mantenere le ricerche"); fclose(f1); printf("\nquale parola si vuole ricercare? "); scanf("%s", P); fscanf(f1, "%s", &S); while (!feof(f1)) if (strcmp(s,p)==0) printf("\nho trovato %s!\n",p); cont++; fscanf(f1, "%s", &S); printf("il numero di occorrenze di %s e` %d.\n", P, cont); // scrittura anche su file f2 della ricerca effettuata, per poterne tener traccia fprintf(f2, "Ricerca di %s. Numero occorrenze: %d\n", P, cont); if (ferror(f1) == 1) printf("errore durante tentativo di memorizzazione della ricerca effettuata"); fclose(f1); fclose(f2); Esercizio 4 Liste: tratto da un tema d esame (Di Nitto, Morzenti - 29 gennaio 2002) Data la seguente dichiarazione del tipo
10 typedef struct char nome[20]; char cognome [20]; int matricola; Studente; si definiscano in C i tipi necessari per costruire una lista dinamica contenente dati di studenti. Si sviluppi un sottoprogramma che, ricevendo come parametri un array di struct di tipo Studente e un valore intero che indica la dimensione dell array, costruisca una lista dinamica che contenga i dati degli studenti presenti nell array aventi numero di matricola maggiore di 1342 e restituisca al chiamate un puntatore alla lista così costruita. Gli elementi possono essere inseriti nella lista in un ordine qualsiasi, a scelta del candidato. Soluzione Prima risposta typedef struct EL Studente s; struct EL *next; ElemLista; typedef ElemLista *Lista; Seconda risposta Lista crea(); void inserisciintesta(lista *l, Studente stud); Lista daarrayinlista(studente arraystud[], int dim) int i; Lista l; l=crea(); for(i=0;i<dim;i++) if(arraystud[i].matricola > 1342) inserisciintesta(&l, arraystud[i]); return l; Lista crea() return NULL; void inserisciintesta(lista *l, Studente stud) Lista tmp; tmp = malloc(sizeof(elemlista)); tmp->s = stud; tmp->next=*l; *l=tmp; Esercizio 5 Liste: merge (fusione) NON ordinato fra due liste Scrivere un sottoprogramma che riceve in ingresso due liste l1 ed l2 di studenti e restituisce una lista l3 che contiene tutti gli studenti di l1 ed l2. Ogni studente (campo informativo della lista) è definito dalla seguente struttura dati:
11 typedef struct char nome[20]; int matricola; int numeroesami; Studente; Le due liste di partenza non sono ordinate. Ciascuna lista contiene studenti tutti diversi (ossia, in ogni lista non sono ammessi studenti con lo stesso numero di matricola). NON è richiesto che il merge fra le due liste sia ordinato. Tuttavia, è richiesto che, se le due liste hanno alcuni studenti in comune, lo studente appaia solo una volta nella lista finale. Soluzione La soluzione riporta le strutture dati, il sottoprogramma merge( ) richiesto nel testo del problema e tutti i sottoprogrammi invocati da merge( ). typedef struct char nome[20]; int matricola; int numeroesami; Studente; typedef enum falso, vero boolean; typedef struct El Studente s; struct El *next; ElemLista; typedef ElemLista *Lista; Lista crea(void); void inserisciintesta(lista *l, Studente stud); Lista merge(lista l1, Lista l2); boolean esiste(lista l, Studente stud); Lista crea() Lista l; l = NULL; return l; void inserisciintesta(lista *l, Studente stud) Lista temp; temp = malloc (sizeof(elemlista)); temp->s = stud; temp->next = *l; *l = temp; boolean esiste(lista l, Studente stud) while(l!=null && l->s.matricola!=stud.matricola)
12 l = l->next; if(l!=null) return vero; else return falso; Lista merge(lista l1, Lista l2) Lista l3, tmp; l3 = crea(); tmp = l1; while(tmp!=null) inserisciintesta(&l3, tmp->s); tmp=tmp->next; while(l2!=null) if(esiste(l1, l2->s)==falso) inserisciintesta(&l3, l2->s); l2=l2->next; return l3;
Esercizio 1: Puntatori impiegati che sono manager
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 10 Esercitazione: 25 gennaio 2006 Esercizi di riepilogo Problema: Esercizio 1: Puntatori impiegati che sono manager Si
DettagliSoluzioni seconda prova intermedia del 30 gennaio 2006 temi 1 e 2. Siano date le seguenti definizioni di costanti e tipi in linguaggio C:
Fondamenti Informatica B Soluzioni seconda prova intermedia del 30 gennaio 2006 temi 1 e 2 Esercizio 1 tema 1 Siano date le seguenti definizioni di costanti e tipi in linguaggio C: #define MAX_LENGTH 40
DettagliFondamenti di Informatica L-A
Fondamenti di Informatica L-A Esercitazione del 30/11/07 Ing. Giorgio Villani Ripasso Teoria File dati ES: nome.dat Leggere fopen( nome_file, rb ); fread(void *vet, int size, int n, FILE *fp); Scrivere
DettagliEsercizio 1: media di numeri reali (uso funzioni e struct)
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 5 Esercitazione: 2 novembre 2005 Esercizi sulle funzioni Esercizio 1: media di numeri reali (uso funzioni e struct) Le
DettagliEsercizio 1: funzione con valore di ritorno di tipo puntatore
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 7 Esercitazione: 14 dicembre 2005 Esercizi su ricorsione, manipolazione stringhe, strutture dinamiche Problema: Esercizio
DettagliEsercizio 1 Liste: calcolo perimetro di un poligono
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 12 Esercitazione: 28 gennaio 2005 Esercizi su liste, ricorsione, file. Scaletta Esercizio 1 Liste: calcolo perimetro di
DettagliFondamenti 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
DettagliEsercizio 1 Liste: calcolo del numero di elementi ripetuti in una lista
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 11 Esercitazione: 27 gennaio 2005 Esercizi su liste, ricorsione, file. Scaletta Esercizio 1 Liste: calcolo del numero di
DettagliELEMENTI DI INFORMATICA LB ESERCITAZIONE (del 09/03/2007) Files, Strutture e Liste
ELEMENTI DI INFORMATICA LB ESERCITAZIONE (del 09/03/2007) Files, Strutture e Liste ESERCIZIO n.1 È dato un file di testo che contiene l'elenco dei vestiti presenti in un negozio. Il file contiene al massimo
DettagliFondamenti di Informatica T-1 Modulo 2
Fondamenti di Informatica T-1 Modulo 2 Obiettivo di questa esercitazione Allocazione dinamica della memoria ed esempi di problemi tipici d esame 2 Esercizio 1 Una ditta utilizza un sistema informatico
DettagliFondamenti di Informatica e Laboratorio T-AB Prova Pratica - 16 Giugno 2009 Compito A
Prima di cominciare: si scarichi il file StartKit4A.zip contenente i file di esempio. Avvertenze per la consegna: nominare i file sorgenti come richiesto nel testo del compito, apporre all inizio di ogni
DettagliEsercizio 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: *******************************************************************
DettagliProgrammazione I - Laboratorio
Programmazione I - Laboratorio Esercitazione 6 - Liste Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ mezzetti mezzetti di.unipi.it 2. Dipartimento
Dettagli- matrici - stringhe - file (lettura/scrittura, di testo/binari) - strutture, puntatori - allocazione dinamica della memoria (malloc)
Esercitazione Argomenti che verranno trattati in questa esercitazione: - matrici - stringhe - file (lettura/scrittura, di testo/binari) - strutture, puntatori - allocazione dinamica della memoria (malloc)
DettagliGestione 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
DettagliGestione 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
DettagliI/O Avanzato in C: scheda riassuntiva
Funzione sscanf r = sscanf(str, "formato", &variabili ) ; str Stringa da cui acquisire i dati "formato" Sequenza dei campi da leggere ("%d", "%s",... ) &variabili Variabili nelle quali depositare i valori
DettagliFondamenti di Informatica T-1, 2014/2015 Modulo 2. Prova d Esame 5A di Giovedì 9 Luglio 2015 tempo a disposizione 2h
Avvertenze per la consegna: apporre all inizio di ogni file sorgente un commento contenente i propri dati (cognome, nome, numero di matricola) e il numero della prova d esame. Al termine, consegnare tutti
Dettagli(*lista == NULL (*lista)->info >= elem) accede al campo next di *lista solo se *lista non e' NULL. */ #include <stdio.h> #include <stdlib.
/* ATTENZIONE: non accedere mai ai campi di un elemento della lista prima di essersi accertati che tale elemento sia diverso da NULL; Si osservi che la condizione booleana (*lista == NULL (*lista)->info
DettagliÈ dato un file di testo PEOPLE.TXT che più di 20), una persona per riga
Esercizio i 1: Strutture tt e file Esercizio - lettura/filtro/scrittura È dato un file di testo PEOPLE.TXT che contiene i dati di una serie di persone (non più di 20), una persona per riga Si vuole realizzare
DettagliEsercitazioni di Fondamenti di Informatica - Lez. 7 20/11/2018
Esercitazioni di Fondamenti di Informatica - Lez. 7 0/11/018 Esercizi sull allocazione dinamica della memoria in C 1. Cosa stampa il seguente programma? 1 #d e f i n e MAXLENGTH 0 4 typedef struct { char
DettagliESERCIZIO 1. AZ111 milano 12:34 23 AZ222 buenos-aires 12: BA333 toronto 4:15 20 KM444 madrid 10:12 100
ESERCIZIO 1 Scrivete un programma per la gestione delle informazioni relative ai voli giornalieri in partenza da un certo aeroporto. Il programma deve leggere da file le informazioni relative ai voli,
DettagliPolitecnico 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
DettagliFondamenti di Informatica T-1, 2010/2011 Modulo 2. Prova d Esame 3A di Mercoledì 16 Febbraio 2011 tempo a disposizione 2h
Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit3A.zip contenente i file necessari (progetto Visual Studio ed eventuali altri file di esempio). Avvertenze per la consegna:
DettagliEsercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length);
Fondamenti di Informatica L-A (A.A. 004/005) - Ingegneria Informatica Prof.ssa Mello & Prof. Bellavista I Prova Intermedia del 11/11/004 - durata h - COMPITO B Esercizio 1 (punti 1) Una associazione di
DettagliGestione 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 è
DettagliPolitecnico di Milano - Dipartimento di Elettronica, informazione e Bioingegneria Prof. Mauro Negri
Politecnico di Milano - Dipartimento di Elettronica, informazione e Bioingegneria Prof. Mauro Negri Fondamenti di Informatica II appello 5 luglio 2014 Matricola Cognome Nome Istruzioni Durata prova: 2
DettagliFondamenti di Informatica T-1, 2013/2014 Modulo 2. Prova d Esame 6A di Giovedì 11 Settembre 2014 tempo a disposizione 2h
Avvertenze per la consegna: apporre all inizio di ogni file sorgente un commento contenente i propri dati (cognome, nome, numero di matricola) e il numero della prova d esame. Al termine, consegnare tutti
DettagliScrittura 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
DettagliGestione 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
DettagliFondamenti di Informatica T-1, 2010/2011 Modulo 2. Prova d Esame 5A di Mercoledì 13 Luglio 2011 tempo a disposizione 2h
Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit5A.zip contenente i file necessari (progetto Visual Studio ed eventuali altri file di esempio). Avvertenze per la consegna:
DettagliFondamenti di Informatica T-1, 2010/2011 Modulo 2. Prova d Esame 1B di Mercoledì 19 Gennaio 2011 tempo a disposizione 2h
Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit1B.zip contenente i file necessari (progetto Visual Studio ed eventuali altri file di esempio). Avvertenze per la consegna:
DettagliEsercizio 1. Esercizio 1 - Soluzione
Esercizio 1 Realizzare un programma che, aperto un file di testo di nome Prova.txt in modalità scrittura, provveda a leggere da input delle parole separate da spazi (stringhe di al più 63 caratteri) e
DettagliEsercitazioni 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
DettagliEsercitazioni di Fondamenti di Informatica - Lez. 5 30/10/2018
Esercitazioni di Fondamenti di Informatica - Lez. 30/10/018 Esercizi sulle funzioni in C I codici e le soluzioni degli esercizi sono nella cartella parte1 1. Scrivere i prototipi delle seguenti funzioni.
Dettagli/* Esempio di contenuto del file di testo: */ PaoloBellavista marzo.dat PaolaMello aprile.dat FedericoChesani marzo.dat CarloGiannelli marzo.
Fondamenti di Informatica L-A (A.A. 2005/2006) - Ingegneria Informatica Prof.ssa Mello & Prof. Bellavista Prova d Esame di Venerdì 16 Dicembre 2005 durata 2h30m Compito A ESERCIZIO 1 (12 punti) Una ditta
DettagliLaboratorio 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
DettagliFondamenti di Informatica T-1, 2016/2017 Modulo 2. Prova d Esame 3A di Giovedì 16 Febbraio 2017 tempo a disposizione 2h
Avvertenze per la consegna: apporre all inizio di ogni file sorgente un commento contenente i propri dati (cognome, nome, numero di matricola) e il numero della prova d esame. Al termine, consegnare tutti
DettagliGestione 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
DettagliFondamenti di Informatica T-1, 2013/2014 Modulo 2. Prova d Esame 1A di Giovedì 9 Gennaio 2014 tempo a disposizione 2h
Avvertenze per la consegna: apporre all inizio di ogni file sorgente un commento contenente i propri dati (cognome, nome, numero di matricola) e il numero della prova d esame. Al termine, consegnare tutti
DettagliAllocazione 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
DettagliLezione 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)
DettagliMEMORIA DINAMICA. & Indirizzo * Contenuto. 1. Puntatori. Nozioni base sull uso dei puntatori: Operatori & * In sintesi : /* Definizine variabili */
MEMORIA DINAMICA 1. Puntatori Nozioni base sull uso dei puntatori: Operatori & * ES /* Definizine variabili */ int x, y; /* Variabili intere */ int *px; /* Puntatore a intero */ x = 10; /* Assegno 10 a
DettagliInformatica 1. Prova di recupero 21 Settembre 2001
Informatica 1 Prova di recupero 21 Settembre 2001 Si risolvano i seguenti esercizi. Ai fini della determinazione del voto finale il loro punteggio andrà sommato al punteggio del laboratorio. Il tempo complessivo
DettagliPROVA SCRITTA DEL CORSO DI CORSO DI LAUREA IN INGEGNERIA BIOMEDICA ED ELETTRICA 9/6/2008
PROVA SCRITTA DEL CORSO DI CORSO DI LAUREA IN INGEGNERIA BIOMEDICA ED ELETTRICA 9/6/2008 MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI ESERCIZIO 1 (5 punti) Descrivere
DettagliFondamenti 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
DettagliFondamenti di Informatica T-1, 2012/2013 Modulo 2. Prova d Esame 6A di Giovedì 12 Settembre 2013 tempo a disposizione 2h
Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit6A.zip contenente i file necessari (progetto Visual Studio ed eventuali altri file di esempio). Avvertenze per la consegna:
DettagliESERCIZIO (Domanda) Supponiamo che sia int X = 1; la chiamata di funzione fprintf(file,"%d", X);
ESERCIZIO (Domanda) Supponiamo che sia int X = 1; la chiamata di funzione fprintf(file,"%d", X); a. emette sul file un byte che corrisponde al codice ASCII del carattere 1; b. emette sul file (per interi
Dettagli#include <stdio.h> #include <stdlib.h> #define L 20 void Proc(char [], int); int N=L; main () { char *s; int i;
Fondamenti di Informatica L-A (A.A. 2002/2003) - Ingegneria Informatica Prof.ssa Mello & Prof. Bellavista Prova d Esame di Martedì 09/09/2003 durata 2h:30m ESERCIZIO 1 (12 punti) Si scriva una procedura
DettagliFondamenti di Informatica T-1, 2010/2011 Modulo 2. Prova d Esame 1A di Mercoledì 19 Gennaio 2011 tempo a disposizione 2h
Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit1A.zip contenente i file necessari (progetto Visual Studio ed eventuali altri file di esempio). Avvertenze per la consegna:
DettagliFile di testo e file binari Soluzione 1 (2)
File di testo e file binari Soluzione 1 (2) printf("cifrazione del file: "); scanf("%s",nome); // Controllo che il file esista. while((fs=fopen(nome,"r"))==null) { printf("errore nel nome del file, file
DettagliI 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
DettagliLab 09 Gestione file di testo
Fondamenti di Informatica e Laboratorio T-AB e Fondamenti di Informatica T1 Ingegneria Elettronica e Telecomunicazioni e Ingegneria dell Automazione a.a. 2010/2011 Lab 09 Gestione file di testo Lab15 1
Dettagli1. Realizzare una funzione: int trovaritardatari(file *fprestiti, FILE *frate, Prestito *dest, int dim)
Fondamenti di Informatica L-A (A.A. 2005/2006 - CdS Ingegneria Informatica) Prof.ssa Mello & Prof. Bellavista Seconda Prova Intermedia del 07/12/2005 - durata 2.30h COMPITO C ESERCIZIO 1 (14 punti) Una
DettagliINFORMATICA 2010/11 - CdL in FISICA TERZO APPELLO 8/09/2011: SOLUZIONI PROPOSTE
INFORMATICA 2010/11 - CdL in FISICA TERZO APPELLO 8/09/2011: SOLUZIONI PROPOSTE Scrivere in stampatello COGNOME, NOME e MATRICOLA su ogni foglio consegnato N.B.: In tutti gli esercizi viene valutata anche
DettagliPROVA PRATICA DI FONDAMENTI DI INFORMATICA L-A Prof. MICHELA MILANO 25 NOVEMBRE 2004 COMPITO A
PROVA PRATICA DI FONDAMENTI DI INFORMATICA L-A Prof. MICHELA MILANO 25 NOVEMBRE 2004 COMPITO A Si scriva un programma C che permetta di inserire i dati relativi a correntisti di una banca (si supponga
DettagliEsercitazioni 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
DettagliLaboratorio 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
DettagliEsercitazioni di Informatica (CIV)
Esercitazioni di Informatica (CIV) Puntatori, Tema d esame Andrea Romanoni e-mail: andrea.romanoni@polimi.it website: http://home.deib.polimi.it/romanoni/ 26 novembre 2015 Esame del 21 luglio 2014 Testo
DettagliELEMENTI 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:
DettagliFondamenti di Informatica T-1, 2017/2018 Modulo 2. Prova d Esame 2A di Giovedì 25 Gennaio 2018 tempo a disposizione 2h
Avvertenze per la consegna: apporre all inizio di ogni file sorgente un commento contenente i propri dati (cognome, nome, numero di matricola) e il numero della prova d esame. Al termine, consegnare tutti
DettagliFondamenti di Informatica: Ingegneria Meccanica Prova scritta del 12 luglio 2008
Fondamenti di Informatica: Ingegneria Meccanica Prova scritta del 12 luglio 2008 Gli studenti dell a.a. 2007-2008 e 2006-2007 (6CFU) devono svolgere i 6 esercizi. Gli studenti degli anni precedenti non
DettagliEsercitazione 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
DettagliADT 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
DettagliInformatica B Prof. Di Nitto e Morzenti Appello del 17 febbraio 2005 Cognome e Nome... Numero Matricola... (in stampatello)
Informatica B Prof. Di Nitto e Morzenti Appello del 17 febbraio 2005 Cognome e Nome... Numero Matricola... (in stampatello) Risolvere i seguenti esercizi, scrivendo le risposte ed eventuali tracce di soluzione
DettagliEsercitazioni di Prog. II (funzioni su insiemi) Chiara Petrioli
Esercitazioni di Prog. II (funzioni su insiemi) Chiara Petrioli Esercizi per la manipolazione di insiemi (rappresentati tramite liste) Insiemi.c /*Questo file include i prototipi e le definizioni di specifiche
DettagliFondamenti di Informatica T-1, 2015/2016 Modulo 2. Prova d Esame 6A di Giovedì 8 Settembre 2016 tempo a disposizione 2h
Avvertenze per la consegna: apporre all inizio di ogni file sorgente un commento contenente i propri dati (cognome, nome, numero di matricola) e il numero della prova d esame. Al termine, consegnare tutti
DettagliFondamenti di Informatica T-1, 2016/2017 Modulo 2. Prova d Esame 2A di Giovedì 26 Gennaio 2017 tempo a disposizione 2h
Avvertenze per la consegna: apporre all inizio di ogni file sorgente un commento contenente i propri dati (cognome, nome, numero di matricola) e il numero della prova d esame. Al termine, consegnare tutti
DettagliStrutture 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));
DettagliPolitecnico di Torino
Politecnico di Torino INFORMATICA II Esame del 29 Novembre 2008 Un file di testo di lunghezza ignota contiene le misure delle potenze di segnale radio di vari Access Point [AP] (l apparecchiatura che viene
DettagliFondamenti di Informatica T-1, 2015/2016 Modulo 2. Prova d Esame 1A di Giovedì 14 Gennaio 2016 tempo a disposizione 2h
Avvertenze per la consegna: apporre all inizio di ogni file sorgente un commento contenente i propri dati (cognome, nome, numero di matricola) e il numero della prova d esame. Al termine, consegnare tutti
DettagliFondamenti 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
DettagliProf. 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
DettagliGestione 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
DettagliFUNZIONI che operano su LISTE e TEMI d ESAME
D O D I C E S I M A ESERCITAZIONE 2006/ L. MANDELLI FUNZIONI che operano su LISTE e TEMI d ESAME ------------------calcola la somma degli elementi in posizione pari di una lista Si assuma che il primo
DettagliEsercizio 1. Liste di interi
Esercizio 1. Liste di interi Si legga una sequenza di numeri interi da tastiera, dopo ogni inserimento chiedere all'utente se vuole continuare, quindi: Creare due liste L1 e L2 con inserimento ordinato;
DettagliFondamenti di Informatica T-1, 2012/2013 Modulo 2. Prova d Esame 3A di Giovedì 14 Febbraio 2013 tempo a disposizione 2h
Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit3A.zip contenente i file necessari (progetto Visual Studio ed eventuali altri file di esempio). Avvertenze per la consegna:
DettagliFondamenti di Informatica T-1, 2015/2016 Modulo 2. Prova d Esame 3A di Venerdì 12 Febbraio 2016 tempo a disposizione 2h
Avvertenze per la consegna: apporre all inizio di ogni file sorgente un commento contenente i propri dati (cognome, nome, numero di matricola) e il numero della prova d esame. Al termine, consegnare tutti
DettagliFondamenti di Informatica T-1, 2014/2015 Modulo 2. Prova d Esame 1A di Martedì 13 Gennaio 2015 tempo a disposizione 2h
Avvertenze per la consegna: apporre all inizio di ogni file sorgente un commento contenente i propri dati (cognome, nome, numero di matricola) e il numero della prova d esame. Al termine, consegnare tutti
DettagliEsercizio 1 Domanda di teoria (13 punti)
Parte 1 Tempo a disposizione: 40 min., Totale punti: 16 Materiale di ausilio utilizzabile durante l appello: Parte 1: Non è possibile consultare alcun materiale, né accedere al calcolatore. Parte 2: Tutto
DettagliNOTA SULLA CORREZIONE: Per ottenere un esito positivo è necessario svolgere un elaborato sufficiente in entrambe le parti.
Parte 1 Tempo a disposizione: 40 min., Totale punti: 16 Materiale di ausilio utilizzabile durante l appello: Parte 1: Non è possibile consultare alcun materiale, né accedere al calcolatore. Parte 2: Tutto
DettagliPassaggio dei parametri
Passaggio dei parametri Per valore Il valore viene copiato dall environment esterno all environment della funzione o procedura Cambiamenti dei parametri così passati non si riflettono sull environment
DettagliFondamenti di Informatica T-1, 2010/2011 Modulo 2. Prova d Esame 2A di Mercoledì 2 Febbraio 2011 tempo a disposizione 2h
Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit2A.zip contenente i file necessari (progetto Visual Studio ed eventuali altri file di esempio). Avvertenze per la consegna:
DettagliELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli
ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del
Dettagligiapresente( ) leggi( ) char * strstr(char * cs, char * ct) NULL
Materiale di ausilio utilizzabile durante l appello: tutto il materiale è a disposizione, inclusi libri, lucidi, appunti, esercizi svolti e siti Web ad accesso consentito in Lab06. L utilizzo di meorie
DettagliCorso di Laurea Ingegneria Informatica Fondamenti di Informatica 2
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa E14 F. Gasparetti, C. Limongelli Maggio 2012 1 Verifica presenza di elementi comuni V1 - Date due liste di stringhe scrivere
DettagliEsercizio n.1 FONDAMENTI DI INFORMATICA 1. Esercizio n.2. Soluzione. LINGUAGGIO C Funzioni e gestione file: esercitazione
Università degli Studi di Cagliari Corso di Laurea in Ingegneria Biomedica (Industriale), Chimica, Meccanica, Elettrica FONDAMENTI DI INFORMATICA 1 http://www.diee.unica.it/~marcialis/fi1 A.A. 2010/2011
DettagliScrivere un programma che salva in un file tutto quello che si scrive sulla tastiera.
Lezione 13 e 14 GESTIONE DEI FILE A) Nozioni sulla gestione dei file B) Esempio applicativo: gestione di una agenda Fabio Scotti Laboratorio di programmazione per la sicurezza 1 Lezione 13 e 14 Fabio Scotti
DettagliFondamenti di Informatica T-1, 2014/2015 Modulo 2. Prova d Esame 2A di Martedì 29 Gennaio 2015 tempo a disposizione 2h
Avvertenze per la consegna: apporre all inizio di ogni file sorgente un commento contenente i propri dati (cognome, nome, numero di matricola) e il numero della prova d esame. Al termine, consegnare tutti
DettagliAritmetica dei puntatori
Aritmetica dei puntatori Marco Alberti Programmazione e Laboratorio, A.A. 2016-2017 Dipartimento di Matematica e Informatica - Università di Ferrara Ultima modifica: 7 dicembre 2016 sizeof L operatore
DettagliFondamenti di Informatica T-1, 2016/2017 Modulo 2. Prova d Esame 4A di Giovedì 15 Giugno 2017 tempo a disposizione 2h
Avvertenze per la consegna: apporre all inizio di ogni file sorgente un commento contenente i propri dati (cognome, nome, numero di matricola) e il numero della prova d esame. Al termine, consegnare tutti
DettagliFondamenti di Informatica T-1, 2012/2013 Modulo 2. Prova d Esame 5A di Giovedì 11 Luglio 2013 tempo a disposizione 2h
Prima di cominciare: si scarichi dal sito http://esamix.labx il file StartKit5A.zip contenente i file necessari (progetto Visual Studio ed eventuali altri file di esempio). Avvertenze per la consegna:
DettagliFondamenti 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
DettagliE12 Esercizi su Strutture dati dinamiche in C
E12 Esercizi su Strutture dati dinamiche in C Esercizio 1. Si vuole realizzare una lista caratteri in C utilizzando una rappresentazione semplicemente collegata. Scrivere una struttura nodo che contiene
DettagliTipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C
Tipi di dati strutturati e Linguaggio C Record o strutture Il costruttore struct in C Dati strutturati Record Un record o struttura è una struttura dati ottenuta aggregando elementi di tipo diverso che
DettagliLab 12 Allocazione dinamica della memoria
Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 12 Allocazione dinamica della memoria Lab17 1 Esercizio 0 Un file di testo di nome bambini.txt, contiene informazioni
Dettagli