Transcript Algoritmo
Sarebbe più appropriato chiamare il computer “ELABORATORE”, perché se noi gli forniamo dei dati e lui ce li restituisce trasformati ossia elaborati. Più precisamente il computer è definito: Elaboratore Elettronico Digitale Logico. Per capire meglio possiamo immaginare che un FRULLATORE sia il nostro ELABORATORE, se noi inseriamo un frutto e del latte (DATI) questi vengono trasformati in una gradevole bevanda (INFORMAZIONI). + MACCHINA ‘‘ELABORATORE’’ = DATI Prof. ssa Rossella D’Imporzano DATI ELABORATI ‘‘INFORMAZIONE’’ 1 Il computer è un ‘‘blocco’’ che riceve dall’esterno delle informazioni (INPUT), effettua un’elaborazione e restituisce dei risultati (OUTPUT). Dati in ingresso Elaborazione Guardando l’esempio precedente (INPUT) sono fragola, latte e zucchero (dati) (OUTPUT) è il frappè (elaborato) Risultati in Uscita Algoritmo = insieme delle operazioni La sequenza di istruzioni che si compiono per ottenere il risultato è l’algoritmo elementari che bisogna compiere per risolvere un problema. Es. Devo far arrivare un compagno alla porta; l’algoritmo sarà: • Vai avanti di 3 passi • Gira a destra di 90° • Vai avanti di 5 passi Prof. ssa Rossella D’Imporzano 2 Il Pc risolve un problema applicando un ALGORITMO seguendo 3 FASI: FASE 1 Si determinano i dati iniziali del problema FASE 2 I dati vengono elaborati con una successione finita di istruzioni che sono eseguite dal pc (algoritmo) FASE 3 Il lavoro del PC produce dei RISULTATI ‘‘CREARE UN PROGRAMMA VUOL DIRE DARE DELLE ISTRUZIONI CHE IL PC DEVE ESEGUIRE; LA SEQUENZA DELLE ISTRUZIONE È L’ALGORITMO’’ Le istruzioni di un algoritmo devono essere: • ben precise (principio di non ambiguità) • Elementari, cioè non scomponibili ulteriormente (principio di atomicità) • In numero finito (principio di determinazione) Dati in ingresso Elaborazione Risultati in Uscita • Tali da portare ad un unico risultato (principio di determinismo) Prof. ssa Rossella D’Imporzano 3 Programmazione su Carta a Quadretti SIMBOLI PER LA PROGRAMMAZIONE POSSO DARE QUESTE ISTRUZIONI ATTRAVERSO DEI SIMBOLI (LINEE, FRECCE, BLOCCHI). Vai avanti di una casella Vai indietro di una casella QUESTI SIMBOLI LETTI IN DEFINISCONO L’ALGORITMO. SUCCESSIONE Vai in alto di una casella Cioè il procedimento preciso che porta alla risoluzione di un problema in un numero finito di passi. Vai in basso di una casella Passa al colore successivo Un problema risolvibile con 1 algoritmo si dice COMPUTABILE. Riempi la casella con il colore Prof. ssa Rossella D’Imporzano 4 QUADRATO (7quadretti x 7quadretti) e ELABORA il seguente algoritmo (simboli in successione). ALGORITMO avanti, riempi, avanti, avanti, avanti, riempi, avanti, vai in basso, (indietro)6, riempi, avanti, riempi, avanti, riempi, avanti, avanti, riempi, avanti, riempi, avanti, riempi, vai in basso, (indietro)6, riempi, avanti, riempi, avanti, riempi, avanti, riempi, avanti, riempi, avanti, riempi, avanti, riempi, vai in basso, (indietro)6, riempi, avanti, riempi, avanti, riempi, avanti, riempi, avanti, riempi, avanti, riempi, avanti, riempi, vai in basso, (indietro)6, avanti, avanti, riempi, avanti, riempi, avanti, riempi, avanti, riempi, avanti, riempi, avanti, (indietro)6, avanti, avanti, avanti, riempi, avanti, riempi, avanti, riempi, avanti, avanti, (indietro)6, avanti, avanti, avanti, avanti, riempi, avanti, avanti, avanti 5 ALGORITMO ( ( ( ( ( )3 ( )4 )3 ( )6 )6 )5 ( ( Prof. ssa Rossella D’Imporzano ( )6 )3 ( )6 ( )6 ( )6 ( )6 )3 ( )6 )3 6 ELABORATO prodotto: ( ( ( ( ( )3 ( )4 )3 ( )6 )6 )5 ( ( Prof. ssa Rossella D’Imporzano ( )6 )3 ( )6 ( )6 ( )6 ( )6 )3 ( )6 )3 7 RICORDA… Un problema risolvibile con un algoritmo si dice COMPUTABILE… ‘‘pensiero computazionale – Coding’’ Quando diamo informazioni ad un turista per arrivare in un luogo della nostra città; anche se siamo precisi diamo per scontate molte informazioni perché confidiamo nell’intelligenza di chi ci ascolta; per esempio…vada dritto giri alla prima a destra ed è arrivato…in realtà dopo che ha girato per raggiungere l’obiettivo (es. museo) deve andare ancora dritto…se avessimo fornite le stesse informazioni ad una ‘‘macchina’’ questa girava l’angolo ma poi si fermava senza raggiungere l’obiettivo anche se era davanti a lui. alla macchina dobbiamo dare tutte le informazioni e queste devono essere: • • • • PRECISE NON INTERPRETABILI NON AMBIGUE SI DEVE DIRE TUTTO; NON DARE PER SCONTATO NULLA Ecco perché il pensiero computazionale deve essere un fine per tutti; perché aiuta a sviluppare una facoltà mentale, l’abilità di ragionare in modo algoritmico per trovare UNA SOLUZIONE RIGOROSA A DEI PROBLEMI COMPLESSI. È considerata la 4a ABILITÀ di BASE e come le altre competenze (leggere, scrivere e fare di conto) ci permette di vivere ‘‘ meglio’’ assieme agli altri non dobbiamo per forza farla diventare il nostro lavoro…mi spiego; tutti sappiamo scrivere ma non tutti diventiamo scrittori...e questo vale pure per il CODING ANCHE LUI DEVE DIVENTARE DI DOMINIO PUBBLICO anche se non diventeremo tutti programmatori. Prof. ssa Rossella D’Imporzano 8 Un qualsiasi ALGORITMO può essere rappresentato tramite un DIAGRAMMA DI FLUSSO (Flow chart). Sono sequenze di azioni che non si possono scomporre che bisogna compiere per raggiungere un risultato; per esempio QUESTA SEQUENZA è un ALGORITMO (deriva dal nome di un matematico Persiano Muhammad ibn Mūsa ‘l-Khwarizmi); per il pc è rappresentato da un PROGRAMMA che rappresenta una precisa sequenza di istruzioni. 1. Ti svegli 7. Vai alla fermata dell’autobus 2. Fai colazione 8. Aspetti l’autobus 3. Prepari lo zaino 9. Sali sull’autobus 4. Ti vesti 10. Scendi dall’autobus 5. Prendi lo zaino 11. Entri a scuola 6. Esci di casa per il pc è rappresentato da un PROGRAMMA che rappresenta una precisa sequenza di istruzioni. Il nome ALGORITMO deriva da una serie di INTERRUTTORI ed è una sequenza FINITA di operazioni; e per rappresentarlo in modo efficace sono stati sviluppati dei modelli grafici: i diagrammi di Flusso (Flow chart). Prof. ssa Rossella D’Imporzano 9 Possiamo esprimere graficamente un algoritmo con 1 DIAGRAMMA di FLUSSO (flow Chart) avente un INIZIO START e una FINE STOP ossia la sequenza di azioni che si compiono con BLOCCHI uniti da linee orientate. Il Pc applica un algoritmo ai dati che andiamo a inserire seguendo queste fasi: INIZIO Fai colazione I dati entrano nel computer I dati vengono elaborati I dati escono elaborati dal computer Prepari lo zaino Scegli e indossi i vestiti Tastiera Mouse Tastiera Mouse Tastiera Mouse Prendi lo zaino e il necessario per la giornata Esci di casa Raggiungi la fermata dell’autobus Attendi l’arrivo dell’autobus Sali sull’autobus Scendi dall’autobus alla fermata della scuola Entri a scuola FINE INPUT I dati sono elaborati dal ‘‘cervello’’ del PC; dalla CPU OUTPUT Monitor e stampante Central Processing Unit MICROPROCESSORE Il Diagramma è una rappresentazione GRAFICA SIMBOLICA dei dati (informazioni) il Diagramma di Flusso illustra l’ALGORITMO Prof. ssa Rossella D’Imporzano 10 I dati (informazioni) sono elaborate dal ‘‘cervello’’ del PC il microprocessore o CPU (Central Processing Unit - Unità Centrale di Elaborazione) Una ALU (Arithmetic and Logic Unit - Unità Aritmetico-Logica) che si occupa di eseguire le operazioni logiche e aritmetiche. La CPU contiene Una CU (Control Unit - Unità di Controllo) che esegue operazioni finalizzate al trasferimento dati o al controllo dell’esecuzione dei programmi. Dei registri dispositivi di memorizzazione usati per le elaborazioni interne alla CPU. Diverse linee interne (bus) che si occupano di collegare registri, ALU, unità di controllo e gestiscono le comunicazioni con l’esterno. Questo ‘‘cervello’’ del pc rappresenta l’HARDWARE Per poter funzionare utilizza il SOFTWARE (‘‘il pensiero’’ che spiega come seguire le informazioni) un insieme di programmi che possiamo paragonare al ‘‘pensiero’’ del pc ed è un ALGORITMO COMPLESSO. Prof. ssa Rossella D’Imporzano 11 I diagrammi di flusso (flow chart) rappresentano graficamente il flusso di un algoritmo e devono sempre avere: • un blocco iniziale • il blocco di elaborazione • un blocco finale FORME PRINCIPALI DI UN FLOW CHART AZIONE FORMA CORRISPONDENTE INIZIO E FINE PROCESSO (START – STOP) INSERIMENTO DATI Per leggere un diagramma: 1. si parte dal blocco iniziale 2. si esegue la freccia in uscita 3. si raggiunge il blocco successivo e si esegue l’operazione indicata 4. si prosegue in questo modo fino a quando si raggiunge il blocco finale. ELABORAZIONE DATI DECISIONE (IF…THEN) ELABORAZIONE ALTERNATIVA Prof. ssa Rossella D’Imporzano 12 DIAGRAMMA di FLUSSO (flow chart - diagramma a blocchi - diagramma logico) FORMA SIGNIFICATO BLOCCO INIZIALE – BLOCCO FINALE BLOCCO LETTURA DEI DATI il computer legge i dati che l’uomo inserisce. BLOCCO SCRITTURA DEI DATI Il computer scrive i dati dopo che li ha elaborati. Nel diagramma può essere presente più volte, dipende dalla lunghezza dell’algoritmo. BLOCCO ELABORAZIONE DATI Il computer elabora i dati. Nel diagramma può essere presente più volte, dipende dalla lunghezza dell’algoritmo. BLOCCO SEZIONE – il computer deve decidere tra due scelte (es. vero o falso) e poi passa all’istruzione seguente. Questa forma esprime l’espressione ‘‘se…allora’’. Nel diagramma può essere presente più volte. FRECCE – Le frecce sono importanti e servono a indicare l’ordine di lettura delle istruzioni. Il diagramma di flusso è la rappresentazione chiara che ci permette di rappresentare un Algoritmo. Presenta sempre: 1. Un’istruzione iniziale (Ovale) 2. Le azioni di elaborazione (parallelogramma - rettangolo - rombo; ogni forma e colore ha 1 preciso significato) 3. Un’istruzione finale (Ovale) Per leggere un diagramma di flusso basta seguire le frecce. L’apertura dell’algoritmo La chiusura dell’algoritmo La lettura dei dati d’ingresso (input) Inizio Fine Leggi Prof. ssa Rossella D’Imporzano La comunicazione dei messaggi e/o dei risultati (output) Scrivi L’assegnazione dei dati e/o lo svolgimento dei calcoli Il controllo del valore di verità di una condizione Assegna Condizione 13 INIZIO Prendo il cellulare Cerco il numero nella rubrica Il rombo da la possibilità di seguire un percorso o un altro (SCELTA) Compongo il numero Attendo il segnale di linea È libero? No Si Parlo con l’altra persona Termino la conversazione FINE Prof. ssa Rossella D’Imporzano 14 INIZIO INIZIO Fai colazione Prendo il cellulare Prepari lo zaino Apro un sms vuoto Scegli e indossi i vestiti NO Sbaglio a digitare SI Digito nuovamente senza sbagliare Prendi lo zaino e il necessario per la giornata Scrivo il testo del messaggio Esci di casa Raggiungi la fermata dell’autobus Seleziono il destinatario Attendi l’arrivo dell’autobus Invio NO L’autobus è pieno SI FINE Attendi l’arrivo dell’autobus successivo Sali sull’autobus Scendi dall’autobus alla fermata della scuola Entri a scuola FINE Rappresentazione Grafica di un problema; si chiede di rappresentare una DECISIONE un’opzione del tipo ‘‘se…allora’’ (IF…THEN) Prof. ssa Rossella D’Imporzano 15