DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio –...

28
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 Lab 2 L.26.14 20 Aprile 2015 20 Aprile 2015 Marco D. Santambrogio – [email protected] Gianluca Durelli - [email protected] Ver. aggiornata al 20 Aprile 2015

Transcript of DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio –...

Page 1: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Lab 2 L.26.14Lab 2 L.26.1420 Aprile 201520 Aprile 2015

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

Ver. aggiornata al 20 Aprile 2015

Page 2: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

ObiettiviObiettivi

• Esercitarsi sui quanto visto a lezione! In particolare: Array Stringhe Funzioni Passaggio per indirizzo

2

Page 3: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

EserciziEsercizi

• Es0: Copia Stringhe• Es1: Minore• Es2: min su N numeri• Es3: posix min su N numeri• Es4: posix e min su N numeri• Es5: Confronta Stringhe• Es6: Matrice Trasposta

3

Page 4: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

EserciziEsercizi

• Es0: Copia Stringhe• Es1: Minore• Es2: min su N numeri• Es3: posix min su N numeri• Es4: posix e min su N numeri• Es5: Confronta Stringhe• Es6: Matrice Trasposta

4

Page 5: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Es0: copia stringheEs0: copia stringhe

• Si scriva un programma in C che, data una stringa, la copia in una seconda stringa

5

Page 6: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Copia stringhe: dati e Copia stringhe: dati e inserimentoinserimento

6

Page 7: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Copia stringhe: dati e Copia stringhe: dati e inserimentoinserimento

7

Page 8: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Copia stringhe: dati e Copia stringhe: dati e inserimentoinserimento

8

Attenzione! Gli array (TUTTI) sono sempre passati per indirizzo. Una variabile di tipo array, infatti, è per definizione un puntatore

Page 9: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Copia stringhe: dati e Copia stringhe: dati e inserimentoinserimento

9

#define DIM 5[…]char stringa1[DIM];

Page 10: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Copia stringhe: lunghezzaCopia stringhe: lunghezza

10

Page 11: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Copia stringhe: lunghezzaCopia stringhe: lunghezza

11

Page 12: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Copia stringhe: lunghezza v2Copia stringhe: lunghezza v2

12

Page 13: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Copia stringhe: copia elementiCopia stringhe: copia elementi

13

Page 14: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Copia stringhe: copia elementiCopia stringhe: copia elementi

14

Page 15: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Copia stringhe: tutto Copia stringhe: tutto insiemeinsieme

15

Page 16: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

E se usassimo le librerie?E se usassimo le librerie?

16

Page 17: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Problema: copia stringheProblema: copia stringhe

17

Page 18: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Ecco perché string.h!!!Ecco perché string.h!!!

18

Page 19: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Problema: copia stringheProblema: copia stringhe

19

Page 20: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Problemi interessantiProblemi interessanti

• Cosa succede se, data una stringa dato1, chiedo di inserirla dall’utente e questo digita “supercalifragili”?

• Cosa succede se, date due stringe dato1 e dato2, entrambe di DIM 5, provo a scrivere dato1 = dato?

20

Page 21: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

EserciziEsercizi

• Es0: Copia Stringhe• Es1: Minore• Es2: min su N numeri• Es3: posix min su N numeri• Es4: posix e min su N numeri• Es5: Confronta Stringhe• Es6: Matrice Trasposta

21

Page 22: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Es1: minoreEs1: minore

1. Si scriva in C una funzione che, dati 2 interi postivi, dice quale è il minore

1. Si scriva in C una funzione che, dati 2 interi positivi, restituisce il minore

22

Page 23: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Es2: min su N numeriEs2: min su N numeri

• Si scriva in C una funzione che, dati N interi positivi restituisce il minore

23

Page 24: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Es3: Posix min su N Es3: Posix min su N numerinumeri

• Si scriva in C una funzione che, ricevuti in ingresso N interi positivi, resituisce la posizione del min

24

Page 25: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Es4: posix e min su N Es4: posix e min su N numerinumeri

• Si scriva in C una funzione che, ricevuti in ingresso N interi positivi, resituisce la posizione ed il valore del min

25

Page 26: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Es5: Confronta stringheEs5: Confronta stringhe

• Si scriva in C un programma che date due stringhe inserite dall’utente dice quale delle due precede alfabeticamente l’altra. Non si può usare la funzione strcmp

 Esempio 1 - dati:

array1=”pippo” - array2=”pio”Esempio 1 - risultato:

L’array2 precede l’array1 Esempio 2 - dati:

array1=”super”- array2=”supercalifragili” Esempio 2 - risultato:

L’array1 precede l’array2

26

Page 27: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Es6: Matrice TraspostaEs6: Matrice Trasposta

• Si definisce matrice trasposta AT di A la matrice ottenuta scambiando ordinatamente le righe con le colonne della matrice A.

• Es:

27

Page 28: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli - durellinux@gmail.com.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Fine…Fine…

28