La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 4 Ottobre 2013.

Presentazioni simili


Presentazione sul tema: "DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 4 Ottobre 2013."— Transcript della presentazione:

1 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 4 Ottobre 2013

2 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE What its all about! 2

3 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE What its all about! 3

4 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE What its all about! 4

5 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEObiettivi Algoritmi Pseudocodice Diagramma di flusso Una prima introduzione al C Un primo programma Tipi di dato Strutture di controllo 5

6 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi 6

7 Algortimo e Programma Algoritmo Descrizionesoluzione di problema esecutore Descrizione della soluzione di problema scritta in modo da poter essere eseguita da un esecutore (eventualmente diverso dallautore dellalgoritmo) istruzionidati Sequenza di istruzioni che operano su dati. Programma Algoritmo calcolatore Algoritmo scritto in modo da poter essere eseguito da un calcolatore (esecutore automatico) 7 7

8 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come realizzare un algoritmo Parte 0/4: La brutta notizia! 8 how to solve it di Poyla G. -

9 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come realizzare un algoritmo Parte 1/4: Capire il problema Quale e il problema generale che si scerca di risolvere? 9

10 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come realizzare un algoritmo Parte 2/4: Fare/creare un piano Ci possono essere diverse strategie per risolvere lo stesso problema Ipotizzare e verificare Cercare dei pattern Risolvere problemi più piccoli Disegnare uno schema 10

11 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come realizzare un algoritmo Parte 3/4: Portare avanti il piano Mettere in azione il vostro piano! Rimanere sul piano deciso a meno che non vi siano evidenti motivi per credere che esso non funzionerà più La pazienza è il vostro miglior alleato 11

12 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come realizzare un algoritmo Parte 4/4: Ragionare e comprendere Comprendere quello che si è fatto e dove lalgoritmo individuato possa essere applicato al meglio La pratica è fondamentale! 12

13 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Testare il proprio lavoro!!! Se vi è qualche cosa che non funziona nel vostro programma/algoritmo, gli utenti lo troveranno! 13

14 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Acquisto DVD 14 Dove lo cerco? In quale settore? Novita Azione … Indicatori di settore Novita Trovato il settore, come trovo il mio DVD? Ordine alfabetico

15 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Alogoritmo per lacquisto DVD 1.Acquisisci il nome del settore (s) del DVD (d) 2.Vai al settore (s) 3.Cerca (t) 4.Prendi il DVD (d) Acquisisci e Cerca sono anche loro algoritmi 15

16 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE CERCA: contesto e problema Contesto Sei nel settore (s) corretto Nel settore sono presenti diversi DVD Il settore puo essere visto come un insieme di DVD: s={d 0, d 1, …, d n } Problema Devo trovare il DVD (d t ) tra tutti i DVD presenti nel settore (s) Aiuto: il settore e ordinato I DVD sono ordinati alfabeticamente 16

17 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmo CERCA Noti s={d 0, d 1, …, d n }, ord. alfabeticamente DVD cercato = d t 1.Ci sono DVD? Allora 1.Leggo il titolo del primo DVD in s 2.Se il titolo e il titolo cercato Allora concludo la ricerca con successo Altrimenti passo al DVD successivo Altrimenti concludo la ricerca con esito negativo 17

18 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE CERCA: osservazioni Cosa succede se il settore e vuoto? Come funziona la mia ricerca? Se in s vi sono DVD e io cerco Zorro? Scenario ancora peggiore Voglio cercare il numero del mio professore di IEIM (Santambrogio) nella rubrica telefonica di Milano.. Esistono diversi modi per risolvere un problema 18

19 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE CERCA… migliorata Noti s={d 0, d 1, …, d n }, ord. alfabeticamente DVD cercato = d t 1.Ci sono DVD? Allora 1.Leggo il titolo del DVD (d x ) nel mezzo di s 2.Se il titolo di d x e il titolo cercato –Allora concludo la ricerca con successo –Altrimenti se d x < d t »allora ricomincio da 1 considerando la meta superiore di s »Altrimenti ricomincio da 1 considerando la meta inferiore di s Altrimenti concludo la ricerca con esito negativo 19

20 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Graficamente: Noti 20 d0d0 d0d0 d1d1 d1d1 d2d2 d2d2 d3d3 d3d3 d4d4 d4d4 d5d5 d5d5 d6d6 d6d6 d7d7 d7d7 d8d8 d8d8 d9d9 d9d9 d 10 d 11 s={d 0, d 1, …, d 11 } dtdt dtdt

21 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Leggo d x e lo confronto con d t 21 d x =d 6 d6d6 d6d6 dtdt dtdt < d6d6 d6d6 dtdt dtdt = ? NO

22 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ricomincio sulla meta superiore 22 dtdt dtdt d6d6 d6d6 d7d7 d7d7 d8d8 d8d8 d9d9 d9d9 d 10 d 11 d x =d 9

23 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Leggo d x e lo confronto con d t 23 d x =d 9 d9d9 d9d9 dtdt dtdt = ? SI Termino con successo la mia ricerca comprando d 9 d9d9 d9d9

24 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Pausa… 5 24

25 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come si specifica un algoritmo? Utilizzando dello pseudocodice Utilizzando dei diagrammi di flusso (aka schemi a blocchi) 25 Se A > B allora B = A altrimenti A = B Test Leggi Scrivi InizioFine Assegnamento

26 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 26

27 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 Se tmp divide A e B 1.Allora MCD = tmp 6.Stampa MCD 27

28 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE MCD: diagramma di flusso 28 Inizio Leggi A e B min=minimo{A,B} tmp=1 MCD=1 tmp

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

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

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

32 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 allavvio del nostro programma 32

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

34 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ciao Mondo: printf 34

35 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 35

36 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 36

37 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Problemi di fine giornata… Scrivere un programma che, letti due numeri, individua quello maggiore Rappresentare in pseudocodice lagoritmo che, letti 3 numeri, ne calcola il minimo comune multiplo 37

38 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


Scaricare ppt "DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 4 Ottobre 2013."

Presentazioni simili


Annunci Google