130 likes | 332 Vues
Lab 6: 15 Maggio 2014. Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it Ver. aggiornata al 10 Maggio 2014. Obiettivi. Esercitarsi sui costrutti visti a lezione Tutto il C fatto fino a qui
E N D
Lab 6: 15 Maggio 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it Ver. aggiornata al 10 Maggio 2014
Obiettivi • Esercitarsi sui costrutti visti a lezione • Tutto il C fatto fino a qui • In particolare: puntatori e passaggio per indirizzo dei parametri alle funzioni
Esercizi • Es0: Recupera Valore • Es1: Sostituisci Numero • Es2: Valori circostanti • Es3: Linea Spezzata • Es4: Media Studenti • Es5: Matrice 2x2 Inversa • Es6: Propagazione
Exe 0: Recupera valore • 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
Exe 1: Sostituisci Numero • 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
Exe 2: Valori Circostanti • 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.
Exe 3: Line Spezzata • 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
Exe 4: Media Studenti • 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
Exe 5: Matrice 2x2 Inversa • Si scriva una funzione C che ricevuta in ingresso una matrice 2x2 ne calcoli l’inversa
Exe 6: Propagazione • 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