Algoritmi. Pagina 1 di 5

Похожие документы
Dal Problema all Algoritmo. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

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

Algoritmi e soluzione di problemi

Sviluppo di programmi

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Come ragiona il computer. Problemi e algoritmi

Algoritmi e diagrammi di flusso

Formalismi per la descrizione di algoritmi

Rappresentazione con i diagrammi di flusso (Flow - chart)

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

Modulo 1 Concetti di base della Tecnologia dell Informazione

LA METAFORA DELL UFFICIO

Corso di Informatica di Base

LABORATORIO DI INFORMATICA

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

Sistemi Web per il turismo - lezione 3 -

Cosa è l Informatica?

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

SCUOLA PRIMARIA MATEMATICA (Classe 1ª)

Lezione 1. Problemi Algoritmi Programmi

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

1 Esercizi in pseudocodice

Algoritmi e Diagrammi di flusso

2. Algoritmi e Programmi

Informatica. Come si risolve un problema?

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Concetti Introduttivi. Il Computer

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

Rappresentazione generale del problema e fasi di progettazione

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso

La codifica digitale

Cap. 2 - Rappresentazione in base 2 dei numeri interi

Il calcolatore. Architettura di un calcolatore (Hardware)

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

DESCRIZIONI RIGOROSE c7

Esercizi sugli Algoritmi numerici

Linguaggi di programmazione

PROBLEMI E ALGORITMI VESPIA CATERINA LICEO CLASSICO AGLI ANGELI

Ancora sui criteri di divisibilità di Marco Bono

PROGRAMMAZIONE STRUTTURATA

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

Teoria dell Informazione

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

Dispensa di Informatica II.1

Diagrammi a blocchi 1

INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan

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

ALGORITMI E PROGRAMMAZIONE STRUTTURATA. Prof R. Bresolin a.s

Algoritmi e Linguaggi

I numeri reali sulla retta e nei calcoli. Daniela Valenti, Treccani scuola

DECLINAZIONE COMPETENZE SCUOLA SECONDARIA DI PRIMO GRADO: MATEMATICA COMPETENZE CONOSCENZE ABILITA

CURRICOLO DI ISTITUTO

Matlab. Istruzioni condizionali, cicli for e cicli while.

Diagrammi a blocchi 1

LA METAFORA DELL UFFICIO

Il linguaggio di programmazione Python

Programmazione di INFORMATICA e Laboratorio

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

PROGRAMMAZIONE: Le strutture di controllo

Struttura del calcolatore

Modulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1

DISPENSE DI PROGRAMMAZIONE

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

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

ELEMENTI DI PROGRAMMAZIONE E TURBO PASCAL

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Il concetto di calcolatore e di algoritmo

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

Algoritmi e Programmi

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

Funzioni, Stack e Visibilità delle Variabili in C

Sistemi lineari. Lorenzo Pareschi. Dipartimento di Matematica & Facoltá di Architettura Universitá di Ferrara

Programmazione modulare

IL CURRICOLO VERTICALE DI MATEMATICA

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

Corso base di Matematica. - I numeri -

Lezioni di Informatica di Base per la Facoltà di Lettere e Filosofia. Algoritmi

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

Strutture di Controllo

LA TRASMISSIONE DELLE INFORMAZIONI SECONDA PARTE 1

Aritmetica dei Calcolatori Elettronici

Sistemi di numerazione

Транскрипт:

Algoritmi Il termine algoritmo proviene dalla matematica e deriva dal nome di in algebrista arabo del IX secolo di nome Al-Khuwarizmi e sta ad indicare un procedimento basato su un numero finito operazioni che specificano in modo rigido e meccanico ogni singolo passo del procedimento. Per algoritmo si intende la descrizione di insieme finito di istruzioni che devono essere eseguite per portare a termine un dato compito e per raggiungere un risultato finale definito in precedenza Esempi di algoritmi possono essere le istruzioni per l uso di un elettrodomestico, una ricetta di cucina, le regole per la risoluzione di una equazione, ecc. In ogni caso si può facilmente dedurre che un algoritmo presuppone la presenza di un esecutore in grado di interpretare ed eseguire correttamente le istruzioni. Prima di arrivare a definire come costruire un algoritmo definiamo le proprietà che devono avere le istruzioni: Ogni istruzione deve essere concretamente realizzabile dall esecutore (ad esempio l istruzione calcola la ventesima cifra dopo la virgola del numero PI greco non può essere eseguita da un esecutore quale una calcolatrice con sole 8 cifre) Le istruzioni devono essere precise, non ambigue. L esecutore deve essere in grado di interpretare una istruzione in modo univoco Le istruzioni devono poter essere eseguite in un tempo finito (limitato). Ad esempio l istruzione calcola tutte le cifre decimali del numero Pi-greco, essendo tale numero irrazionale, richiederà per la sua esecuzione un tempo infinito Pagina 1 di 5

Le istruzioni devono produrre un risultato osservabile. Dobbiamo quindi essere in grado di verificare quale è il risultato dell esecuzione. Le istruzioni devono essere deterministiche. Una stessa istruzione, a partire dalle stesse condizioni iniziali, deve fornire sempre lo stesso risultato. Le istruzioni devono essere elementari (atomiche). Una istruzione non deve essere ulteriormente scomponibile in altre istruzioni. Osserviamo che una stessa istruzione può essere elementare oppure no a seconda dell esecutore: l istruzione calcola la radice quadrata di un numero intero con approssimazione di 4 cifre non è elementare se l esecutore è una calcolatrice dotata delle sole 4 operazioni somma, sottrazione, prodotto e divisione. Vediamo ora i criteri per la definizione di un algoritmo: La lista delle istruzioni che definiscono un algoritmo deve essere finita L algoritmo deve essere esaustivo. Quando si progetta un algoritmo bisogna considerare tutti i possibili casi che si possono presentare e indicare la soluzione per ognuno di essi. L algoritmo deve essere riproducibile. Ogni esecuzione dello stesso algoritmo con gli stessi dati iniziali deve fornire gli stessi risultati. Vediamo ora un esempio: una segretaria deve contattare telefonicamente una serie di clienti a cui deve lasciare un messaggio. Descrizione del problema La segretaria deve procurarsi la lista dei clienti da contattare ed il numero di numero di telefono di ciascuno di essi. Pagina 2 di 5

Per ogni cliente dell elenco la segretaria dovrà comporre il numero, e nel caso in cui il numero risultasse occupato scriverà di fianco al numero nella lista occupato. Se dovesse rispondere il cliente la segretaria annoterà ok. (Abbiamo volutamente ristretto i casi possibili a due alternative: l esempio infatti sarebbe diventato troppo complesso). Dati necessari (Dati di input) Lista dei clienti da avvertire Messaggio da comunicare Risultati (Dati di output) Lista dei clienti con l indicazione, per ciascuno di essi, dell esito della telefonata. Algoritmo Risolutivo Ripeti Leggi il numero telefonico di un cliente Componi il numero Se numero occupato allora Annota numero occupato Altrimenti Lascia messaggio Annota ok Finchè elenco completato L algoritmo che abbiamo appena descritto ovviamente non rispetta alcune delle proprietà enunciate, poiché lo scopo dell esempio è quello di individuare le strutture tramite cui organizzare le istruzioni. Pagina 3 di 5

1) Le istruzioni devono essere eseguite secondo la sequenza impostata: se nell esempio si invertissero le istruzioni Leggi il numero telefonico di un cliente con Componi il numero l algoritmo non avrebbe senso. L algoritmo deve quindi essere eseguito dall esecutore seguendo l ordine stabilito. 2) Subito dopo aver composto il numero, ci si possono presentare due casi (si ricorda ancora una volta che le ipotesi sono semplificate) e, a seconda che il numero sia occupato oppure no si l algoritmo prevede che si esegua l istruzione Annota numero occupato oppure Lascia messaggio - Annota ok. La verifica della condizione numero occupato seleziona l istruzione seguente da eseguire. 3) Nell esempio una serie di istruzioni vengono ripetute un certo numero di volte; in particolare la ripetizione è controllata dalla verifica di una condizione che viene controllata ogni volta che la sequenza da ripetere è portata a termine. Questi aspetti che abbiamo analizzato sono i tre concetti che sono alla base della costruzione di una algoritmo: sequenza selezione iterazione Questi sono i concetti che sono alla base dei linguaggi di programmazione imperativi, famiglia di cui fa parte il linguaggio VB.NET. Se ora analizziamo come siamo arrivati dal problema alla stesura dell algoritmo potremo distinguere diverse fasi: 1) Individuazione dei dati iniziali sui quali basare la soluzione. Questa serie di dati viene chiamata dati in ingresso o dati di input. Pagina 4 di 5

2) Individuazione dei risultati che si vogliono ottenere. Questa serie di dati viene chiamata dati di uscita o dati di output 3) Individuazione delle risorse * logiche e fisiche necessarie 4) Individuazione delle soluzioni, ovvero il procedimento da seguire per arrivare a definire l algoritmo Questi quattro punti costituiscono l analisi del problema. Terminate le fasi di analisi del problema, si deve definire l algoritmo. A questo scopo si potrebbero utilizzare vari metodi ben codificati quali la pseudocodifica o i diagrammi a blocchi, ma vedremo che nel caso specifico di un linguaggio quale VB.NET, date le sue specifiche, potremo comunque saltare questa fase e passare direttamente alla stesura del codice. * Per risorse logiche si intendono le strutture dati, funzioni di libreria, ecc. mentre per risorse fisiche si intendono le specifiche hardware richieste. Pagina 5 di 5