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