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

Clemente Galdi » 11.Esercitazioni su I/O di basso livello


Esercizio 1

Scrivere un programma in linguaggio C che, utilizzando le funzioni di I/O a basso livello, in un ciclo infinito:

  • Legge dallo standard input una stringa S
  • Visualizza su standard error la stringa S
  • Il programma termina quando l’utente digita la stringa “fine”

Cosa è necessario modificare nel codice affinché il programma legga l’input da un file invece che da standard input?

Esercizio 2

Scrivere un programma in linguaggio C che riceve su riga di comando il nome di un file. Utilizzando le funzioni di I/O a basso livello, in un ciclo infinito:

  • Legge dallo standard input una stringa S
  • Scrive nel file la variabile intera (senza convertirla in stringa) contenente la lunghezza della stringa S.
  • Scrive nel file la stringa S
  • Il programma termina quando l’utente digita la stringa “fine”.

Scrivere un programma che riceve su riga di comando il nome del file generato dall’esercizio appena descritto.
Per ogni stringa S contenuta nel file:

  • Visualizza la lunghezza di S su standard output.
  • Visualizza la stringa S su standard input.

Esercizio 3

Scrivere un programma in linguaggio C che riceve su riga di comando

  • il nome del file generato dal programma dell’esercizio 3
  • Il nome di un nuovo file.

Il programma:

  • Crea una lista (allocata dinamicamente) in cui ogni elemento contiene una stringa letta dal file e la sua lunghezza.
  • Inverte la direzione della lista
    • il primo elemento della lista diventa l’ultimo;
  • Scrive la lista invertita in un nuovo file mantenendo la struttura
    • Per ogni stringa S nella lista il programma scrive nel file la lunghezza di S seguita da S.

Esercizio 4

Scrivere un programma C che:

  1. Riceve su linea di comando una lista di stringhe;
  2. Apre un file “output.txt” (e lo crea se non esiste);
  3. Redirige lo STANDARD OUTPUT su output.txt;
  4. Per ogni stringa ricevuta in input
    • Se la stringa corrisponde al nome di un file, visualizza su STANDARD OUTPUT la stringa “: file esiste”
    • Altrimenti visualizza su su STANDARD ERROR la stringa “Impossibile aprire “.

Esercizio 5

Scrivere un programma C che riceve su linea di comando il nome di un file “di testo”.

Il programma:

  • Legge dal file un carattere alla volta;
  • Converte il carattere letto in intero y;
  • Converte l’intero y nella stringa z che lo rappresenta;
  • Scrive in un altro file la terna y, k=lunghezza(z) e z.

Esercizio 6

Scrivere un programma C che riceve su linea di comando il nome di un file ed un intero n. Il file in input consiste di coppie (intero, carattere). Il carattere appartiene all’insieme {a, i, f}. Il programma si posiziona alla coppia n-ma.

  • Legge la coppia (x, carattere)
  • Se il carattere è ‘a’
    • Si sposta di x coppie dopo la posizione corrente
  • Se il carattere è ‘i’
    • Si sposta di x coppie prima della posizione corrente

Il programma termina quando incontra il carattere ‘f’ oppure dopo 10 iterazioni. Si assuma che lo spostamento indicato dalla coppia sia sempre intero al file.

  • 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