Informatica Problema Algoritmo Programma

Slides:



Advertisements
Presentazioni simili
Analisi e progettazione
Advertisements

© 2007 SEI-Società Editrice Internazionale, Apogeo Unità E1 Dallanalisi del problema alla definizione dellalgoritmo.
Analisi – Progettazione - Programmazione
Linguaggi algoritmici
Inizio… Linguaggi Linguaggi di programmazione Linguaggi di programmazione Linguaggi di programmazione Linguaggi di programmazione Linguaggi Formali Linguaggi.
Algoritmi e Programmazione
Informatica Generale Marzia Buscemi
3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)
3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Fondamenti di Informatica
Fondamenti di Informatica
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Iterazione enumerativa (for)
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Definizione di Algoritmo
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L’attività di.
Introduzione alla programmazione ll
Introduzione alla programmazione l
Modulo 1: Problemi e Programmi
DAL PROBLEMA ALL'ALGORITMO Problemi e Programmi Paolo Amico
ALGORITMI E PROGRAMMAZIONE STRUTTURATA
Fondamenti di Informatica I a.a Il linguaggio C Il controllo di flusso La selezione condizionale Listruzione switch I cicli Le istruzioni break,
Unità Didattica 1 Algoritmi
Unità Didattica 2 I Linguaggi di Programmazione
Strutture di controllo in C -- Flow Chart --
Fondamenti di Informatica Algoritmi
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Gli algoritmi.
Elementi di Informatica
Elementi di Informatica
ELEMENTI DI PROGRAMMAZIONE
2000 Prentice Hall, Inc. All rights reserved. Capitolo 3 (Deitel) Lo sviluppo di programmi strutturati Indice degli argomenti Introduzione 3.2 -
Algoritmi e Programmazione strutturata
INFORMATICA MATTEO CRISTANI.
PROGRAMMAZIONE: linguaggi
Le basi della programmazione
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
Lezione 6 Strutture di controllo Il condizionale
PROBLEMA ALGORITMO PROGRAMMA LINGUAGGI di PROGRAMMAZIONE
CONCETTI DI BASE 1.0 FONDAMENTI 1.1 HARDWARE 1.2 SOFTWARE 1.3 RETI
BIOINFO3 - Lezione 15 ISTRUZIONI
ECDL Patente europea del computer
Programmazione Strutturata
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
ALGORITMI Un algoritmo (detto anche procedura, prescrizione, processo, routine, metodo) è un insieme di regole (dette anche direttive o istruzioni) che,
R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting.
1 Parte 2 Fondamenti di programmazione. 2 Definizione intuitiva di algoritmo Elenco finito di istruzioni che specificano una serie di operazioni, eseguendo.
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
Che cos’è un algoritmo? La vita di tutti i giorni è scandita da sequenze di azioni che compiamo automaticamente nell’ ordine esatto.
Algoritmi.
Realizzazione software
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
L’ELABORATORE ELETTRONICO uno strumento in grado di eseguire insiemi di azioni (“mosse”) elementari le azioni vengono eseguite su oggetti (dati) per produrre.
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Diagrammi a blocchi.
Informatica e Informatica di Base
Problemi, algoritmi e programmazione
ALGORITMI Dal problema al programma Definizione di algoritmo
Il computer ragiona? Problemi e algoritmi. Paola Pianegonda2 Cos’è un problema?  Problema è qualsiasi situazione della quale non conosciamo la soluzione.
Programmazione dei Calcolatori Elettronici
Strutture di controllo
GLI ALGORITMI Appunti preparati dalla prof.ssa Maria D’Angelo.
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
Unità di apprendimento 6 Dal problema al programma.
Istruzioni e algoritmi. Istruzioni Operative I passi elementari che compongono l’algoritmo sono le istruzioni. Distinguiamo: Istruzioni di input Istruzioni.
Unità di apprendimento 6
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Transcript della presentazione:

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

Informatica e Informazione Informazione è 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 a.s. 2006-2007 Problema - Algoritmo - Programma

Problema - Algoritmo - Programma 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 a.s. 2006-2007 Problema - Algoritmo - Programma

Problema - Algoritmo - Programma 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 a.s. 2006-2007 Problema - Algoritmo - Programma

Problema - Algoritmo - Programma 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 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 finali deve risolvere medesime categorie di problemi deterministico le 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 a.s. 2006-2007 Problema - Algoritmo - Programma

Algoritmo: gli elementi coinvolti Nella definizione si individuano tre elementi fondamentali: Dati Iniziali (o in ingresso) sono gli elementi che vengono elaborati dall’algoritmo Finali (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 a.s. 2006-2007 Problema - Algoritmo - Programma

Problema - Algoritmo - Programma 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 a.s. 2006-2007 Problema - Algoritmo - Programma

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 a.s. 2006-2007 Problema - Algoritmo - Programma

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 a.s. 2006-2007 Problema - Algoritmo - Programma

Problema - Algoritmo - Programma 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) a.s. 2006-2007 Problema - Algoritmo - Programma

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. a.s. 2006-2007 Problema - Algoritmo - Programma

Linguaggi per la stesura di un algoritmo Si 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) a.s. 2006-2007 Problema - Algoritmo - Programma

Problema - Algoritmo - Programma 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 dell’algoritmo Forniscono una visione immediata dell’intero procedimento e dell’ordine di esecuzione delle varie istruzioni a.s. 2006-2007 Problema - Algoritmo - Programma

Simboli per Diagrammi di flusso START indicano il punto di partenza e quello di terminazione dell’algoritmo END detto di elaborazione e contiene al suo interno l’istruzione da eseguire (deve avere una sola freccia in uscita) Detto di input/output, utilizzato per rappresentare operazioni di acquisizione o di restituzione di dati 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) condizione a.s. 2006-2007 Problema - Algoritmo - Programma

Problema - Algoritmo - Programma 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. a.s. 2006-2007 Problema - Algoritmo - Programma

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) a.s. 2006-2007 Problema - Algoritmo - Programma

Problema - Algoritmo - Programma Pseudocodifica: simboli e parole chiave È 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 parole (simboli) che aprono e chiudono algoritmo operazioni per descrivere l’acquisizione (leggi) e la restituzione (scrivi) dei dati a.s. 2006-2007 Problema - Algoritmo - Programma

Flow Chart delle strutture di controllo Istruzione 1 Istruzione N … Le istruzioni organizzate in sequenza devono essere eseguite una dopo l’altra secondo l’ordine con cui sono state scritte 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: condizione istruzione1 istruzione2 T F SE (condizione vera) allora ESEGUI istruzione 1 ALTRIMENTI ESEGUI istruzione 2 FINESE istruzione ESEGUI istruzione Istruzione di Selezione ad una via Istruzione di Selezione a due vie a.s. 2006-2007 Problema - Algoritmo - Programma

Cicli con controllo in testa (ripetizioni precondizionali) 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: Cicli con controllo in testa (ripetizioni precondizionali) F MENTRE (condizione vera) ESEGUI istruzioni RIPETI condizione T istruzioni istruzioni Cicli con controllo in coda (ripetizioni postcondizionali) ESEGUI istruzioni Controlla condizione RIPETI FINCHÉ’ (condizione vera) T condizione F a.s. 2006-2007 Problema - Algoritmo - Programma

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

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

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

Problema - Algoritmo - Programma INIZIO LEGGI base LEGGI esp val = 1 ESEGUI MENTRE esp <> 0 val = val * base esp = esp - 1 RIPETI SCRIVI val FINE a.s. 2006-2007 Problema - Algoritmo - Programma