Problemi e soluzioni Algoritmi e proprietá Esempi Introduzione agli Algoritmi Informatica M-Z Ing. Giovanni Morana [email protected] Universitá di Catania 03 Dicembre 2012 Ing. Giovanni Morana Introduzione agli Algoritmi Problemi e soluzioni Algoritmi e proprietá Esempi Informazioni Ricevimento Martedi’ 13-15 Mercoledi’ 13-15 Libri Linguaggio C - Guida alla programmazione di Alessandro Bellini, Andrea Guidi C. Corso completo di programmazione di Harvey M. Deitel, Paul J. Deitel The C Programming Language, 2o ed. diBrian Kernighan, Dennis Ritchie Ing. Giovanni Morana Introduzione agli Algoritmi Problemi e soluzioni Algoritmi e proprietá Esempi Outline 1 Problemi e soluzioni 2 Algoritmi e proprietá 3 Esempi Ing. Giovanni Morana Introduzione agli Algoritmi Problemi e soluzioni Algoritmi e proprietá Esempi Formulazione di un problema Un problema é ben formulato se: non é evidente a priori che non esistono soluzioni; il criterio di verifica delle soluzioni é univoco e si sa come applicarlo; l’insieme dei dati iniziali è completo. Ing. Giovanni Morana Introduzione agli Algoritmi Problemi e soluzioni Algoritmi e proprietá Esempi Risoluzione di un problema Ogni problema viene prima scomposto in sotto-problemi più semplici che, a loro volta, sono scomposti in problemi elementari. Un problema é elementare quando puó essere risolto con una o più azioni semplici. Ing. Giovanni Morana Introduzione agli Algoritmi Problemi e soluzioni Algoritmi e proprietá Esempi Risoluzione di un problema Risolvere un problema significa definire un elenco di azioni che eseguite da un esecutore conducono da determinate informazioni iniziali ad altre informazioni finali, soddisfacenti un criterio di verifica. Ing. Giovanni Morana Introduzione agli Algoritmi Problemi e soluzioni Algoritmi e proprietá Esempi Soluzione effettiva Una soluzione di un problema si dice effettiva se l’esecutore é in grado di interpretare i dati di ingresso interpretare la descrizione di tale soluzione, e quindi di associare ad essa le azioni che deve compiere per eseguirla; compiere tali azioni, completando l’esecuzione in un tempo finito. Una soluzione effettiva viene chiamata algoritmo. Ing. Giovanni Morana Introduzione agli Algoritmi Problemi e soluzioni Algoritmi e proprietá Esempi Algoritmo Deriva dal nome del matematico Al-Khuwarimi (IX sec a.C.) Definizione ISO Un algoritmo è un insieme finito ed ordinato di regole formalizzate destinato a fornire la soluzione di un problema, in un numero finito di passi. Definizione Mazurkiewicz Procedura effettiva, comune per una classe di dati iniziali, la quale trasformi, in un numero finito di passi elementari, i dati particolari nel risultato richiesto Ing. Giovanni Morana Introduzione agli Algoritmi Problemi e soluzioni Algoritmi e proprietá Esempi Proprietá Non ambiguitá: ogni passo deve produrre un risultato ben definito, per tutti i possibili valori di ingresso. Determinismo: per ogni passo compiuto deve essere determinato uno e un solo passo successivo. Eseguibilitá: ogni passo deve essere effettivamente eseguibile, in un tempo finito, dall’esecutore. Finitezza: l’algoritmo deve essere costruito da un numero finito di passi discreti. Terminazione: l’esecuzione dell’algoritmo deve terminare. Ing. Giovanni Morana Introduzione agli Algoritmi Problemi e soluzioni Algoritmi e proprietá Esempi Esempio#1 Risoluzione equazione di secondo grado ax 2 + bx + c = 0. 1. Calcoliamo il ∆: ∆ = b 2 − 4ac; 2. Valutiamo il ∆: SE ∆ >= 0 ALLORA √ ∆) 2.1. Calcoliamo x1 = (−b+ 2a 2.2. Calcoliamo x1 = √ (−b− ∆) 2a ALTRIMENTI 2.3 6 ∃x ∈ R 3. END Ing. Giovanni Morana Introduzione agli Algoritmi Problemi e soluzioni Algoritmi e proprietá Esempi Esempio#1 Risoluzione equazione di secondo grado ax 2 + bx + c = 0. 1. Calcoliamo il ∆: ∆ = b 2 − 4ac; 2. Valutiamo il ∆: SE ∆ >= 0 ALLORA √ ∆) 2.1. Calcoliamo x1 = (−b+ 2a 2.2. Calcoliamo x1 = √ (−b− ∆) 2a ALTRIMENTI 2.3 6 ∃x ∈ R 3. END Ing. Giovanni Morana Algoritmo? Ogni passo ha un comportamento certo Il numero di passi è finito Ogni passo è eseguibile Si arriva ad una soluzione. Introduzione agli Algoritmi Problemi e soluzioni Algoritmi e proprietá Esempi Esempio#1 Risoluzione equazione di secondo grado ax 2 + bx + c = 0. 1. Calcoliamo il ∆: ∆ = b 2 − 4ac; 2. Valutiamo il ∆: SE ∆ >= 0 ALLORA √ ∆) 2.1. Calcoliamo x1 = (−b+ 2a 2.2. Calcoliamo x1 = √ (−b− ∆) 2a Calcoli & Condizioni ALTRIMENTI 2.3 6 ∃x ∈ R 3. END Ing. Giovanni Morana Introduzione agli Algoritmi Problemi e soluzioni Algoritmi e proprietá Esempi Esempio#2 Algoritmo di Euclide per il M.C.M. 1. Considero A e B numeri interi; 2. SE A = B ALLORA 2.1 M.C.M = A (o B) - END 2.2 ALTRIMENTI SE A > B ALLORA 2.2.1 Calcoliamo A = A - B; 2.3 ALTRIMENTI 2.3.1 Calcoliamo B = B - A; 3. Ritorna a 2. Ing. Giovanni Morana Introduzione agli Algoritmi Problemi e soluzioni Algoritmi e proprietá Esempi Esempio#2 Algoritmo di Euclide per il M.C.M. L’algoritmo di Euclide é ITERATIVO, cioé itera (esegue sempre lo stesso blocco di comandi) fino a quando non si verifica una certa condizione Ing. Giovanni Morana Introduzione agli Algoritmi Problemi e soluzioni Algoritmi e proprietá Esempi Esempio#2 Algoritmo di Euclide per il M.C.M. 1. Considero A e B numeri interi; 2. SE A = B ALLORA 2.1 M.C.M = A (o B) - END 2.2 ALTRIMENTI SE A > B ALLORA 2.2.1 Calcoliamo A = A - B; Calcoli, Condizioni & Salti 2.3 ALTRIMENTI 2.3.1 Calcoliamo B = B - A; 3. Ritorna a 2. Ing. Giovanni Morana Introduzione agli Algoritmi