DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L.26.14 20 Aprile 2015 Marco D. Santambrogio – [email protected] Gianluca Durelli - [email protected] Ver. aggiornata al 20 Aprile 2015 Obiettivi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Esercitarsi sui quanto visto a lezione! In particolare: Array Stringhe Funzioni Passaggio per indirizzo 2 Esercizi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • • • • • • • 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 Esercizi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • • • • • • • 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 Es0: copia stringhe DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si scriva un programma in C che, data una stringa, la copia in una seconda stringa 5 Copia stringhe: dati e inserimento DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 6 Copia stringhe: dati e inserimento DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 7 Copia stringhe: dati e inserimento DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Attenzione! Gli array (TUTTI) sono sempre passati per indirizzo. Una variabile di tipo array, infatti, è per definizione un puntatore 8 Copia stringhe: dati e inserimento DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE #define DIM 5 […] char stringa1[DIM]; stringa1[0] stringa1[1] stringa1 &stringa1[0] stringa1[2] stringa1[3] stringa1[4] 9 Copia stringhe: lunghezza DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 10 Copia stringhe: lunghezza DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 11 Copia stringhe: lunghezza v2 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 12 Copia stringhe: copia elementi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 13 Copia stringhe: copia elementi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 14 Copia stringhe: tutto insieme DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 15 E se usassimo le librerie? DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 16 Problema: copia stringhe DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 17 Ecco perché string.h!!! DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 18 Problema: copia stringhe DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 19 Problemi interessanti DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • 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 Esercizi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • • • • • • • 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 Es1: minore DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 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 Es2: min su N numeri DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si scriva in C una funzione che, dati N interi positivi restituisce il minore 23 Es3: Posix min su N numeri DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si scriva in C una funzione che, ricevuti in ingresso N interi positivi, resituisce la posizione del min 24 Es4: posix e min su N numeri DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si scriva in C una funzione che, ricevuti in ingresso N interi positivi, resituisce la posizione ed il valore del min 25 Es5: Confronta stringhe DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • 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 Es6: Matrice Trasposta DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si definisce matrice trasposta AT di A la matrice ottenuta scambiando ordinatamente le righe con le colonne della matrice A. • Es: é ù é ù ê A =ê ê ë 2 4 8 ú 3 9 27 ú 4 16 64 úû ê A =ê ê ë T 2 3 4 ú 4 9 16 ú 8 27 64 úû 27 Fine… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 28