Un problema è una qualsiasi situazione per la cui soluzione è necessario elaborare una strategia, ovvero una serie di azioni da compiere per raggiungere il risultato. Possono essere dei problemi calcolare il perimetro di un rombo ; eseguire la divisione fra due numeri; preparare un pasto avendo determinati ingredienti e così via.
Prima di tutto, bisogna vedere i dati che abbiamo a disposizione e le incognite che bisogna trovare. L’algoritmo è una sequenza ordinata di istruzioni che descrivono tutte quelle azioni che è necessario eseguire per arrivare alla soluzione di un problema.
La sequenza di istruzioni che compone un algoritmo deve essere:
Finita: l’esecutore prima o poi deve arrivare al risultato richiesto, quindi le azioni devono essere ripetute un certo numero di volte. Quando le azioni si ripetono all’infinito il programma va in loop
Non ambigua: ogni azione deve essere chiara e soggettiva
Eseguibile: ogni azione deve rientrare nelle effettive capacità dell’esecutore.
Ovviamente l’ambiguità è un problema risolto dai linguaggi di programmazione grazie alla loro sintassi.
Ogni istruzione può essere classificata come istruzione di input (lettura di un dato), output (scrittura di un dato), assegnazione(memorizzazione di un dato), controllo(confronto tra valori)
Attraverso i diagrammi di flusso (flow chart) o i diagrammi a blocchi, l’algoritmo può essere rappresentato
Alcune definizioni le ho prese da un foglio che ci ha distribuito la prof in classe! Credo che siano spiegate nel miglior modo possibile