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:
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
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);
... }
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
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.
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.
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++; }
Si realizzi un programma che crei un semplice Editor di testo a linea di comando.
Specifiche:
1. Prolusione
2. Sistemi Operativi – parte prima
3. Sistemi Operativi – parte seconda
6. Il linguaggio C – parte prima
8. Il linguaggio C – funzioni e puntatori
10. Il linguaggio C – parte terza
11. La documentazione del software
12. Dati strutturati
13. Esercizi sui dati strutturati
14. Approfondimenti di C, Stringhe e file
15. Esercizi su stringhe e file
16. La ricorsione
17. Il linguaggio c++ parte prima
18. Il linguaggio C++ - parte seconda
19. Strutture dati di tipo astratto