L'ARGORITMO
Per risolvere un problema si usano 2 metodi: Euristico e Logaritmico.
EURISTICO:
ha lo scopo di basarsi sull'intuizione e lo stato temporaneo delle cose. Per risolverli bisogna seguire un determinato procedimento, composto da 5 fasi distinte.
1 Suddividere il problema in più fasi;
2 Costruzione di un modello mentale, se il mio modello mentale è sbagliato non riesco a completare il problema;
3 Cercare di impostare uno stratagemma per la soluzione, cioè cerco di immaginare le determinate opzioni;
4 Metto in atto il piano ideato;
5 Valutazione degli esiti, non è detto che la soluzione sia giusta, e quindi la soluzione può essere efficiente o sbagliata.
Il procedimento euristico si sceglie per problemi più veloci, rispetto il logaritmico, perciò chi deve risolvere il problema si pone una stima per procedere poi alla soluzione, e quindi valutare la strada più conveniente.
LOGARITMICO:
Per la soluzione di un problema si utilizza un algoritmo, che può essere utilizzato anche in assenza di un computer e può essere un buon o cattivo algoritmo che può risolvere in modo buono o sbagliato un determinato problema. L'algoritmo è sempre capace di arrivare a una soluzione.
Ha 5 caratteristiche specifiche, e per ricordarle tutte basta pensare alle prime 7 lettere dell'alfabeto italiano:
AB C DE F G
AB: Non ambiguo= E' sicuro che un determinato algoritmo sia quello, non può avere più di un senso, deve avere passi univoci;
C: Completo= Risolve tutti i problemi di un dominio (lo spazio di soluzione della stessa tipologia);
DE: Determinato= Se ho sempre gli stessi input ho sempre gli stessi output (risultati)
F: Finito= Composto da un numero finito di pasi che devono essere sempre quelli, invariabili;
G: Generale= Risolve i problemi di una stessa classe, stessi "argomenti".
Le soluzioni di un problema tramite l'uso dell'algoritmo possono essere di 2 tipologie:
TOP-DOWN: Divido il problema in altri piccoli problemi, dandone soluzione ad ognuno;
BOTTOM-UP: Si parte dalla soluzione andando a ritroso dei passaggi per costruire il problema.
In generale per risolvere un algoritmo si utilizza e si crea un modello, che deve essere convenzionale. Per questo sono stati inventati i 4 "Simboli Convenzionali" che sono:
Gli ELLISSI: Essi sono START (inizio) & END (fine), In un algoritmo è presente solamente un'inizio e solamente una fine;
PARALLELOGRAMMA: Serve a inserire (input) o mostrare (output) informazioni;
RETTANGOLO: Serve per svolgere le operazioni che attuiamo per la risoluzione di un problema;
ROMBO: Serve ad inserire una condizione del problema.
esso ci mette davanti ad un bivio e viene chiamato selezione.
CICLO: operazione ripetitive , tutte dello stesso tipo. Queste operazioni possono essere di 2 tipologie:
PRECONDIZIONALE: la condizione viene messa prima che i dati vengano analizzati (es. di ciclo: -while-do -for)
POSTCONDIZIONALE: dopo aver analizzato i dati viene messa in atto la condizione. (l'operazione viene eseguita almeno una volta) (es. di ciclo: do while)
es. ciclo for

Esistono cicli in cui fin dall'inizio sappiamo quante volte dobbiamo ciclare come le tabelline (precondizionale) e altri in cui non sappiamo un numero preciso (postcondizionale)
TUTTI i simboli sono collegati tramite degli archi orientati, chiamati anche edge.
Quando si forma "uno schema" con i vari simboli per risolvere un problema, lo chiamiamo diagramma di flusso oppure flow-chart.
Siccome l'algoritmo deve rimanere sempre generico, non andremo mai ad inserire informazioni certe, ma ben si Variabili. Per il completamento delle operazioni alcuni segni matematici nel diagramma di flusso cambiano: la moltiplicazione si indica con " * " e la divisione si indica con "/".