DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3 L Aprile 2015 Marco D. Santambrogio – Gianluca Durelli - Ver. aggiornata al 26 Aprile 2015
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEArgomenti Argomenti di questo laboratorio: Funzioni Ricorsione Obiettivo: Risolvere almeno 2 esercizi: Obbligatorio l’esercizio 1 2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEEsercizi Es0: Lunghezza stringa Es1: Media Es2: Modifica matrice Es3: Prodotto tra matrici Es4: Creazione tavola periodica Es5: Ricerca elemento Es6: Ordinamento elementi 3
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEEsercizi Es0: Lunghezza stringa Es1: Media Es2: Modifica matrice Es3: Prodotto tra matrici Es4: Creazione tavola periodica Es5: Ricerca elemento Es6: Ordinamento elementi 4
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 0: Lunghezza Stringa 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 0: Somma array (main) 6
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Exe 0: Somma array (funzione) 7
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEEsercizi Es0: Lunghezza stringa Es1: Media Es2: Modifica matrice Es3: Prodotto tra matrici Es4: Creazione tavola periodica Es5: Ricerca elemento Es6: Ordinamento elementi 8
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Es1: Media 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Es2: Modifica Matrice 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Es3: Prodotto tra matrici 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tavola periodica degli elementi 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Es4: Creazione tavola periodica 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Es5: Ricerca elemento 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Es6: Ordinamento Elementi 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
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEFine… 16