DISPENSE DI PROGRAMMAZIONE

Похожие документы
Blocchi di base. Schemi: Sequenza Selezione Iterazione. Flow chart strutturati Sequenza Selezione Iterazione. Teorema di Bohm e Jacopini

CAPITOLO 3 - ALGORITMI E CODIFICA

Diagrammi a blocchi 1

Diagrammi a blocchi 1

La rappresentazione dell algoritmo Diagrammi di flusso

Dispensa di Informatica II.1

Analisi strutturata 1

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

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

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Lezione 5. La macchina universale

LA METAFORA DELL UFFICIO

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Algoritmi e programmazione Prof. Andrea Borghesan

MODULO 07. La soluzione dei problemi mediante gli algoritmi

Come ragiona il computer. Problemi e algoritmi

Unità di apprendimento 6. Dal problema al programma

Diagrammi di flusso - Flowcharts. E un formalismo che consente di rappresentare graficamente gli algoritmi

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

Algoritmi e soluzione di problemi

Introduzione alla programmazione

LA METAFORA DELL UFFICIO

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

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

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

Automa a Stati Finiti (ASF)

Rappresentazione con i diagrammi di flusso (Flow - chart)

ALGORITMI: PROPRIETÀ FONDAMENTALI

Macchine sequenziali. Automa a Stati Finiti (ASF)

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

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.

PROGRAMMAZIONE STRUTTURATA

Cosa è l Informatica?

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

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

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

Sviluppo di programmi

Formalismi per la descrizione di 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

Fasi di creazione di un programma

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

Algoritmi e Linguaggi

CONCETTI FONDAMENTALI

Come scrivere bene codice? (1 di 1)

Unità di apprendimento 6. Dal problema al programma

Rappresentazione degli algoritmi

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

Algoritmi e diagrammi di flusso versione biennio

PROGRAMMAZIONE: La selezione

ISTITUTO ISTRUZIONE SUPERIORE

Algoritmi e diagrammi di flusso

ESERCIZI DI PROBLEM SOLVING E COMPOSIZIONE DEI DIAGRAMMI DI FLUSSO per le classi seconde

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

Транскрипт:

DISPENSE DI PROGRAMMAZIONE Modulo 1 Risolvere problemi con l elaboratore: dal problema all algoritmo (Parte II) I Linguaggi di descrizione degli algoritmi - Notazioni grafiche (parte 1) Il linguaggio dei diagrammi di flusso: simboli e significati; La definizione di grafo di flusso Gli schemi di composizione fondamentali La definizione di grafo di flusso strutturato Esercizi Il teorema di Bohm e Jacopini (enunciato) I principi della programmazione strutturata I linguaggi di descrizione degli algoritmi - Notazioni grafiche (parte 2) Le carte strutturate Ha collaborato alla editazione Mario Lobina 1

LINGUAGGI DI DESCRIZIONE DEGLI ALGORITMI Il linguaggio con cui descrivere gli algoritmi non è un linguaggio di programmazione. Esistono linguaggi grafici, che fanno uso di simboli grafici, e linguaggi lineari, mediante i quali un algoritmo è descritto a parole. I più comuni linguaggi di descrizione degli algoritmi sono: diagrammi di flusso (flow chart, grafi di flusso) le carte strutturate (structured chart) le rappresentazioni ad albero. 2

IL LINGUAGGIO DEI DIAGRAMMI DI FLUSSO (flow-chart) Punti a favore dell uso dei diagrammi di flusso: sono linguaggi grafici e perciò adatti alla descrizione di processi sequenziali(*); la descrizione della soluzione ad un problema è inequivocabile, infatti i legami tra le azioni e i controlli è rappresentato tramite segni grafici a cui sono associati specifici significati; è un linguaggio adatto, essendo grafico, per comunicare un ALGORITMO ad un esecutore umano. (*) Un processo è sequenziale quando la esecuzione di una qualsiasi azione non può mai sovrapporsi alla esecuzione di un altra azione. 3

I SIMBOLI DEI GRAFI DI FLUSSO 4

DEFINIZIONE DI GRAFO DI FLUSSO E un grafo contenente: - un blocco iniziale - un blocco finale - un numero finito di blocchi di azione - un numero finito di blocchi di controllo per il quale valgono le seguenti condizioni: 1. Ciascun blocco di AZIONE ha una freccia entrante ed una uscente (fig. 1); 2. Ciascun blocco di CONTROLLO ha una freccia entrante e due uscenti (fig. 2); 3. Ciascuna FRECCIA entra in un blocco oppure si inserisce in un altra freccia (fig. 3a e 3b); 4. Ciascun blocco è raggiungibile dal blocco INIZIALE; 5. Il blocco FINALE è raggiungibile dal blocco iniziale 5

Un grafo di flusso La definizione data è costruttiva, poiché contiene le regole per disegnare e per riconoscere i grafi di flusso. Fra i possibili modi di connettere blocchi elementari e frecce che rispettino la definizione di grafo di flusso, ci sono i cosiddetti schemi di composizione fondamentali, chiamati Sequenza, Selezione e Iterazione. 6

SCHEMI DI COMPOSIZIONE FONDAMENTALI Schema di sequenza Descrive la composizione sequenziale di due azioni elementari di un processo. Schema di selezione In dipendenza dall esito di un controllo il comportamento è differente: si dovrà eseguire l azione A1 se C è vero, mentre l azione da eseguire sarà A2 se C è falso. Questo tipo di schema può essere ulteriormente semplificato, eliminando A1 oppure A2 dallo schema. 7

Schema di iterazione Esistono due modelli di iterazione ed entrambi servono per descrivere che l azione deve essere ripetuta quando l esito del controllo lo richiede. N.B.: Ogni schema fondamentale ha un unico punto di ingresso ed un unico punto di uscita. 8

I GRAFI DI FLUSSO STRUTTURATI Sono strutturati quei grafi di flusso che possono essere ricondotti ai tre schemi di composizione fondamentali. DEFINIZIONE A. Un grafo composto da una azione racchiusa tra inizio e fine è un grafo di flusso strutturato (fig. 4). B. Se si hanno due grafi di flusso strutturati S1 ed S2, la loro composizione secondo lo schema di sequenza produce un grafo di flusso strutturato (fig. 5a, 5b, 5c). C. Se si hanno due grafi di flusso strutturati S1 e S2 ed un blocco di controllo C, sono strutturati i grafi di flusso che si ottengono componendo essi secondo lo schema di selezione (fig. 6a, 6b, 6c). D. Se si hanno uno schema strutturato S e un blocco di controllo C (fig. 7a, 7b), 9

allora sono strutturati anche i grafi di flusso che si ottengono componendoli secondo gli schemi di iterazione. (figure 7c, 7d). E. Nessun altro tipo di grafo è strutturato. 10

11

ESEMPIO DI GRAFO DI FLUSSO STRUTTURATO 12

13

ESERCIZIO 14

TEOREMA DI BÖHM E JACOPINI (1966) Enunciato Dato un processo P ed un grafo che lo descrive, è sempre possibile determinare un processo Q che sia descrivibile tramite un grafo di flusso strutturato. Due processi, che agiscono sullo stesso insieme di oggetti, si dicono EQUIVALENTI se producono lo stesso effetto. Due programmi equivalenti sottoposti agli stessi dati di ingresso (o non terminano) o terminano entrambi producendo gli stessi dati di uscita. Il teorema ci assicura che si può fare a meno del GO TO. 15

LA PROGRAMMAZIONE STRUTTURATA La programmazione strutturata vincola al rispetto di due principi: l uso degli schemi di composizione fondamentali (Sequenza, Selezione, Iterazione) e lo sviluppo dell algoritmo in modo Top- Down. Top-Down indica l operare per livelli di astrazione, partendo da una versione iniziale molto generale per raffinare man mano la descrizione dell algoritmo sino ai dettagli. 16

DISCUSSIONE SUI DIAGRAMMI DI FLUSSO I diagrammi di flusso sono adatti alla comunicazione inter-umana, in quanto risultano per noi di facile comprensione; Uno stesso diagramma di flusso è convertibile in più programmi codificati con diversi linguaggi di programmazione. I diagrammi di flusso sono ingombranti, quasi mai entrano su un singolo foglio: ciò rende difficile sia seguire il flusso di controllo che eseguire modifiche al diagramma. La notazione dei diagrammi di flusso non è naturalmente strutturata. Le modifiche tendono a de-strutturare il grafo. 17

LE CARTE STRUTTURATE O STRUCTURED CHART (grafi di Nassi-Schneidermann) Questo tipo di notazione grafica per la descrizione di algoritmi introduce simboli grafici già strutturati. Per ciascuno degli schemi fondamentali c è una rappresentazione specifica: Esiste anche una notazione apposita per la iterazione enumerativa. 18

PROBLEMA Determinare il maggiore fra due valori. 19