Algoritmi e basi del C

Documenti analoghi
Algoritmi e basi del C

Prima&esercitazione&

Algoritmi e basi del C Struttura di un programma

Come affrontare un problema

Algoritmi e basi del C

Codifica binaria dell informazione

Stringhe e tipi di dati strutturati

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1

Codifica binaria dell informazione

Corso di Informatica di Base

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

L ELABORATORE ELETTRONICO

INTRODUZIONE. ALLA PROGRAMMAZIONEColonna 1. in linguaggio C

Problemi e algoritmi. Il che cosa ed il come. Il che cosa ed il come. Il che cosa e il come

Come ragiona il computer. Problemi e algoritmi

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire:

Rappresentazione con i diagrammi di flusso (Flow - chart)

Esercitazione 6. Array

Linguaggio C: introduzione

Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

MODULO 07. La soluzione dei problemi mediante gli algoritmi

1.1 Concetti base dell Informatica: Algoritmi

Lab 1: Marzo 2013

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

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

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

LA METAFORA DELL UFFICIO

Strutture di Controllo

Università degli Studi di Brescia INFORMATICA. Dipartimento di Ingegneria Meccanica e Industriale

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

Fondamenti di Informatica T-1 Modulo 2

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1

Informatica di Base - 6 c.f.u.

Algebra di Boole ed elementi di logica

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

IL PRIMO PROGRAMMA IN C

ALGORITMI: PROPRIETÀ FONDAMENTALI

Informatica! appunti dalle lezioni dal 18/09/2012 al 28/09/2012!!

INFORMATICA. Strutture iterative

L ELABORATORE ELETTRONICO!

Sistemi di Elaborazione delle Informazioni

Teoria dell Informazione

Scrittura formattata - printf

Introduzione alla programmazione

Corso di Fondamenti di Informatica

Esercizi Programmazione I

Le strutture di controllo

Esercizi 2. Marco Anisetti

Programmazione I. Fondamenti di programmazione. Problemi, Algoritmi, Diagrammi di flusso

INFORMATICA Algoritmi come formalizzazione della risoluzione di un problema

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

PROGRAMMAZIONE: ESERCITAZIONE N. 6

Elaboratore Elettronico

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

Informatica e Bioinformatica: Algoritmi

n Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Introduzione agli Algoritmi

Corso di Fondamenti di Programmazione canale E-O. Un esempio. Funzioni ricorsive. La ricorsione

Esercitazione 3. Espressioni booleane I comandi if-else e while

Lab 0: 23 Marzo Marco D. Santambrogio Gianluca Durelli - Ver. aggiornata al 19 Marzo 2015

Progettazione di algoritmi e attributi

Algoritmi e soluzione di problemi

4U Informatica 30/10/2015 Prova di verifica (soluzioni) N.A.

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Corso di Informatica Modulo T1 1 - Il concetto di problema

LA RICORSIONE IN C. CdL Ingegneria Informatica n.o. Anno Accademico 2006/07 Fondamenti di Informatica I corso A Giacomo Piscitelli pag.

Strutture di controllo iterative

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione. è uno strumento in grado di eseguire insiemi di azioni elementari.

Algoritmi. Pagina 1 di 5

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Definizione Allocazione e deallocazione di variabili Allocazione e deallocazione di vettori

Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense.

Esercizi. La funzione swapint() primo tentativo

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

PROGRAMMAZIONE STRUTTURATA

Dispensa di Informatica II.1

PROBLEMI ALGORITMI E PROGRAMMAZIONE

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

Le funzioni, e le istruzioni di input/output

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Elementi di Informatica e Programmazione

Variabili e Istruzioni

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 25/02/2016/ Foglio delle domande / VERSIONE 1

Informatica! Appunti dal laboratorio 1!

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

ESERCIZI DI PROGRAMMAZIONE DA SVOLGERE INDIVIDUALMENTE - parte 1 -

Problemi, algoritmi, calcolatore

Diagrammi di flusso. Un metodo per rappresentare graficamente gli algoritmi. sotto programma. Input/ Output. Start. predicato Elaborazione Stop

Algoritmi di Ricerca. Esempi di programmi Java

Il nano sulle spalle del gigante

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

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo

Il sistema di elaborazione

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Introduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C

CONCETTI FONDAMENTALI

Transcript:

Algoritmi e basi del C Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 4 O/obre 2013

What it s all about! 2

What it s all about! 3

What it s all about! 4

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

Algoritmi 6

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

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 8

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

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

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

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

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

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

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 15

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

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

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 18

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

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

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

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

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 23

Pausa 5 24

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 25

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

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 27

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 28

Benvenuti nel fantastico mondo del C 29

Il primo programma: ciao mondo 30

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

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 32

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

Ciao Mondo: printf 34

Ciao Mondo: printf Stampa a video il mesaggio Ciao Mondo! printf e contenuta in stdio.h Il messaggio da stampare e contenuto tra 35

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

Problemi di fine giornata 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 37

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