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

20
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 3 Aprile 2014 Lab 3: 3 Aprile 2014 Marco D. Santambrogio – [email protected] Gianluca Durelli – [email protected] Ver. aggiornata al 31 Marzo 2014

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

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Lab 3: 3 Aprile 2014Lab 3: 3 Aprile 2014

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

Ver. aggiornata al 31 Marzo 2014

Page 2: DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3: 3 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 Costrutti iterativi Array e Stringhe

2

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

EserciziEsercizi

• Es 0: La calcolatrice con lo switch• Es1: Inserimento dati• Es2: Aggiorna DNA• Es3: Numeri primi in un intervallo• Es4: Coefficiente binomiale• Es5: Scomposizione in fattori primi• Es6:Numeri amicabili

3

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Lo switchLo switch

4

switch ( expression ){ case value1 : statement-list1 case value2 : statement-list2 case value3 : statement-list3 case ...

}

• Lo switch ci permette una alternativa al come selezionare la prossima istruzione da eseguire

• Lo switch valuta una espressione, quindi cerca di confrontare un valore con diversi possibili cases

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Lo switchLo switch

• Ciascun case contiene un valore (value) e una lista di istruzioni (statement)

• Il flusso di controllo si traferisce attraverso tutte le istruzioni, partendo dal primo case che “corrisponde”

5

switch ( expression ){ case value1 : statement-list1 case value2 : statement-list2 case value3 : statement-list3 case ...

}

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

La calcolatrice con lo La calcolatrice con lo switchswitch

6

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

La calcolatrice con lo switch: zoomLa calcolatrice con lo switch: zoom

7

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

PiccoloPiccolo problema… problema…

8

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Perche’???Perche’???

9

Flusso

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Lo switch ed il breakLo switch ed il break

10

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

ZoomZoom

11

Flusso

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Lo switch: defaultLo switch: default

12

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

EserciziEsercizi

• Es 0: La calcolatrice con lo switch• Es1: Inserimento dati• Es2: Aggiorna DNA• Es3: Numeri primi in un intervallo• Es4: Coefficiente binomiale• Es5: Scomposizione in fattori primi• Es6:Numeri amicabili

13

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 1: Inserimento datiExe 1: Inserimento dati

• Si scriva un programma (no funzioni) che controlla il corretto inserimento di dati in un array. L’array è composto solo da numeri

interi pari e positivi Il numero di elementi inseriti può

essere minore della dimensione massima dell’array

14

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 2: Aggiorna DNAExe 2: Aggiorna DNA

• Si scriva un programma in C che, data una stringa inserita dall’utente di dimensione n, rappresentante una sequenza di DNA, sostituisca tute le lettere seguendo questa regola: A-T, T-C, C-G e G-A

• Si ricorda che: Il DNA può essere definito, in maniera

semplificata, come una doppia catena polinucleotidica (A,T,C,G)

Si deve quindi verificare che i caratteri inseriti siano solo A, T, C e G

15

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 3: Numeri primi in un Exe 3: Numeri primi in un intervallointervallo

• Si scriva un programma che ricevuti in ingresso due numeri x e y (x<y), stampi tutti e soli i numeri primi compresi nell’intervallo.

• Esempio: x=1, y=5:• Numeri primi: 2, 3, 5

16

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 4: Coefficiente Exe 4: Coefficiente binomialebinomiale

• Il numero di scelte di k oggetti fra quelli che costituiscono un insieme di n elementi

• Quindi il numero dei sottoinsiemi di k elementi di un dato insieme di n oggetti, è dato dal cosiddetto coefficiente binomiale:

17

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 5: Scomposizione in fattori Exe 5: Scomposizione in fattori primiprimi

• Si scriva in C (si devono usare le funzioni) un programma che, dato un numero N intero positivo, dica quali sono i suoi divisori primi.

• Esempio N=6, Risposta: 2,3 N=15, Risposta: 3,5

18

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

Exe 6: Numeri amicabiliExe 6: Numeri amicabili

• Si scriva in C un programma che, dati due numeri interi positivi, dica se sono amicabili In matematica, sono numeri amicabili o amici

due numeri per cui la somma dei divisori di uno (escluso il numero stesso) è uguale all'altro e viceversa.

• Un esempio classico è dato dalla coppia 220 e 284. I due numeri sono amicabili in quanto 220 è divisibile per 1, 2, 4, 5, 10, 11, 20, 22, 44,

55 e 110 e la loro somma risulta 284; 284 è divisibile per 1, 2, 4, 71, 142 che sommati

tra loro restituiscono proprio 220.

19

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE

• BUON LAVORO!

20