DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio –...
-
Upload
ottavia-gianni -
Category
Documents
-
view
220 -
download
1
Transcript of DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio –...
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Lab 2 – Info B Lab 2 – Info B
Marco D. Santambrogio – [email protected] Cattaneo – [email protected]
Ver. aggiornata al 9 Agosto 2013
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Lab 2: ObiettiviLab 2: Obiettivi
Strutture di controllo e cicli, array e stringhe
2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Lab 2: AgendaLab 2: Agenda
• Esercizi Lab2 Warm Up (50’)
• Da int a ASCII (10’)• La ricerca del maggiore su N numeri (20’ +10’)• Inserisci nome (10’)
Qualche cosa un pò più divertente (85’)• calcolatrice (35’)• La gara di tuffi, con salvataggio (40’)• Inserisci nome e copia stringa (10’)
Altri exe… (105’)• MCD (50’)• mcm (55’)
3
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Lab 2: AgendaLab 2: Agenda
• Esercizi Lab2 Warm Up (50’)
• Da int a ASCII (10’)• La ricerca del maggiore su N numeri (20’ +10’)• Inserisci nome (10’)
Qualche cosa un pò più divertente (85’)• calcolatrice (35’)• La gara di tuffi, con salvataggio (40’)• Inserisci nome e copia stringa (10’)
Altri exe… (105’)• MCD (50’)• mcm (55’)
4
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Da int a ASCIIDa int a ASCII
• Problema Si scriva un programma che richieda
l'inserimento di un carattere. Si mostri quindi a video:
1. il carattere inserito2. la codifica ASCII del
carattere
5
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
6
Da int a ASCIIDa int a ASCII
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Il maggiore tra N numeriIl maggiore tra N numeri
• Problema Trovare il maggiore tra N numeri inseriti
da tastiera
• Soluzione Conoscere N Richiedere l’inserimento degli N valori Ricerca del maggiore tra gli N valori
7
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Il maggiore - forIl maggiore - for: codice: codice
8
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
9
ATTENZIONE
Il ciclo forIl ciclo for
for ( exp.A; cond; exp.I ) {ist.1;...ist.N;
}
exp.A;while ( cond )
{ist.1;...ist.N;exp.I;
}
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
10
cont = 0;while (cont < N) {
…;…;cont++;
}for (cont = 0; cont < N; cont++) {
…;…;
}
Il ciclo Il ciclo forfor
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Il maggiore – Il maggiore – while Vs forwhile Vs for
11
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
12
Inserisci nomeInserisci nome
• Si scriva un programma in C che mostri a video la scritta: “Ciao Nome”, dove: “Ciao” è stato inserito in una stringa
di lunghezza “non definita a priori” “Nome” è un dato inserito dall’utente • Si supponga che possa essere salvato in
una stringa di 10 caratteri
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Inserisci nomeInserisci nome
13
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Lab 2: AgendaLab 2: Agenda
• Esercizi Lab2 Warm Up (50’)
• Da int a ASCII (10’)• La ricerca del maggiore su N numeri (20’ +10’)• Inserisci nome (10’)
Qualche cosa un pò più divertente (85’)• calcolatrice (35’)• La gara di tuffi, con salvataggio (40’)• Inserisci nome e copia stringa (10’)
Altri exe… (105’)• MCD (50’)• mcm (55’)
14
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Problema 1: la calcolatriceProblema 1: la calcolatrice
• Si realizzi una calcolatrice capace di: Letti due numeri da tastiera Richieda di eseguire una della 4
operazioni di base (+, -, *. /)
15
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Una prima soluzione con IFUna prima soluzione con IF
16
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Proviamo con lo Proviamo con lo switchswitch
17
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
LL ’’importanza di importanza di breakbreak
18
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Aggiornameto sui tipi di Aggiornameto sui tipi di datodato
• Per una divisione corretta… Usiamo i float
19
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Controlliamo gli ingressiControlliamo gli ingressi
20
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Gara di tuffi, Gara di tuffi, con con salvataggiosalvataggio• Problema
Si hanno10 giudici • 1 giudice = 1 voto
Si vogliono memorizzare i 10 voti, per poterli rileggere
Ogni voto è nell’itervallo 0-10 Dato un tuffo, calcolare
• La media dei voti• Il voto massimo ed il voto minimo
21
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Come Come salvaresalvare i voti... i voti...
22
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
23
char str1[32]; / str1 ha spazio per 32 char. /char str2[64]; / str2 ha spazio per 64 char. /
/ inizializza str1 con la stringa "alfa" /strcpy(str1, "alfa"); / str1 contiene "alfa" /
/ copia str1 in str2 /strcpy(str2, str1); / str2 contiene "alfa" /
/ lunghezza di str1 /x = strlen(str1); / x assume valore 4 /
/ scrivi str1 su standard output /printf("%s", str1); / scrive str1 su stdout /
/ leggi str1 da standard input /scanf("%s", str1); / str1 “riceve” da stdin /
Operazioni su stringheOperazioni su stringhe
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
24
char str1[32];char str2[64];
scanf("%s", str1);> ciao / ora str1 contiene "ciao" /
strcpy(str2, str1);/ str2 riceve "ciao"/val = strlen(str2); / val = 4 /
printf("%s\n", str2);> ciao / stampa "ciao" /
Attenzione: strlen("") vale 0 !
Operazioni su stringheOperazioni su stringhe
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
25
Inserisci nome con copia Inserisci nome con copia stringastringa
• Si scriva un programma in C che mostri a video la scritta: “Ciao Nome”, dove: “Ciao” è stato inserito in una stringa
di lunghezza “non definita a priori” “Nome” è un dato inserito dall’utente • Si supponga che possa essere salvato in
una stringa di 10 caratteri Nome deve essere salvato in una
stringa “stringa1” e copiato in una seconda stringa “stringa3”
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Inserisci nome con copia Inserisci nome con copia stringastringa
26
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Lab 2: AgendaLab 2: Agenda
• Esercizi Lab2 Warm Up (50’)
• Da int a ASCII (10’)• La ricerca del maggiore su N numeri (20’ +10’)• Inserisci nome (10’)
Qualche cosa un pò più divertente (85’)• calcolatrice (35’)• La gara di tuffi, con salvataggio (40’)• Inserisci nome e copia stringa (10’)
Altri exe… (105’)• MCD (50’)• mcm (55’)
27
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Massimo Comune DivisoreMassimo Comune Divisore
• Definizione Dicesi Massimo Comune Divisore
(M.C.D.) il piu’ grande tra i divisori comuni a due o piu’ numeri
• Esempi Dati A=12, B=15• Divisori comuni: 1, 3 - MCD=3
Dati A=10, B=30 e C=20• Divisori comuni: 1, 2, 5, 10 - MCD=10
28
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
MCD: pseudocodiceMCD: pseudocodice
1. Leggi A e B2. min= il minimo tra A e B3. tmp = 14. MCD = 15. Finche’ tmp < min
1. tmp = tmp + 12. Se tmp divide A e B
1. Allora MCD = tmp
6. Stampa MCD
29
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
MCD: codiceMCD: codice
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
mcmmcm
• Si scriva un programma che, accettati due numeri interi positivi da tastiera, ne calcola il minimo comune multiplo
31
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
mcm: una prima soluzione mcm: una prima soluzione
32
Possiamo rimuoverlo?
Provateci a casa ;)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Ora dovrebbe essere Ora dovrebbe essere chiara…chiara…
33
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Problemi di fine giornata…Problemi di fine giornata…
• Trovare il maggiore tra N numeri positivi inseriti da tastiera (richiedendo il numero se negativo)
• Dati N numeri, dire se questi sono tutti positivi
• Dati N numeri, riportarne a video il modulo
• Dati N numeri, riportarne a video il modulo, dopo averli letti tutti N
34
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Fonti per lo studio + Fonti per lo studio + CreditsCredits• Fonti per lo studio
Informatica arte e mestiere, S. Ceri, D. Mandrioli, L. Sbattella, McGrawHill• Capitolo 3 e 6
• Credits Emanuele Panigati https://sites.google.com/site/engpanigati/
35