DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6: 15 Maggio 2014 Marco D. Santambrogio – [email protected] Gianluca Durelli – [email protected] Ver. aggiornata al 10 Maggio 2014 Obiettivi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Esercitarsi sui costrutti visti a lezione Tutto il C fatto fino a qui In particolare: puntatori e passaggio per indirizzo dei parametri alle funzioni 2 Esercizi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • • • • • • • Es0: Recupera Valore Es1: Sostituisci Numero Es2: Valori circostanti Es3: Linea Spezzata Es4: Media Studenti Es5: Matrice 2x2 Inversa Es6: Propagazione 3 Exe 0: Recupera valore DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Scrivere una funzione in C che: Ricevuta in ingresso una matrice NxM (con dimensioni scelte dall’utente) ed una posizione (i,j) della matrice Ritorni il valore della matrice nella posizione (i-1, j) quando questo e’ significativo, 0 altrimenti 4 Exe 0: Recupera valore (main) DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 5 Exe 0: Recupera valore (funzione) DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 6 Exe 1: Sostituisci Numero DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Scrivere una funzione in C che: ricevuta in ingresso una matrice NxM di interi e due numeri X ed Y Sostituisca ogni occorrenza del numero X nella matrice con il numero Y e viceversa Nota: Le dimensioni N ed M ed i numeri X ed Y devono poter essere scelti dall’utente 7 Exe 2: Valori Circostanti DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si scriva una funzione in C che: Ricevuta in ingresso una matrice di dimensione NxM (con dimensioni scelte dall’utente) ed una posizione (i,j) della matrice Restituisca la somma dei valori connessi alla posizione scelta Nota: Due valori sono connessi se sono adiacenti in orizzontale, verticale oppure obliquo. 8 Exe 3: Line Spezzata DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si scriva una funzione che: Ricevuto un ingresso un vettore di elementi che rappresentano dei punti in un piano cartesiano Calcoli la lunghezza della linea spezzata che li collega Nota: Si definiscano opportune strutture dati per risolvere l’esercizio 9 Exe 4: Media Studenti DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si realizzi una struttura dati per la gestione dell’anagrafica degli studenti • Per ogni studente ci interessa: Nome, cognome e media (con decimali) • Si scrivano quindi due funzione in C: La prima per inserire gli studenti nell’anagrafica La seconda che permetta di salvare in un array tutti e soli gli studenti che hanno una media compresa tra un intervallo scelto dall’utente 10 Exe 5: Matrice 2x2 Inversa DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si scriva una funzione C che ricevuta in ingresso una matrice 2x2 ne calcoli l’inversa 11 Exe 6: Propagazione DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Scrivere una funzione in C che: Riceva in ingresso una matrice di dimensioni NxM (scelte dall’utente) inizializzata a 0 Riceva in ingresso una posizione della matrice (I,j) da inizializzare ad un valore X Propaghi il valore iniziale secondo le seguenti regole: • La matrice va sempre scorsa da destra verso sinistra e dall’alto verso il basso • Se una cella ha valore 0 ed e’ circondata da celle non nulle allora questa assumera’ un valore pari alla somma dei valori contenuti nelle celle adiacenti • L’algoritmo si ferma quando non esistono piu’ celle con valore 0 12 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • BUON LAVORO! 13