La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Algoritmi e basi del C Struttura di un programma

Presentazioni simili


Presentazione sul tema: "Algoritmi e basi del C Struttura di un programma"— Transcript della presentazione:

1 Algoritmi e basi del C Struttura di un programma
Process synchronization Operating System Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio – Ver. aggiornata al 11 Marzo 2014 © 2005 William Fornaciari

2 Informazione: dato + significato…
Che giorno è oggi? 14 Marzo o anche… 14.3 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’amicizia Dr. 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 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 dichiarativa locale parte esecutiva 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 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, ...)

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 = variabile operatore espressione; si possono scrivere come: variabile operatore = 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) + f+7 f + 7 - p-c p – c * bm b * m / x/y x / y %
Operazione Operatore C Espressione aritmetica Espressione C Addizione + f+7 f + 7 Sottrazione - p-c p – c Moltiplicazione * bm b * m Divisione / x/y x / y Modulo % 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.

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 Pseudocodice
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
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
how to solve it, Poyla G 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


Scaricare ppt "Algoritmi e basi del C Struttura di un programma"

Presentazioni simili


Annunci Google