Quando richiediamo al computer di eseguire un determinato compito il comando impartito viene convertito in un linguaggio comprensibile all'elaboratore che ne permette l'esecuzione. Dunque per risolvere un problema è necessario formurarlo in modo preciso stabilendo l'obbiettivo da raggiungere, individuando i dati costanti e variabili e sviluppando un metodo di risoluzione che, operando sui dati del problema con relazioni logiche e/o di calcolo permetta di conseguire il risultato richiesto.


ALGORITMO: successione finita di operazioni (istruzioni) che consente di risolvere tutti i problemi di una determinata classe e produrre il risultato stabilito. Le quattro propietà sono:

1. FINITO: costituito da un numero finito di passi eseguiti un numero finito di volte.
2. DETERMINISTICO: a partire dagli stessi dati di input deve produrre i medesimi risultati.
3. NON AMBIGUO: le operazioni che lo costituiscono devono poter essere interpretate in modo univoco anche da esecutori diversi.
4. GENERALE: deve fornire la soluzione per tutti i problemi che appartengono alla medesima classe.

DIAGRAMMI A BLOCCHI: per descrivere in forma algoritmica la procedura risolutiva di un problema è necessario rendere visivamente possibile la successione logica delle istruzioni di cui si compone l'algoritmo procedendo con la sua rappresentazione grafica mediante la costruzione di diagrammi di flusso ( diagrammi a blocchi) flow-chart.