InformaticaProblema Algoritmo Programma Dispensa per il corso di Informatica ABACUS 3 Istituto...

23
STATISTICA DESCRITTIVA

Transcript of InformaticaProblema Algoritmo Programma Dispensa per il corso di Informatica ABACUS 3 Istituto...

Page 1: InformaticaProblema Algoritmo Programma Dispensa per il corso di Informatica ABACUS 3 Istituto Statale E. TORRICELLI Liceo Scientifico - Tecnico Industriale.

Informatica ProblemaAlgoritmo Programma

Dispensa per il corso di Informatica ABACUS 3

Istituto Statale “E. TORRICELLI”

Liceo Scientifico - Tecnico Industriale

Page 2: InformaticaProblema Algoritmo Programma Dispensa per il corso di Informatica ABACUS 3 Istituto Statale E. TORRICELLI Liceo Scientifico - Tecnico Industriale.

a.s. 2006-2007 Problema - Algoritmo - Programma 2

Informatica e InformazioneInformazione è qualunque “cosa” che:

possiede un significato per qualcuno ha, ha avuto o potrà avere un valore oppure un’utilità può assumere forme diverse (simboli, numeri, grafici, disegni, colori…) può essere comunicata (scambiata) tra due soggetti in diverse modalità

(scritta, orale..) può essere archiviata, catalogata e memorizzata può essere elaborata e trasformata nella forma più utile a seconda della

necessità

Informatica significa… informazione + automatica la scienza che studia teoria, analisi, progetto, efficienza, realizzazione e

applicazione degli algoritmi che descrivono e trasformano l’informazione

Page 3: InformaticaProblema Algoritmo Programma Dispensa per il corso di Informatica ABACUS 3 Istituto Statale E. TORRICELLI Liceo Scientifico - Tecnico Industriale.

a.s. 2006-2007 Problema - Algoritmo - Programma 3

Problema

Cosa è questione da risolvere necessità da affrontare

Come si risolve attraverso una metodologia di lavoro

DEFINIRE il problema Quali dati sono coinvolti Quali dati sono disponibili Quale soluzione ci si aspetta Come si possono trovare i dati utili

INDIVIDUARE il percorso risolutivo ESEGUIRE le azioni

Page 4: InformaticaProblema Algoritmo Programma Dispensa per il corso di Informatica ABACUS 3 Istituto Statale E. TORRICELLI Liceo Scientifico - Tecnico Industriale.

a.s. 2006-2007 Problema - Algoritmo - Programma 4

Problema

Necessita esecutore

Fornisce soluzione

Utilizza dati

organizzati mediante l’ideazione di un percorso risolutivo adeguato che comprende le azioni da intraprendere e la loro sequenza esatta

Algoritmo

Page 5: InformaticaProblema Algoritmo Programma Dispensa per il corso di Informatica ABACUS 3 Istituto Statale E. TORRICELLI Liceo Scientifico - Tecnico Industriale.

a.s. 2006-2007 Problema - Algoritmo - Programma 5

AlgoritmoDefinizione formale

sequenza di azioni, valida per un insieme di dati iniziali ben definito, che, compiuta da un esecutore, trasformi i dati nel risultato finale, attraverso un numero finito di passi elementari e non ambigui. Un algoritmo deve presentare un punto di INIZIO (dove comincia il procedimento risolutivo) e un punto di FINE (raggiunto il quale si interrompe l’esecuzione delle azioni)

Caratteristiche completo ed esaustivo

per tutti i casi che si possono verificare durante l’esecuzione, deve essere indicata la soluzione da seguire riproducibile

ogni successiva esecuzione dello stesso algoritmo con i medesimi dati iniziali deve produrre sempre i medesimi risultati finalideve risolvere medesime categorie di problemi

deterministicole azioni di cui è composto devono fornire la medesima, certa soluzione, indipendentemente dalla natura dell’esecutore

Le azioni che formano l’algoritmo devono essere: in numero finito non ambigue realizzabili

Esempi intuitivi di algoritmi i passi necessari per l’utilizzo di un elettrodomestico le regole da seguire per la divisione di 2 numeri le indicazioni per la consultazione di un orario ferroviario

Page 6: InformaticaProblema Algoritmo Programma Dispensa per il corso di Informatica ABACUS 3 Istituto Statale E. TORRICELLI Liceo Scientifico - Tecnico Industriale.

a.s. 2006-2007 Problema - Algoritmo - Programma 6

Algoritmo: gli elementi coinvoltiNella definizione si individuano tre elementi fondamentali:

DatiIniziali (o in ingresso)

sono gli elementi che vengono elaborati dall’algoritmoFinali (o in uscita)

sono i risultati prodotti dall’algoritmo

Sequenza di azioni (istruzioni, passi elementari) un’azione è un’operazione elementare (istruzione) che compone un passo

della serie di operazioni che deve essere eseguita sui dati di ingresso per ottenere il risultato, cioè i dati in uscita

Esecutore (o processore) è il soggetto che compie le azioni, cioè legge le istruzioni che devono essere

eseguite sui dati in ingresso, le interpreta e le esegue in modo da elaborare tali dati per trasformarli in risultati, cioè dati in uscita.

l’insieme delle istruzioni deve essere scelto a seconda dell’esecutore, in termini di qualità, di tipologia e di livello di dettaglio

Page 7: InformaticaProblema Algoritmo Programma Dispensa per il corso di Informatica ABACUS 3 Istituto Statale E. TORRICELLI Liceo Scientifico - Tecnico Industriale.

a.s. 2006-2007 Problema - Algoritmo - Programma 7

Azioni e Istruzioni

Per descrivere le azioni è necessario disporre di un linguaggio o di una notazione formale

ISTRUZIONI descrizioni delle azioni azioni svolte da un esecutore automatico

Un algoritmo è dunque composto da un certo numero di istruzioni, ad esso corrisponde un processo composto da un certo numero di azioni

Page 8: InformaticaProblema Algoritmo Programma Dispensa per il corso di Informatica ABACUS 3 Istituto Statale E. TORRICELLI Liceo Scientifico - Tecnico Industriale.

a.s. 2006-2007 Problema - Algoritmo - Programma 8

Caratteristiche delle Istruzioni

Ogni istruzione deve essere concretamente realizzabile dall’esecutore, a cui è affidato l’algoritmo

Le istruzioni che compongono un algoritmo devono essere precise e non ambigue, in modo che non lascino dubbi nell’interpretazione da parte dell’esecutore

Ogni istruzione deve avere una durata limitata nel tempo

Ogni istruzione deve produrre, se eseguita, un risultato osservabile

Ogni istruzione deve avere carattere deterministico: se eseguita, a partire dalle stesse condizioni iniziali, deve cioè produrre sempre il medesimo effetto

Le istruzioni devono essere elementari, cioè non ulteriormente scomponibili rispetto alle capacità dell’esecutore

Page 9: InformaticaProblema Algoritmo Programma Dispensa per il corso di Informatica ABACUS 3 Istituto Statale E. TORRICELLI Liceo Scientifico - Tecnico Industriale.

a.s. 2006-2007 Problema - Algoritmo - Programma 9

Algoritmo ed esecutore

Per una descrizione generale dell’ambiente in cui si opera con l’informatica, vanno definite due figure fondamentali: Il programmatore, ovvero colui che organizza e scrive

l’algoritmo L’utente, ovvero la persona che attiva l’esecuzione

dell’algoritmo e che interagisce con l’esecutore per fornirgli i dati iniziali del problema e per utilizzare i risultati finali

Se per esecutore si intende un elaboratore elettronico, l’algoritmo dovrà essere scritto secondo un linguaggio definito, in modo da essere comprensibile da parte del calcolatore.

Programma

Page 10: InformaticaProblema Algoritmo Programma Dispensa per il corso di Informatica ABACUS 3 Istituto Statale E. TORRICELLI Liceo Scientifico - Tecnico Industriale.

a.s. 2006-2007 Problema - Algoritmo - Programma 10

Linguaggio

È un sistema codificato di segni che Consente

comunicazione (=scambio di informazioni) Usa

regole di una grammatica generativo-trasformazionale per generare e trasformare le frasi (che possono essere

attive, passive, affermative, negative o interrogative)

Page 11: InformaticaProblema Algoritmo Programma Dispensa per il corso di Informatica ABACUS 3 Istituto Statale E. TORRICELLI Liceo Scientifico - Tecnico Industriale.

a.s. 2006-2007 Problema - Algoritmo - Programma 11

Linguaggio di programmazione permette di codificare gli algoritmi in modo

che risultino “comprensibili” a un calcolatore

è un vero e proprio linguaggio con un lessico, una sintassi e una semantica specifica.

Page 12: InformaticaProblema Algoritmo Programma Dispensa per il corso di Informatica ABACUS 3 Istituto Statale E. TORRICELLI Liceo Scientifico - Tecnico Industriale.

a.s. 2006-2007 Problema - Algoritmo - Programma 12

Linguaggi per la stesura di un algoritmoSi distinguono Metalinguaggio

si usano simboli grafici (diagrammi di flusso = flow chart) Pseudocodifica in linguaggio naturale

si usano parole chiave

In entrambi i casi, come in tutti i linguaggi, occorre definire l’alfabeto (i simboli ammessi dal linguaggio) le parole (le combinazioni dei simboli) sintassi (le regole che permettono di associare tra loro le parole in

modo coerente)

Page 13: InformaticaProblema Algoritmo Programma Dispensa per il corso di Informatica ABACUS 3 Istituto Statale E. TORRICELLI Liceo Scientifico - Tecnico Industriale.

a.s. 2006-2007 Problema - Algoritmo - Programma 13

Diagrammi di flusso

Comprendonoelementi di forma diversa

segmenti orientati che uniscono tra loro i vari simboli

Indicanoil flusso delle operazioni

Consentonouna descrizione grafica dell’algoritmo

Fornisconouna visione immediata dell’intero procedimento e dell’ordine di esecuzione delle varie istruzioni

Page 14: InformaticaProblema Algoritmo Programma Dispensa per il corso di Informatica ABACUS 3 Istituto Statale E. TORRICELLI Liceo Scientifico - Tecnico Industriale.

a.s. 2006-2007 Problema - Algoritmo - Programma 14

Simboli per Diagrammi di flussoSTART

Detto di input/output, utilizzato per rappresentare operazioni di acquisizione o di restituzione di dati

indicano il punto di partenza e quello di terminazione dell’algoritmo

detto di elaborazione e contiene al suo interno l’istruzione da eseguire (deve avere una sola freccia in uscita)

condizione

detto di decisione e serve per:- rappresentare un’operazione di confronto tra due dati (in corrispondenza delle frecce in uscita si trovano indicazioni del tipo si/no, VERO/FALSO, V/F, T/F)- stabilire se una proposizione (condizione) è vera o falsa(Viene così definito il valore di un’espressione di tipo logico, cioè di una variabile a due valori, a uno dei quali corrisponde il significato di condizione verificata -vero, e all’altro quella di condizione non verificata -falso)

END

Page 15: InformaticaProblema Algoritmo Programma Dispensa per il corso di Informatica ABACUS 3 Istituto Statale E. TORRICELLI Liceo Scientifico - Tecnico Industriale.

a.s. 2006-2007 Problema - Algoritmo - Programma 15

Pseudocodifica È un linguaggio sintetico composto da un vocabolario e da una

sintassi molto ristretti È la descrizione di un algoritmo ottenuta

utilizzando termini e parole del linguaggio comune applicando regole che permettono di organizzare un tipo di testo

formalmente rigoroso e strettamente orientato alla stesura degli algoritmi

Richiede il rispetto delle regole per la redazione del testo dell’algoritmo

Consente al programmatore di esprimere le proprie idee in una forma naturale permettendo di concentrarsi sulla logica della soluzione del

problema senza essere distratti dai vincoli formali richiesti nel lavoro di

stesura del programma.

Page 16: InformaticaProblema Algoritmo Programma Dispensa per il corso di Informatica ABACUS 3 Istituto Statale E. TORRICELLI Liceo Scientifico - Tecnico Industriale.

a.s. 2006-2007 Problema - Algoritmo - Programma 16

La programmazione strutturata

La teoria della programmazione strutturata consente di realizzare algoritmi costituiti da parti che dipendono l’una dall’altra, secondo un ben definito modello organizzativo.

I modelli organizzativi si chiamano strutture di controllo, perché servono a controllare il percorso all’interno del procedimento risolutivo, per ottenere i risultati desiderati.

Si ritiene valido il teorema di JACOPINI-BÖHM:

Qualsiasi algoritmo può essere scritto utilizzando soltanto tre strutture di base:

•Sequenza

•Alternativa (o di Selezione)

•Ripetizione (o Iterativa)

Page 17: InformaticaProblema Algoritmo Programma Dispensa per il corso di Informatica ABACUS 3 Istituto Statale E. TORRICELLI Liceo Scientifico - Tecnico Industriale.

a.s. 2006-2007 Problema - Algoritmo - Programma 17

È consentito l’uso di alcune parole chiave, o simboli, che specificano:

•le azioni che devono essere compiute da un esecutore

•come strutturare la logica della soluzione adottata

INIZIO, FINE ({ , })

leggi (lista di variabili)

scrivi (variabili e costanti)

SE ALLORA ALTRIMENTI FINESE

ESEGUI RIPETI FINCHE’

ESEGUI MENTRE RIPETI

Pseudocodifica: simboli e parole chiave

parole (simboli) che aprono e chiudono algoritmo

operazioni per descrivere l’acquisizione (leggi) e la restituzione (scrivi) dei dati

Page 18: InformaticaProblema Algoritmo Programma Dispensa per il corso di Informatica ABACUS 3 Istituto Statale E. TORRICELLI Liceo Scientifico - Tecnico Industriale.

a.s. 2006-2007 Problema - Algoritmo - Programma 18

Nelle istruzioni che vengono eseguite in alternativa, l’esecutore deve operare una scelta tra un certo gruppo di istruzioni e un altro gruppo, a seconda di ciò che succede in quel momento durante l’elaborazione, cioè a seconda della validità o meno di una condizione:

Flow Chart delle strutture di controllo

Le istruzioni organizzate in sequenza devono essere eseguite una dopo l’altra secondo l’ordine con cui sono state scritte

Istruzione 1

Istruzione N

condizione

istruzione1 istruzione2

T FSE (condizione vera)

alloraESEGUI istruzione 1

ALTRIMENTI ESEGUI istruzione 2

FINESE

condizione

istruzione

T

F

SE (condizione vera)alloraESEGUI istruzione

FINESE

Istruzione di Selezione ad una via Istruzione di Selezione a due vie

Page 19: InformaticaProblema Algoritmo Programma Dispensa per il corso di Informatica ABACUS 3 Istituto Statale E. TORRICELLI Liceo Scientifico - Tecnico Industriale.

a.s. 2006-2007 Problema - Algoritmo - Programma 19

Istruzioni che devono essere eseguite in ripetizione, cioè, a seconda delle circostanze.

Vengono detti anche cicli e, a seconda di quando avvenga il controllo della condizione, si distinguono in:

TESEGUI istruzioniControlla condizione

RIPETI FINCHÉ’ (condizione vera)

Cicli con controllo in testa (ripetizioni precondizionali)

Cicli con controllo in coda (ripetizioni postcondizionali)

condizione

istruzioni

T

F MENTRE (condizione vera) ESEGUI istruzioniRIPETI

condizione

istruzioni

F

Page 20: InformaticaProblema Algoritmo Programma Dispensa per il corso di Informatica ABACUS 3 Istituto Statale E. TORRICELLI Liceo Scientifico - Tecnico Industriale.

a.s. 2006-2007 Problema - Algoritmo - Programma 20

Traduzioni nei linguaggi C e Java

if (condizione vera){ ESEGUI istruzione 1}else{

ESEGUI istruzione 2 }

condizione

istruzione1 istruzione2

T FSE (condizione vera)

alloraESEGUI istruzione 1

ALTRIMENTI ESEGUI istruzione 2

FINESE

condizione

istruzione

T

F

SE (condizione vera)alloraESEGUI istruzione

FINESE

Istruzione di Selezione ad una via Istruzione di Selezione a due vie

if (condizione vera){ ESEGUI istruzione}

Page 21: InformaticaProblema Algoritmo Programma Dispensa per il corso di Informatica ABACUS 3 Istituto Statale E. TORRICELLI Liceo Scientifico - Tecnico Industriale.

a.s. 2006-2007 Problema - Algoritmo - Programma 21

Traduzioni nei linguaggi C e Java

Cicli con controllo in testa (ripetizioni precondizionali)

condizione

istruzioni

T

F MENTRE (condizione vera) istruzioniRIPETI

while (condizione vera) {

istruzioni }

ESEGUI istruzioniRIPETI FINCHÉ’ (condizione vera)

Cicli con controllo in coda (ripetizioni postcondizionali)

Tcondizione

istruzioni

F

do{istruzioni

}while (condizione vera);

Page 22: InformaticaProblema Algoritmo Programma Dispensa per il corso di Informatica ABACUS 3 Istituto Statale E. TORRICELLI Liceo Scientifico - Tecnico Industriale.

a.s. 2006-2007 Problema - Algoritmo - Programma 22

Esempi di algoritmi: calcolo dell’e-esima potenza

INIZIO

Leggi base

Leggi esp

val=1

Esp <> 0F

val=val*base

esp=esp - 1

VScrivi val

FINE

Page 23: InformaticaProblema Algoritmo Programma Dispensa per il corso di Informatica ABACUS 3 Istituto Statale E. TORRICELLI Liceo Scientifico - Tecnico Industriale.

a.s. 2006-2007 Problema - Algoritmo - Programma 23

INIZIO

LEGGI base

LEGGI esp

val = 1

ESEGUI MENTRE esp <> 0

val = val * base

esp = esp - 1

RIPETI

SCRIVI val

FINE