Dal problema al processo
risolutivo
Dal problema al processo
risolutivo
1
Risolvere un problema
• Per risolvere un problema
bisogna fornire al computer le
istruzioni da eseguire e i dati si
cui le istruzioni devono operare in
un codice a lui comprensibile.
• La successione delle operazioni
da compiere per raggiungere il
risultato richiesto si chiama
algoritmo.
2
Linguaggi per il computer
• Le istruzioni di un algoritmo devono
essere convertite in un codice
comprensibile (codifica).
• Il risultato della traduzione si chiama
programma (o codice).
• Distinguiamo tra linguaggi di alto
livello e di basso livello
3
Linguaggi di programmazione
Linguaggi di
Linguaggi di alto livello, perché
……………………………………………………
…………………………………….
programmazione
• Linguaggi utilizzati per scrivere programmi:
C++, Java, Visual Basic,…
Linguaggio macchina
Linguaggi di basso
livello, ……………………….
• Utilizzato dal computer al suo interno; è
composto da istruzioni elementari inviate al
processore: esse sono formate da sequenze
di bit , cioè 0 e 1.
4
Problemi da risolvere: il modello
• Nell’affrontare un problema è
opportuno farne un’analisi,
individuarne
……………………………………………………..
• L’analisi del problema produce
…………………………………………
• Un modello è ………………………………
……………..…………….
5
Modelli iconici
• ………………………….
6
Modelli matematici
• Modelli ………………………….
7
Dal problema al modello
• ………………………………………………………….
• Il processo risolutore
……………………………
• input
• output
8
Esempio
• Calcolare l’area di un triangolo rettangolo note
le misure dei due cateti
• Richiesta: calcolare l’area del triangolo
• Dati di input: le misure dei cateti, per esempio
5 e 10
• Relazioni: la formula dell’area del triangolo
• Processo risolutivo: calcolo dell’area:
area = (cateto1 x cateto2) : 2
• Soluzione numerica: calcolo dell’area:
area = (5 x 10) : 2 = 25
• Output: 25
9
Passi per risolvere un problema
1. Individuare con precisione le richieste, cioè gli
obiettivi del problema.
2. Costruire un modello.
3. Nella costruzione del modello si deve
tenere conto solo delle informazioni
significative per la risoluzione del problema
4. Individuare le relazioni, i teoremi, le proprietà
che possono essere utili per individuare il
processo risolutivo
5. Costruire la procedura di risoluzione, tenendo
conto di tutte le possibilità
6. Esecuzione della procedura risolutiva e
comunicazione dei risultati

10
Algoritmo
• Un algoritmo è
……………………………………………………………
………………………………………..
11
Passi per risolvere un problema
• In generale, per risolvere un problema
affronteremo i seguenti passi:
1.
2.
3.
4.
5.
6.
individuazione degli obiettivi
costruzione del modello del problema
individuazione del processo risolutivo
costruzione dell’algoritmo
esecuzione dell’algoritmo
comunicazione dei risultati
12
Il risolutore e l’esecutore
• Il risolutore è ……………………………
• L’esecutore è…………………………………….
13
Esempio
• Esempio del libro di testo
– Pianificazione di un viaggio
1. RICHIESTE: Quanto costa il viaggio?
Quanto il soggiorno? Quanto il totale e
quanto per persona?
2. MODELLO: individuazione delle
informazioni significative e delle formule
(Litri carburante; costo carburante, costo
pedaggio, costo soggiorno)
Viaggio
• Carburante
• Pedaggio
Soggiorno
• Bed & Breakfast

14
Esempio (continua)
3. INDIVIDUAZIONE DEL PROCESSO
RISOLUTIVO
a) DATI DISPONIBILI: numero persone,
consumo automobile, costo al litro del
carburante,…
b) PROCEDIMENTO:
descrizione del modo
di effettuare il calcolo

15
Esempio (continua)
6. COSTRUZIONE DELL’ALGORITMO
Si deve distinguere chi deve eseguire
l’algoritmo:
a) se è una persona, si indicano i calcoli da
eseguire con un linguaggio naturale
b) se è una computer, si devono progettare
algoritmi che siano eseguibili da una
macchina, per comunicare con esso e si
deve usare un linguaggio appropriato.
16
Abilità di un computer e
caratteristiche di un linguaggio
• Quando si scrive un algoritmo si
deve tenere conto di alcuni fattori:
– le abilità che possiamo attribuire a un
computer
– le caratteristiche e le
possibilità del linguaggio
che usiamo per scrivere
l’algoritmo
17
Abilità
• Possiamo attribuire a un computer le seguenti
abilità:
1. calcolare la somma, la differenza, il prodotto e il
quoziente di due numeri (+, -, x, :);
2. svolgere operazioni di confronto (>, ≥, <, ≤, ≠, ⌐);
3. trasferire dati da una zona all’altra della memoria;
4. acquisire dati dall’esterno;
5. comunicare dati all’ambiente esterno.
NOTA: NON possiamo attribuire l’abilità al computer
di prendere iniziative in modo autonomo
18
I dati nell’algoritmo
• Ai dati presenti nell’algoritmo
– deve essere dati un nome (per esempio
Distanza, CostoCarburanteAlLitro, …)
– deve essere specificato il tipo dei dati che
intendiamo utilizzare, per esempio dati
numerici (numeri interi o reali) o dati
alfanumerici (singoli caratteri o stringhe)
Lato = 100
Nome =‘’Carlo’’
Via = ‘’Corso Italia 32’’
19
Riepilogo
• La stesura di un algoritmo eseguibile
da parte di un computer deve
contenere
– i nomi dei dati e degli oggetti usati e la
loro tipologia
– la successione delle operazioni da
compiere sui dati per produrre i risultati
20
Esercizi
• Scrivere un algoritmo per risolvere il
problema del calcolo del perimetro di
un quadrato
• Scrivere un algoritmo per risolvere il
problema del calcolo dell’area di un
rettangolo
P=4xl
lato = l
A= axb
a
b
21