Introduzione agli Algoritmi 4

Documenti analoghi
Introduzione agli Algoritmi 4

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

Come ragiona il computer

Risoluzione di un problema

ALGORITMI: PROPRIETÀ FONDAMENTALI

Pseudo codice. Pseudo codice, Paolo Bison, FI07, p.1 / Pseudo codice, Paolo Bison, FI07, p.3

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova

L ELABORATORE ELETTRONICO

La Programmazione particolare insieme di azioni particolare tipologia di dati risolvere un problema

Fondamenti di Informatica 1 (I Modulo) Introduzione agli algoritmi. Roberto Basili a.a

Fondamenti di Informatica. Definizione di Algoritmo. Algoritmo Euclideo. Prof.V.L.Plantamura Informatica e Comunicazione Digitale a.a.

Informatica. Come si risolve un problema?

Introduzione alla programmazione

Esercizi sugli Algoritmi numerici

LABORATORIO DI INFORMATICA

L ELABORATORE ELETTRONICO

Dal Problema all Algoritmo. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Algoritmi. Andrea Passerini Informatica. Algoritmi

INFORMATICA GENERALE Prof. Alberto Postiglione. Università degli Studi di Salerno. UD 3.1a: Gli Algoritmi

Sistemi di Elaborazione delle Informazioni

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Paolo Bison. Fondamenti di Informatica Ingegneria Meccanica Università di Padova A.A. 2008/09

c) ogni numero ha infiniti multipli

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica

ELEMENTI DI INFORMATICA L. Ing. Claudia Chiusoli

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da:

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)

Esercizi su Scratch. Esegui la Somma e il Prodotto dei numeri inseriti in Input fino a che non inserisco la vocale e.

Parte Seconda. Prova di selezione culturale

Problemi, algoritmi, calcolatore

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

L ELABORATORE ELETTRONICO!

Algoritmi. Andrea Passerini Conoscenze informatiche e relazionali Corso di laurea in Scienze dell Ingegneria Edile

Curricolo verticale MATEMATICA

PROBLEMI E ALGORITMI VESPIA CATERINA LICEO CLASSICO AGLI ANGELI

Introduzione all informatica

Il Concetto di Algoritmo Corso di Informatica Laurea in Fisica

Elaboratore Elettronico

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Algoritmi e programmi

Sistemi Web per il turismo - lezione 5 -

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Dall algoritmo al calcolatore: concetti introduttivi. Algoritmo. Problema: consumo medio 9/27/2018. Fondamenti di Programmazione 3

= < < < < < Matematica 1

CAPITOLO 3 - ALGORITMI E CODIFICA

Caratteristiche di un calcolatore elettronico

Linguaggi algoritmici A. Ferrari

CORSO DI INFORMATICA Maria Grazia Celentano

Informatica. Fondamenti di Informatica 1. Informatica. Informatica. Introduzione all Informatica. Introduzione all Informatica

A) Note due delle 6 misure c 1, c 2, i, p 1, p 2, h risalire alle altre. = p1. Soluzione. Soluzione. Soluzione

Moltiplicazione. Divisione. Multipli e divisori

Fondamenti di Informatica T-1. Introduzione al linguaggio Java Input/output, variabili, tipi

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

Il concetto di calcolatore e di algoritmo

Unita aritmetica e logica. Input e output della ALU. Rappresentazione degli interi. Rappresentazione in modulo e segno. Aritmetica del calcolatore

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica.

ALGORITMI. Obiettivo: risolvere problemi mediante l uso di un elaboratore elettronico. Elaboratore elettronico

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Struttura logica del computer (semplificata)

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)

Punto di vista Tecnologico: strumenti di elaborazione della informazione. Punto di vista Metodologico:

LABORATORIO 4 - Iterazioni

Algoritmi. Informatica B. Daniele Loiacono

INFORmazione+autoMATICA. Perché saperne di piu? Le fasi della programmazione. Cosa intendiamo per programmazione

Un polinomio è un espressione algebrica data dalla somma di più monomi.

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Concetti Introduttivi. Il Computer

Esecuzione dei programmi

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

CORSO ZERO DI MATEMATICA

PROGRAMMA DI MATEMATICA CONTENUTI.

Linguaggio Testuale. E un formalismo che consente di rappresentare gli algoritmi mediante semplici istruzioni in linguaggio «parlato»

Numeri e operazioni su di essi

Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione. è uno strumento in grado di eseguire insiemi di azioni elementari.

Lezione 4: La Formalizzazione degli Algoritmi - Strutture di Controllo e Selettive (2p) Venerdì 7 Ottobre 2009

Rappresentazione. Rappresentazione del testo. Rappresentare numeri. Rappresentazione delle informazioni in codice binario. Caratteri.

INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno

CONCORSO ALLIEVI MARESCIALLI CARABINIERI 2018 TAVOLE SINOTTICHE RAGIONAMENTO NUMERICO. Anteprima

4. Problemi e Algoritmi

1. (A1) Quali tra le seguenti uguaglianze sono vere? 2. (A1) Una sola delle seguenti affermazioni è vera. Quale?

01) Identità ed equazioni 02) Equazione di primo grado ad una incognita 03) Equazione di primo grado frazionarie

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Dall analisi del problema alla definizione dell algoritmo A. Ferrari

Corso di PHP. Prerequisiti. 2.2 Operatori. Conoscenza HTML Tecnica della programmazione Principi di programmazione web. M. Malatesta 2.

INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan

INFORMATICA (Computer Engineering o

04 Aritmetica del calcolatore

Elementi di Informatica. Introduzione. Cos è l informatica. Corso di Laurea in Ingegneria Biomedica aa 2003/2004. Ing.

CdL in Medicina Veterinaria - STPA AA

Per gli esercizi sulla algebra booleana, si consiglia di verificare tramite tabelle di verità le equivalenze logiche proposte sulle dispense.

A lezione sono stati presentati i seguenti passi per risolvere un problema:

liceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE BIENNIO: SECONDA DISCIPLINA: INFORMATICA

L ESTRAZIONE DELLA RADICE ( QUADRATA N-ESIMA).( Testo /119) x

CALCOLO NUMERICO. Rappresentazione virgola mobile (Floating Point)

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Transcript:

Sommario Definizione informale di algoritmo e esempi Proprietà degli algoritmi Input/Output, Variabili Algoritmi senza input o output 1 2 Esempi di Algoritmi Serie di prescrizioni o istruzioni che specifica l insieme delle azioni da compiere per poter risolvere un problema [Al Khowarizmi, i IX sec.] Regole per eseguire le 4 operazioni aritmetiche sui numeri scritti in notazione decimale Ricetta da cucina Istruzioni per il montaggio dei mobili IKEA MCD Moltiplicazione li i per raddoppio 3 4

Istruzioni Montaggio Mobili (1) Istruzioni Montaggio Mobili (2) 5 6 Massimo Comun Divisore: Dati due interi n e m, individuare il MCD (n, m) Sia n il maggiore tra i due e m il minore Dividere n per m, si ottiene un quoziente (q) e un resto (r) Ripetere l operazione precedente con m e r al posto rispettivamente di n e m Quando si ottiene r = 0 l algoritmo si arresta e il resto ottenuto all iterazione precedente è il MCD cercato 7 Calcolo Massimo Comun Divisore: Esempio n = 2079, m = 987 2079 diviso 987 = 2 (r = 105) 987 diviso 105 = 9 (r = 42) 105 diviso 42 = 2 (r = 21) 42 diviso 21= 2 (r = 0, quindi fine iterazione) MCD(2079, 987)= 21 8

Moltiplicazione per raddoppio: Trovare il prodotto di due fattori n e m Si compila una tabella a due colonne La prima riga è costituita da 1 e da un fattore finché nella prima colonna si ottengono numeri non maggiori del secondo fattore, si aggiunge una riga raddoppiando gli elementi della precedente Si scelgono gli elementi dll della prima colonna la cui somma è uguale al secondo fattore La somma dei corrispondenti elementi della seconda colonna fornisce il risultato 9 Moltiplicazione per raddoppio: Esempio n=18 e m=13 1 18 2 36 4 72 8 144 16 (> 13 quindi fine iterazione) 1+4+8=13 Quindi 18 + 72 + 144 = 234 = 18 X 13 10 Proprietà degli algoritmi Finitezza Spaziale: espressiin in uno spaziofinito Temporale: esecuzione in tempo finito Generalità Classe di problemi Dominio di definizione Completezza tutte tt le istanze it dl del problema devono essere risolubili dall algoritmo Non ambiguità le istruzioni devono essere univocamente interpretabili Eseguibilità l'esecutore deve essere Introduzione in grado agli Algoritmi di eseguire ogni istruzione 11 Algoritmi Deterministici È detto deterministico un algoritmo tale per cui al momento dell esecuzione di ogni istruzione è nota l istruzione successiva Come effetto, due diverse esecuzioni dello stesso algoritmo deterministico con gli stessi dati producono gli stessi risultati Esistono algoritmi non deterministici, di cui non ci occuperemo 12

Altre caratteristiche Alcuni algoritmi possono dare risposte del tipo SI /NO oppure VERO/FALSO NON è necessario che i dati elaborati dagli algoritmisiano numerici 13 Altre caratteristiche: Esempio 1 Verificare se una stringa di caratteri è palindroma È palindroma una stringa se è uguale leggerla da sinistra a destra o viceversa: ossesso è palindroma, possesso no; a3#3a è palindroma, a3h#a no; QFWFQ è palindroma, (K)YK no Confrontareil primo e l ultimo carattere; se sono diversi la risposta è no; fine algoritmo Se sono uguali, cancellare il primo e l ultimo lti carattere e ripetere il procedimento, sino a che ci sono caratteri 14 Altre caratteristiche: Esempio 2 Verificare se un elemento appartiene a una lista di elementi: Finché ci sono elementi nella lista, confrontare l elemento cercato con il primo della lista Se sono uguali, la risposta è SI ; fine algoritmo Altrimenti passare all elemento successivo della lista Ilprecedente algoritmo è noto come ricerca sequenziale Input e Output (1) Gli algoritmi per poter godere della proprietà di generalità, devono essere in grado di risolvere una classe di problemi L algoritmo seguente calcola l l ipotenusa di un triangolo rettangolo, i cui cateti hanno valori 3 e 4 Calcola il quadrato di 3 e somma ad esso il quadrato di 4, quindi estrai la radice quadrata del valore ottenuto L algoritmo Lalgoritmo seguente calcola l ipotenusa di tutti i triangoli rettangolo, i cui cateti hanno valori noti Calcola il quadrato di un cateto e aggiungi ad esso il quadrato dell altro, quindi estrai la radice quadrata della somma ottenuta 15 16

Input e Output (2) La generalizzazione è ottenuta mediante parametrizzazione dei valori su cui opera l algoritmo Per risolvere una istanza del problema, si sostituiscono ai parametri le istanze dei valori I dati forniti in ingresso, sui cui opera l algoritmo l sono detti dttiinput I risultati forniti dall esecuzione dell algoritmo sono gli Output Input e Output (3) Negli esempi precedenti Per l algoritmo del MCD 2079 e 987 sono input e 21 è l output Per il prodotto, 18 e 13 sono input e 234 output Per il palindromo, ossesso, possesso, a3#3a, a3h#a sono input, SI e NO output L elemento da ricercare e la lista degli elementi sono input, TROVATO / NON TROVATO output 17 18 Input e Output (4) Possono o esistere ste e algoritmi ago che NON hanno I/O Esempio: calcolo della differenza tra n e m: Se n >= m, allora output (n m), fine algoritmo Altrimenti fine algoritmo 19 Variabili Oltre ai dati di I/O, gli algoritmi spesso utilizzano dati di supporto per svolgere le proprie attività, detti variabili Per il momento possiamo assumere che una variabile sia un contenitore di un valore I valori possono essere di diversi tipi, ad es. numeri interi, reali, caratteri singoli, stringhe di caratteri, valori logici, etc. Anche i dati di I/O sono variabili 20