Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoOttavia Gianni Modificato 11 anni fa
1
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – marco.santambrogio@polimi.it Riccardo Cattaneo – cattaneo@elet.polimi.it Ver. aggiornata al 9 Agosto 2013
2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2: Obiettivi Strutture di controllo e cicli, array e stringhe 2
3
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 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
4
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 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
5
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Da int a ASCII Problema Si scriva un programma che richieda l'inserimento di un carattere. Si mostri quindi a video: 1. il carattere inserito 2. la codifica ASCII del carattere 5
6
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 6 Da int a ASCII
7
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il maggiore tra N numeri Problema Trovare il maggiore tra N numeri inseriti da tastiera Soluzione Conoscere N Richiedere linserimento degli N valori Ricerca del maggiore tra gli N valori 7
8
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il maggiore - for: codice 8
9
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 9 ATTENZIONE Il ciclo for for ( exp.A; cond; exp.I ) { ist.1;... ist.N; } exp.A; while ( cond ) { ist.1;... ist.N; exp.I; }
10
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 10 cont = 0; while (cont < N) { …; cont++; } for (cont = 0; cont < N; cont++) { …; } Il ciclo for
11
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il maggiore – while Vs for 11
12
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 12 Inserisci 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 dallutente Si supponga che possa essere salvato in una stringa di 10 caratteri
13
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Inserisci nome 13
14
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 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
15
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Problema 1: la calcolatrice Si realizzi una calcolatrice capace di: Letti due numeri da tastiera Richieda di eseguire una della 4 operazioni di base (+, -, *. /) 15
16
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Una prima soluzione con IF 16
17
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Proviamo con lo switch 17
18
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Limportanza di break 18
19
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Aggiornameto sui tipi di dato Per una divisione corretta… Usiamo i float 19
20
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Controlliamo gli ingressi 20
21
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Gara di tuffi, con salvataggio Problema Si hanno10 giudici 1 giudice = 1 voto Si vogliono memorizzare i 10 voti, per poterli rileggere Ogni voto è nellitervallo 0-10 Dato un tuffo, calcolare La media dei voti Il voto massimo ed il voto minimo 21
22
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come salvare i voti... 22
23
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 stringhe
24
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 stringhe
25
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 25 Inserisci nome con copia stringa 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 dallutente 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
26
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Inserisci nome con copia stringa 26
27
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 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
28
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Massimo 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
29
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE MCD: pseudocodice 1.Leggi A e B 2.min= il minimo tra A e B 3.tmp = 1 4.MCD = 1 5.Finche tmp < min 1.tmp = tmp + 1 2.Se tmp divide A e B 1.Allora MCD = tmp 6.Stampa MCD 29
30
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE MCD: codice
31
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEmcm Si scriva un programma che, accettati due numeri interi positivi da tastiera, ne calcola il minimo comune multiplo 31
32
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE mcm: una prima soluzione 32 Possiamo rimuoverlo? Provateci a casa ;)
33
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ora dovrebbe essere chiara… 33
34
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 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
35
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Fonti per lo studio + Credits 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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.