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 13 Marzo 2014.

Presentazioni simili


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

1 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 13 Marzo 2014

2 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab e Feedback Ho solo 7 gruppi… tutti al lunedì 2

3 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab e Feedback Ho solo 7 gruppi… tutti al lunedì 3 WAT

4 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab e Feedback Ho solo 7 gruppi… tutti al lunedì Feedback 1ma lezione:  Hai trovato piu' utili gli esempi "descrittivi" o quelli in C?  Entrambi egualmente utili 4

5 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab e Feedback Ho solo 7 gruppi… tutti al lunedì Feedback 1ma lezione:  Hai trovato piu' utili gli esempi "descrittivi" o quelli in C?  Entrambi egualmente utili 5 WAT

6 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Linguaggio naturale 6

7 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Linguaggio naturale: ambiguo! 7

8 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE What it’s all about! 8

9 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE What it’s all about! 9

10 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE What it’s all about! 10

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

12 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi 12

13 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 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 dall’autore dell’algoritmo) istruzionidati  Sequenza di istruzioni che operano su dati. Programma  Algoritmo calcolatore  Algoritmo scritto in modo da poter essere eseguito da un calcolatore (esecutore automatico) 13

14 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come realizzare un algoritmo Parte 0/4: La brutta notizia! 14 how to solve it di Poyla G. - http://math.hawaii.edu/home/pdf/putnam/PolyaHowToSolveIt.pdf

15 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? 15

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

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

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

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

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

21 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Alogoritmo per l’acquisto 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 21

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

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

24 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE CERCA: osservazioni Cosa succede se il settore e’ vuoto? Come funziona la mia ricerca?  Se in s vi sono 10000 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 24

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

26 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Graficamente: Noti 26 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

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

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

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

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

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

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

33 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE MCD: diagramma di flusso 33 Inizio Leggi A e B min=minimo{A,B} tmp=1 MCD=1 tmp<min? tmp = tmp + 1 tmp divide A e B MCD = tmp Stampa MCD Fine no si

34 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Fonti per lo studio + Credits Fonti per lo studio  how to solve it, Poyla G http://math.hawaii.edu/home/pdf/putnam/PolyaHowToSolveIt.p 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 13 Marzo 2014."

Presentazioni simili


Annunci Google