DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7: 16 Giugno 2014 Marco D. Santambrogio –...

13
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7: 16 Giugno 2014 Lab 7: 16 Giugno 2014 Marco D. Santambrogio – [email protected] Gianluca Durelli – [email protected] Ver. aggiornata al 16 Giugno 2014

Transcript of DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7: 16 Giugno 2014 Marco D. Santambrogio –...

Page 1: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7: 16 Giugno 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Lab 7: 16 Giugno 2014Lab 7: 16 Giugno 2014

Marco D. Santambrogio – [email protected] Durelli – [email protected]

Ver. aggiornata al 16 Giugno 2014

Page 2: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7: 16 Giugno 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

ObiettiviObiettivi

• Esercitarsi sui costrutti visti a lezione Tutto il C visto fino a qui In particolare: funzioni ricorsive, file

2

Page 3: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7: 16 Giugno 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

EserciziEsercizi

• Es0: Lunghezza Stringa• Es1: Numero Vocali• Es2: Maiuscolo• Es3: Serie• Es4: Palindroma• Es5: Scontrino Libreria• Es6: Media Valori

3

Page 4: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7: 16 Giugno 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 0: Lunghezza StringaExe 0: Lunghezza Stringa

• Scrivere una funzione ricorsiva in C che: Ricevuta in ingresso una stringa Ritorni la sua lunghezza

• Non usare strlen(char *)!!! Non usarla nemmeno nei prossimi

esercizi!!!

4

Page 5: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7: 16 Giugno 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 0: Somma array Exe 0: Somma array (main)(main)

5

Page 6: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7: 16 Giugno 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 0: Somma array Exe 0: Somma array (funzione)(funzione)

6

Page 7: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7: 16 Giugno 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 1: Numero VocaliExe 1: Numero Vocali

• Scrivere una funzione ricorsiva in C che: Ricevuto in ingresso una stringa Ritorni il numero di vocali contenute

nella stringa

• Nota: strstr( char *s1, char *s2); Ritorna:

• Se s2 compare in s1: un puntatore alla prima occorrenza di s2 all’interno di s1,

• Se s2 NON compare in s1: NULL

7

Page 8: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7: 16 Giugno 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 2: MaiuscoloExe 2: Maiuscolo

• Scrivere una funzione ricorsiva in C che: Ricevuto in ingresso una stringa Modifichi la stringa perche’ abbia tutti

i caratteri maiuscoli Ritorni il numero di sostituzioni

effettuate

8

Page 9: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7: 16 Giugno 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 3: SerieExe 3: Serie

• Si scriva una funzione ricorsiva in C che: Calcoli il valore della serie definita

dalle seguenti relazioni:• T(0) = 0• T(1) = 1• T(n) = 2*T(n-2)*T(n-1) + 3*T(n-1) + 4,

per n>1

9

Page 10: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7: 16 Giugno 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 4: PalindromaExe 4: Palindroma

• Si scriva una ricorsiva funzione che: Determini se una stringa inserita

dall’utente sia palindroma:• La funzione ritorna 1 quando la stringa e’

palindroma• 0 in caso contrario

10

Page 11: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7: 16 Giugno 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 5: Scontrino LibreriaExe 5: Scontrino Libreria

• Si scriva una programma in C che: Legga da un file un’insieme di libri

acquistati:• Da file di testo• Da file binario

Calcoli il totale della spesa Scriva su di un altro file lo scontrino

dell’acquisto

• I libri sono identificati da: Titolo Autore Prezzo

11

Page 12: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7: 16 Giugno 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 6: Massimo VotiExe 6: Massimo Voti

• Si scriva una funzione C che: Legga da un file di testo un elenco di

misurazioni:• Le misurazioni sono identificate da:

– Tempo (in millisecondi)– Valore

Calcoli la media per ogni secondo Scriva le medie su di un altro file

• Nota: Le misurazioni sono inserite in ordine nel

file di ingresso

12

Page 13: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 7: 16 Giugno 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

• BUON LAVORO!

13