Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D Le Miniguide all'orientamento Gli eBook di Federica La Corte in Rete
 
I corsi di Scienze Matematiche Fisiche e Naturali
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Salvatore Cuomo » 15.Esercizi su stringhe e file


Esercizio 1

Scrivere una function di tipo main che legga da un file “mat.dat” una matrice di float i

cui primi 2 elementi siano la dimensione della matrice assegnata.

Tale function inoltre:

  • deve memorizzare la matrice in un puntatore a puntatore A.
  • deve calcolare la trasposta di A scrivendo in un file trasp.dat il risultato dell’elaborazione.

Esempio di File mat.dat

5 4

1 2 3 4

5 6 7 8

9 10 11 12

13 14 15 16

17 18 19 20

Si suggerisce di scrivere preliminarmente mediante un editor di testo, tipo vi, il file mat.dat

Esercizio 1 cont.

Istruzioni di dichiarazione, apertura e lettura da un file avvengono attraverso le istanza
/*dichiarazione del punatore a file */
...
if ((fp=fopen("mat.dat","r")) == NULL)
printf("Errore di apertura dal file\n");
else{
/*Leggo le dimensioni della matrice*/
fscanf(fp,"%d",&n);
... }

Codice_C_1

Codice_C_1

Codice_C_2

Codice_C_2


Esercizio 2

Si realizzi una function che:

• Legga da un file di testo di 160 caratteri ogni parola;

• Trasformi in maiuscolo tutte le lettere minuscole;

• Scriva su un altro file di testo un nuovo testo composto solo dalle parole di posto pari.

Si utilizzi la function scrivendo un programma chiamante che apra in lettura il file “sms.txt” da

cui leggere la parola ed in scrittura il file “NSMS.txt” su cui scrivere la nuova parola invertita.

Esempio file sms.txt Esempio file NSMS.txt

Ciao ci vediamo CI DOMANI

domani ad ora ORA PRANZO.

di pranzo. Ti CHIAMO

chiamo appena POSSO

posso

Esercizio 2

Si osservi che prima del programma principale sono state inserite le direttiva:

include

define FROM "sms.dat"

define TO "NSMS.dat"

define DIM 160

Si è utilizza la libreria ctype.h per la manipolazione delle stringhe. E’ stato inoltre scelto di definire i nomi del file di input e quello di output mediante le variabili globali FROM e TO.

Codice_C_3

Codice_C_3


Esercizio 2

Il programma è scritto in maniera modulare. Descriviamo nel dettaglio alcune delle funzioni sviluppate.

La funzione void Leggi_parole( ) legge le parole dal file

Mostra void Leggi_parole( )

La funzione void toUpper( ) converte una stringa da minuscolo a maisucolo.

Codice_C_4

Codice_C_4

Codice_C_5

Codice_C_5


Esercizio 2

Il programma è scritto in maniera modulare. Descriviamo nel dettaglio alcune delle funzioni sviluppate.

La funzione Scrivi_parole_pari() scrive in un file le parole di posto pari. Il nucleo della funzione è dato dal ciclo:

while((stato!=EOF)&&(i
/* controllo se la parola è di posto pari */
if(n%2==0){
stato=fprintf(fp,"%c",stringa[i]);
}
if((stringa[i]=='')||(stringa[i]=='\n')){
n++;}
i++; }

Codice_C_6

Codice_C_6


Esercizio 3

Si realizzi un programma che crei un semplice Editor di testo a linea di comando.

Specifiche:

  • In input il nome del file da editare
  • In output il file editato.
Codice_C_7

Codice_C_7


Esercizio 3

Si realizzi un programma che crei una semplice visualizzazione di un testo.

Specifiche:

  • In input il nome del file da visualizzare
  • Visualizzare a video il contenuto di un file di testo
Codice_C_8

Codice_C_8


  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion