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
 
 
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