DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 10 Aprile 2014 Marco D. Santambrogio –...

19
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 10 Aprile 2014 Lab 4: 10 Aprile 2014 Marco D. Santambrogio – [email protected] Gianluca Durelli – [email protected] Ver. aggiornata al 6 Aprile 2014

Transcript of DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 10 Aprile 2014 Marco D. Santambrogio –...

Page 1: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 10 Aprile 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Lab 4: 10 Aprile 2014Lab 4: 10 Aprile 2014

Marco D. Santambrogio – [email protected] Durelli – [email protected]

Ver. aggiornata al 6 Aprile 2014

Page 2: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 10 Aprile 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

ObiettiviObiettivi

• Esercitarsi sui costrutti visti a lezione Tutto il C fatto fino a qui In particolare: matrici e strutture

2

Page 3: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 10 Aprile 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

EserciziEsercizi

• Es0: Conta elementi (matrice)• Es1: Primi• Es2: Calcolo punto medio• Es3: Occorenze• Es4: Inserimento nel SIT• Es5: Scambia interi• Es6: Inserimento con funzioni

3

Page 4: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 10 Aprile 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 0: Conta elementi Exe 0: Conta elementi (matrice)(matrice)

• 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

Page 5: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 10 Aprile 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 0: Soluzione completa… Exe 0: Soluzione completa… base base

5

NOTA: cont DEVE

essere inizializzato a 0

Page 6: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 10 Aprile 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 0: I datiExe 0: I dati

6

Page 7: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 10 Aprile 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 0: Popolare la matriceExe 0: Popolare la matrice

7

Page 8: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 10 Aprile 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 0: Popolare la matriceExe 0: Popolare la matrice

8

Fisso la riga (i) per la colonna

Page 9: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 10 Aprile 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 0: Popolare la matriceExe 0: Popolare la matrice

9

Fisso la riga (i) per la colonnaFisso la riga (i) e la colonna (j)

Page 10: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 10 Aprile 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 0: Popolare la matriceExe 0: Popolare la matrice

10

Fisso la riga (i) per la colonnaFisso la riga (i) e la colonna (j)

Elemento in posizione:riga: i, colonna: j

Page 11: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 10 Aprile 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 0: Cerco gli elementi divisibiliExe 0: Cerco gli elementi divisibili

11

Page 12: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 10 Aprile 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

EserciziEsercizi

• Es0: Conta elementi (matrice)• Es1: Primi• Es2: Calcolo punto medio• Es3: Occorenze• Es4: Inserimento nel SIT• Es5: Scambia interi• Es6: Inserimento con funzioni

12

Page 13: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 10 Aprile 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 1: PrimiExe 1: Primi

• 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

Page 14: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 10 Aprile 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 2: Calcolo punto Exe 2: Calcolo punto mediomedio• 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

Page 15: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 10 Aprile 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 3: OccorrenzeExe 3: Occorrenze

• 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

Page 16: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 10 Aprile 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 4: Inserimento nel SITExe 4: Inserimento nel SIT

• 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

Page 17: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 10 Aprile 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 5: Scambia interi Exe 5: Scambia interi

• 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

Page 18: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 10 Aprile 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 6: Inserimento con Exe 6: Inserimento con funzioni funzioni

• 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

Page 19: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4: 10 Aprile 2014 Marco D. Santambrogio – marco.santambrogio@polimi.it Gianluca Durelli – durelli@elet.polimi.it.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

• BUON LAVORO!

19