DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 10 Aprile 2014 Marco D. Santambrogio – [email protected] Gianluca Durelli – [email protected] Ver. aggiornata al 6 Aprile 2014 Obiettivi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Esercitarsi sui costrutti visti a lezione Tutto il C fatto fino a qui In particolare: matrici e strutture 2 Esercizi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • • • • • • • Es0: Conta elementi (matrice) Es1: Primi Es2: Calcolo punto medio Es3: Occorenze Es4: Inserimento nel SIT Es5: Scambia interi Es6: Inserimento con funzioni 3 Exe 0: Conta elementi (matrice) DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Scrivere un programma in C (no funzioni) che: ricevuto in ingresso una matrice NxM di interi ed un numero X determini quanti numeri nella matrice non sono divisibili per il numero dato 4 Exe 0: Soluzione completa… base DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 5 Exe 0: I dati DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 6 Exe 0: Popolare la matrice DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 7 Exe 0: Popolare la matrice DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Fisso la riga (i) per la colonna 8 Exe 0: Popolare la matrice DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Fisso la riga (i) per la colonna Fisso la riga (i) e la colonna (j) 9 Exe 0: Popolare la matrice DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Fisso la riga (i) per la colonna Fisso la riga (i) e la colonna (j) Elemento in posizione: riga: i, colonna: j 10 Exe 0: Cerco gli elementi divisibili DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 11 Esercizi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • • • • • • • Es0: Conta elementi (matrice) Es1: Primi Es2: Calcolo punto medio Es3: Occorenze Es4: Inserimento nel SIT Es5: Scambia interi Es6: Inserimento con funzioni 12 Exe 1: Primi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Data una matrice M RxCxZ (3 dimensioni) popalata da interi positivi • Si scriva un programma in C che, data la matrice M, dopo aver richiesto le dimensioni e averla fatta popolare dall’utente (numeri positivi), dica quanti numeri primi contiene Si deve scrivere una funzione TestPrimo che, dato un numero, dice se questo è primo o meno 13 Exe 2: Calcolo punto medio DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si definisca una struttura dati in grado di rappresentare un punto in un piano cartesiano • Si scriva quindi un programma che utilizzi tale struttura e che, ricevuti in ingresso due punti p0 e p1, calcoli le coordinate del punto medio pm del segmento che li collega Es.: p0 = (1,1) , p1 = (2,2) pm = (1.5, 1.5) 14 Exe 3: Occorrenze DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si scriva un programma in C (no funzioni) che: Presa in ingresso una matrice di caratteri minuscoli di dimensione RxC, con R e C definiti dall’utente Restituisce come risultato il numero delle occorrenze per ciascuna delle vocali presenti nella matrice 15 Exe 4: Inserimento nel SIT DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si realizzi una struttura dati per la gestione degli studenti del SIT, il Santa Institute of Technology • Per ogni studente ci interessa: Nome, cognome, data di nascita, numero di telefono, email, matricola, indirizzo abitazione (via, numero civico, città, provincia, cap), corso di studio (identificato da 3 caratteri max) e i voti dei 31 esami che devono essere sostenuti per potersi l’aureare • Si scriva quindi un programma in C, no funzioni, che permette l’inserimento degli studenti nel SIT 16 Exe 5: Scambia interi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si scriva un programma in C che, dati due numeri interi, invoca una funzione swap che ne scambia i valori La funzione swap, per quanto visto fino ad oggi a lezione, ha la seguente interfaccia: void swap(int, int); Il programma funziona correttamente? • Come si potrebbe risolvere l’eventuale problema? 17 Exe 6: Inserimento con funzioni DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si scriva un programma in C che, partendo dall’esercizio 4 di oggi, permetta che l’inserimento degli studenti avvenga tramite l’invocazione di una funzione • Si scriva quindi anche la funzione PopolaStudenti che permette l’inserimento degli studenti nel registro del SIT 18 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • BUON LAVORO! 19