La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio – Ver. aggiornata.

Presentazioni simili


Presentazione sul tema: "DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio – Ver. aggiornata."— Transcript della presentazione:

1 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio – Ver. aggiornata al 17 Marzo 2015

2 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONECompitini Compitini di INFO:  24 Aprile 2015 C.G.1 (Ed. 9)  21 Maggio 2015 S.0.2 (Ed. 3)  17 Giugno 2015 I.0.1 (Ed. 4) 2

3 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONECompitini Compitini di INFO:  24 Aprile 2015 C.G.1 (Ed. 9)  21 Maggio 2015 S.0.2 (Ed. 3)  17 Giugno 2015 I.0.1 (Ed. 4) 3

4 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Primo Lab: Installation Party Dove:  EG.7: per studenti senza PC  L26.14: per PC muniti Quando:  pm 4

5 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Per i lab Indirizzo base: base = home.deib.polimi.it/santambr/dida/ieim/2015 Info in generale sui lab base/labs.htm Strumenti usanti in lab base/tools.htm 5

6 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Benvenuti nel fantastico mondo del C 6

7 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il primo programma: ciao mondo 7

8 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ciao Mondo: stdio.h Come prima cosa, dobbiamo includere le librerie necessarie al funzionamento del nostro programma. La libreria stdio.h  Standard Input Output  Permette di utilizzare I comandi necessari per richiedere dati o visualizzare dei messaggi. 8

9 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ciao Mondo: main Tutti i programmi in C contengono un elemento principale:  Il main main contiene le istruzioni che verranno eseguite all’avvio del nostro programma 9

10 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ciao Mondo: main La sequenza di istruzioni che caratterizzano il main sono racchiuse tra parentesi graffe Tale blocco di istruzioni e’ anche noto come corpo Ogni istruzione deve essere seguita da un punto e virgola 10

11 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ciao Mondo: printf 11

12 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ciao Mondo: printf Stampa a video il mesaggio “Ciao Mondo!” printf e’ contenuta in stdio.h Il messaggio da stampare e’ contenuto tra “” 12

13 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ciao Mondo: printf return e' un comando che ci permette di comunicare con il sistema ospite In questo caso viene utilizzato per comunicare lo stato di terminazione del programma 0 indica una terminazione corretta del nostro programma 13

14 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 14 Struttura di un programma C

15 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 15 Parte dichiarativa: contiene le dichiarazioni degli elementi del programma  Dati, ed eventualmente funzioni (ma solo nella parte globale) Struttura di un programma C

16 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 16 Struttura di un programma C inclusione librerie /  per poter invocare funzioni utili (i/o,...)  / dichiarazione di variabili globali e funzioni parte dichiarativa globale

17 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 17 Struttura di un programma C inclusione librerie /  per poter invocare funzioni utili (i/o,...)  / dichiarazione di variabili globali e funzioni int main ( ) { } parte dichiarativa globale Ogni programma C deve contenere un modulo int main() {...}

18 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 18 Struttura di un programma C inclusione librerie /  per poter invocare funzioni utili (i/o,...)  / dichiarazione di variabili globali e funzioni int main ( ) { dichiarazione di variabili locali } parte dichiarativa localeparte dichiarativa globale Ogni programma C deve contenere un modulo int main() {...}

19 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 19 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 programma C

20 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 20 Struttura di un programma 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 localeparte dichiarativa globale Ogni programma C deve contenere un modulo int main() {...}

21 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 21 Istruzioni semplici e composte 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

22 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Mostra caratteri Problema  Si scriva un programma che richieda l’inserimento di un carattere e lo mostri a video 22

23 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Mostra caratteri Problema  Si scriva un programma che richieda l’inserimento di un carattere e lo mostri a video Sotto-problema  E dove lo salvo il carattere??? 23

24 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Variabili e assegnamenti 24 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.

25 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Mostra caratteri Problema  Si scriva un programma che richieda l’inserimento di un carattere e lo mostri a video 25

26 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Mostra caratteri Problema  Si scriva un programma che richieda l’inserimento di un carattere e lo mostri a video 26

27 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipo carattere e codifica ASCII 27

28 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ricordate il “32” 28

29 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Un esempio di calcolo 29

30 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Variabili e loro valore Problema  Come assegno un valore ad un variabile??? 30

31 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 31 Esecuzione degli assegnamenti 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 =

32 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 32 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 assegnamento Istruzioni della forma variabile = variabile operatore espressione; si possono scrivere come: variabile operatore = espressione;

33 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 33 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 / 3NO !!!! (a + b + c ) / 3SI Aritmetica (1/2)

34 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 34 Aritmetica (2/2) OperazioneOperatore CEspressione aritmetica Espressione C Addizione + f+7 Sottrazione - p-c p – c Moltiplicazione * bm b * m Divisione / x/y Modulo % r mod s r % s Operatori COperazioniPrecedenza ( ) ParentesiValutate 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.

35 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come interagiamo con “l’esterno”? Input  printf viene utiizzata per fornire un output del programma a video 35

36 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come interagiamo con “l’esterno”? Input  printf viene utiizzata per fornire un output del programma a video Output  scanf viene utilizzato per fornire degli input, e.g. da tastiera, al nostro programma 36

37 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Inserimento dati Problema  Richiedi all’utente la sua altezza in centrimentri e mostrala a video in metri Pseudocodice 1.Scrivi “quanto sei alto?” 2.Leggi altezzacm 3.Altezzam = alteccacm/100 4.Scrivi “sei alto: altezzam” 37

38 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Pseudocodice vs Codice C Pseudocodice 1.Scrivi “quanto sei alto?” 2.Leggi altezzacm 3.Altezzam = alteccacm/100 4.Scrivi “sei alto: altezzam” 38

39 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Un primo errore 39

40 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Un secondo errore 40

41 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Un terzo errore 41

42 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Soluzione corretta 42 L’importanza dei tipi di dato

43 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi 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 43

44 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 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 44

45 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Fonti per lo studio + Credits Fonti per lo studio  how to solve it, Poyla G df  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 45


Scaricare ppt "DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio – Ver. aggiornata."

Presentazioni simili


Annunci Google