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.
V9
VE
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
Scarica

pierro-algoritmo03