Modulo 1: Problemi e Programmi CARATTERISTICHE Modulo1: Dal problema All’algoritmo Modulo2: Dall’ algoritmo ai Programmi TEMPO STUDENTI DELTERZO ANNO, DI UNA SCUOLA SECONDARIA DI UN ISTITUTO INDUSTRIALE AD INDIRIZZO INFORMATICO 3 Settimane per la prima unità didattica 5 Settimane per la seconda unità didattica PREREQUISITI 1. Formalizzazione di problemi di matematica e fisica 2. Concetto di dato e d’informazione 3. Concetto di modello e di sistema 4. Concetto di Processo e Processore 5. Strategie per la risoluzione dei problemi, con un approccio sistematico COMPETENZE Saper distinguere all’interno di un problema: tra variabili e costanti tra dati e azioni Riconoscere le caratteristiche fondamentali delle istruzioni che possono comporre un algoritmo Rappresentare con i diagrammi a blocchi e con la pseudocodifica semplici algoritmi CONOSCENZE – ABILITA’ Conoscenze Abilità definizione di algoritmo e le caratteristiche fondamentali delle istruzioni lo compongono funzione delle operazioni di input e output operazioni fondamentali svolte da un generico esecutore e, in particolare, da un elaboratore elementi fondamentali delle tecniche di descrizione di un algoritmo Definire semplici algoritmi di tipo sequenziale rappresentandoli secondo il seguente schema predefinito: individuazione dei dati di input e output individuazione delle variabili di lavoro individuazione della sequenza delle azioni da compiere STRUMENTI, ATTIVITA’ DIDATTICHE ATTIVITÀ DIDATTICHE STRUMENTI Lezioni frontale in classe Lezione dialogata Esercitazione di gruppo Libri di testo Presentazioni multimediali Lavagna luminosa Video Proiettore TEMPI 3 SETTIMANE TEMPI 18 ORE LEZIONE FRONTALE ESERCITAZIONI VERIFICHE 10 ORE 5 ORE 3 ORE VERIFICHE - VALUTAZIONE Verifica Diagnostica: test V/F e a scelta multipla per verificare l’apprendimento dei concetti e delle nozioni (1 ORA) • Verifica In Itinere: Esercizi sulla definizione di semplici algoritmi sequenziali (1 ORA) • Verifica Finale: Test a scelta multipla ed esercizi sulla formulazione di alcuni algoritmi per problemi dati (1 ORA) VALUTAZIONE FINALE (SOMMATIVA) con ausilio di griglia di valutazione UNITA’ DIDATTICA 1: DAL PROBLEMA ALL’ALGORITMO DAL PROGRAMMA ALL’ALGORITMO MODELLO: rappresentazione semplificata, schematica di una realtà osservata. In particolare un modello permette attraverso processi di formalizzazione, l’individuazione delle caratteristiche principali della realtà osservata. Queste caratteristiche rappresentano delle entità astratte. Entità Registrabili in memoria Relazionabili tra di loro Trasferimento di un problema su un sistema di elaborazione Implementazione UNITA’ DIDATTICA 1: DAL PROBLEMA ALL’ALGORITMO VARIABILI E COSTANTI 1/2 Rappresentare la realtà osservata in modo semplificato attraverso un modello significa individuare le entità che sono caratteristiche. Ogni entità può essere presente con diversi esemplari, a cui associamo i diversi valori che possono essere assunti dall’entità. Es. 1: ATTIVITA’ FATTURAZIONE Il cliente a cui è intestata la fatturazione Entità Il prodotto che viene venduto La fattura ATTRIBUTI DELL’ENTITA’: elementi che rappresentano e specificano l’entità. Se questi elementi assumono valori diversi per entità, essi sono definiti VARIABILI. Es. 1: ATTIVITA’ FATTURAZIONE Entità cliente Il nome, l’indirizzo, la città dove risiede, il numero di partita IVA UNITA’ DIDATTICA 1: DAL PROBLEMA ALL’ALGORITMO VARIABILI E COSTANTI 2/2 h r b A= b h Gli attributi che assumono sempre lo stesso valore vengono definiti COSTANTI I nomi che diamo alle variabili o alle costanti, per distinguerli all’interno del modello vengono detti IDENTIFICATORI A = r² UNITA’ DIDATTICA 1: DAL PROBLEMA ALL’ALGORITMO DATI E AZIONI 1/3 I dati dono i valori assunti dagli attributi degli elementi che caratterizzano il problema, rappresentati con variabili e costanti. Le azioni sono le attività che mettendo i dati in relazione tra loro, consentono di ottenere i risultati desiderati. I dati possono essere: a) Elementari numerici alfabetici alfanumerici (Stringhe) b) Non Elementari (insieme di dati elementari) Le azioni possono essere riconducibili ad operazioni: • tipo aritmetico • tipo logico UNITA’ DIDATTICA 1: DAL PROBLEMA ALL’ALGORITMO DATI E AZIONI 2/3 Esempio: Esaminare un elenco di persone, con nome e anno di nascita, contare le presone più di vent’anni di età, e fornire alla fine il risultato del conteggio Nome DATI • Nome • Anno di nascita • Età delle persone • Età minima(20 anni) • Risultato del conteggio Anno AZIONI • Esaminare l’elenco • Contare le persone • Fornire il risultato • Calcolo dell’età Età = AnnoAttuale – Anno i Nascita UNITA’ DIDATTICA 1: DAL PROBLEMA ALL’ALGORITMO DATI E AZIONI 3/3 Identificatore Variabile o costante Descrizione Tipo Nome Variabile Nome della persona Alfabetico Anno di nascita Variabile Anno di nascita della persona Numerico Età Variabile Età della persona Numerico Età minima Costante Età minima per il controllo Numerico Anno attuale Costante Anno in corso Numerico Contatore Variabile Risultato del conteggio Numerico UNITA’ DIDATTICA 1: DAL PROBLEMA ALL’ALGORITMO METODOLOGIA DI LAVORO 1/4 Risoluzione di un problema Prima fase: 1) Definizione del problema 2) Descrizione dei dati che sono coinvolti, distinguendo quelli che abbiamo a disposizione 3) Risultati da ottenere 4) Stabilire come rintracciare e raccogliere tutte le risorse che possono essere utili Seconda fase: 1) Definizione delle azioni da intraprendere 2) Definizione dell’esatta sequenza delle azioni da compiere per ottenere la soluzione Esempio: Tenuta del bilancio familiare I dati iniziali sono costituiti dalla lista dettagliata delle entrate e delle uscite, i risultati attesi sono il rendiconto dei tipi di spesa effettuate e del tipo di entrate godute. Il criterio di calcolo e di aggregazione delle entrate e delle uscite costituisce il procedimento risolutivo del problema. UNITA’ DIDATTICA 1: DAL PROBLEMA ALL’ALGORITMO METODOLOGIA DI LAVORO 2/4 Descrizione del problema Dati che servono, ovvero i dati iniziali.I dati iniziali sono detti dati d’ingresso o dati in input. Risultati da ottenere o dati in output. Risorse logiche e fisiche a disposizione. Le soluzioni adottate UNITA’ DIDATTICA 1: DAL PROBLEMA ALL’ALGORITMO METODOLOGIA DI LAVORO 3/4 Descrizione del problema Stesura dell’algoritmo L’individuazione di questi elementi costituisce l’analisi del problema. La soluzione del problema deve essere organizzata e sviluppata in una serie di operazioni da attuare secondo un ben definito ordine, che permette di giungere ai risultati attesi a partire dai dati iniziali. UNITA’ DIDATTICA 1: DAL PROBLEMA ALL’ALGORITMO METODOLOGIA DI LAVORO 4/4 Descrizione del problema Stesura dell’algoritmo L’individuazione di questi elementi costituisce l’analisi del problema. La scomposizione del procedimento risolutivo di un problema, in una sequenza di operazioni elementari da seguire per ottenere i risultati attesi, costituisce la stesura dell’algoritmo UNITA’ DIDATTICA 1: DAL PROBLEMA ALL’ALGORITMO ALGORITMI 1/2 Un algoritmo è una descrizione di un insieme finito di passi, che devono essere eseguite per portare a termine un dato compito e per raggiungere un risultato definito. Esempi di algoritmo possono essere: Le istruzioni per l’utilizzo di un elettrodomestico Le regole per eseguire la divisione tra due numeri ESECUTORE UNITA’ DIDATTICA 1: DAL PROBLEMA ALL’ALGORITMO ALGORITMI 2/2 Ogni istruzione deve essere concretamente realizzabile dall’esecutore Le istruzioni devono essere precise e non ambigue Ogni istruzione deve essere eseguita in un tempo finito Ogni istruzione eseguita deve produrre un risultato osservabile Ogni istruzione deve avere un carattere deterministico Un algoritmo è una descrizione completa, univoca e esaustiva di un insieme finito di operazioni elementari, interpretabili e riproducibili dal nostro esecutore, che permette di raggiungere lo scopo del processo in un tempo ragionevole. UNITA’ DIDATTICA 1: DAL PROBLEMA ALL’ALGORITMO ESEMPIO DI ALGORITMO 1/2 Deve Dati che servono Contattare telefonicamente una serie di persone a cui deve lasciare un messaggio L’elenco delle persone con il nome e il numero di telefono Il messaggio da comunicare Risultati L’elenco delle persone con l’indicazione per ciascuna dell’esito della telefonata UNITA’ DIDATTICA 1: DAL PROBLEMA ALL’ALGORITMO ESEMPIO DI ALGORITMO 2/2 Deve Contattare telefonicamente una serie di persone a cui deve lasciare un messaggio Algoritmo leggi il numero telefonico componi il numero in base alla situazione che si presenta scrivi sull’elenco: ‘occupato’, ‘ numero errato’ o ‘OK’ ripeti le operazioni precedenti finchè le persone sono finite. UNITA’ DIDATTICA 1: DAL PROBLEMA ALL’ALGORITMO GLI ELEMENTI DI UNA APPLICAZIONE 1/2 Scrive Consegna a algoritmo Programmatore Esecutore Utente UNITA’ DIDATTICA 1: DAL PROBLEMA ALL’ALGORITMO GLI ELEMENTI DI UNA APPLICAZIONE 2/2 Scrive Carica nel programma Programmatore Computer Utente UNITA’ DIDATTICA 1: DAL PROBLEMA ALL’ALGORITMO ACQUISIRE E COMUNICARE I DATI 1/2 Dati iniziali Input Dati input Soluzione adottata Risultati attesi Algoritmo Output Esecutore utilizzatore Dati output Ci possono essere delle variabili, che non sono nè di input nè di output, ma che sono necessarie all’elaborazione e che vengono dette Variabili di Lavoro. UNITA’ DIDATTICA 1: DAL PROBLEMA ALL’ALGORITMO ACQUISIRE E COMUNICARE I DATI 2/2 Esempio: Date le misure dei due cateti di un triangolo rettangolo, si vuole calcolare la misura del perimetro del triangolo Dati iniziali sono: Cateto 1 Cateto 2 Risultato finale: perimetro Per il calcolo del perimetro abbiamo bisogno dell’ipotenusa, che possiamo calcolare a partire dai cateti, per cui è una variabile di lavoro Per fare in modo che l’esecutore acquisisca i dati possiamo usare le istruzioni del tipo: leggi, acquisisci, accetta. Per fare in modo che l’esecutore comunichi i dati possiamo usare le istruzioni del tipo: scrivi, comunica, mostra. UNITA’ DIDATTICA 1: DAL PROBLEMA ALL’ALGORITMO CARATTERISTICHE FONDAMENTALE DI UN ESECUTORE 1/4 Un’azione fondamentale presente in un processo eseguito da un calcolatore è l’assegnamento. V9 VE E Espressione, cioè una formula che specifica sempre un valore. Ogni espressione è composta da operandi e operatori Gli operandi possono essere costanti, espressioni o variabili Gli operatori possono essere di tre tipi: aritmetici, di relazione e logici UNITA’ DIDATTICA 1: DAL PROBLEMA ALL’ALGORITMO CARATTERISTICHE FONDAMENTALE DI UN ESECUTORE 2/4 Operatori aritmetici + addizione - sottrazione * moltiplicazione div Divisione tra numeri interi / Divisione tra numeri reali mod ^ Calcolo del resto della divisione tra interi Elevamento a potenza UNITA’ DIDATTICA 1: DAL PROBLEMA ALL’ALGORITMO CARATTERISTICHE FONDAMENTALE DI UN ESECUTORE 3/4 Operatori di relazione < Minore di <= Minore o uguale di > Maggiore >= Maggiore o uguale di <> Diverso UNITA’ DIDATTICA 1: DAL PROBLEMA ALL’ALGORITMO CARATTERISTICHE FONDAMENTALE DI UN ESECUTORE 4/4 Operatori logici And Per il prodotto logico (congiunzione) Or Per la somma logica (disgiunzione) Not Per la negazione Xor Per l’OR esclusivo UNITA’ DIDATTICA 1: DAL PROBLEMA ALL’ALGORITMO DIAGRAMMA A BLOCCHI 1/4 Il metodo dei diagrammi a blocchi consiste in una descrizione grafica; esso permette un visione immediata dell’intero procedimento e dell’ordine di esecuzione delle varie istruzioni I diagrammi a blocchi sono formati da simboli di forma diversa, ciascuna con un proprio significato; all’interno di ogni simbolo e presente un breve testo sintetico. Linee orientate con frecce, che uniscono fra loro i vari simboli, indicano il flusso delle operazioni. end istruzioni I/O start sì condizione condizione elaborazione no sottoprogramma DIAGRAMMA A BLOCCHI 2/4 Assegnamento ed istruzioni aritmetico-logiche A=5 A=A+1 sì A=5 Istruzioni di I/O leggi A scrivi A no DIAGRAMMA A BLOCCHI 3/4 Strutture di controllo CONDIZIONE A DUE VIE sì blocco 1 condizione no blocco 2 DIAGRAMMA A BLOCCHI 4/4 Strutture di controllo ITERAZIONE: CICLO A CONDIZIONE INIZIALE sì blocco istruzioni condizione no viene valutata prima la condizione di ciclo e poi EVENTUALMENTE entra nel blocco istruzioni continua a ciclare fintanto che la condizione è vera. Esce dal ciclo quando la condizione è falsa UNITA’ DIDATTICA 1: DAL PROBLEMA ALL’ALGORITMO LA PSEUDOCODIFICA La pseudocodifica è la descrizione di un algoritmo ottenuta utilizzando termini e parole del linguaggio comune, ma applicando una serie di regole che permettono di organizzare un tipo di testo formalmente rigoroso e strettamente orientato alla stesura degli algoritmi. La pseudocodifica utilizza delle regole per strutturare il testo: Le parole chiavi che aprono e chiudono il testo di un algoritmo sono INIZIO e FINE. Altre parole chiavi sono A, ALLORA, ALTRIMENTI, CASO, DA, DI, ESEGUI, FINCHE’, MENTRE, PASSO, PER, RIPETI, SE. Ogni istruzione è indicata con una frase del linguaggio corrente e può contenere un’espressione di tipo aritmetico o logico Le istruzioni leggi(lista di variabili) e scrivi(variabili e costanti) vengono utilizzate per descrivere le operazione di immissione ed emissione dei dati La richiesta all’utente per acquisire i dati necessari all’elaborazione può essere indicata con chiedi(lista dei dati che servono) Le variabili, le costanti vengono indicate da parole in minuscolo dette identificatori LA PSEUDOCODIFICA Strutture di controllo Strutture di controllo CONDIZIONE A DUE VIE ITERAZIONE: CICLO A CONDIZIONE INIZIALE se condizione { /* blocco 1 */ ... } altrimenti { /* blocco 2 */ ... } finchè condizione { /* blocco istruzioni */ ... } UNITA’ DIDATTICA 1: DAL PROBLEMA ALL’ALGORITMO ESEMPIO h b A= b h Algoritmo rettangolo Dati input Base e altezza del rettangolo Dati output Area del rettangolo INIZIO Chiedi(base, altezza) Leggi(base, altezza) Area base * altezza Scrivi area FINE UNITA’ DIDATTICA 2: DAL PROBLEMA ALL’ALGORITMO ESEMPIO Inizio h Chiedi base, altezza b A= b h Leggi base altezza Dati input Base e altezza del rettangolo Dati output Area del rettangolo Area base * altezza Scrivi area Fine Algoritmo: ricapitolando L’algoritmo è una procedura effettiva che, attraverso una sequenza finita di passi definiti, porta alla soluzione di una classe di problemi, utilizzando dati iniziali e pervenendo a dei risultati finali. Test 1/2 Il problema dei secchi Sono presenti due secchi con capacità volumetrica rispettivamente di 3 e 4 litri. Determinare le operazioni necessarie per far si che il primo secchio (da 3 litri) sia riempito con 2 litri. Possiamo agire sui due secchi attraverso le seguenti operazioni : - riempire completamente un secchio - svuotarlo completamente - travasare una certa quantità di liquido da un secchio all’altro Test 2/2 Il problema dei secchi: soluzione 4L 3L UNITA’ DIDATTICA 1: DAL PROGRAMMA ALL’ALGORITMO FINE