Strumenti Utente

Strumenti Sito


fisica:informatica:201516:primoanno:esercitazione4

Esercitazione 5 bis

Esercizio 0: Equazioni di secondo grado

Scrivere un programma C che legge da standard input i coefficienti a,b,c di una equazione di secondo grado

a * x^2 + b * x + c = 0

ne calcola le radici seguendo la traccia in questo documento

Esercizio 1: Eco

Scrivere un programma C che legge una stringa che non contiene spazi da standard input la ristampa sullo standard output come in

$ ./eco
Inserisci una stringa:

se digito pippo e ritorno carrello (\n) ottengo

$ ./eco
Inserisci una stringa: pippo
Ho letto : pippo
Inserisci una stringa:

l'elaborazione termina digitando End OF File (CTRL-D).

Esercizio 2: Stampa cifre decimali

Scrivere un programma C che legge dallo standard input un numero intero positivo X e stampa le cifre decimali del numero, una per linea (separate da \n) sullo standard output.

Esercizio 3: Stampa cifre binarie

Scrivere un programma C che legge un intero X (tipo int) da standard input e stampa sullo standard output le cifre della sua rappresentazione in complemento a due.

Suggerimento: utilizzare gli operatori bit a bit di shift («,»), complemento(~), and(&), or(|), xor (^) per ricavare le cifre dalla rappresentazione interna di X come int senza ricalcolarla.

Esercizio 4: Bilanciamento delle parentesi

Scrivere un programma C che legge dallo standard input una sequenza di caratteri (terminata da EOF) e stabilisce se l'insieme dei caratteri utilizza in modo appropriato le parentesi graffe tonde e quadre ovvero

  • se il numero delle parentesi aperte e chiuse coincide e
  • se la parentesi aperta precede sempre la parentesi chiusa.

Ad esempio:

{lkshaj[nnnn()]}{}

e' una sequenza corretta, mentre

{lkshaj][nnnn()}{}

e' scorretta.

Utilizzare getchar() per leggere i caratteri uno ad uno, la funzione restituisce EOF quando lo stream e' finito (vedi man getchar).

Inserendo manualmente i caratteri EOF puo' essere generato utilizzando la combinazione di tasti CONTROL-D.

Quando il programma e' funzionante, verificare il bilanciamento delle parentesi del programma stesso utilizzando la redirezione. Ad esempio, se l'eseguibile relativo al mio programma si chiama checkpar, e il sorgente si trova nel file checkpar.c, provare ad eseguire

bash$ ./checkpar < checkpar.c

Esercizio 5: Operatori logici

Fornire delle espressioni logiche equivalenti alle seguenti senza usare la negazione (!)

!(a > b)
!(a <= b && c <= d )
!(a + 1 == b + 1)
!(a < 1 || b < 2 && c < 3)

Verificare la bontà della soluzione fornita stampando sullo standard output le tabelle di verità per tutte le coppie di espressioni equivalenti.

Esercizio 6: Calcolo delle potenze di 2

Scrivere un programma C che legge da standard input un numero intero positivo n (n⇐30) e calcola l'n-esima potenza di 2 (2 elevato ad n) utilizzando gli operatori di shift (« o »).

fisica/informatica/201516/primoanno/esercitazione4.txt · Ultima modifica: 13/03/2017 alle 09:49 (2 anni fa) da Susanna Pelagatti