Algoritmi. Informatica B. Daniele Loiacono

Documenti analoghi
Algoritmi. Informatica B. Daniele Loiacono

Algoritmi e (cenni sul) calcolatore

Introduzione. Informatica B. Daniele Loiacono

ELEMENTI DI INFORMATICA L. Ing. Claudia Chiusoli

Corso di Informatica di Base

L ELABORATORE ELETTRONICO

Introduzione. Informatica B. Daniele Loiacono

Laboratorio di Calcolo di Aerodinamica: II Lezione

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

L ELABORATORE ELETTRONICO!

Risoluzione di un problema

Introduzione all informatica

Elaboratore Elettronico

Che cosa si intende per INFORMATICA?

L ELABORATORE ELETTRONICO


Introduzione agli Algoritmi

Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria. Docente : Ing. Secondulfo Giovanni Anno Accademico

L uomo come esecutore di algoritmi

Corso di Fondamenti di Informatica

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

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

Fondamenti di Informatica 1 (I Modulo) Introduzione agli algoritmi. Roberto Basili a.a

Scaletta. Cenni di computabilità. Cosa fa un programma? Definizioni (1/2) Definizioni (2/2) Problemi e domande. Stefano Mizzaro 1

! Problemi, domande, risposte. ! Algoritmi che calcolano funzioni. ! Funzioni computabili e non. ! Problema = insieme di domande omogenee. !

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

L informazione. Bateson, Ricevere informazioni vuol dire necessariamente ricevere notizie di differenza (Es.: Luce accesa/spenta, 1/0,...

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

Sviluppo di programmi

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

Il concetto di calcolatore e di algoritmo

La formalizzazione dell informazione: Dati e Diagrammi di Flusso

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da:

Computer. Capitolo 2. 05/04/2012 continuazione 1

Sistemi di Elaborazione delle Informazioni

ALGORITMI: PROPRIETÀ FONDAMENTALI

ALGORITMI. I diagrammi a blocchi o diagrammi di flusso (flow charts) sono diagrammi a blocchi

Lezione n. 2i Informatica e tecnologia informatica Sistema di elaborazione Algoritmo Linguaggi di programmazione Realizzazione di un programma

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica

Algoritmi e Programmi. Wednesday, September 29, 2010

MODULO 07. La soluzione dei problemi mediante gli algoritmi

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica.

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)

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

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

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

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

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

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Pag. 1. La formalizzazione dell informazione: Dati e Diagrammi di Flusso. Codifica degli algoritmi

PROBLEMI ALGORITMI E PROGRAMMAZIONE

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

Elementi di Informatica. Introduzione. Cos è l informatica. Corso di Laurea in Ingegneria Biomedica aa 2003/2004. Ing.

Fasi di creazione di un programma

La Programmazione particolare insieme di azioni particolare tipologia di dati risolvere un problema

Algoritmi e Programmi

CORSO DI INFORMATICA Maria Grazia Celentano

Sommario FONDAMENTI DI INFORMATICA. Definizione formale di algoritmo. Informatica e algoritmi. ALGORITMI E LINGUAGGIO PYTHON Introduzione

Laboratorio di Programmazione

Informatica. Fondamenti di Informatica 1. Informatica. Informatica. Introduzione all Informatica. Introduzione all Informatica

Punto di vista Tecnologico: strumenti di elaborazione della informazione. Punto di vista Metodologico:

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript

Sviluppo di programmi

Che cos è l Informatica?

Algoritmi e diagrammi di flusso versione biennio

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

LABORATORIO DI INFORMATICA

Risoluzione dei problemi

Corso di Fondamenti di Informatica Algoritmi ed esecutori

Capitolo 3 Elaborazione e Strutturazione dell Informazione. (Introduzione ai Sistemi Informatici Sciuto et alii)

Inf matica C.I. Metodologia Scientifica & Linguistica Mario&Pavone& &

Esempi di programmi. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E01. A. Miola Settembre 2007

preparazione pane frattau per 4 persone

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

Parte 1. Fondamenti di Informatica Modulo Fondamenti di programmazione Prof.ssa Elisa Tiezzi

Come ragiona il computer. Problemi e algoritmi

CAPITOLO 3 - ALGORITMI E CODIFICA

LA METAFORA DELL UFFICIO

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

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori

Algoritmo. Obiettivo: dato un problema definire un procedimento che possa essere eseguito automaticamente da un esecutore per risolvere il problema

ALGORITMI E SOLUZIONI DI PROBLEMI

Introduzione agli Algoritmi 4

Il concetto di informatica. Graziano Pravadelli (2012)

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript

Problemi, algoritmi, calcolatore

Scaletta. Cenni di computabilità. Definizioni (1/2) Cosa fa un programma? Definizioni (2/2) Problemi e domande. Stefano Mizzaro 1

Rappresentazione con i diagrammi di flusso (Flow - chart)

Informatica B (Docente Vittorio Zaccaria)

Informatica A. Introduzione al Corso. A.a. 2007/2008 (PF-Z) Allievi Ingegneria Gestionale

INFORMATICA Algoritmi come formalizzazione della risoluzione di un problema

Informatica. Come si risolve un problema?

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

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

Appunti di informatica. Lezione 4 anno accademico Mario Verdicchio

Transcript:

Algoritmi Informatica B

Cos è l informatica? q È la scienza che si occupa della rappresentazione dell informazione e della sua elaborazione e gestione Si occupa dell informazione, che fa parte di ogni attività umana, e non riguarda solo i calcolatori Si occupa della rappresentazione, cioè di come modellare la realtà astraendo gli aspetti importanti da quelli trascurabili Si occupa di elaborare e gestire l informazione, cioè di trasformarla opportunamente per raggiungere lo scopo desiderato q È lo studio sistematico degli algoritmi che descrivono e trasformano l informazione: la loro teoria, analisi, progetto, efficienza, realizzazione e applicazione

Cos è un algoritmo? q Una sequenza finita di operazioni elementari tali che: siano comprensibili ad uno specifico esecutore possano essere eseguite senza ambiguità permettano di risolvere uno specifico problema q Es. istruzioni IKEA passi elementari senza ambiguità raggiungono lo scopo

Un esempio q Come si calcola la radice quadrata di x? q Definisce la radice quadrata ma non come si calcola q Invece 1. x ß leggi il radicando 2. y ß (x+1)/2 3. Se y 2 è abbastanza vicino ad x, restituisci y come risultato 4. Altrimenti, y ß 0.5 * (y + x/y) 5. Ricomincia dal punto 3

Un esempio q Come si calcola la radice quadrata di x? q Definisce la radice quadrata ma non come si calcola q Invece 1. x ß leggi il radicando 2. y ß (x+1)/2 3. Se y 2 è abbastanza vicino ad x, restituisci y come risultato 4. Altrimenti, y ß 0.5 * (y + x/y) 5. Ricomincia dal punto 3 VARIABILI

Un esempio q Come si calcola la radice quadrata di x? q Definisce la radice quadrata ma non come si calcola q Invece 1. x ß leggi il radicando 2. y ß (x+1)/2 3. Se y 2 è abbastanza vicino ad x, restituisci y come risultato 4. Altrimenti, y ß 0.5 * (y + x/y) 5. Ricomincia dal punto 3 OPERAZIONI ARITMETICHE

Un esempio q Come si calcola la radice quadrata di x? q Definisce la radice quadrata ma non come si calcola q Invece 1. x ß leggi il radicando 2. y ß (x+1)/2 3. Se y 2 è abbastanza vicino ad x, restituisci y come risultato 4. Altrimenti, y ß 0.5 * (y + x/y) 5. Ricomincia dal punto 3 I/O

Un esempio q Come si calcola la radice quadrata di x? q Definisce la radice quadrata ma non come si calcola q Invece 1. x ß leggi il radicando 2. y ß (x+1)/2 3. Se y 2 è abbastanza vicino ad x, restituisci y come risultato 4. Altrimenti, y ß 0.5 * (y + x/y) 5. Ricomincia dal punto 3 DECISIONI

Un esempio q Come si calcola la radice quadrata di x? q Definisce la radice quadrata ma non come si calcola q Invece 1. x ß leggi il radicando 2. y ß (x+1)/2 3. Se y 2 è abbastanza vicino ad x, restituisci y come risultato 4. Altrimenti, y ß 0.5 * (y + x/y) 5. Ricomincia dal punto 3 CICLI

Un altro esempio q Cercare, in una lista ordinata, il codice IATA corrispondente ad un dato areoporto q Cercare, in una lista ordinata, a che aeroporto corrisponde un certo codice IATA IATA

Un ultimo esempio q Come si contano le persone in una stanza? q Proviamo qualcosa di completamente diverso 1. Alzatevi tutti in piedi 2. Ognuno di voi vale 1 3. Trova un compagno/a ancora in piedi a) sommate i vostri due valori, il risultato è il vostro nuovo valore b) uno dei due si deve sedere e l altro deve restare in piedi 4. Se al punto 3. non avete trovato un compagno, il vosto valore non cambia e dovete restare in piedi 5. Ricominciate dal punto 3, finchè non resta in piedi una sola persona in tutta la stanza 6. Il valore dell ultima persona rimasta in piedi è il numero di persone presenti nella stanza

Dal problema alla soluzione automatica q Ci occuperemo di problemi che riguardano la gestione e l elaborazione dell informazione q Vedremo come passare dalla specifica di un problema alla sua soluzione automatica attraverso l uso di un calcolatore La specifica è una descrizione semi-formale del problema È necessario passare dalla specifica ad un algoritmo che risolve il problema dato Infine affinché l algoritmo trovato sia eseguibile dal calcolatore dovrà essere definito in un linguaggio comprensibile al calcolatore stesso

Dalla specifica all algoritmo q Il processo che porta dalla specifica di un problema ad un algoritmo che lo risolve non è automatico e non è facile da formalizzare La specifica spesso può essere poco chiara o ambigua La scrittura di un algoritmo richiede uno sforzo creativo q Come si impara a progettare un algoritmo? Utilizzare un approccio incrementale Realizzarlo per raffinamenti successivi Fare molta pratica q Qualità Correttezza: risolve il problema e prende in considerazione tutti i casi possibili Efficienza: usa con parsimonia le risorse (es. tempo) q La correttezza è fondamentale ma difficile da verificare, l efficienza è desiderabile e facile da misurare

Come si formalizza un algoritmo? q Una buon processo di progettazione si conclude con la definizione precisa e concisa dell algoritmo ideato q Alcuni linguaggi semi-formali spesso usati Pseudo-codice se A > 0 allora A = A + 1 altrimenti A = 0 Diagrammi di flusso (o schemi a blocchi) Blocco di input dati Blocchi di inizio/fine dell esecuzione Blocco esecutivo inizio leggi fine Blocco condizionale Blocco di output dati Flusso di controllo delle operazioni test? assegnamento test? scrivi

Esempio: M.C.D. di due naturali positivi 1. Leggi N ed M 2. MIN = il minimo tra N ed M 3. X = 1 4. MCD = 1 5. Fintantoché X < MIN I. X = X + 1 II. se X divide sia N che M, allora MCD = X 6. Scrivi MCD

Esempio: perimetro di un triangolo q Date le coordinate di tre punti, riconoscere se sono i vertici di un triangolo non degenere, e nel caso calcolarne il perimetro INIZIO Leggere i valori delle coordinate dei vertici Triangolo degenere? no Calcolare la lunghezza dei lati sì Calcolare il perimetro come somma delle lunghezze Scrivi il valore del perimetro Scrivi: Triangolo degenere Vuoi continuare? no FINE sì