La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "InformaticaProblema Algoritmo Programma Dispensa per il corso di Informatica ABACUS 3 Istituto Statale E. TORRICELLI Liceo Scientifico - Tecnico Industriale."— Transcript della presentazione:

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

2 a.s Problema - Algoritmo - Programma 2 Informatica e Informazione Informazione è qualunque cosa che: possiede un significato per qualcuno ha, ha avuto o potrà avere un valore oppure unutilità 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 linformazione

3 a.s 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

4 a.s Problema - Algoritmo - Programma 4 Problema Necessita esecutore Fornisce soluzione Utilizza dati organizzati mediante lideazione di un percorso risolutivo adeguato che comprende le azioni da intraprendere e la loro sequenza esatta Algoritmo

5 a.s Problema - Algoritmo - Programma 5 Algoritmo Definizione 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 lesecuzione delle azioni) Caratteristiche completo ed esaustivo per tutti i casi che si possono verificare durante lesecuzione, 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 finali deve risolvere medesime categorie di problemi deterministico le azioni di cui è composto devono fornire la medesima, certa soluzione, indipendentemente dalla natura dellesecutore Le azioni che formano lalgoritmo devono essere: in numero finito non ambigue realizzabili Esempi intuitivi di algoritmi i passi necessari per lutilizzo di un elettrodomestico le regole da seguire per la divisione di 2 numeri le indicazioni per la consultazione di un orario ferroviario

6 a.s Problema - Algoritmo - Programma 6 Algoritmo: gli elementi coinvolti Nella definizione si individuano tre elementi fondamentali: Dati Iniziali (o in ingresso) sono gli elementi che vengono elaborati dallalgoritmo Finali (o in uscita) sono i risultati prodotti dallalgoritmo Sequenza di azioni (istruzioni, passi elementari) unazione è unoperazione 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. linsieme delle istruzioni deve essere scelto a seconda dellesecutore, in termini di qualità, di tipologia e di livello di dettaglio

7 a.s 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

8 a.s Problema - Algoritmo - Programma 8 Caratteristiche delle Istruzioni Ogni istruzione deve essere concretamente realizzabile dallesecutore, a cui è affidato lalgoritmo Le istruzioni che compongono un algoritmo devono essere precise e non ambigue, in modo che non lascino dubbi nellinterpretazione da parte dellesecutore 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à dellesecutore

9 a.s Problema - Algoritmo - Programma 9 Algoritmo ed esecutore Per una descrizione generale dellambiente in cui si opera con linformatica, vanno definite due figure fondamentali: Il programmatore, ovvero colui che organizza e scrive lalgoritmo Lutente, ovvero la persona che attiva lesecuzione dellalgoritmo e che interagisce con lesecutore per fornirgli i dati iniziali del problema e per utilizzare i risultati finali Se per esecutore si intende un elaboratore elettronico, lalgoritmo dovrà essere scritto secondo un linguaggio definito, in modo da essere comprensibile da parte del calcolatore. Programma

10 a.s 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)

11 a.s 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.

12 a.s Problema - Algoritmo - Programma 12 Linguaggi per la stesura di un algoritmo Si distinguono M etalinguaggio 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 lalfabeto (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)

13 a.s Problema - Algoritmo - Programma 13 Diagrammi di flusso Comprendono elementi di forma diversa segmenti orientati che uniscono tra loro i vari simboli Indicano il flusso delle operazioni Consentono una descrizione grafica dellalgoritmo Forniscono una visione immediata dellintero procedimento e dellordine di esecuzione delle varie istruzioni

14 a.s Problema - Algoritmo - Programma 14 Simboli per Diagrammi di flusso START Detto di input/output, utilizzato per rappresentare operazioni di acquisizione o di restituzione di dati indicano il punto di partenza e quello di terminazione dellalgoritmo detto di elaborazione e contiene al suo interno listruzione da eseguire (deve avere una sola freccia in uscita) condizione detto di decisione e serve per: - rappresentare unoperazione 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 unespressione di tipo logico, cioè di una variabile a due valori, a uno dei quali corrisponde il significato di condizione verificata -vero, e allaltro quella di condizione non verificata -falso) END

15 a.s 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 dellalgoritmo 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.

16 a.s Problema - Algoritmo - Programma 16 La programmazione strutturata La teoria della programmazione strutturata consente di realizzare algoritmi costituiti da parti che dipendono luna dallaltra, secondo un ben definito modello organizzativo. I modelli organizzativi si chiamano strutture di controllo, perché servono a controllare il percorso allinterno 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)

17 a.s Problema - Algoritmo - Programma 17 È consentito luso 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 lacquisizione (leggi) e la restituzione (scrivi) dei dati

18 a.s Problema - Algoritmo - Programma 18 Nelle istruzioni che vengono eseguite in alternativa, lesecutore deve operare una scelta tra un certo gruppo di istruzioni e un altro gruppo, a seconda di ciò che succede in quel momento durante lelaborazione, 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 laltra secondo lordine con cui sono state scritte Istruzione 1 Istruzione N … condizione istruzione1 istruzione2 TF SE (condizione vera) allora ESEGUI istruzione 1 ALTRIMENTI ESEGUI istruzione 2 FINESE condizione istruzione T F SE (condizione vera) allora ESEGUI istruzione FINESE Istruzione di Selezione ad una viaIstruzione di Selezione a due vie

19 a.s 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: T ESEGUI istruzioni Controlla 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 istruzioni RIPETI condizione istruzioni F

20 a.s Problema - Algoritmo - Programma 20 Traduzioni nei linguaggi C e Java if (condizione vera){ ESEGUI istruzione 1 }else{ ESEGUI istruzione 2 } condizione istruzione1 istruzione2 TF SE (condizione vera) allora ESEGUI istruzione 1 ALTRIMENTI ESEGUI istruzione 2 FINESE condizione istruzione T F SE (condizione vera) allora ESEGUI istruzione FINESE Istruzione di Selezione ad una viaIstruzione di Selezione a due vie if (condizione vera){ ESEGUI istruzione }

21 a.s Problema - Algoritmo - Programma 21 Traduzioni nei linguaggi C e Java Cicli con controllo in testa (ripetizioni precondizionali) condizione istruzioni T F MENTRE (condizione vera) istruzioni RIPETI while (condizione vera) { istruzioni } ESEGUI istruzioni RIPETI FINCHÉ (condizione vera) Cicli con controllo in coda (ripetizioni postcondizionali) T condizione istruzioni F do{ istruzioni }while (condizione vera);

22 a.s Problema - Algoritmo - Programma 22 Esempi di algoritmi: calcolo delle-esima potenza INIZIO Leggi base Leggi esp val=1 Esp <> 0 F val=val*base esp=esp - 1 V Scrivi val FINE

23 a.s 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


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

Presentazioni simili


Annunci Google