Algoritmi e basi del C

Похожие документы
Algoritmi e basi del C

Algoritmi e basi del C Struttura di un programma

Informatica B (Docente Vittorio Zaccaria)

Codifica binaria dell informazione

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1

Stringhe e tipi di dati strutturati

1.1 Concetti base dell Informatica: Algoritmi

Corso di Informatica di Base

Elementi di Informatica e Programmazione

L ELABORATORE ELETTRONICO

ELEMENTI DI INFORMATICA L. Ing. Claudia Chiusoli

Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi.

La formalizzazione dell informazione: Dati e Diagrammi di Flusso

Laboratorio di Programmazione

Lezione 8. Soluzione di un problema Problema. Soluzione di un problema. Comprensione del Problema. Analisi. Introduzione agli algoritmi

Introduzione. Informatica B. Daniele Loiacono

MODULO 07. La soluzione dei problemi mediante gli algoritmi

Laurea triennale - Comunicazione&DAMS - UNICAL. Dr. Marco Manna 1

Algoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo

LA METAFORA DELL UFFICIO

Esercitazioni di Informatica B A.A. 2010/2011 Pseudocodice. Nicola Vitucci

Rappresentazione con i diagrammi di flusso (Flow - chart)

A lezione sono stati presentati i seguenti passi per risolvere un problema:

Università degli Studi di Verona. Algoritmie Diagrammidiflusso. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie

Appunti di informatica. Lezione 4 anno accademico Mario Verdicchio

Dispensa di Informatica II.1

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto

1.1 Concetti base dell Informatica: Algoritmi

L ELABORATORE ELETTRONICO!

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

Sistemi di Elaborazione delle Informazioni

ALGORITMI: PROPRIETÀ FONDAMENTALI

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)

Транскрипт:

Algoritmi e basi del C Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 9 Marzo 2016

Info logistiche Sito del corso Le lezioni sono TUTTE già online http://home.deib.polimi.it/santambr/dida/ieim/2016/docs.htm Interessati ai progetti? http://tinyurl.com/info-ieim2016-progetti 2

Linguaggio naturale 3

Linguaggio naturale 4

Linguaggio naturale: ambiguo! 5

Obiettivi Algoritmi Pseudocodice Diagramma di flusso Una prima introduzione al C Un primo programma Tipi di dato Strutture di controllo 6

What it s all about! 7

What it s all about! 8

What it s all about! 9

What it s all about! 10

What it s all about! 11

Algoritmi 12

Algortimo e Programma Algoritmo Descrizione della soluzione di problema scritta in modo da poter essere eseguita da un esecutore (eventualmente diverso dall autore dell algoritmo) Sequenza di istruzioni che operano su dati. Programma Algoritmo scritto in modo da poter essere eseguito da un calcolatore (esecutore automatico) 13

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

Come realizzare un algoritmo Parte 1/4: Capire il problema Quale e il problema generale che si scerca di risolvere? 15

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

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

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

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

Acquisto DVD Novita Novita Dove lo cerco? In quale settore? Indicatori di settore Azione Trovato il settore, come trovo il mio DVD? Ordine alfabetico 20

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

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

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

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

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

Graficamente: Noti dt s={d0, d1,, d11} d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 26

Leggo dx e lo confronto con dt dx=d6 d6 = dt? NO d6 < dt 27

Ricomincio sulla meta superiore d6 dt d7 d8 d9 d10 d11 dx=d9 28

Leggo d x e lo confronto con d t d x =d 9 d 9 = d t? SI d 9 Termino con successo la mia ricerca comprando d 9 29

Come si specifica un algoritmo? Utilizzando dello pseudocodice Se A > B allora B = A altrimenti A = B Utilizzando dei diagrammi di flusso (aka schemi a blocchi) Inizio Fine Assegnamento Leggi Test Scrivi 30

Come specificare un algortimo Vorremmo farci nuovi amici! 31

Come specificare un algortimo Vorremmo farci nuovi amici! 32

L Algoritmo dell amicizia Dr. Sheldon Cooper, PhD 33

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 34

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 35

MCD: diagramma di flusso Inizio Leggi A e B min=minimo{a,b} tmp=1 MCD=1 Stampa MCD no tmp<min? Fine si tmp = tmp + 1 tmp divide A e B si MCD = tmp no 36

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