DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3 L.26.14 27 Aprile 2015 Marco D. Santambrogio – [email protected] Gianluca Durelli - [email protected] Ver. aggiornata al 26 Aprile 2015 Argomenti DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Argomenti di questo laboratorio: Funzioni Ricorsione • Obiettivo: Risolvere almeno 2 esercizi: • Obbligatorio l’esercizio 1 2 Esercizi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • • • • • • • Es0: Lunghezza stringa Es1: Media Es2: Modifica matrice Es3: Prodotto tra matrici Es4: Creazione tavola periodica Es5: Ricerca elemento Es6: Ordinamento elementi 3 Esercizi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • • • • • • • Es0: Lunghezza stringa Es1: Media Es2: Modifica matrice Es3: Prodotto tra matrici Es4: Creazione tavola periodica Es5: Ricerca elemento Es6: Ordinamento elementi 4 Exe 0: Lunghezza Stringa DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Scrivere una funzione ricorsiva in C che: Ricevuta in ingresso una stringa Ritorni la sua lunghezza • Non usare strlen(char *)!!! Non usarla nemmeno nei prossimi esercizi!!! 5 Exe 0: Somma array (main) DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 6 Exe 0: Somma array (funzione) DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 7 Esercizi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • • • • • • • Es0: Lunghezza stringa Es1: Media Es2: Modifica matrice Es3: Prodotto tra matrici Es4: Creazione tavola periodica Es5: Ricerca elemento Es6: Ordinamento elementi 8 Es1: Media DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Scrivere un programma che, ricevuto in ingresso un vettore di N interi, determini quanti numeri dell’array sono maggiori della sua media. • Vincolo: Utilizzare una funzione per riempire il vettore Utilizzare una funzione per calcolare la media degli elementi inseriti nell’array Utilizzare una funzione per il calcolo del numero di elementi maggiori della media 9 Es2: Modifica Matrice DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Scrivere un programma che, ricevuto in ingresso una matrice NxM di interi, modifichi la matrice facendo in modo che ogni numero dispari venga moltiplicato per 2 ed ogni numero pari diviso per 2. • Vincolo: Si utilizzi una funzione modificaMatrice per effettuare le modifiche (moltiplicazioni e divisioni) alla matrice in ingresso 10 Es3: Prodotto tra matrici DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Scrivere un programma che, e in ingresso 2 matrici di dimensioni scelte dall’utente: Verifichi che le loro dimensioni siano compatibili con l’operazione di prodotto tra matrici Effettui la moltiplicazione tra le matrici • Vincolo: Si utilizzino almeno 2 funzioni: • Una per il controllo sulle dimensioni delle matrici • Una per il calcolo del loro prodotto 11 Tavola periodica degli elementi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si definiscano le strutture ed i tipi di dato necessari a rappresentare un sottoinsieme della tavola periodica degli elementi • In particolare si definisca il tipo di dato elemento identificato da: Numero atomico Nome Simbolo Peso atomico • Sfruttando i tipi di dato qui definiti si affrontino i problemi successivi 12 Es4: Creazione tavola periodica DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si scriva un programma che permetta di creare la tavola periodica • Il programma chiede all’utente quanti elementi si vogliono inserire e poi procede con la richiesta dei dati sul singolo elemento • Vincolo: Si risolva l’esercizio usando una funzione aggiungiAllaTavola che ricevuto in ingresso un elemento lo aggiunga nella prima posizione disponibile della tavola. 13 Es5: Ricerca elemento DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si scriva un programma che permetta la ricerca di un elemento nella tavola • Il programma chiede all’utente di inserire un nome, oppure un simbolo per effettuare la ricerca dell’elemento • Se l’elemento desiderato viene trovato si stampino a video le sue proprietà • Vincolo: Si utilizzino due funzioni cercaNome e cercaSimbolo per risolvere l’esercizio. Le funzioni devono ricevere in ingresso la stringa da cercare e ritornare un oggetto di tipo elemento. 14 Es6: Ordinamento Elementi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si scriva un programma che permetta di ordinare la tavola secondo una proprietà scelta dall’utente (Nome, simbolo, numero e peso atomico) • Si ordini il catalogo e se ne effettui la stampa • Vincolo: Si utilizzino quattro funzioni differenti per ordinare la tavola secondo le diverse proprietà • Suggerimento: Si usi una funzione scambia per scambiare le posizioni di due oggetti nella tavola 15 Fine… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 16