Introduzione allo studio dell'informatica teorica: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Riga 141:
=Un esempio completo=
Questa sezione ha lo scopo di mettere in pratica i concetti appena introdotti per la computazione affrontando la soluzione di un problema di geometria.
==Computazione come successione di azioni==▼
Supponiamo di voler calcolare l'area di un rettangolo conoscendo il suo perimetro e la lunghezza di uno dei lati.
Le sezioni seguenti presenteranno tre possibili computazioni, ognuna pensata come successione di stati descritti nelle modalità discusse in precedenza.
▲==Computazione come successione di azioni==
Indichiamo con <math>a_n</math> la successione che descrive la sequenza di azioni necessaria per attuare la computazione desiderata.
Potremo scrivere:
# <math>a_1</math>: dimezzare
# <math>a_2</math>: sottrarre
# <math>a_3</math>: moltiplicare
La scarsa comunicatività della tecnica di rappresentazione basata su azioni è qui evidente; inoltre, per poter sapere cosa accade basterebbe conoscere lo stato iniziale della computazione, esattamente come già discusso in precedenza.
==Computazione come successione di stati==
Supponiamo di voler rappresentare la computazione
Indichiamo con <math>q_n</math> la successione che descrive la sequenza di stati necessaria per attuare la computazione desiderata. Potremo scrivere:▼
▲Indichiamo con <math>q_n</math> la successione che descrive la sequenza di stati necessaria per attuare la computazione desiderata.
# <math>q_1</math>: perimetro
# <math>q_2</math>: semiperimetro
# <math>q_3</math>: lunghezza del lato mancante
# <math>q_4</math>: area
Questa descrizione è senz'altro più descrittiva della precedente; tuttavia la mancanza delle azioni costringe a dedurle in base alla successione degli stati.
==Computazione come successione di coppie <math>\text{(stato, azione)}</math>==▼
▲==Computazione come successione di coppie <math>\text{(stato, azione)}</math>==
Indicando con <math>p_n</math> la successione che indica la sequenza di transizioni necessarie per attuare la computazione desiderata potremo scrivere:
# <math>p_1</math>: (perimetro, dimezzare)
# <math>p_2</math>: (semiperimetro, sottrarre)
# <math>p_3</math>: (lunghezza del lato mancante, moltiplicare)
Come si può notare confrontando le tre situazioni, questa tecnica di rappresentazione è indubbiamente la più espressiva
Vista la buona qualità di questa rappresentazione, in generale la preferiremo alle altre.
=Il concetto di transizione=
|