Formalismi per la descrizione di algoritmi

Documenti analoghi
Descrizione di un algoritmo

Fasi di creazione di un programma

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

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

Requisiti normativi, standard, template

Gli algoritmi: definizioni e proprietà

1

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata

PROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico

Esercizio. Pseudocodice

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

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

Algoritmi, dati e programmi

Elementi di Informatica

Algoritmi. Maurizio Palesi. Maurizio Palesi 1

PIANO DI LAVORO. a.s / 2016

DISPENSE DI PROGRAMMAZIONE. Modulo 1 Risolvere problemi con l elaboratore: dal problema all algoritmo (Parte III)

INFORMATICA 1 L. Mezzalira

DAL PROBLEMA AL CODICE: ATTRAVERSO LO PSEUDOCODICE

DAL DIAGRAMMA AL CODICE

Metodologie di programmazione in Fortran 90

PARTE III MACCHINE A REGISTRI

Introduzione. Informatica B. Daniele Loiacono

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

Gli algoritmi. Gli algoritmi. Analisi e programmazione

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

Semantica dei programmi. La semantica dei programmi è la caratterizzazione matematica dei possibili comportamenti di un programma.

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI

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

STRUTTURE (O COSTRUTTI) DI CONTROLLO

Algoritmi e diagrammi di flusso

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

Informatica Teorica. Macchine a registri

Nozione di algoritmo. Gabriella Trucco

Lezione 8. La macchina universale

Esercizio: numero primo

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

FONDAMENTI di INFORMATICA L. Mezzalira

Funzionalità di un Algoritmo

Come ragiona il computer. Problemi e algoritmi

Laboratorio di programmazione con Python e Scratch

Corso di Esercitazioni di Programmazione

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

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

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

GUIDA BASE DI PASCAL

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

- Algoritmi ed esecutori di algoritmi - ALGORITMI MACCHINA DI VON NEUMANN

Sistemi Web per il turismo - lezione 3 -

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali

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

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

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

+ / operatori di confronto (espressioni logiche/predicati) / = > < Pseudo codice. Pseudo codice

Il calcolatore. Architettura di un calcolatore (Hardware)

Appunti di Sistemi Elettronici

Esercizio. Fabio Proietti (c) 2012 Licenza:

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

Appunti del corso di Informatica 1 (IN1 Fondamenti) 2 Introduzione alla programmazione

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

Sviluppo Applicazioni Mobile Lezione 7. Dr. Paolo Casoto, Ph.D

Fondamenti dell Informatica Ricorsione e Iterazione Simona Ronchi Della Rocca (dal testo: Kfoury, Moll and Arbib, cap.5.2)

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

2- Identificazione del processo. (o dei processi) da analizzare. Approcci: Esaustivo. In relazione al problema. Sulla base della rilevanza

Caricare un numero n float, calcolare e stampare il quadrato e il cubo di n. Diagramma di flusso

Introduzione al MATLAB c Parte 2

Elaborato di Fondamenti di Informatica 2007/08. Claudio Guidi

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di INFORMATICA 2 (Matematica e Applicazioni)

Creare una funzione float square(float x). La funzione deve restituire il quadrato del parametro x.

FONDAMENTI di INFORMATICA Prof. Lorenzo Mezzalira

Gestione di files Motivazioni

INFORMATICA E COMPUTER : INTRODUZIONE

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

TEORIA E LABORATORIO MODULO 2 - (IS) LA STRUTTURA E I SERVIZI DI INTERNET MODULO 3 - (AL) PROBLEMI E ALGORITMI. LE STRUTTURE DI CONTROLLO.

La programmazione. Sviluppo del software

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI

Sistemi Informativi. Introduzione. Processi fisici. Tipologie di processi. Processi informativi. Processi aziendali

APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL

Introduzione al corso

Fondamenti di Informatica Ingegneria Clinica Lezione 19/10/2009. Prof. Raffaele Nicolussi

Generalità sugli algoritmi

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


23/02/2014. Dalla scorsa lezione. La Macchina di Von Neumann. Uomo come esecutore di algoritmi

Introduzione ai tipi di dato astratti: applicazione alle liste

Istruzioni per il controllo di ciclo - ciclo a condizione generica

Software e Algoritmi. Lezione n. 3

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE

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

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

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

I metodi formali nel processo di sviluppo del software

Architettura di un calcolatore

PIANO DI LAVORO DEL PROFESSORE

RELAZIONI BINARIE. Proprietà delle relazioni Data una relazione R, definita in un insieme non vuoto U, si hanno le seguenti proprietà :

Elementi di Architettura e Sistemi Operativi

Transcript:

Formalismi per la descrizione di algoritmi Per descrivere in passi di un algoritmo bisogna essere precisi e non ambigui Il linguaggio naturale degli esseri umani si presta a interpret non univoche Si usano due formalismi: diagrammi di flusso: formalismo grafico pseudo-codice: linguaggio con istruzioni simili a quelle dei linguaggi di programmazione si possono usare in alternativa 70

Specifica di inizio e di fine Ogni algoritmo deve avere un inizio ed una fine 71

Input ed output di dati Ogni algoritmo parte da dati in ingresso per produrre dati in uscita (problema computazionale) readx read X write Z write Z 72

Specifica delle Ogni algoritmo specifica che l esecutore deve compiere del tipo descritto in precedenza Z := X + 1 Z := X + 1 73

Specifica delle condizioni logiche Alcuni passi di un algoritmo si devono eseguire se sono verificate condizioni logiche su valori di variabili In genere, questi salti dell algoritmo sono sottoposti ad una condizione logica (risposta o ); Si parla di blocchi decisionali 74

Specifica delle condizioni logiche caso condizione logica seguenti comuni caso if (condizione logica) then caso else caso if seguenti comuni 75

Specifica delle condizioni logiche caso condizione logica if (condizione logica) then caso if seguenti comuni seguenti comuni 76

Condizioni logiche Annidate: esempio condizione logica 2 condizione logica 1 seguenti comuni condizione logica 3 2 2 3 if (condizione logica 1) then else if (condizione logica 2) then 2 else 2 if if (condizione logica 3) then 3 if if seguenti comuni 77

Flusso di esecuzione I singoli diagrammi devono essere uniti tramite i connettori (linee e frecce in un flow chart); L esecuzione dei passi deve essere fatta sequenzialmente, ov seguo i connettori, parto dall inizio dell algoritmo fino a raggiungere la sua fine Quando si scrive l algoritmo bisogna fare molta attenzione alla direzione del flusso di esecuzione 78

Strutture di controllo: iterazione da ripetere condizione logica while (condizione logica) da ripetere while seguenti seguenti 79

Strutture di controllo: iter annidate iterazione esterna da ripetere iterazione interna da ripetere condizione logica interna condizione logica esterna while (condizione logica esterna) while (condizione logica interna) iterazione interna da ripetere while iterazione esterna da ripetere while seguenti seguenti 80

Sviluppo di programmi FASE 1: Dare un nome al problema parto dall analisi del problema FASE 2: Scrivere la specifica funzionale FASE 3: Scrittura dell algoritmo FASE 3.1: Introduzione delle variabili (contenitori di dati) necessarie e delle relative oper elementari FASE 3.2: Specifica di un diagramma di flusso ( o di uno pseudo codice) che descrive in modo preciso e non ambiguo la sequenza di oper da eseguire FASE 4: Traduzione del diagramma di flusso ( o dello pseudo codice) in un programma in un linguaggio di programmazione 81

Esempio di algoritmo: calcolo radici write "nessuna radice" read a,b,c delta:=b*b-4*a*c delta < 0 write "radici coincidenti" r1 := (-b + sqrt(delta))/2*a r2 := (-b - sqrt(delta))/2*a write r1,r2 delta = 0 write "radici distinte" read a,b,c delta := b*b-4*a*c if (delta < 0) then write nessuna radice else r1 := (-b+sqrt(delta))/2*a r2 := (-b-sqrt(delta))/2*a write r1,r2 if (delta = 0) then write radici coincidenti else write radici distinte if if 82

Esempio di algoritmo Scrivere l algoritmo che esegue la somma di due numeri read X read Y Z := X + Y read X read Y Z := X + Y write Z write Z 83

Esempio: massimo tra due numeri Dati due numeri, dire qual è il massimo tra i due. read X read Y X > Y max := X max := Y write max read X read Y if (X > Y) then max := X else max := Y if write max 84

Esercizio: massimo di una sequenza Si supponga di fornire in input ad un programma un numero indefinito di interi positivi. L inserimento verrà terminato dall utente quando questi inserirà uno zero (0). Il programma deve restituire il valore massimo tra quelli introdotti. Disegnare il diagramma di flusso di tale programma. 85

Esercizio: massimo di una sequenza max := -1 max := -1 read numero read numero numero >0 numero > max max := numero write max while (numero > 0) if (numero > max) then max := numero if read numero while write max read numero 86

Esercizio: massimo di una sequenza max := -1 read numero numero > max numero <> 0 numero < 0 max := numero read numero write max write "solo positivi!!" max := -1 read numero while (numero <> 0) if (numero < 0) then write solo positivi!! else if (numero > max) then max := numero if if read numero while write max 87

Esercizio: cosa fa questo algoritmo? P := 0 P := 0 read A,B read A,B A <> 0 write P while (A <> 0) if (A è dispari) then P := P + B A è dispari P := P + B if A := A / 2 B := B * 2 A := A / 2 while B := B * 2 write P 88