Title: Dal problema al programma
1Dal problema al programma
Piano Nazionale di Formazione degli Insegnanti
sulle Tecnologie dellinformazione e della
Comunicazione
A cura della prof.ssa Piera De Maio
2Scopo del modulo
- Conoscere alcuni concetti fondamentali
dellinformaticaalgoritmo, automa, linguaggio
formale - Essere in grado di cogliere lintreccio tra
alcuni risultati della matematica e della logica
dei primi decenni del secolo scorso ed i
successivi sviluppi e applicazioni che questi
hanno avuto in campo informatico
3Indice
- 8.1 Problemi e algoritmi
- 8.1.1 introduzione intuitiva del concetto di
problema - 8.1.2 cenni sulle strategie per la risoluzione
dei problemi - 8.1.3 soluzione di un problema
- 8.1.4 gli algoritmi
- 8.1.4a Diagrammi a blocchi
- 8.1.4b Linguaggio di progetto
- 8.2 Automi esecutori
- 8.2. Automi esecutori
- 8.2.1 Caratteriatiche di un automa
- 8.2.1bConcetto di modello
- 8.2.1cConcetto di automa
- 8.2.1b 8.2.2 Automi e classi di problemi
- Esercitazioni
- 8.3 Linguaggi
- 8.3.1 Sintassi e semantica dei linguaggi
- 8.3.1a Linguaggi nella comunicazione
uomo-macchina - 8.2.2 Linguaggi e automi
- 8.3.3 Linguaggi di programmazione
48.1.1 Introduzione intuitiva al concetto di
problema
Il problema è una situazione che pone delle
domande alle quali si devono dare delle risposte.
Risolvere il problema vuol dire uscire dalla
situazione
58.1 Problemi e algoritmi
- Un problema consta dei seguenti elementi
- Dati ossia ciò che è noto e che indichiamo col
termine input - Risultati gli elementi incogniti che si devono
determinare e che indicheremo con output - Condizioni le limitazioni cui devono soggiacere
i risultati
68 .1 Problemi e algoritmi
Tipi di problemi
Problemi di decisione
Problemi di ricerca
Problemi di ottimizzazione
7 8.1.2 Strategie per la risoluzione
dei problemi
Problema
Verifica dei risultati
Interpretazione
Esecuzione
Procedimento risolutivo (algoritmo)
Modello
88.1.2b Concetto di modello
Modello
E uno schema teorico elaborato per rappresentare
elementi fondamentali di fenomeni o enti
- Modelli descrittivi (riproducono in modo
semplice la realtà , senza presupporre luso -
che ne verrà fatto) - Modelli predittivi (danno gli elementi di una
situazione per prevederne levoluzione) - Modelli prescrittivi (impongono un particolare
comportamento in previsione dellobiet -
tivo da raggiungere) - Modelli simbolici o matematici (danno una
rappresentazione astratta mediante un -
insieme di equazioni che
legano le grandezze) - Modelli analogici ( danno una rappresentazione
fedele della realtà in scala ridotta )
98.1.2 Strategie per la risoluzione dei
problemi
Interpretazione
TOP DOWN
GRAFICO
Utilizza uno schema grafico a segmenti
Suddivide il problema in tanti piccoli
sottoproblemi
10 8.1.2 Strategie per la risoluzione dei
problemi
Algoritmo
Insieme delle istruzioni che definiscono una
sequenza di operazioni mediante le quali si
risolve il problema
Deve essere
- finito (numero limitato di passi )
- definito (ogni istruzione deve consentire
uninterpretazione - univoca)
- eseguibile ( la sua esecuzione deve essere
eseguibile con gli - strumenti a
disposizione) - deterministico ( ad ogni passo deve essere
definita una - operazione
successiva ).
11 8.1.2 Strategie per risoluzione dei
problemi
Rappresentazioni grafiche e formalizzate di un
algoritmo
La descrizione delle fasi esecutive del problema
può avvenire mediante la formalizzazione dei
passi elementari da effettuare che può essere
realizzata con
Diagramma a blocchi o flow-chart
e/o
Pseudocodifica
128.1.4a Diagrammi a blocchi
Diagramma a blocchi o flow-chart
Ha il pregio di evidenziare visivamente
lavanzamento in sequenza e le varie strutture
che compongono lalgoritmo, presenta istruzioni
di input, calcolo e/o di elaborazione, condizioni
e output.
INPUT
CONDIZIONI
ISTRUZIONI
OUTPUT
13 8.1.4a Esempio di diagramma a blocchi
inizio
Somma di una sequenza di numeri
N
S ?
A
S SA
NN-1
SI
NO
N ?
S
FINE
148.1.4b Linguaggio di progetto
Linguaggio di progetto o pseudocodifica
E un linguaggio formale, ( linguaggio di
progetto) con regole prive di ambiguità ed
eccezioni che esprimono i vari tipi di
istruzioni. Viene definito pseudocodifica o
notazione lineare strutturata. Generalmente
utilizzato dai programmatori di elaboratori.
begin ESEMPIO
IN PASCAL Input N S ? repeat input
A S SA N N-1 until N? output S end
158.2 Automi esecutori
La risoluzione di un problema è un processo di
manipolazione di informazioni per generare nuove
informazioni . Per risolvere un problema ci sono
due tipi di attività
intelligentidi elaborazione
routinarie di esecuzione
168.2.1 Caratteristiche di un automa
Automi
Sono macchina che compiono attività complesse in
cui sono riconoscibili elementi propri delle
attività superiori del comportamento umano.
Possono essere programmate per svolgere diverse
mansioni e per modificare le proprie azioni in
relazione ai mutamenti ambientali. (Es
lavatrici, sistemi di controlli ascensori,
bancomatcomputer) Un automa è un sistema
Dinamico Passa da uno stato allaltro secondo
gli input che riceve Invariante Se le condizioni
iniziali sono le stesse il comportamento
del sistema è
invariato Discreto Le variabili, dingresso, di
stato e duscita possono assumere
solo valori discreti
178.2.1 Il concetto di automa
Grafi e tabelle di transizione
Servono a rappresentare il comportamento
logico-funzionale di un automa Es. tabella e
grafo di un automa a stati finiti di un ascensore
S\i T 1 2
pt Pt/ fermo 1p/ su 2p/ su
1p Pt/ giù 1p/ fermo 2p/ su
2p Pt/ giù 1p/ giù 2p/ fermo
1/fermo
1/ su
T / fermo
T/giù
1P
PT
2/ fermo
1/ giù
2P
2/su
2/su
188.2.2 Automi e classi di problemi
Un sistema automatico o automa è un sistema nel
quale la componente umana è completamente
eliminata nellambito dei processi, che sono ben
determinati e prevedibili Lavatrice,
lavastoviglie, computer (automa a programma)
Un sistema umano, al contrario, presenta un
carattere probabilistico, poiché luomo può
assolvere a funzioni impreviste , utilizzando il
ragionamento, la creatività e lintuito.
19Problemi e algoritmi
- ESERCITAZIONI
- Un bambino ha costruito una torre di tre blocchi
colorati così disposti dallalto in basso
ROSSO-GIALLO-VERDE. IL bambino vuole capovolgerla
in modo da avere VERDE-GIALLO-ROSSO.Può spostare
solo un blocchetto alla volta. Individuare il
numero minimo di stati per i quali si arriva alla
configurazione desiderata. - Cercare una chiave in un mazzo di 100 chiavi con
il minor numero di prove (diagramma di flusso)
208.3 Linguaggi
Il linguaggio è un sistema codificato di segni
che consente la comunicazione, intesa come
scambio di informazioni
21 8.3.1 Sintassi e semantica dei
linguaggi
Uninformazione può
- Essere acquisita direttamente tramite rilevamento
di un evento reale attraverso percezione
sensoriale.
- Essere trasmessa (messaggio) intenzionalmente da
un emittente ad un ricevente per mezzo di un
canale
22La comunicazione
- Il messaggio presuppone lutilizzo di un codice (
sistema di regole) e di un linguaggio che devono
essere conosciuti sia dal emittente che dal
destinatario, altrimenti la comunicazione non ha
effetto -
?
?
?
?
emittente
destinatario
238.3.1 Sintassi e semantica dei linguaggi
La funzione del linguaggio è quella di sostituire
ad oggetti o concetti dei segni/simboli per
trasmettere un messaggio. Il segno è
lassociazione di qualcosa di materiale e
sensibile (immagine, suono) che chiamiamo
significante con qualcosa di puramente
concettuale che chiamiamo significato Il codice
ci consente linterpretazione dei segni
Segno significante significato Segno significante significato Segno significante significato
gatto Il gruppo dei suoni o di lettere g/a/t/t/o
248.3.1 Sintassi e semantica dei linguaggi
ELEMENTI DI UN LINGUAGGIO
- Alfabeto insieme finito e non vuoto di
simboli convenzionali espressi con segni
tipografici detti caratteri - Ortografia insieme finito e non vuoto di regole
per la scrittura dei suoni - Sintassi insieme finito e non vuoto delle
regole mediante le quali si formano le stringhe o
le frasi di un linguaggio - Semantica insieme finito e non vuoto di
significati da attribuire alle stringhe - Morfologia insieme finito e non vuoto di tuttele
regole che servono per generare le forme di un
linguaggio
25 8.3.1.a Linguaggi nella comunicazione uomo -
macchina
Luomo per comunicare all automa le strategie
risolutive di un problema ha bisogno di un
linguaggio formale che gli consenta di passare
dall algoritmo al programma , cioè ad una
sequenza di istruzioni mediante le quali si può
risolvere il problema.
26 8.3.2 Linguaggi e automi
Linguaggio macchina, linguaggio assemblativo
(Assembler). Vicino alla logica della macchina
Linguaggi non evoluti
Linguaggi non orientati alla macchina , ma alla
soluzione dei problemi. Vicino alla logica
delluomo
Linguaggi evoluti
27 8.3.2 Linguaggi e automi
I principali software
Office Automation
Sistema operativo
- Word processor
- Foglio di calcolo
- Sistemi di gestione base dati
- Programmi per la realizzazione di
- presentazioni multimediali
- Programmi di grafica computerizzata
- Editor di suoni
- Editor di pagine web
Software di base , controlla tutte le risorse del
computer, necessita di un linguaggio più vicino
al linguaggio macchina (Assembler)
288.3.3 Linguaggi di programmazione
Problema
Risultati
Dalla formulazione del problema alla sua soluzione
Elaborazione
Algoritmo
Programma sorgente
Programma traduttore
Programma oggetto
298.3.3 Linguaggi di programmazione
Lalgoritmo risolutivo viene trasformato in un
programma attraverso un linguaggio di
programmazione che può contenere
Programma sorgente
Istruzioni di dichiarazione
Istruzioni di input e output
Istruzioni di controllo
Istruzioni di assegnazione
Descrivono dati e variabili utilizzati dal
programma, definendone tipo e struttura
Consentono di assegnare alla variabile un valore
dello stesso tipo della variabile
Sono istruzioni che richiedono salti di sequenza
nellesecuzione del programma
Richiedono lingresso o luscita di
uninformazione da una periferica alla memoria
centrale e viceversa
308.3.3 Linguaggi di programmazione
Fortran
Cobol
Algol
Basic
PHP
Principali linguaggi
Logo
PL1
Lisp
Java
Pascal
C /C