11.07.2014 Views

Fondamenti di Informatica - Università degli studi di Parma

Fondamenti di Informatica - Università degli studi di Parma

Fondamenti di Informatica - Università degli studi di Parma

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Algoritmo <strong>di</strong> Euclide: correttezza<br />

• Ad ogni passo abbiamo che m = q n + r (con<br />

q intero).<br />

• Se r ?0 ogni <strong>di</strong>visore <strong>di</strong> m,n <strong>di</strong>vide anche<br />

r=m-qn. D’altra parte anche ogni <strong>di</strong>visore <strong>di</strong><br />

n,r <strong>di</strong>vide m=qn+r.<br />

• In pratica la coppia m,n primo e dopo lo<br />

scambio m ? n e n ? r hanno lo stesso<br />

MCD.<br />

• Se r=0 l’ algoritmo termina e n e’ l’MCD.<br />

Algoritmo <strong>di</strong> Euclide<br />

• L’algoritmo descritto non è l’unico per<br />

risolvere il problema del MCD<br />

• Ma è il più efficiente se a priori non conosco<br />

nulla dei due numeri<br />

FI - Algoritmi e Programmazione 19<br />

FI - Algoritmi e Programmazione 20<br />

Calcolo MCD modo 2<br />

Calcolo MCD modo 3<br />

• Problema: dati due numeri determinare il<br />

loro massimo comune denominatore:<br />

q scomporre in fattori primi i due numeri<br />

q considerare solo fattori comuni<br />

q prendere quelli con esponente piú piccolo<br />

q moltiplicarli tra loro<br />

• Problema: dati due numeri determinare il loro<br />

massimo comun denominatore<br />

q costruire insieme <strong>di</strong>visori primo numero<br />

q costruire insieme <strong>di</strong>visori secondo numero<br />

q costruire intersezione fra i due insiemi<br />

q in<strong>di</strong>viduare nell'intersezione l'elemento piú grande<br />

FI - Algoritmi e Programmazione 21<br />

FI - Algoritmi e Programmazione 22<br />

Algoritmo<br />

• Per realizzare un algoritmo con un<br />

calcolatore occorre rappresentare la<br />

sequenza <strong>di</strong> passi che portano alla sua<br />

soluzione con istruzioni appartenenti ad un<br />

linguaggio <strong>di</strong> programmazione.<br />

Diagramma <strong>di</strong> Flusso<br />

(Flow-Chart)<br />

• I <strong>di</strong>agrammi <strong>di</strong> flusso sono un formalismo<br />

grafico per descrivere gli algoritmi.<br />

• I <strong>di</strong>agrammi <strong>di</strong> flusso scompongono in passi<br />

successivi gli algoritmi.<br />

• Un <strong>di</strong>agramma <strong>di</strong> flusso è una descrizione più<br />

efficace e meno ambigua <strong>di</strong> una descrizione<br />

a parole.<br />

FI - Algoritmi e Programmazione 23<br />

FI - Algoritmi e Programmazione 24

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!