DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.

Slides:



Advertisements
Presentazioni simili
Process synchronization
Advertisements

© 2007 SEI-Società Editrice Internazionale, Apogeo Unità E1 Dallanalisi del problema alla definizione dellalgoritmo.
Analisi – Progettazione - Programmazione
I DATI LE ISTRUZIONI LE STRUTTURE FONDAMENTALI
Informatica Generale Marzia Buscemi
Informatica Generale Susanna Pelagatti
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Marzo 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 8 Marzo 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Algebra di Boole ed elementi di logica
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 3 Ottobre 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2: 25 Marzo 2013 Marco D. Santambrogio – Gianluca Durelli -
Process synchronization
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 1 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dati strutturati Marco D. Santambrogio – Ver. aggiornata al 4 Marzo 2013.
Informatica 1. Perché linformatica? Perché insegnare informatica agli studenti di ingegneria meccanica? Per rispondere, cominciamo a capire che cosa è
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Strutture di controllo in C -- Flow Chart --
Fondamenti di Informatica Algoritmi
Algoritmi e diagrammi di flusso
Elementi di Informatica
Elementi di Informatica
Da Problema a Programmazione
Dall’algoritmo al programma.
ELEMENTI DI PROGRAMMAZIONE
PROGRAMMAZIONE: linguaggi
Algoritmi e linguaggi di programmazione
Massimo Comun Divisore
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e stringhe Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 18 Ottobre.
BIOINFO3 - Lezione 15 ISTRUZIONI
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 13 Marzo 2014.
IO E LA MATEMATICA PROCEDURALE
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 21 Agosto.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 20 Ottobre 2014.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 26 Marzo 2014.
Algoritmi e basi del C Struttura di un programma
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 8 Aprile 2015.
Algoritmi e basi del C Struttura di un programma
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Codifica binaria dell’informazione Marco D. Santambrogio – Ver. aggiornata al 11.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 26 Marzo 2014.
1 Informatica Generale Alessandra Di Pierro Ricevimento: Giovedì ore presso Dipartimento di Informatica, Via Buonarroti,
Vincenza Ferrara Novembre 2007 Fondamenti di Matematica e Informatica Laboratorio Informatica I anno a.a
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Problemi, algoritmi e programmazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 14 Marzo 204.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 3 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il sistema di elaborazione Marco D. Santambrogio – Ver. aggiornata al 15 Maggio.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il sistema di elaborazione Marco D. Santambrogio – Ver. aggiornata al 20 Maggio.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 28 Ottobre 2014.
Codifica binaria dell’informazione
Il computer ragiona? Problemi e algoritmi. Paola Pianegonda2 Cos’è un problema?  Problema è qualsiasi situazione della quale non conosciamo la soluzione.
Programmazione dei Calcolatori Elettronici
Dal problema al programma
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 1 Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Codifica binaria dell’informazione Marco D. Santambrogio – Ver. aggiornata al 24.
Strutture di controllo
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 4 – Info B Marco D. Santambrogio – Matteo Ferroni –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
GLI ALGORITMI Appunti preparati dalla prof.ssa Maria D’Angelo.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array n-dimensionali e tipi di dati strutturati Marco D. Santambrogio – Ver. aggiornata.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Costrutti iterativi Marco D. Santambrogio – Ver. aggiornata al 22 Marzo 2016.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 15 Giugno.
Process synchronization
Process synchronization
Transcript della presentazione:

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Linguaggio naturale 2

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Linguaggio naturale: ambiguo! 3

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Linguaggio naturale: ambiguo! 4 WAT

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

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

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

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

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi 9

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

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

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

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 13

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 14

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

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

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

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 18

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 19

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 20

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 21

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 22

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

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

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

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

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

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 28

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 29

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE MCD: diagramma di flusso 30 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

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