1 / 35

Algoritmi e basi del C Struttura di un programma

Algoritmi e basi del C Struttura di un programma. Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 11 Marzo 2014. Informazione: dato + significato…. Che giorno è oggi? 14 Marzo o anche… 14.3 o anche… 3.14. 14 Marzo. Compleanno di…. Labs…. Lunedì: 27

olaf
Download Presentation

Algoritmi e basi del C Struttura di un programma

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Algoritmi e basi del CStruttura di un programma Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 11 Marzo 2014

  2. Informazione: dato + significato… Che giorno è oggi? 14 Marzo o anche… 14.3 o anche… 3.14

  3. 14 Marzo Compleanno di…

  4. Labs… • Lunedì: 27 • Giovedì: 13

  5. Feedback Sarebbe stato utile approfondire con altri esempi l'argomento sui diagrammi di flusso.

  6. L’Algoritmo dell’amiciziaDr. Sheldon Cooper, PhD

  7. Benvenuti nel fantastico mondo del C

  8. Il primo programma: ciao mondo

  9. 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.

  10. 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

  11. 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

  12. Ciao Mondo: printf

  13. Ciao Mondo: printf • Stampa a video il mesaggio “Ciao Mondo!” • printf e’ contenuta in stdio.h • Il messaggio da stampare e’ contenuto tra “”

  14. 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

  15. Struttura di un programma C parte dichiarativa globale parte dichiarativa locale parte esecutiva 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; } Ogni programma C deve contenere un modulo int main() {...}

  16. Struttura di un programma C • Parte dichiarativa: contiene le dichiarazioni degli elementi del programma • Dati, ed eventualmente funzioni (ma solo nella parte globale) • Parte esecutiva: contiene leistruzioni 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, ...)

  17. 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

  18. Variabili e assegnamenti 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.

  19. 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 =

  20. Esempi di assegnamento 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; Istruzioni della forma variabile = variabileoperatoreespressione; si possono scrivere come: variabileoperatore = espressione;

  21. Aritmetica (1/2) • 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

  22. Aritmetica (2/2)

  23. Come interagiamo con “l’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

  24. Mostra caratteri • Problema • Si scriva un programma che richieda l’inserimento di un carattere e lo mostri a video

  25. Tipo carattere e codifica ASCII

  26. minuscolo e MAIUSCOLO

  27. Inserimento dati • Problema • Richiedi all’utente la sua altezza in centrimentri e mostrala a video in metri • Pseudocodice • Scrivi “quanto sei alto?” • Leggi altezzacm • Altezzam = alteccacm/100 • Scrivi “sei alto: altezzam”

  28. Pseudocodice vs Codice C • Pseudocodice • Scrivi “quanto sei alto?” • Leggi altezzacm • Altezzam = alteccacm/100 • Scrivi “sei alto: altezzam”

  29. Un primo errore

  30. Un secondo errore

  31. Un terzo errore

  32. Soluzione corretta L’importanza dei tipi di dato

  33. 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

  34. Problemi per casa… • 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

  35. Fonti per lo studio + Credits • 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

More Related