.........
 
APPUNTI DEL CORSO DI INFORMATICA - DEFINIZIONI

 

DEFINIZIONI

 

L’attività del computer è essenzialmente il problem solving, cioè la capacità di risolvere un problema.

Consideriamo ad esempio un problema nel quale abbiamo un elenco di numeri interi: 10, 300, 521, 5, 43, e vogliamo conoscere qual è il valore massimo rappresentato in questa serie di numeri. Attraverso una serie di confronti troviamo che il risultato di questo problema è: 521.

Analogamente si può procedere con il seguente problema: 70, 25, 40, 22. IL risultato è 70.

Se però invece di avere una serie di quattro o cinque numeri ne abbiamo una di mille, il problema diventa molto più complesso.

A questo scopo possiamo servirci di un computer. Quando vogliamo risolvere un problema con il computer dobbiamo innanzitutto chiederci: qual è il procedimento per risolvere questo problema?

Per soluzione non si intende quindi il risultato di un problema, ma il metodo risolutivo per risolvere il problema: SOLUZIONE= quel procedimento mediante il quale è possibile risolvere un problema.

 

Ritornando ora al primo problema che chiamiamo P1, l’operazione che noi effettuiamo è il confronto tra due numeri della serie: 10 e 300, in cui il max è 300; poi confronto il max trovato con il numero successivo 521, e trovo che il max è 521, e così via con gli altri numeri. Infine trovo che il max della serie è 52. Per risolvere quindi sia il P1 che il P2, dobbiamo effettuare due operazioni: confrontare il primo ed il secondo numero della serie, determinando quindi il maggiore tra i due; come seconda operazione, confrontare il max trovato con il numero successivo. Per tutti i numeri della serie bisogna poi ripetere queste due operazioni.

Possiamo quindi concludere dicendo che P1 e P2 hanno lo stesso procedimento risolutivo e quindi la stessa soluzione. Inoltre i due problemi considerati rappresentano due casi particolari o due ISTANZE diverse di un problema più generale. Una istanza di un problema si ha ogni qual volta cambiano i dati di input(entrata) e di output(uscita) in un problema. Nel nostro caso i dati di input sono i numeri che compaiono nella serie, mentre i dati di uscita sono rappresentati dal risultato, il max trovato. I dati di input e di output variano in un insieme di valori chiamato dominio.

 

 ALGORITMO: un metodo risolutivo per tutte le istanze di un problema, quindi è la soluzione di un problema.

Come si descrive un algoritmo?

La descrizione di un algoritmo deve contenere operazioni elementari, come il semplice confronto nei problemi P1 e P2.

-Una operazione elementare deve essere univocamente interpretabile e direttamente eseguibile, dall’esecutore: l’esecutore cioè, sia esso una persona o una macchina, deve cioè capirla in un unico modo e deve poterla eseguire direttamente.

PROPRIETA’ DI UN ALGORITMO:

                           

                           -NON AMBIGUITA’: le istruzioni o operazioni per risolvere il problema non          

                           devono essere ambigue.

                           -ESEGUIBILITA’: l’esecutore deve essere in grado di eseguire ogni singola         

                           istruzione.

                           -FINITEZZA: la sequenza di operazioni deve essere finita.

 

In generale quindi per algoritmo intendiamo una sequenza finita di istruzioni che definiscono un processo mediante il quale è possibile risolvere un problema.

 

L’ESECUTORE  è un sistema in grado di eseguire un algoritmo; il concetto di esecutore è strettamente legato a quello di algoritmo, infatti non esiste un algoritmo se non esiste un esecutore in grado di eseguirlo.

Nel momento in cui si cerca la soluzione di un problema, si possono distinguere due fasi:

FASE CREATIVA, che consiste in quell’insieme di operazioni che il risolutore compie per arrivare alla definizione di un procedimento risolutivo;

FASE ESECUTIVA, che consiste nello svolgimento ed esecuzione delle azioni descritte nella soluzione. Queste azioni sono svolte dall’esecutore (uomo  o macchina).

E’ importante che la descrizione di un algoritmo utilizzi un linguaggio noto all’esecutore.

 

In definitiva:

-il CALCOLATORE è un sistema progettato per capire ed eseguire operazioni in modo automatico;

-gli ALGORITMI sono progettati per definire procedimenti automatici per la soluzione di problemi.