114-115 Le basi della programmazione
Formulare e comprendere i problemi
1. La formulazione del problema
- La formulazione del problema è la fase iniziale del problem solving e di norma costituisce la parte più difficile del processo di soluzione.
- La cattiva formulazione di un problema è dannosa poiché potrebbe compromettere la risoluzione del problema, mentre
- prima di procedere con la ricerca della soluzione, è necessario riformulare correttamente il problema.
Per fare questo proponiamo le seguenti regole.
1.Individuare gli obiettivi del problema evidenziando regole e dati impliciti; Un esempio di problema mal formulato: calcolare il Massimo Cornuti Divisore. Tale problema non potrà mai essere risolto, in quanto mancano le informazioni iniziali, e cioè i valori numerici sui quali calcolare il Massimo Comun Divisore.
2.Eliminare i dettagli inutili e ambigui (двусмысленности) nelle ipotesi; Il problema “cucire la pasta” è molto semplice e contiene ambiguità. Dobbiamo riformulare correttamente il problema: identificare l’insieme delle operazioni che un cuoco deve svolgere per preparare la pasta al pomodoro.
3. Individuare il criterio di verifica, cioè il modo con cui verificare che la soluzione sia quella cercata; Il criterio di verifica consiste nel provare che la soluzione ottenuta non sia in contrasto con obiettivi prefissati (пред обозначенные) e con i dati iniziali.
1. L’astrazione del problema Абстракция проблемы
|
Il termine astrazione indica il procedimento mentale attraverso il quale si sostituisce un insieme di oggetti con un concetto, più generale, che descrive gli oggetti in base a proprietà a loro comuni.
|
Il processo di astrazione consiste nella descrizione di un problema, “considerare” solo alcune delle sue caratteristiche. Per esempio, dall’insieme di tutte le automobili esistenti, si può ricavare il concetto generico di automobile in base alle caratteristiche condivise da tutte le auto (hanno quattro ruote, un volante, e così via).
|
Per trovare il minimo tra i numeri 4,8 e 2 il problema è ben posto e non richiede precisazioni. Pero si può facilmente supporre (предположить) che esistono tanti numeri tra i quali si può trovare il minimo. Si potrebbe riformulare in modo da renderlo universale: trovare il minimo di tre numeri dati, A, B e C.
|
1. L’analisi del problema
|
La comprensione del problema e la sua successiva analisi permettono di estrarre dalla realtà tutte le informazioni che risultano essenziali al fine della risoluzione. Понимание проблемы и ее последующий анализ позволяют извлечь из действительности всю информацию, которая имеет существенное значение для разрешения.
|
L’analisi del problema deve fornire una breve descrizione di che cosa si vuole fare evidenziando i possibili vincoli inerenti il problema e i requisiti, ossia specifiche richieste che devono essere soddisfatte.
|
Per condurre un’analisi efficace, è importante definire con precisione l’area di interesse .
|
L’area di interesse è composta da:
|
1.i dati iniziali, cioè quelli da elaborare, detti anche dati in ingresso al problema, che devono essere individuati con attenzione nell’insieme dei dati a disposizione specificando con esattezza le caratteristiche che ne determinano l’inclusione o l’esclusione (casi particolari e casi limite di funzionamento).
|
2.i dati finali che si vogliono ottenere in funzione degli ingressi, detti anche dati in uscita del problema.
|
In gergo(жаргон) informatico termine l’area di interesse del problema coincide con l’espressione specifiche funzionali.
|
Il processo di analisi prende il nome di problem setting, che è una fase del più complesso problem solving. Il problem setting, infatti, risponde alla domanda: “Che cosa fare?”, mentre il problem solving risponde alla domanda: “Come fare?”.
|
Il problem setting utilizza i concetti di comprensione e astrazione del problema.
|
|
|