Nell'ambito del problem solving hanno particolare interesse i procedimenti generali che sono in grado di risolvere non un singolo problema ma una classe di problemi.
Per questi problemi non è interessante la soluzione in sé ma il procedimento generale per giungere alla soluzione. Il procedimento di cui si parla deve essere non ambiguo e giungere a termine in un tempo finito. In questo caso si può affermare che la soluzione è rappresentata da un algoritmo e il problema originale è risolvibile tramite un algoritmo (cioè che il problema dato è di tipo algoritmico).
Fin dalle scuole elementari ci hanno insegnato ad eseguire le divisioni: il procedimento essendo di tipo generale è applicabile ad una qualsiasi coppia di numeri (dividendo e divisore). Il procedimento è rigoroso e non ambiguo ed ha un termine, pertanto esso è un algoritmo e la divisione tra numeri è un esempio di problema algoritmico.
L'algoritmo
Un algoritmo è un elenco finito di istruzioni non ambigue, ciascuna delle quali deve essere precisamente definita.
Il procedimento descritto tramite le istruzioni deve completarsi in un tempo finito, indipendentemente dal contesto su cui opera (cioè dai dati forniti in ingresso).
Analizziamo con attenzione i seguenti termini:
Non ambiguità: significa che le istruzioni devono essere univocamente interpretabili dall'esecutore dell’algoritmo.
Finitezza: è richiesto che l’esecuzione dell'algoritmo termini in un tempo finito per ogni insieme di valori in ingresso.
Esempio di algoritmo:
Calcolare la soluzione di ax + b = 0
leggere i valori di a e di b
calcolare -b
dividere -b per a e assegnare il risultato ad x
scrivere x
Sito: 7ecnologie
Sezione: 06. Diagrammi di flusso
Indice delle sezioni: 01. Problem Solving - 02. Office automation - 03. Sistemi - 04. Numerazione posizionale - 05. Logica Matematica - 06. Diagrammi di flusso - 07. Scratch - 08. C language - 09. Python - 10. Algoritmi e strutture dati - 11. Base di dati - 12. SQL - 13. Reti - 14. Sicurezza informatica - 15. Blockchain e Bitcoin - 16. Calcolo numerico - 17. Robotica e domotica - 18. HTML & CSS - 19. Tecnologie e società
Indice dei capitoli: 00. Risorse - 01. I simboli - 02. Es. svolto: test - 03. Es. svolto: test in cascata - 04. Es. svolto: ciclo - 05. Tutorial - 98. Esercizi