DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Lab 3: 31 Marzo 2014
Marco D. Santambrogio – [email protected]
Gianluca Durelli – [email protected]
Ver. aggiornata al 31 Marzo 2014
Obiettivi
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Esercitarsi sui costrutti visti a lezione
 Costrutti iterativi
 Array e Stringhe
2
Esercizi
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•
•
•
•
•
•
•
Es 0: La calcolatrice con lo switch
Es1: max, min
Es2: DNA
Es3: Ordina caratteri
Es4: Calcolo media di un vettore
Es5: Ricerca sequenza
Es6: Conta occorrenze
3
Lo switch
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 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
switch ( expression ){
case value1 :
statement-list1
case value2 :
statement-list2
case value3 :
statement-list3
case ...
}
4
Lo switch
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• 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”
switch ( expression ){
case value1 :
statement-list1
case value2 :
statement-list2
case value3 :
statement-list3
case ...
}
5
La calcolatrice con lo switch
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
6
La calcolatrice con lo switch: zoom
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
7
Piccolo problema…
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
8
Perche’???
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Flusso
9
Lo switch ed il break
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
10
Zoom
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Flusso
11
Lo switch: default
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
12
Esercizi
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
•
•
•
•
•
•
•
Es 0: La calcolatrice con lo switch
Es1: max, min
Es2: DNA
Es3: Ordina caratteri
Es4: Calcolo media di un vettore
Es5: Ricerca sequenza
Es6: Conta occorrenze
13
Exe 1: max, min
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Si scriva un programma (no funzioni)
che, ricevuti e salvati in un array N
numeri interi positivi trovi:
 Il numero massimo e minimo nell’array
 Per ciascuno dei due numeri, stampi a
video la posizione nell’array
Esempio: a[]={3,4,1,56,23,28,17}
Max: 56 in posizione: 3
min: 1 in posizione: 2
14
Exe 2: DNA
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Si scriva un programma in C che, data una
stringa inserita dall’utente di dimensione n,
rappresentante una sequenza di DNA,
dica quante A, T, C e G sono presenti
nella sequenza
• 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
Exe 3: Ordina caratteri
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Si scriva un programma (no funzioni)
che ricevuti e salvati in un array N
caratteri, compresi tra ‘a’ e ‘z’, ordina
tali elementi in ordine decrescente.
16
Exe 4: Calcolo media di una serie
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Si scriva un programma che, ricevuto in
ingresso un vettore di lunghezza arbitraria N,
calcoli la media dei suoi valori.
 Si ricorda che, dato un vettore v di lunghezza N, la
media dei suoi valori è definita come:
_
• Esempio:
1
v
N
N
v
i 1
i
 v = [1 2 3 4]:
• La media è 2.5
17
Exe 5: Cerca sequenza
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Si scriva un programma in C (NO funzioni) che,
dati due array di interi, a1 e a2, rispettivamente di
dimensione n e m, con n > m, dica se l’array di
a2 è contenuto in a1.
 Gli array sono popolati dall’utente
 a2 deve comparire in a1 non solo con gli stessi
elementi, ma deve essere perfettamente contenuto
(valori, sequenza, etc.)
• Esempio:
 a1 = [1 2 3 4]; a2 = [2 3]: a2 è contenuto in a1
 a1 = [1 2 3 4]; a2 = [3 2}: a2 NON è contenuto in a1
18
Exe 6: Conta occorrenze
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• Dato l’esercizio 5, si scriva un programma
in C (NON si devono usare funzioni) che,
dati a1 e a2, dice quante volte a2 è
contenuto in a1.
 Non si ammettono sovrapposizioni in a1
• Esempio:
 a1 = [2 2 2 2]; a2 = [2 2]: a2 è contenuto 2 volte in a1
 a1 = [2 2 2 4]; a2 = [2 2}: a2 è contenuto 1 volta in a1
19
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
• BUON LAVORO!
20
Scarica

V2 - PPT