Más contenido relacionado Similar a Programmazione base 1 (11) Programmazione base 12. Problemi e Algoritmi
• Prerequisiti
– Conoscenza di dato e informazione
• Obiettivi
– Apprendere il significato di problema
– Conoscere il processo risolutivo di un problema
– Apprendere la differenza tra risolutore ed esecutore
– Conoscere il concetto di algoritmo
– Conoscere le proprietà di un algoritmo
© All rights reserved. Mebtech Technologies
3. I Problemi – Alcuni concetti fondamentali
• Un problema è un quesito che attende una risposta
• Un processo risolutivo è un insieme di passi da compiere per giungere
alla soluzione di un problema
• La soluzione o risultato finale è l’obiettivo che vogliamo raggiungere
• Il criterio di verifica è un controllo sui risultati finali per verificare che
questi siano rispondenti agli obiettivi iniziali
• Un problema non è risolvibile se, pur essendo correttamente formulato
non ammette soluzioni.
© All rights reserved. Mebtech Technologies
4. Formulare un problema
Formulare correttamente un problema o affermare che esso è ben
formulato significa:
– Chiarire gli obiettivi finali
– Possedere le informazioni iniziali
– Individuare il criterio di verifica
Esempio di problema mal formulato
Calcolare il massimo comun divisore
Il problema è mal formulato perche mancano le informazioni iniziali
© All rights reserved. Mebtech Technologies
5. Il processo risolutivo
Nella ricerca della soluzione di un problema non si possono definire criteri
ma si possono proporre suggerimenti e strategie che possono essere
utilizzati in un considerevole numero di situazioni problematiche
Il processo risolutivo è molto soggettivo percui alcuni processi saranno piu
efficienti di altri o piu eleganti di altri etc..
Per giungere alla soluzione di un problema è generalmente necesario:
– Conoscere il tema oggetto del problema
– Utilizzare metodi risolutivi gia sperimentati
– Scindere il problema in sotto problemi
• Un processo risolutivo si dice generale quando risolve problemi della
stessa classe (problemi simili)
© All rights reserved. Mebtech Technologies
6. Chi risolve il problema?
In genere quando si risolve un problema si fa riferimento a:
Risolutore colui che definisce la soluzione necessaria per risolvere un
problema attraverso un processo risolutivo
Esecutore (Processore) colui che esegue le azioni descritte dal risolutore
per giungere concretamente alla soluzione del problema
Come detto prima bisogna creare un processo risolutivo descritto (insieme
di azioni da eseguire sull’istanza dei dati in ingresso) naturalmente nel
linguaggio che l’esecutore può comprendere.
© All rights reserved. Mebtech Technologies
7. Descrivere rigorosamente
• Fornire le azioni da eseguire è un’attività creativa prerogativa dell’uomo
• Eseguire le azioni meccanicamente (non vanno interpretate
semanticamente) è compito generalmente delle macchine.
• Dato che non saremo noi ad interpretare i passi da eseguire esse
dovranno essere espresse in modo inequivocabile, devono avere un
inizio ed una fine, devono poter essere eseguite in un tempo
determinato.
© All rights reserved. Mebtech Technologies
8. L’Algoritmo
• L’algoritmo è la base di tutta l’informatica (computer Science)
• Si definisce algoritmo una sequenza finita di azioni elementari che
descrivono la soluzione di un problema in tempo finito
© All rights reserved. Mebtech Technologies