Rappresentazione con i diagrammi di flusso (Flow - chart)

Похожие документы
Introduzione alla programmazione

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

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

Introduzione agli Algoritmi

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

Formalismi per la descrizione di algoritmi

Risoluzione di un problema

Corso di Informatica di Base

Laboratorio di Programmazione

Algoritmi e soluzione di problemi

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

La formalizzazione dell informazione: Dati e Diagrammi di Flusso

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Unità di apprendimento 6. Dal problema al programma

MODULO 07. La soluzione dei problemi mediante gli algoritmi

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

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

CONCETTI FONDAMENTALI

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

CAPITOLO 3 - ALGORITMI E CODIFICA

Sviluppo di programmi

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

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

ELEMENTI DI INFORMATICA L. Ing. Claudia Chiusoli

Evoluzione del FORTRAN 14/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN

L ELABORATORE ELETTRONICO

Unità di apprendimento 6. Dal problema al programma

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Rappresentazione degli algoritmi

Elementi di programmazione

Dall algoritmo al programma

Fasi di creazione di un programma

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

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

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

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

ALGORITMI: PROPRIETÀ FONDAMENTALI

Introduzione alla programmazione strutturata

PROGRAMMAZIONE STRUTTURATA

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso

Capitolo 3 L elaborazione e la strutturazione dell informazione

Rappresentazione degli algoritmi

Flow-chart. Introduzione agli algoritmi e ai diagrammi a blocchi.

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

Concetti Introduttivi. Il Computer

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

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

Algoritmi e diagrammi di flusso versione biennio

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

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

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

Teoria dell Informazione

Scrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica

Algoritmi e Linguaggi

Транскрипт:

Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo che richiamano visivamente le principali operazioni all interno di un algoritmo. Un flow - chart si costruisce combinando in modo opportuno i simboli grafici disponibili, in modo tale da riprodurre fedelmente l evoluzione dell algoritmo in tutte le sue diramazioni e possibilità. Introduciamo i principali simboli che verranno utilizzati per la rappresentazione degli algoritmi medianti i diagrammi di flusso. Azioni Connessioni Iniziatore / Terminatore Flusso logico Operazione / Processo Ricongiunzione di percorsi Selezione Ingresso / Uscita Caratteristiche della rappresentazione con i diagrammi di flusso Vantaggi Permette di realizzare diagrammi intuitivi e di facile lettura. Svantaggi Incapacità di sintetizzare algoritmi complessi; Rappresentazione non immediatamente trasferibile in un linguaggio di programmazione. 3

Esempio 1 Descrivere utilizzando i diagrammi di flusso l algoritmo che dati in ingresso il valore della base e dell altezza di un rettangolo ne calcoli il perimetro e l area. ACQUISISCI b ACQUISISCI h p = 2 * (b + h) 2. Acquisisci il valore della base b. 3. Acquisisci il valore dell altezza h. 4. Calcola il perimetro del rettangolo p = 2 * ( b + h). 5. Calcola l area del rettangolo a = b * h. 6. Stampa il valore del perimetro. 7. Stampa il valore dell area. 8. Fine. a = b * h STAMPA perimetro STAMPA area Strutture base dei diagrammi di flusso 3 3 4 Sequenza Blocco di selezione 4

Ciclo While Do Ciclo Repeat - Until Esempio 2 Descrivere utilizzando i diagrammi di flusso l algoritmo che determina il valore maggiore tra due numeri m e n. Acquisisci m Acquisisci n 2. Acquisisci m. 3. Acquisisci n. 4. Se m > n allora max = m altrimenti max = n. 5. Stampa max. 6. Fine. m > n max = n max = m Stampa max 5

Il modo con cui questo esecutore risolve il problema è molto diverso da quello seguito dall esecutore umano. Questo esempio mette in luce che la struttura e la sequenza di operazioni che descrivono l algoritmo sono funzione dell esecutore. In particolare vengono messe in evidenza: le operazioni elementari in grado di eseguire; comprensione dell algoritmo. Esempio 3 Descrivere utilizzando i diagrammi di flusso l algoritmo che determina il valore maggiore tra tre numeri a, b, c. max = c b > c ACQUISISCI a,b,c a > b a > c max = b max = c max = a 2. Acquisisci i valori di a,b,c. 3. Se a > b allora prosegui al passo 6. 4. Se b > c allora max = a altrimenti max = c. 5. Salta al passo 7. 6. Se a > c allora max = b altrimenti max = c. 7. Stampa il valore massimo. 8. Fine. STAMPA max Osservazioni 1. Non è possibile mettere in collegamento i rami di due blocchi di selezione sebbene richiedono l esecuzione della stessa operazione. 2. Per verificare che l algoritmo funziona correttamente si devono fare delle simulazioni del suo funzionamento utilizzando dei valori di prova di cui si conoscano le soluzioni. 3. Se esistono due rami dei blocchi di selezione con la stessa azione, probabilmente l algoritmo che abbiamo realizzato non è il più efficiente (migliore). 6

Soluzione migliore ACQUISISCI a,b,c max = a b > max 2. Acquisisci i valori a,b,c. 3. Poni max = a. 4. Se b > max allora poni max = b. 5. Se c > max allora poni max = c. 6. Stampa il valore massimo. 7. Fine. max = b c > max max = c STAMPA max 7

Esempio 4 Descrivere utilizzando i diagrammi di flusso l algoritmo che determina se un numero intero è pari o dispari. ACQUISISCI n Calcola il resto della divisione n / 2 2. Acquisisci il numero intero n. 3. Calcola il resto della divisione n / 2. 4. Se il resto = 0 allora il numero è pari altrimenti è dispari. 5. Fine. resto = 0 Numero dispari Numero pari Caratteristiche di un algoritmo Affinché un insieme di operazioni costituisca un algoritmo deve soddisfare i requisiti seguenti: il numero di operazioni svolte nella soluzione deve essere finito e inoltre ogni singola operazione deve essere eseguita in un intervallo di tempo determinato; ogni operazione deve essere descritta in modo preciso e non ambiguo; deve essere deterministico ovvero, a partire dagli stessi dati iniziali, l insieme delle operazioni deve sempre produrre i medesimi risultati; deve essere eseguibile, ovvero deve esistere un esecutore, automatico o manuale, in grado di effettuare le operazioni che definiscono l algoritmo; deve essere comprensibile al suo esecutore deve essere generale e quindi in grado di risolvere non un singolo problema, ma tutti quelli di una determinata classe. 8

LINGUAGGIO DI PROGETTO E una tecnica alternativa ai metodi grafici che consiste nel rappresentare i passi del processo risolutivo di un problema per mezzo di un linguaggio informale, simile a quello che usiamo abitualmente. Il linguaggio di progetto è chiamato anche pseudolinguaggio o linguaggio per la progettazione dei programmi o PDL ( acronimo di Program Design Language) Definizione Pseudocodice Si definisce pseudocodice l insieme di frasi, scritte con linguaggio di progetto, che rappresentano (codificano) le operazioni da compiere nella risoluzione del problema. Ogni operazione è rappresentata mediante una oppure più parole chiave (keyword) il cui significato richiama il tipo di operazione codificata. Le parole chiave sono in genere scritte in inglese, a causa della diffusione, a livello internazionale, di questa lingua nell ambito delle discipline scientifiche e tecniche. Le frasi devono essere definite in modo da soddisfare i requisiti generali degli algoritmi e quindi non in modo ambiguo. Le tecniche di rappresentazione degli algoritmi devono permettere di comunicare il lavoro svolto e, per questo motivo, risulta essenziale l impiego di parole chiave nella lingua inglese. Un PDL con parole chiave in inglese può essere comunicato a programmatori di tutto il mondo e rappresenta il modo comune utilizzato su testi e riviste internazionali, che consente al futuro programmatore anche l autoaggiornamento. Il lavoro di traduzione in inglese, risparmiato nella fase di progettazione, dovrà in tutti i casi essere svolto nella fase di codifica, perché i linguaggi di programmazione moderni non hanno parole chiave in italiano. Traduzione dei simboli grafici dei flow chart in linguaggio di progetto (PDL) ALGORITMO Nome Assegna un nome simbolico all algoritmo Leggi Dati BEGIN END INPUT Dati Stampa Dati OUTPUT Dati Operazione Descrizione dell operazione a parole o in forma simbolica. (* Commento *) Il testo compreso tra i simboli (* e *) sono ignorati dall esecutore e possono essere utilizzati per introdurre dei commenti al codice al fine di aumentarne la leggibilità. 9

Strutture di controllo in PDL Sequenza BEGIN 3 END 3 Blocco di selezione ad una via IF ( condizione ) THEN ENDIF Blocco di selezione a due vie IF ( condizione ) THEN ELSE ENDIF 10

Ciclo WHILE - DO WHILE ( condizione ) DO BEGIN END Caratteristiche ciclo con verifica della condizione all ingresso; il corpo del ciclo viene eseguito se la condizione risulta verificata; il corpo del ciclo non viene mai eseguito se la condizione risulta subito falsa. Ciclo REPEAT - UNTIL REPEAT UNTIL () Caratteristiche ciclo con verifica della condizione all uscita; il corpo del ciclo viene eseguito se la condizione risulta falsa; il corpo del ciclo viene eseguito almeno una volta anche se la condizione risulta subito verificata. Esercizio 1 Algoritmo di calcolo del perimetro e area di un rettangolo. ALGORITMO Rettangolo BEGIN INPUT base,altezza perimetro 2 * base + 2 * altezza area base * altezza OUTPUT perimetro, area END 11