Unit di apprendimento 9 Dal problema al programma
Unità di apprendimento 9 Dal problema al programma
Obiettivi: l l l Formare il pensiero computazionale Affrontare in modo sistemico il problema Descrivere procedure mediante algoritmi Rappresentare gli algoritmi mediante flowchart Acquisire il concetto di variabile e cella di memoria
Unità di apprendimento 9 Lezione 2 Algoritmi e automi
Problemi e algoritmi l l L’algoritmo è un insieme di azioni elementari che consentono di risolvere un problema trasformando i dati iniziali del problema stesso nel risultato, cioè nell’insieme dei dati finali che rappresentano la soluzione. L’algoritmo è quindi una sequenza ordinata di passi semplici che hanno lo scopo di portare a termine un compito complesso
L’algoritmo l l Al Khwarismi è ritenuto l’ideatore del procedimento che consente di effettuare il calcolo della moltiplicazione tra due numeri mediante la disposizione a cifre incolonnate E’ il procedimento che usiamo ancora oggi.
L’algoritmo l Durante la fase di progetto vengono usate due modalità per descrivere gli algoritmi: • il diagramma a blocchi (o flow chart) • il linguaggio di progetto (o pseudocodifica)
Dall’algoritmo al codice macchina l l l L’algoritmo codificato in pseudocodifica è ancora molto lontano dal programma che viene eseguito dal calcolatore. Il microprocessore è in grado di utilizzare solo il codice binario (distinguere 0 da 1). Può eseguire solo un codice rappresentato con zero e uno, che si chiama codice macchina.
Dall’algoritmo al codice macchina l l l È possibile scrivere un programma direttamente in codice macchina. Si utilizza un linguaggio specifica, il linguaggio assemblativo. Codificare programmi in questo linguaggio è molto complesso dato che mette a disposizione del programmatore poche istruzioni e di basso livello.
Dall’algoritmo al codice macchina l Esempio di codice eseguibile scritto in linguaggio macchina con a fianco il segmento di codice scritto in linguaggio assemblativo (anche detto assembly).
Dall’algoritmo al codice macchina l E’ percorribile un’altra strada per arrivare al codice macchina: • scrivere l’algoritmo in un linguaggio di programmazione di alto livello; • mediante uno specifico programma, il compilatore, tradurre automaticamente il “programma sorgente” scritto ad alto livello in linguaggio macchina.
Dall’algoritmo al codice macchina l l l Si traduce l’algoritmo in linguaggio di programmazione ad alto livello. Questo è un linguaggio formale, rigoroso, composto da un insieme di regole lessicali e sintattiche molto ridotte e schematizzate in numero. Devono essere sufficienti per poter descrivere in modo non ambiguo le istruzioni che il calcolatore deve eseguire.
Problemi e algoritmi l l l Non tutte le macchine sono in grado di eseguire programmi Inoltre ogni macchina è in grado di eseguire solo un limitato gruppo di istruzioni Esempio: il distributore di caffè è una macchina automatica (automa) in grado di ripetere un programma con molteplici varianti.
Problemi e algoritmi l l l l acquisire delle monete e contarle selezionare una bevanda confrontare il costo con le monete inserite se le monete inserite superano il costo del prodotto predisporre e dare il resto acquisire la quantità di zucchero desiderata iniziare l’erogazione e attenderne la terminazione segnalare la disponibilità del prodotto al cliente
Problemi e algoritmi l l Anche la calcolatrice è una macchina programmata Ha al suo interno un insieme di programmi che dapprima ricevono dall’utente un insieme di informazioni in merito a: – tipo di operazione da eseguire; – numeri (dati) da elaborare.
Problemi e algoritmi l Praticamente tutti i programmi si basano su questo schema, composto da: • una fase di input • una fase di elaborazione • una fase di output
Problemi e algoritmi l Anche i videogiochi sono programmi che rispecchiamo questo schema: l A ogni mossa del giocatore il calcolatore elabora una contromossa e la esegue visualizzando il risultato sullo schermo.
- Slides: 16