Algoritmi e soluzione di problemi

Documenti analoghi
Caratteristiche di un calcolatore elettronico

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

Sviluppo di programmi

Formalismi per la descrizione di algoritmi

Strutture di Controllo

Analisi strutturata 1

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Diagrammi a blocchi 1

Sviluppo di programmi

Iterazione A. Ferrari

Rappresentazione con i diagrammi di flusso (Flow - chart)

Introduzione alla programmazione

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

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

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

PROGRAMMAZIONE: Le strutture di controllo

Cicli. S i a i = a 1 + a 2 + a a n

Diagrammi a blocchi 1

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

PROGRAMMAZIONE STRUTTURATA

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

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato»

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

Sistemi di Elaborazione delle Informazioni

Programmazione Strutturata

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

Descrizione di un algoritmo

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

CAPITOLO 3 - ALGORITMI E CODIFICA

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

MODULO 1. CONCETTI DI BASE DELL ICT

Programmazione a blocchi. Algobuild Prof. Sergio Roselli

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

02/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 8 STRUTTURE DI CONTROLLO (1)

Paolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

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

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Come ragiona il computer. Problemi e algoritmi

Sviluppo di programmi

Corso di Informatica

Elementi di Informatica e Programmazione

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

INFORMATICA. Strutture iterative

Algoritmi. Pagina 1 di 5

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

IL TEOREMA DI BOEHM-JACOPINI

Algoritmi. Andrea Passerini Informatica. Algoritmi

Unità di apprendimento 6. Dal problema al programma

liceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE BIENNIO: SECONDA DISCIPLINA: INFORMATICA

Risoluzione di un problema

LA METAFORA DELL UFFICIO

Università degli Studi di Brescia INFORMATICA. Dipartimento di Ingegneria Meccanica e Industriale

Strutture di controllo (v.anche cap. 8 del testo MATLAB per l ingegneria )

Strutture di controllo

Unità di apprendimento 6. Dal problema al programma

Fondamenti di Informatica

Fasi di creazione di un programma

Formalismi per la descrizione di algoritmi

2. Algoritmi e Programmi

Corso di Informatica di Base

La teoria degli algoritmi. (Dalla definizione del problema alla scrittura dell algoritmo)

Teoria dell Informazione

A.S Classe III H Informatica. Programma didattico finale e indicazioni per il recupero estivo relativi all'insegnamento di Informatica

1 Esercizi in pseudocodice

IL COSTRUTTO ITERAZIONE 2

I flow chart. Informatica Generale 14/15 Scienze della comunicazione. cristina gena.

PROGRAMMAZIONE: La selezione

Dall analisi alla codifica (1)

Fondamenti di Informatica

L uomo come esecutore di algoritmi

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori

Corso di Informatica Modulo T1 C1-Sequenza e selezione

Dispensa di Informatica II.1

Algoritmi. Andrea Passerini Conoscenze informatiche e relazionali Corso di laurea in Scienze dell Ingegneria Edile

Istruzioni Condizionali

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

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova

ALGORITMI. I diagrammi a blocchi o diagrammi di flusso (flow charts) sono diagrammi a blocchi

Fondamenti di Informatica A. A. 2018/19

Come scrivere bene codice? (1 di 1)

Laboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso

Algoritmi e diagrammi di flusso versione biennio

Informatica (A-K) 5. Algoritmi e pseudocodifica

Informatica. Richiami. Diagrammi di flusso. Algoritmi, programmi e dati. Algoritmi e diagrammi di flusso. per le lauree triennali

Lezione 5. La macchina universale

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Programmazione strutturata

Il flusso algoritmico di esecuzione

Definizione. E un insieme ordinato di istruzioni che risolvono un problema. Da al- Khwarizmi: importante matematico Arabo nato nel 780 circa a Baghdad

PROGRAMMAZIONE (Corso A)

Classe III A. A.s Programma di Informatica 5 ore settimanali (3 laboratorio) Docenti. Prof. Alberto Ferrari Prof.

MODULO 07. La soluzione dei problemi mediante gli algoritmi

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

Pseudo codice. Pseudo codice, Paolo Bison, FI07, p.1 / Pseudo codice, Paolo Bison, FI07, p.3

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

Transcript:

Algoritmi e soluzione di problemi Dato un problema devo trovare una soluzione. Esempi: effettuare una telefonata calcolare l area di un trapezio L algoritmo è la sequenza di operazioni (istruzioni, azioni) da compiere per risolvere un problema: partendo dai dati di input disponibili elaborando i dati di input fornendo infine all utente i dati di output INPUT ALGORITMO OUTPUT 1

Algoritmo della telefonata Start 1. Solleva la cornetta 2. Componi il numero con il prefisso 3. Se libero attendi che il destinatario risponda Altrimenti vai al punto 5 4. Parla e ascolta 5. Posa la cornetta End 2

Un algoritmo deve essere: Caratteristiche degli algoritmi generale: cioè deve risolvere una classe di problemi dello stesso tipo (es. la somma di due numeri non è un algoritmo generale come la somma di n numeri) finito: ogni algoritmo deve essere composto da un numero finito di istruzioni e deve avere un punto di inizio e un punto di fine (es. calcola tutte le cifre decimai di pi-greco non avrà mai fine) completo: per tutti i casi che si possono verificare deve essere indicato un percorso da seguire (es. se il numero è positivo estrai la radice non è completo) riproducibile: ogni esecuzione dell algoritmo con i medesimi dati iniziali deve produrre sempre i medesimi risultati finali (es. la somma di n numeri deve fornire sempre lo stesso risultato corretto) 3

Metodologia di programmazione 1. Analisi del problema comprensione del problema individuazione dei dati di I/O eventuali vincoli (per esempio: numero > 0, numero compreso tra 1 e 5, ) 2. Algoritmo diagramma di flusso / pseudocodifica simulazione dell algoritmo su casi di prova 3. Codifica del programma scrittura del programma sorgente (source) in un linguaggio di programmazione 4. Validazione Traduzione in linguaggio macchina 4

Dati: variabili e costanti Variabile: cella che contiene un valore che può cambiare durante l esecuzione dell algoritmo numero Costante: cella che contiene un valore che NON cambia pigreco 3.14 Ogni dato (variabile o costante) ha un nome, un tipo (intero, reale, carattere, ) e un valore 5

Diagrammi di flusso L algoritmo può essere descritto con uno schema grafico detto diagramma di flusso. Start End Blocchi di inizio e di fine dell algoritmo I O Blocchi di I/O Blocco di azione F T Blocco di selezione (scelta) 6

Diagrammi di flusso Istruzioni di input, di output e di assegnazione con le variabili x i Istruzione di input per INSERIRE un valore da tastiera nella variabile x x o Istruzione di output per VISUALIZZARE sul monitor il valore contenuto nella variabile x X valore Istruzione di assegnazione per assegnare alla variabile a sinistra del simbolo il valore dell espressione a destra del simbolo di assegnazione 7

Calcolo dell area di un trapezio (1) 1. Analisi del problema Dati di input bmin = base minore nmag = base maggiore h = altezza Dati di output area = area del trapezio bmin bmag h Area del trapezio area 8

Calcolo dell area di un trapezio (2) 2. Algoritmo Start Diagramma di flusso bmin, bmag, h I Pseudocodifica Start Inserisci bmin, bmag, h area (bmin + bmag) * h / 2 Visualizza area End area (bmin + bmag) * h / 2 area O End 9

Programmazione strutturata Nell algoritmo le istruzioni sono organizzate secondo le seguenti strutture di controllo: sequenza: istruzioni eseguite nell ordine con cui sono scritte selezione binaria: scelta tra due possibili alternative iterazione pre-condizionale: ripetizione di un istruzione Ci sono alcune strutture derivate fornite dalla maggior parte dei linguaggi di programmazione: scelta multipla iterazione post-condizionale iterazione con contatore (ciclo FOR) 10

Teorema di Bohm-Jacopini La programmazione strutturata è la progettazione di software secondo un preciso modello organizzativo per ottenere una buona qualità dei programmi. Un corretto approccio al lavoro di creazione degli algoritmi è il teorema di Bohm-Jacopini che afferma: Qualsiasi algoritmo può essere scritto utilizzando soltanto tre strutture di controllo sequenza, selezione e iterazione 11

Sequenza Flow chart Start Pseudocodifica Istruzione1 Istruzione2 Start Istruzione1 Istruzione2 Istruzione3 End Istruzione3 End 12

Selezione binaria La struttura di selezione binaria permette di eseguire in alternativa una o più istruzioni in base al valore di una condizione logica. Flow chart T F Condizione Istruzione1 Istruzione2 Pseudocodifica Se condizione Allora istruzione1 Altrimenti istruzione2 Fine se 13

Selezione binaria Uno dei due rami della struttura può essere assente. T Condizione F Se condizione Allora istruzione Fine se Istruzione 14

Selezione binaria Posso avere strutture di scelta binaria annidate. Flow chart Pseudocodice T Istruzione1 Cond1 T F Cond2 F Se cond1 Allora istruzione1 Altrimenti Se Cond2 Allora istruzione2 Altrimenti istruzione3 Fine se Fine se Istruzione2 Istruzione3 15

Iterazione pre-condizionale L iterazione pre-condizionale permette di eseguire zero, una o più volte una o più istruzioni mentre è vera una determinata condizione. Flow chart Pseudocodice COND T Istruzioni F Mentre Cond Esegui Istruzioni Fine-Mentre 16

Iterazione pre-condizionale Nell iterazione pre-condizionale: la condizione di fine ciclo precede le istruzioni contenute nel ciclo (corpo del ciclo) iterazione con controllo in testa le istruzioni contenute nel ciclo potrebbero non essere mai eseguite se la condizione di fine ciclo è inizialmente falsa 17

Sommare 10 numeri inseriti da input c=0 s=0 inizializzazione contatore di ciclo c < 10 T c = c + 1 F condizione di fine ciclo incremento del contatore x s = s + x s 18