Basato su questa definizione di algoritmo da Wikipedia:
In mathematics and computer science, an algorithm is a self-contained step-by-step set of operations to be performed. Algorithms exist that perform calculation, data processing, and automated reasoning.
An algorithm is an effective method expressed as a finite list of well-defined instructions for calculating a function. Starting from an initial state and initial input (perhaps empty), the instructions describe a computation that, when executed, proceeds through a finite number of well-defined successive states, eventually producing "output" and terminating at a final ending state.
"Wait for user input" o semplicemente read()
ha conteggiato un passo dell'algoritmo?
Ho pensato per i seguenti motivi che potrebbero non rientrare nella definizione:
- Sembra che non sia un passo che può essere eseguito mentre un'operazione viene eseguita.
- Dovrebbe attendere il completamento di un segnale esterno, potrebbe essere contrario all'auto-contenuto nella definizione.
- Inoltre la definizione parla di un input iniziale, quindi suppongo che l'input debba essere già fornito.
Sono corretto?
Aggiornamento: se non è un passo, come rappresenterebbe la seguente sequenza, è un algoritmo?
- X = 5
- Y = X + 4
- if (Y > 10) Z = Read () // ottiene l'input dell'utente
- else Z = 1
- if (Z > 2) Z = Z + X
Si noti che la lettura si verifica in modo condizionale, quindi potremmo non supporre che l'input debba essere già fornito.