Esercizi su File.

Slides:



Advertisements
Presentazioni simili
File Linguaggio C.
Advertisements

Puntatori Linguaggio C.
Fondamenti di Informatica
INFORMATICA Altre Istruzioni di I/O
Uso avanzato di C.
Nel C non esiste un dato primario di tipo stringa; queste sono rappresentate con un array monodimensionale di caratteri (tipo char). Così per definire.
Iterazione A. Ferrari.
Introduzione al linguaggio C
Introduzione al linguaggio C Dr. Francesco Fabozzi Corso di Informatica.
La ricorsione Simulazione. Il Main /* Programma che usa una funzione ricorsiva*/ #include #define MAX_N 8 main() int valore, dato; printf(Introduci n:
ESERCITAZIONE N. 5 ESERCIZIO N. 1 Autore: Biagio Brattoli S I Corso.
INFORMATICA Strutture iterative
INFORMATICA I file.
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
FILE DATI 16 lunedi 26 luglio giovedi ore 9 Come sappiamo, un file dati è un gruppo di informazioni tra loro correlate, memorizzate in un dispositivo di.
Esercizi su alberi binari
Tail recursion: esempio
Esercizi su alberi binari di ricerca
Esercizi su strutture dinamiche Fondamenti di Programmazione Canale AD a.a. 2009/2010.
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2007/2008 Corso di Programmazione 1 a.a.2007/2008 Prof.ssa Chiara Petrioli Corso di Laurea.
Algoritmi Politecnico di Milano C Primi programmi Politecnico di Milano.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 15 Maggio 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 9 Maggio 2012.
Laboratorio di Linguaggi lezione XI: I/O Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea.
APPUNTI SUL LINGUAGGIO C
Esercizi su alberi binari
INFORMATICA Esercizi.
INFORMATICA I file. © Piero Demichelis 2 File Per rendere più uniforme possibile il comportamento dei programmi in relazione alla grande varietà dei dispositivi.
INFORMATICA Altre Istruzioni di I/O. © Piero Demichelis 2 Funzioni di I/O Per la lettura e la scrittura da videoterminale il C prevede numerose istruzioni.
Esercizio: Copiare un file in un nuovo file mediante le funzioni read e write.
Struct, enum, Puntatori e Array dinamici
Strutture di controllo nel C
Esercizi C sui tipi definiti dall’utente
Esercizi di riepilogo sul linguaggio C: file, puntatori, liste
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia.
1 Gestione dei File Corso di Informatica A Vito Perrone.
File di testo, file binari
Le liste dinamiche La ricorsione
I File.
Le funzioni.
Calcolo del Massimo Comun Divisore
1 ListaDiElem Cancella( ListaDiElem lista, TipoElemento elem ) { ListaDiElem puntTemp; if( ! ListaVuota(lista) ) if( lista–>info == elem ) { puntTemp =
Creazione progetto in C++/DEV
Massimo Comun Divisore
1 Gestione dei File. 2 Perché i file? Sono strutture dati persistenti Sono solitamente memorizzati sui dischi –Si usano dall'interno dei programmi Realizzano.
Esercizi Liste.
Esercizi su File e Liste
Università degli Studi di BresciaA.A. 2012/2013 Fondamenti di Programmazione Docente: Alessandro SaettiA.A. 2012/2013 Università degli Studi di Brescia.
Università degli Studi di BresciaA.A. 2012/2013 Fondamenti di Programmazione Docente: Alessandro SaettiA.A. 2012/2013 Università degli Studi di Brescia.
Gestione dei file di testo, matrici e struct
2000 Prentice Hall, Inc. All rights reserved. Capitolo 11 (Deitel) Lelaborazione dei file Sommario Introduzione La gerarchia dei dati 11.3.
Tail recursion: esempio
Alberi binari Definizione della struttura dati: struct tree { };
1 Esempi domande di esame. 2 Dato il seguente programma #include int main(){ int *p,j=9,i=5; p=&j; *p=i; printf("%d %d %d\n", i,j,*p); scanf("%d",p);/*
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni – BCOR Ingegneria Elettronica – BELR Introduzione al C Esercitazione 5 D. Bloisi, A.
ALGORITMI Un algoritmo è un insieme di istruzioni: -ordinate -non ambigue -effettivamente computabili.
Ripetizione La vera potenza dei programmi per computer risiede nella capacità di ripetere lo stesso calcolo o sequenza di istruzioni più volte, ogni volta.
Corso di Algoritmi e Strutture Dati APPUNTI SUL LINGUAGGIO C
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (II) Istruzioni e strutture di controllo.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 21 Maggio 2014.
Fabio Scotti – Università degli Studi – Laboratorio di programmazione per la sicurezza 1 Lezione 13 e 14 GESTIONE DEI FILE A) Nozioni sulla gestione dei.
1 Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( ) Laboratorio di programmazione Lezione 13 e 14 -
Operatori di incremento e decremento
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Corso di Algoritmi e Strutture Dati APPUNTI SUL LINGUAGGIO C Esercizi su Alberi.
Capitolo 14 Diapositiva 1 Linguaggio C – Guida alla programmazione 2/ed – A. Bellini, A. Guidi Copyright © The McGraw-Hill Companies srl Archiviare.
Il C `e un linguaggio di programmazione di uso generale, originariamente sviluppato per la scrittura del sistema operativo Unix, ed oggi disponibile su.
1 ELEMENTI DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012
Transcript della presentazione:

Esercizi su File

Esercizio Dato un file di testo chiamato dati.txt già esistente contenente uno per riga valori che rappresentano numeri relativi, scrivere un programma in linguaggio C in cui si dichiarino due struct ST1 e ST2 ciascuna con due campi a e b di tipo int e che effettua le seguenti operazioni:  scrive su video quanti valori contiene il file dati.txt; pone nel campo a di ST1 il più grande valore contenuto in dati.txt; pone nel campo b di ST1 il più piccolo valore contenuto in dati.txt; pone nel campo a di ST2 la differenza fra il più grande e il più piccolo valore contenuto in dati.txt; pone nel campo b di ST2 il prodotto fra il più grande e il più piccolo valore contenuto in dati.txt.

typedef struct {int a, b;} ST; int main() { #include <stdlib.h> #include <stdio.h> typedef struct {int a, b;} ST; int main() { ST ST1, ST2; FILE *f; int val; f = fopen("dati.txt","r"); if (f==NULL) exit(-1); fscanf(f,"%d",&ST1.a); ST1.b = ST1.a; while(feof(f) == 0) { fscanf(f,"%d",&val); if(val > ST1.a) { ST1.a = val; } else if (val < ST1.b) { ST1.b = val; } } fclose(f); ST2.a = ST1.a - ST1.b; ST2.b = ST1.a * ST1.b; printf("%d %d\n\t %d %d\n", ST1.a,ST1.b,ST2.a,ST2.b); return 0;

Esercizio Dato un file di testo chiamato dati.txt già esistente contenente uno per riga valori che rappresentano numeri relativi, scrivere un programma in linguaggio C in cui si dichiarino due file F1 e F2 che esternamente si chiameranno rispettivamente dati1.txt e dati2.txt e effettua le seguenti operazioni:  scrive quanti valori contiene il file dati.txt; pone in dati1.txt gli elementi di dati.txt divisibili per 7; pone in dati2.txt gli elementi di dati.txt divisibili per 5; scrive su video quanti valori contiene il file dati1.txt; scrive su video quanti valori contiene il file dati2.txt;

#include <stdlib. h> #include <stdio. h> int main() { FILE #include <stdlib.h> #include <stdio.h> int main() { FILE *f, *f1, *f2; int val, cont=0, cont7=0, cont5=0; f = fopen("dati.txt","r"); f1 = fopen("dati1.txt","w"); f2 = fopen("dati2.txt","w"); if (f==NULL || f1==NULL || f2==NULL) exit(-1);

while(fscanf(f,"%d",&val) while(fscanf(f,"%d",&val) != EOF) { cont++; if(val % 7 == 0) { cont7++; fprintf(f1,"%d\n",val); } if(val % 5 == 0) { cont5++; fprintf(f2,"%d\n",val); printf("%d %d %d\n",cont,cont7,cont5); fclose(f); fclose(f1); fclose(f2); system("pause"); return 0;

Esercizio Scrivere un programma in linguaggio C che: definisce due vettori P e D contenenti ciascuno 100 numeri interi; legge da standard input una sequenza di numeri interi ed inserisce i valori pari nel vettore P e i valori dispari nel vettore D, l’operazione di lettura termina quando almeno uno dei due vettori è stato riempito; inserisce in un file di testo denominato dati.txt i valori contenuti in P e D in modo alternato.

#define N 100 int main() { int P[N], D[N], i=0, j=0; do { scanf(“%d”,&temp); if(temp%2==0) { P[i]=temp; i++; } else { D[j]=temp; j++; } } while (i<N && j<N); if(i>j) { max=i; } else { max=j; } fp=fopen(“dati.txt”,”w”); for(k=0;k<max;k++) { if(k<i) fprintf(fp,”%d\n”, P[k]); if(k<j) fprintf(fp,”%d\n”, D[k]); } fclose(fp); return 0;

Esercizio Scrivere un programma C che: ha in ingresso due file denominati rispettivamente A.txt e B.txt contenenti su ogni riga un numero intero. Il numero di righe dei due file non è noto a priori ma è uguale nei due file; definisce una matrice di nome MATRI 2 X 10 di tipo opportuno e riempie la prima riga di MATRI con gli elementi di A.txt fino al riempimento della riga o all'esaurimento dei dati letti dal file; poi riempie la seconda riga di MATRI con gli elementi di B.txt fino al riempimento della riga o all'esaurimento dei dati letti dal file; copia in un vettore VETT gli elementi presenti nella prima riga della matrice che soddisfano i seguenti criteri: il valore è copiato solo se è maggiore o uguale al valore corrispondente nella seconda riga della matrice; il vettore non deve presentare buchi, ovvero deve essere riempito senza soluzione di continuità. Il programma stampa i valori effettivamente inseriti in VETT.

#include <stdio. h> #include <stdlib. h> int main() { FILE #include <stdio.h> #include <stdlib.h> int main() { FILE *fA, *fB; int MATRI[2][10], VETT[10], el; int indR, indV, j; fA = fopen("A.txt","r"); fB = fopen("B.txt","r"); if(fA == NULL || fB== NULL) exit(-1);

indR=0; while(fscanf(fA,"%d",&el) indR=0; while(fscanf(fA,"%d",&el) != EOF && indR<10) { MATRI[0][indR] = el; indR++; } for(j=0;j<indR; j++) //fA e fB contengono lo stesso num di el fscanf(fB,"%d",&MATRI[1][j]); for(indV=0, j=0; j<indR; j++) { if(MATRI[0][j] >= MATRI[1][j]) { VETT[indV] = MATRI[0][j]; indV++; for(j=0; j<indV; j++) printf("%d\n",VETT[j]); fclose(fA); fclose(fB); system("pause"); return 0;