Dispensa di Informatica II.1

Похожие документы
Introduzione alla 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.)

DISPENSE DI PROGRAMMAZIONE

Diagrammi a blocchi 1

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

Algoritmi e diagrammi di flusso versione biennio

Unità di apprendimento 6. Dal problema al programma

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

Diagrammi a blocchi 1

Algoritmi e diagrammi di flusso

Algoritmi e soluzione di problemi

CONCETTI FONDAMENTALI

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

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

Rappresentazione con i diagrammi di flusso (Flow - chart)

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

LA METAFORA DELL UFFICIO

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Corso di Informatica di Base

Algoritmi e Strutture Dati

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

Cosa è l Informatica?

Modulo 1 Concetti di base della Tecnologia dell Informazione

Come ragiona il computer. Problemi e algoritmi

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Problemi, algoritmi, calcolatore

MODULO 07. La soluzione dei problemi mediante gli algoritmi

Concetti di Base sulla Programmazione. Prof.Ing.S.Cavalieri

La rappresentazione dell algoritmo Diagrammi di flusso

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

Lezione 5. La macchina universale

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

LA METAFORA DELL UFFICIO

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

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso

Matlab. Istruzioni condizionali, cicli for e cicli while.

Dal Problema all Algoritmo. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Sistemi Web per il turismo - lezione 3 -

Il concetto di calcolatore e di algoritmo

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

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

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

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Formalismi per la descrizione di algoritmi

Dalla prima lezione. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 7 VARIABILI E COSTANTI 28/02/2016. Concetto di algoritmo

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

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

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

Algoritmi e Programmi

Il computer. Il case e l'unità di elaborazione. Il computer, una macchina aggiornabile.

ALGORITMI. Obiettivo: risolvere problemi mediante l uso di un elaboratore elettronico. Elaboratore elettronico

Le aree dell informatica

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Introduzione alla programmazione

PROGRAMMAZIONE STRUTTURATA

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

Istruzioni Condizionali

Programmazione strutturata

IL PROCESSO di PROGETTAZIONE

Liceo Marie Curie (Meda) Scientifico Classico Linguistico PROGRAMMAZIONE DISCIPLINARE PER COMPETENZE

Algoritmi e Linguaggi

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1

Algoritmi. Pagina 1 di 5

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

LABORATORIO DI INFORMATICA

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

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

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE

Informatica. Come si risolve un problema?

Il calcolatore. Architettura di un calcolatore (Hardware)

Il Software programmabili programma algoritmo

1.1 Concetti base dell Informatica: Algoritmi

Principio di composizione delle MT

Транскрипт:

ALGORITMI La dispensa di seguito proposta si pone come tutorial per poter porre le basi per la realizzazione di algoritmi che poi potranno eventualmente essere sviluppati in moduli software con metodologia di programmazione strutturata. Il concetto di algoritmo Il calcolatore elettronico per risolvere un problema utilizza un algoritmo, cioè un insieme di azioni (o istruzioni) che, eseguite secondo un ordine prestabilito, permettono di trovare il risultato cercato sulla base dei dati in ingresso. Il concetto di algoritmo è uno dei concetti di base dell'intera matematica: i più semplici ed antichi algoritmi sono le regole per eseguire le operazioni dell'aritmetica elementare, formulate dal matematico arabo medioevale Al-Khuwarizmi, da cui deriva appunto il nome di algoritmo. Nel secolo scorso il concetto di algoritmo venne formalizzato per risolvere il problema matematico della "decisione"(entscheidungsproblem) posto da David Hilbert nel 1928. Successive modifiche avvennero a seguito della definizione delle funzioni ricorsive Gödel Herbrand Kleene del 1930, 1934 e 1935 e della Macchina di Alan Turing del 1936 7 e 1939. Nonostante questi tentativi, la definizione formale del concetto di algoritmo è tuttora una sfida aperta. Tuttavia, si può definire intuitivamente un algoritmo come una sequenza ordinata e finita di passi (operazioni o istruzioni) elementari che conduce ad un ben determinato risultato in un tempo finito. Dispensa II.1 versione 1.0 mail: lamonica@associatesonline.it Pagina 1 di 8

Il diagramma di flusso (flow chart) Dispensa di Informatica II.1 Il diagramma di flusso (in inglese detti anche flow chart) è un linguaggio di modellazione grafico per rappresentare il flusso di controllo di algoritmi, procedure, istruzioni operative (in senso lato). Esso consente di descrivere in modo schematico: le operazioni da compiere, rappresentate mediante sagome convenzionali (come rettangoli, rombi, esagoni, parallelogrammi, rettangoli smussati...) all'interno delle quali un'indicazione testuale descrive l'attività da svolgere la sequenza nella quale devono essere compiute, rappresentate con frecce di collegamento. I diagrammi di flusso trovano la loro applicazione in vari ambiti, ma quello in cui storicamente si sono maggiormente affermati è stato quello informatico dove, solo in tempi più recenti, sono stati affiancati da altri strumenti metodologici quali lo pseudocodice e l'uml. Blocchi elementari Esistono varie notazioni per la rappresentazione con diagrammi di flusso. Tutte le notazioni sottendono a un meta-modello molto semplice, caratterizzato da una lettura sequenziale: si parte dal blocco iniziale si segue la freccia in uscita si giunge al blocco successivo e si effettua l'operazione descritta nel blocco si procede iterando i passi 2 e 3 fino a giungere al blocco finale. Dispensa II.1 versione 1.0 mail: lamonica@associatesonline.it Pagina 2 di 8

Tra le operazioni si distingue tra: azione, che comportano una attività o un'elaborazione test, che indicano due o più direzioni in base a un fattore di decisione ingresso/uscita, che comportano l'immissione di informazioni dall'esterno oppure l'invio di informazioni verso l'esterno. La notazione più semplice e più frequentemente utilizzata prevede dunque 5 tipi di blocchi elementari: blocco iniziale blocco finale blocco di I/O blocco di Elaborazione blocco di controllo Dispensa II.1 versione 1.0 mail: lamonica@associatesonline.it Pagina 3 di 8

Struttura sequenza Quando due o più azioni vengono eseguite l una di seguito all altra si parla di sequenza. Struttura selezione Quando avviene che dopo una azione può essere eseguita o una o un altra azione si parla di selezione. Tramite la struttura Selezione è possibile arrivati a un certo punto del programma, di scegliere che strada seguire in base alla verità o falsità di un affermazione. Successivamente il flusso di esecuzione dell algoritmo prosegue per affrontare altri passi. Dispensa II.1 versione 1.0 mail: lamonica@associatesonline.it Pagina 4 di 8

Struttura Iterazione Quando avviene che un azione o insieme di azioni venga ripetuto un certo numero di volte prestabilito oppure venga ripetuto finché non si verifichi una certa condizione si parla di iterazione. Individuamo in particolare la iterazione in cui è possibile che una azione venga ripetuta un numero di volte ma anche mai eseguita ( da 0 ad n volte) in cui la azione di controllo avviene prima del blocco di azioni da ripetere la iterazione in cui è possibile che una azione venga ripetuta un numero di volte ma almeno una volta ( da 1 ad n volte) in cui la azione di controllo avviene dopo del blocco di azioni da ripetere. Dispensa II.1 versione 1.0 mail: lamonica@associatesonline.it Pagina 5 di 8

Dispensa II.1 versione 1.0 mail: lamonica@associatesonline.it Pagina 6 di 8

Teorema di Böhm-Jacopini Dispensa di Informatica II.1 Il teorema di Böhm-Jacopini, enunciato nel 1966 dagli informatici Corrado Böhm e Giuseppe Jacopini, afferma che qualunque algoritmo può essere implementato utilizzando tre sole strutture, la sequenza, la selezione ed il ciclo (iterazione). Dispensa II.1 versione 1.0 mail: lamonica@associatesonline.it Pagina 7 di 8

Esecuzione di un algoritmo su un Computer Algoritmo: linguaggio di programmazione: Programma: Programma: Processo: Procedura di trasformazione di un insieme di dati iniziali in un insieme di risultati finali mediante una sequenza di istruzioni. Linguaggio (insieme di simboli e regole) per rappresentare le istruzioni di un algoritmo e la loro concatenazione. Algoritmo scritto in un linguaggio di programmazione al fine di comunicare al calcolatore elettronico le azioni da eseguire. Algoritmo scritto in un linguaggio di programmazione al fine di comunicare al calcolatore elettronico le azioni da eseguire. Programma in esecuzione sul computer. Dispensa II.1 versione 1.0 mail: lamonica@associatesonline.it Pagina 8 di 8