La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Dal PROBLEMA all’ALGORITMO

Presentazioni simili


Presentazione sul tema: "Dal PROBLEMA all’ALGORITMO"— Transcript della presentazione:

1 Dal PROBLEMA all’ALGORITMO
Appunti di Informatica a cura della Prof.ssa Francesca Russo, Liceo Classico - I.I.S. «San Nilo» (Rossano)

2 PROBLEMA Chiamiamo problema una qualsiasi situazione per la cui soluzione è necessario elaborare una strategia, ovvero una serie di azioni da compiere per raggiungere il risultato. In alcuni problemi, prima di elaborare la procedura risolutiva più opportuna (non è detto che questa infatti sia unica) è necessario distinguere i dati conosciuti dalle incognite che bisogna determinare (risultati) attraverso una rielaborazione degli stessi dati a disposizione del risolutore. Attenzione: non è necessario che la figura del risolutore coincida con quella dell’esecutore. Ad esempio sono problemi le seguenti situazioni: disporre una lista di nomi in ordine alfabetico; calcolare l’area di un rettangolo conoscendone le dimensioni; eseguire la moltiplicazione tra due numeri; preparare una torta avendo a disposizione determinati ingredienti…

3 ALGORITMO Chiamiamo algoritmo (*) una sequenza ordinata di istruzioni che descrivono tutte le azioni che è necessario eseguire per arrivare alla soluzione di un problema. Chiamiamo programma la traduzione di un algoritmo in un linguaggio di programmazione. (*) Dal nome del matematico arabo del IX sec d.C. Al-Khuwarizmi

4 ALGORITMO Caratteristiche di un algoritmo (e di un programma):
FINITEZZA: il numero di azioni che lo compone, per quanto possa essere grande, è comunque un numero finito, ed ogni istruzione che eventualmente debba essere ripetuto più volte, sarà comunque eseguita un numero finito di volte. Insomma, prima o poi un algoritmo ben strutturato arriva necessariamente al risultato! NON AMBIGUITÀ: ciascuna istruzione deve essere interpretata in un solo modo, così che l’azione descritta venga correttamente effettuata da chiunque sia l’esecutore. Ciò garantisce che, fissati i dati iniziali, si arrivi comunque e sempre alla stessa soluzione. La non ambiguità nel programma è garantita dalle convenzioni che regolano la sintassi dei vari linguaggi di programmazione. GENERALITÀ: la sequenza di istruzioni definisce un processo di calcolo eseguibile per la soluzione dell’insieme di tutti i problemi analoghi, ottenuti al variare dei dati iniziali. ESEGUIBILITÀ: le azioni descritte dalle istruzioni devono essere effettivamente eseguibili dall’esecutore. È fondamentale conoscere le caratteristiche operative dell’esecutore, ovvero della macchina calcolatrice che per noi eseguirà il programma associato all’algoritmo. OUTPUT: ciascun algoritmo deve condurre ad un risultato da comunicare all’utente.

5 ALGORITMO Ciascuna istruzione di un algoritmo può essere classificata come istruzione di: input (lettura di un dato) output (scrittura di un dato o di un risultato) assegnazione (memorizzazione di un dato o di un risultato) controllo (confronto tra valori, verifica di una condizione, scelta…) Un algoritmo può essere graficamente schematizzato attraverso un diagramma di flusso (flow chart) detto anche diagramma a blocchi, che sostanzialmente evidenzia il flusso delle istruzioni durante il processo di elaborazione dei dati del problema. Ciascun tipo di istruzione è rappresentato graficamente attraverso simboli la cui forma indica il tipo di azione da essi descritta.

6 FLOW CHART l’istruzione leggi (A) è la codifica nel linguaggio di progetto dell’istruzione di input che legge il valore immesso attraverso la tastiera e lo memorizza nella variabile chiamata A. l’istruzione scrivi (A) è la codifica nel linguaggio di progetto dell’istruzione di output che comunica all’esterno attraverso il monitor il valore memorizzato nella variabile A. l’istruzione A := B è la codifica nel linguaggio di progetto dell’istruzione di assegnazione che assegna ad A il valore memorizzato in B.

7 FLOW CHART Esegui le istruzioni del flow chart immaginando di inserire ordinatamente come dati di input i numeri: 5, 23, 70, 18, 13. Sarà possibile inserire l’ultimo dato? Perché? Qual è lo scopo dell’algoritmo rappresentato in questo diagramma di flusso? Quale caratteristica fondamentale potrebbe mancare all’algoritmo di questo flow chart?

8 FLOW CHART Esercizio risolto Costruire un algoritmo che a partire da un’equazione di primo grado scritta in forma canonica emetta come output la soluzione o un opportuno messaggio. RICHIAMI TEORICI L’equazione di primo grado scritta in forma canonica è: ax + b = 0 Noti i valori del coefficiente a e del termine noto b, si possono presentare quattro casi: I) II) Equazione DETERMINATA III) Equazione IMPOSSIBILE IV) Equazione INDETERMINATA

9 FLOW CHART Esercizio risolto Costruire un algoritmo che a partire da un’equazione di primo grado scritta in forma canonica emetta come output la soluzione o un opportuno messaggio. Soluzione L’algoritmo risolutivo deve: leggere i valori di a e di b; valutare in quale dei quattro possibili casi ci si trova; fornire l’opportuna risposta.

10 FLOW CHART Esercizio risolto Costruire un algoritmo che a partire da un’equazione di primo grado scritta in forma canonica emetta come output la soluzione o un opportuno messaggio. Soluzione Per il primo punto nessuna difficoltà: l’algoritmo INIZIA e subito va ad acquisire i dati di input relativi ad a e b (conservandoli in omonime variabili):

11 FLOW CHART Esercizio risolto Costruire un algoritmo che a partire da un’equazione di primo grado scritta in forma canonica emetta come output la soluzione o un opportuno messaggio. Soluzione Per il secondo punto occorre controllare innanzitutto quanto vale a e poi quanto vale b:

12 FLOW CHART Esercizio risolto Costruire un algoritmo che a partire da un’equazione di primo grado scritta in forma canonica emetta come output la soluzione o un opportuno messaggio. Soluzione Resta infine da scrivere la soluzione nei primi due casi, o il messaggio sulla classificazione dell’equazione negli altri due… Ed ecco (nella prossima diapositiva) il diagramma completo.

13 FLOW CHART Esercizio risolto
Costruire un algoritmo che a partire da un’equazione di primo grado scritta in forma canonica emetta come output la soluzione o un opportuno messaggio.

14 FLOW CHART Esercizi proposti
Costruire un diagramma di flusso che rappresenti un algoritmo per calcolare l’area di un qualsiasi rettangolo. Costruire un diagramma di flusso che rappresenti un algoritmo che confronti due numeri naturali e scriva il maggiore di essi. Costruire un diagramma di flusso che rappresenti un algoritmo che confronti tre numeri naturali e scriva il maggiore di essi. Costruire un diagramma di flusso che rappresenti un algoritmo che calcoli la divisione tra due numeri sfruttando solo la sottrazione. (Fai attenzione a inserire gli opportuni controlli sul divisore!) Costruire un diagramma di flusso che rappresenti un algoritmo che calcoli la potenza ennesima (n>0) di un numero sfruttando solo la moltiplicazione.

15 FLOW CHART Esercizi proposti
6. Considera il seguente diagramma di flusso: F V A cosa serve questo algoritmo? Cosa rappresenta quindi la variabile «z»? Come potrebbe essere migliorato l’algoritmo? INIZIO LEGGI (x, y) z := 0 z := z+x y := y - 1 FINE SCRIVI (z) y>0


Scaricare ppt "Dal PROBLEMA all’ALGORITMO"

Presentazioni simili


Annunci Google