DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio –...
-
Upload
brunilda-franchi -
Category
Documents
-
view
214 -
download
0
Transcript of DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio –...
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Algoritmi e basi del CAlgoritmi e basi del C
Marco D. Santambrogio – [email protected]. aggiornata al 3 Ottobre 2013
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Installation PartyInstallation Party
• Dove: L.06 • Quando:
Sabato 12 Ottobre 9.00am - 12.00pm
2
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
WATWAT
Il docente ha messo in risalto l'utilità delle slide per lo studio individuale, affermando che il prendere appunti possa far diminuire l'attenzione. A tal fine, le slide dovrebbero essere più complete, esplicando i passaggi logici del ragionamento, poiché, nella forma attuale, esse risultano poco chiare se non si ha buona memoria della lezione
3
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
WATWAT
4
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
WATWAT
Nastro di Mobius? Sono d'accordo sul fatto di dover scremare, ma così le terrorizziamo queste matricole...
5
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
WATWAT
6
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
7
Struttura di un Struttura di un programma Cprogramma C
inclusione librerie / per poter invocare funzioni utili (i/o, ...) /dichiarazione di variabili globali e funzioni
int main ( ) {
dichiarazione di variabili locali
istruzione 1; / tutti i tipi di operazioni, e cioè: /istruzione 2; / istr. di assegnamento / istruzione 3; / istr. di input / output /istruzione 4; / istr. di controllo (condizionali, cicli) /...istruzione N;
}
parte esecutiva
parte dichiarativa locale
parte dichiarativa globale
Ogni programma C deve contenere un modulo int main() {...}
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
8
• Parte dichiarativa: contiene le dichiarazioni degli elementi del programma Dati, ed eventualmente funzioni (ma solo nella parte
globale)
• Parte esecutiva: contiene le istruzioni da eseguire, che ricadono nelle categorie: Istruzioni di assegnamento () Strutture di controllo:• Condizionali (if-then-else e switch)• Iterative, o cicli (while, do e for)
Istruzioni di Input/Output (printf, scanf, ...)
Struttura di un Struttura di un programma Cprogramma C
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
9
Istruzioni semplici e Istruzioni semplici e compostecomposte
• Sequenze di istruzioni semplici Ogni istruzione semplice termina con ; ; è detto il “terminatore” dell’istruzione
• Si possono raggruppare più istruzioni in sequenza tra { e } a costituire un blocco Il blocco costituisce una “super-istruzione”
• Non è necessario il ; dopo }, in quanto il blocco è già una istruzione e non necessita del terminatore per
diventarla
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Mostra caratteriMostra caratteri
• Problema Si scriva un programma che richieda
l’inserimento di un carattere e lo mostri a video
10
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Tipo carattere e codifica ASCIITipo carattere e codifica ASCII
11
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Ricordate il Ricordate il ““-32-32””
12
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Un esempio di calcolo Un esempio di calcolo
13
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Variabili e assegnamentiVariabili e assegnamenti
14
Le variabili non sono altro che dei contenitori (aree di memoria) identificati da un nome univoco.Le variabili vengono definite da un tipo e da un nome.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
15
Esecuzione degli Esecuzione degli assegnamentiassegnamenti
• valutazione dell’espressione che compare a destra del simbolo =
il valore delle variabili che vi compaiono si trova memorizzato nelle celle corrispondenti, e da lì è letto
• memorizzazione del risultato dell'espressione nella variabile a sinistra del simbolo =
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
16
x = 23;w = 'a';y = z;alfa = x + y;r3 = ( alfa * 43 – xgg ) * ( delta – 32 * j );x = x + 1;
Abbreviazioni (operatori di assegnamento):
a = a + 7; a = a * 5; a = a + 1; a = a - 1;a += 7; a *= 5; ++a; --a;
Esempi di assegnamentoEsempi di assegnamento
Istruzioni della forma variabile = variabile operatore espressione;si possono scrivere come: variabile operatore = espressione;
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
17
• Operatori aritmetici in C: * per la moltiplicazione e / per la divisione La divisione tra interi elimina il resto (quoziente):
13 / 5 è uguale a 2 L’operatore modulo calcola il resto della
divisione: 13 % 5 è uguale a 3
• Precedenza degli operatori: Come in aritmetica, moltiplicazione e divisione
hanno priorità su addizione e sottrazione• si usano le parentesi quando c’è ambiguità
Per esempio: la media aritmetica di a, b, c: a + b + c / 3 NO !!!! (a + b + c ) / 3 SI
Aritmetica (1/2)Aritmetica (1/2)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
18
Aritmetica (2/2)Aritmetica (2/2)Operazione Operatore C Espressione
aritmeticaEspressione C
Addizione + f+7 f + 7Sottrazione - p-c p – cMoltiplicazione * bm b * mDivisione / x/y x / yModulo % r mod s r % s
Operatori C Operazioni Precedenza
( ) Parentesi Valutate per prime. Se ci sono degli annidamenti, si valuta prima la coppia più interna. Se ci sono più coppie allo stesso livello, si valuta da sinistra a destra.
* , / , % Moltiplicazione, Divisione, Modulo
Valutate per seconde. Se ce ne sono diverse, si valutano da sinistra a destra.
+ , – Addizione, Sottrazione
Valutate per ultime. Se ce ne sono diverse, si valutano da sinistra a destra.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Come interagiamo con Come interagiamo con ““l’esternol’esterno”?”?
• Input - Output printf viene utiizzata per fornire un
output del programma a video scanf viene utilizzato per fornire degli
input, e.g. da tastiera, al nostro programma
19
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Inserimento datiInserimento dati
• Problema Richiedi all’utente la sua altezza in
centrimentri e mostrala a video in metri
• Pseudocodice1.Scrivi “quanto sei alto?”2.Leggi altezzacm3.Altezzam = alteccacm/1004.Scrivi “sei alto: altezzam”
20
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Pseudocodice vs Codice CPseudocodice vs Codice C
• Pseudocodice
1. Scrivi “quanto sei alto?”2. Leggi altezzacm3. Altezzam = alteccacm/1004. Scrivi “sei alto: altezzam”
21
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Un primo errore Un primo errore
22
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Un secondo erroreUn secondo errore
23
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Un terzo erroreUn terzo errore
24
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Soluzione correttaSoluzione corretta
25
L ’importanza dei tipi di dato
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Tipi di dato in CTipi di dato in C
• In C esistono diversi tipi di dato built-in, tra cui int: numeri interi float: numeri con virgola (singola precisione) double: numeri con virgola (doppia
precisione) char: caratteri (sono interi che possono
variare tra 0-255)
• Inoltre il C fornisce anche la possibilità di definire dei nuovi tipi di dato
26
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Problemi di fine giornata…Problemi di fine giornata…
• Scrivere un programma che, letti due numeri, individua quello maggiore
• Rappresentare in pseudocodice l’agoritmo che, letti 3 numeri, ne calcola il minimo comune multiplo
27
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE
Fonti per lo studio + Fonti per lo studio + CreditsCredits• Fonti per lo studio
how to solve it, Poyla G• http://math.hawaii.edu/home/pdf/putnam/
PolyaHowToSolveIt.pdf Informatica arte e mestiere, S. Ceri, D.
Mandrioli, L. Sbattella, McGrawHill• Capitolo 3
Introduzione ai sistemi informatici, D. Sciuto, G. Buonanno, L. Mari, 4a Ed, McGrawHill• Capitolo 3, 4
The Art & Craft of Computing, S. Ceri, D. Mandrioli, L. Sbattella, Addison-Wesley• Capitolo 3