Funzionalità di un Algoritmo



Documenti analoghi
DAL PROBLEMA ALL'ALGORITMO AL PROGRAMMA SCRITTO IN Come. Scopo principale dell informatica è risolvere problemi con i calcolatori.

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Appunti di Sistemi Elettronici

Nozione di algoritmo. Gabriella Trucco

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

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

Algoritmi. Maurizio Palesi. Maurizio Palesi 1

Fasi di creazione di un programma

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico

La programmazione. Sviluppo del software

I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Risoluzione di un Problema. Esempio

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

TECNOLOGIE INFORMATICHE DELLA COMUNICAZIONE ORE SETTIMANALI 2 TIPO DI PROVA PER GIUDIZIO SOSPESO PROVA DI LABORATORIO

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:

ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo

Come ragiona il computer. Problemi e algoritmi

Descrizione di un algoritmo

Corso di Informatica

Metodologie di programmazione in Fortran 90

I PROBLEMI ALGEBRICI

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Linguaggi per COMUNICARE. Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Algoritmi, dati e programmi

Gli algoritmi: definizioni e proprietà

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi.

Dispensa di Informatica I.1

DAL PROBLEMA AL PROGRAMMA

DAL PROBLEMA AL PROGRAMMA

Lezione 8. La macchina universale

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Introduzione. Informatica B. Daniele Loiacono

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dal Problema all'algoritmo

Artifact Centric Business Processes (I)

Manuale della Qualità e Controllo del Processo

Algoritmi, Linguaggi e Programmi

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

Automazione Industriale (scheduling+mms) scheduling+mms.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Problemi, Algoritmi e Programmi

Linguaggi e Paradigmi di Programmazione

Le Macchine di Turing

SISTEMI OPERATIVI. Deadlock (blocco critico) Domande di verifica. Luca Orrù Centro Multimediale Montiferru 04/06/2007

ISTITUTO TECNICO ECONOMICO MOSSOTTI

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Requisiti normativi, standard, template

Indice. pagina 2 di 10

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

PROGETTO EM.MA PRESIDIO

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

1

Algoritmi e diagrammi di flusso

Figura Professionale codice FP136 ADDETTO/A PRODUZIONE DI PIZZA TONDA

CALCOLO COMBINATORIO

Architettura di un calcolatore

ALGEBRA DELLE PROPOSIZIONI

GUIDA BASE DI PASCAL

La Progettazione Concettuale

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

Non è un problema! Esperienze in atto per guardare senza timore il problema

Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo

e-dva - eni-depth Velocity Analysis

Tecniche di Simulazione: Introduzione. N. Del Buono:

FONDAMENTI di INFORMATICA L. Mezzalira

4. Operazioni aritmetiche con i numeri binari

DAL DIAGRAMMA AL CODICE

Introduzione alla Programmazione

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012

Strumenti di modellazione. Gabriella Trucco

3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)

INFORMATICA GENERALE. Prof Alberto Postiglione Dipartim. Scienze della Comunicazione Univ. Salerno. Università degli Studi di Salerno

Programmazione dinamica

CODICE ASSE: PRIMO ANNO SECONDO ANNO

Tecniche avanzate di sintesi di algoritmi: Programmazione dinamica Algoritmi greedy

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore

Esempi di algoritmi. Lezione III

CAMBIO LIQUIDO E PULIZIA CIRCUITO DI RAFFREDDAMENTO: by Antsrp

Che differenza c è tra una richiesta XML ed una domanda XML? (pag. 4)

Metodi e Modelli Matematici di Probabilità per la Gestione

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Informatica. Esistono varie definizioni: Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Strutturazione logica dei dati: i file

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Olga Scotti. Basi di Informatica. File e cartelle

Esercizi su. Funzioni

Esercitazione N7:Gioco dei 21 fiammiferi (impariamo java giocando)

Funzioni in C. Violetta Lonati

Matematica in laboratorio

Dispense del corso di Introduzione all Informatica della Facoltà Di Scienze Matematiche, Fisiche e Naturali dell Università della Calabria

Transcript:

ALGORITMI

Cosa è un algoritmo Un algoritmo è una sequenza di azioni che consente di pervenire alla soluzione di un problema mediante una sequenza finita di operazioni, completamente e univocamente determinate.

Funzionalità di un Algoritmo Possiamo immaginare l algoritmo come un procedimento risolutivo che riceve dei dati in ingresso (input) esegue una qualche elaborazione e restituisce il risultato della trasformazione (output). Uno stesso problema può essere risolto in modi diversi. Quindi ci possono essere più algoritmi che risolvono lo stesso problema. 3

Proprietà di un algoritmo L algoritmo deve essere: Finito, costituito cioè da un numero limitato di passi (le istruzioni sono in numero finito e vengono eseguite un numero finito di volte); Definito (non-ambiguo) ambiguo), ogni istruzione deve essere elementare e deve consentire un interpretazione univoca; Eseguibile, cioè la sua esecuzione deve essere possibile con gli strumenti di cui si dispone; Deterministico, ad ogni passo deve essere definita una ed una sola operazione successiva. Generale: un algoritmo risolve una classe di problemi: la descrizione dell'algoritmo non cambia quando cambiano i dati. Un algoritmo è quindi indipendente dai dati in ingresso. 4

Rappresentazioni di un Algoritmo I Diagrammi a Blocchi (flow-chart) ha il pregio di evidenziare visivamente il flusso di esecuzione dell algoritmo. Ha un impatto visivo molto forte. Pseudocodifica E vicino al linguaggio naturale, utilizza un insieme di parole-chiave (parole che descrivono il linguaggio) che sono un sottoinsieme del nostro vocabolario. 5

Formalismi Un formalismo è insieme di formule e/o simboli usati in una teoria scientifica: Esempio: il formalismo della matematica. Così il flow-chart e la pseudocodifica sono dei formalismi usati per rappresentare algoritmi. 6

Flow-chart Simboli convenzionali usati nel flow-chart: Simboli di inizio e fine algoritmo begin/end Simbolo di lettura input (Read) e stampa output (Write) Simbolo di azione Simbolo di scelta o decisione Con questi simboli si può rappresentare un diagramma a blocchi. Ogni blocco del diagramma è la rappresentazione di un passo elementare. 7

Flow-chart Sono disponibili 4 operazioni base: Input/output Esecuzione Decisione (o selezione) Iterazione (o ripetizione) 8

Flow-chart (esempio) Registrare un film con un videoregistratore. Si vuole insegnare a un bambino a utilizzare un videoregistratore per registrare film. 9

Flow-chart Esercizio1. Olio nel motore. Per controllare il livello dell olio nel motore è necessario aprire il cofano e, dopo aver individuato l asta indicatrice, estrarla, pulirla e riporla; quindi estrarla nuovamente per effettuare la verifica del livello. Se tale livello è inferore al minimo, si reinserisce l asta nell alloggiamento, si svita il tappo e si aggiunge un po d olio, alternando successivi controlli finchè si raggiunge una situazione soddisfacente. Quindi si ripone l asta e si chiudono il tappo e il cofano dell auto. 10

Tecnica Top-down Quando il problema è più articolato non è immediato trovare subito i passi elementari e la sua soluzione. Una tecnica che semplifica questo compito è la tecnica per raffinamenti successivi. Il problema viene suddiviso in sottoproblemi. Risolvendo i sottoproblemi si giunge alla soluzione del problema di partenza. Tale procedimento di scomposizione è detta tecnica top-down. Cioè si parte dalla visione globale del problema (top=alto) e la si scompone in sottoproblemi autonomi che a loro volta sono composti da istruzioni elementari (down=basso). 11

Tecnica Top-down (esempio) ESEMPIO. Pranzo di nozze. Il problema può essere descritto come nel grafico. Il nuovo simbolo introdotto: Indica un sottoproblema. Cioè una azione non elementare che necessita di ulteriori passaggi elementari per essere dettagliata. 12

Tecnica Top-down (esempio) Ciascuno di questi problemi (che tra loro sono collegati) può essere risolto in modo indipendente. Si passa al raffinamento successivo. 1. Il primo problema è un problema elementare, occorre acquisire il numero di invitati con un blocco di input. 2. Il secondo problema si articola nei seguenti passi: scelta del numero di portate per ogni portata, scelta della piatto, scelta dei vini 3. Il terzo problema dovrebbe dare la descrizione di ogni ricetta. Ma se si suppone di passare l ordine in cucina. L esecuzione di una ricetta, per il cuoco è una competenza elementare. 13

Tecnica Top-down (esempio) Soluzione finale. 14

Pseudocodifica Il secondo formalismo per la descrizione di un algoritmo utilizza un sottoinsieme del linguaggio naturale. Utilizza le seguenti parole: INIZIO/FINE LEGGI (ACQUISISCI)/SCRIVI SE ALLORA.ALTRIMENTI MENTRE ESEGUI 15

Pseudocodifica Esempio. Registare un film con il videoregistratore. INIZIO acquisisci il programma da registrare acquisisci il canale acquisisci l ora in cui inizia il programma acquisisci una videocassetta acquisisci il videoregistratore Mentre non è l ora di inizio Esegui controlla l orologio Mentre il programma non è terminato Esegui Continua a registrare Togli la cassetta FINE 16

Flow-chart Esercizio 1 Dato in input un numero, calcolarne il cubo se è maggiore di 0, il quadrato in caso contrario. Esercizio 2 Calcolare l area di un rettangolo e quella di un quadrato Esercizio3. Buon giorno. Descrivi le azioni che vengono eseguite al mattino dal suono della sveglia fino all uscita di casa. Esercizio4. Secchi d acqua. Sono presenti due secchi con capacità rispettivamente di 4 e 3 litri. Si riempia il primo secchio (quello da 4 litri) con soli 2 litri d acqua. Descrivi con un algoritmo la soluzione. 17

Flow-chart Esercizio 5. Pizza Margherita. Si descriva la procedura per la preparazione di una pizza margherita. Dopo essersi procurati la ricetta della pizza ci si procura tutto il necessario, quindi si preparano la pasta e gli ingredienti. Si accende il forno (fuoco), si stende la pasta e la si farcisce con pomodoro e mozzarella. Quando il forno è alla temperatura giusta, si inforna la pizza e si attende la cottura. Quando la pizza è cotta, si estrae dal forno, si taglia e si mangia! 18

SIMBOLI CONVENZIONALI (ESSENZIALI) Sequenza Decisione binaria (o istruzione If-Then-Else) Ciclo, o ripetizione (o istruzione While-Do)

TIPO DI CICLO

ESEMPIO MCD