Home  >  Informatica  >  Algoritmi  >  Il teorema di Bohm-Jacopini

Il Teorema di Bohm-Jacopini

Il più importante teorema sulla teoria degli algoritmi!

Download Slides in formato .pdf

Il teorema Di Böhm-Jacopini

Definizione di Algoritmo

Un algoritmo è un procedimento che risolve un determinato problema attraverso un numero finito di passi elementari, chiari e non ambigui. (Wikipedia)

Algoritmo

In informatica, risolvere un problema vuol dire ricevere dei dati in input, eseguire una elaborazione e, in un tempo finito, restituire dei dati in output.
Input → Elaborazione → Output

Teorema di Böhm-Jacopini

Nel 1966 due informatici italiani hanno enunciato il seguente teorema: Un qualsiasi algoritmo può essere espresso usando esclusivamente le strutture di sequenza, di alternativa e di ripetizione.

Stesura di un algoritmo

Un algoritmo ha sempre un inizio e una fine per definizione. Per il teorema di Böhm-Jacopini un algoritmo avrà solo:

SEQUENZAALTERNATIVARIPETIZIONE
Istruzione 1
Istruzione 2
Istruzione 3
Istruzione 4
SE condizione
allora
Istruzione 1
altrimenti
Istruzione 2 Fine SE
RIPETI
Istruzione 1
Fine RIPETI 5

Sequenza

Avremo dei problemi risolvibili con algoritmi contenenti solo istruzioni in sequenza. Ad esempio la somma di due numeri.

Alternativa

Alcuni problemi per essere risolti hanno bisogno di sequenza e del blocco di alternativa (o selezione o struttura condizionale). Ad esempio il confronto fra due numeri.

Ripetizione

Alcuni problemi per essere risolti hanno bisogno di sequenza e ripetizione. Ad esempio la somma di 10 numeri.

Impostare un problema

Data una traccia di un problema
individuare per prima cosa INPUT e OUTPUT
individuare eventuali istruzioni di elaborazione
individuare SE oppure RIPETIZIONI.



Algoritmi

Primi concetti sugli algoritmi.


Introduzione agli algoritmi e ai flow chart

Introduzione all'impostazione dei primi algoritmi tramite flow chart


Il teorema di Bohm-Jacopini

Il più importante teorema sulla teoria degli algoritmi!


Introduzione alla Programmazione

Introduzione ai linguaggi di programmazione