Fondamenti di Informatica Algoritmi

Slides:



Advertisements
Presentazioni simili
ALGORITMI Luglio 2004 Luglio 2004 Algoritmi.
Advertisements

Programma: main() { istruzioni } ; assegnazione condizione ciclo istruzione: ;
Linguaggi algoritmici
Classe III A A.s – 2011 Programma di Informatica 5 ore settimanali (3 laboratorio) Docenti –Prof. Alberto Ferrari –Prof. Alberto Paganuzzi.
ALGORITMI Un algoritmo (detto anche procedura, prescrizione, processo, routine, metodo) è un insieme di regole (dette anche direttive o istruzioni) che,
Algoritmi e Programmazione
Informatica Generale Marzia Buscemi
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
Informatica Generale Susanna Pelagatti
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
INFORMATICA Strutture iterative
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Introduzione agli algoritmi. Definizione Sistema di regole e procedure di calcolo ben definite che portano alla soluzione di un problema con un numero.
Informatica Problema Algoritmo Programma
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 9 Agosto 2013.
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Definizione di Algoritmo
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L’attività di.
Fondamenti di Informatica
Introduzione alla programmazione ll
Introduzione alla programmazione lll
Introduzione alla programmazione l
ITERAZIONE e RICORSIONE (eseguire uno stesso calcolo ripetutamente) ITERAZIONE: ripetere piu volte una sequenza di operazioni istruzioni: for, while, do.
DAL PROBLEMA ALL'ALGORITMO Problemi e Programmi Paolo Amico
Fondamentidi Programmazione Corso: Fondamenti di Programmazione Classe: PARI-DISPARI Docente: Prof. Luisa Gargano Testo: Aho, Ulman, Foundations of Computer.
ITERAZIONE e RICORSIONE (eseguire uno stesso calcolo ripetutamente)
Gli algoritmi AA 2003/04 © Alberti Programmazione 2. Algoritmi.
Unità Didattica 1 Algoritmi
Unità Didattica 2 I Linguaggi di Programmazione
Algoritmi su Tipi Semplici
Istruzioni Iterative Nicola Fanizzi
Strutture di controllo in C -- Flow Chart --
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Gli algoritmi.
Elementi di Informatica
Elementi di Informatica
Dall’algoritmo al programma.
ELEMENTI DI PROGRAMMAZIONE
Elementi di Informatica di base
Algoritmi e Programmazione strutturata
INFORMATICA MATTEO CRISTANI.
PROGRAMMAZIONE: linguaggi
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
Algoritmi e linguaggi di programmazione
Lezione 6 Strutture di controllo Il condizionale
Problema: come dividere due numeri
Programmazione Strutturata
COME RAGIONA UN COMPUTER
Ripetizione La vera potenza dei programmi per computer risiede nella capacità di ripetere lo stesso calcolo o sequenza di istruzioni più volte, ogni volta.
DIVERTIRSI CON SCRATCH
Linguaggi algoritmici
ALGORITMI Un algoritmo (detto anche procedura, prescrizione, processo, routine, metodo) è un insieme di regole (dette anche direttive o istruzioni) che,
Rappresentazione degli algoritmi
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
Algoritmi.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Realizzazione software
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
L’ELABORATORE ELETTRONICO uno strumento in grado di eseguire insiemi di azioni (“mosse”) elementari le azioni vengono eseguite su oggetti (dati) per produrre.
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Diagrammi a blocchi.
Informatica e Informatica di Base
ALGORITMI Dal problema al programma Definizione di algoritmo
Università degli Studi di Perugia 20/09/2015Informatica applicata all’educazione a.a Informatica applicata all’educazione a.a Corso.
Dal problema al programma
GLI ALGORITMI Appunti preparati dalla prof.ssa Maria D’Angelo.
Unità di apprendimento 6
Transcript della presentazione:

Fondamenti di Informatica Algoritmi Corso di Laurea in Ingegneria Civile Prof. Dario Bianchi Dario Bianchi - 2003 Fond. Informatica - Ing. Civile

Elaborazione dell’Informazione Risolvere un problema comporta: Avere dei dati in ingresso Elaborare questi dati Produrre dei dati in uscita Bisogna quindi: Descrivere i dati Specificare come trattarli Dario Bianchi - 2003 Fond. Informatica - Ing. Civile

Fond. Informatica - Ing. Civile Processi Un processo trasforma un insieme di dati iniziali nei risultati finali mediante una successione di azioni elementari. Per descrivere un processo e’ necessario utilizzare un linguaggio. Il linguaggio deve far corrispondere a una frase ben precisa o istruzione ad ogni azione elementare e deve indicare come le aziono elementari si succedono nel processo. Dario Bianchi - 2003 Fond. Informatica - Ing. Civile

Programma, esecutore, algoritmo L’insieme delle istruzioni che descrivono un processo espresse in un qualche linguaggio prende il nome di programma. Il programma e’ espresso in termini di azioni elementari che un esecutore, uomo o macchina, deve essere in grado di mettere in atto. La descrizione rigorosamente definita di un processo (eseguibile in un tempo finito) e’ un algoritmo. Dario Bianchi - 2003 Fond. Informatica - Ing. Civile

Requisiti degli algoritmi Ogni istruzione deve essere ben definita nei suoi effetti (rigorosamente e senza ambiguita`). Ogni istruzione rappresenta una azione elementare che che l’esecutore puo` portare a termine in un tempo finito. Il processo dall’algoritmo deve terminare dopo un numero finito di passi. ( un passo = esecuzione di una azione elementare) Dario Bianchi - 2003 Fond. Informatica - Ing. Civile

Fond. Informatica - Ing. Civile Algoritmo di Euclide Calcola il massimo comun divisore fra due interi positivi m ed n (supponiamo che n ≥ m, altrimenti li possiamo scambiare). L’ algoritmo si compone di 3 passi ripetuti ciclicamente fino ad una condizione di arresto: Dario Bianchi - 2003 Fond. Informatica - Ing. Civile

Fond. Informatica - Ing. Civile Algoritmo di Euclide Passo E1 {ricerca del resto} : Sia m ≥ n. Si divide m per n. Sia r il resto. Allora 0 ≤ r < n. Passo E2 {r = 0?} : Se r = 0 l’ algoritmo e’ terminato e n e’ la risposta finale. Passo E3 {scambio} : Se r ≠ 0 si operano gli scambi m ← n e n ← r. Si torni al passo E1. Dario Bianchi - 2003 Fond. Informatica - Ing. Civile

Algoritmo di Euclide: esempio Si voglia l’ MCD fra 30 e 45 (I due numeri vanno scambiati) m n r 45 30 15 Poiche’ il resto r = o, l’ultimo valore per n e’ l’ MCD Dario Bianchi - 2003 Fond. Informatica - Ing. Civile

Algoritmo di Euclide: finitezza Poiche’ al passo E1 {ricerca del resto} si ha senpre 0 ≤ r < n, ad ogni scambio il valore di n decresce. Dopo un numero finito di passi si raggiungera` la condizione r = 0, e la terminazione dell’ algoritmo. Dario Bianchi - 2003 Fond. Informatica - Ing. Civile

Algoritmo di Euclide: correttezza Ad ogni passo abbiamo che m = q n + r (con q intero). Se r ≠0 ogni divisore di m,n divide anche r=m-qn. D’altra parte anche ogni divisore di n,r divide m=qn+r. In pratica la coppia m,n primo e dopo lo scambio m ← n e n ← r hanno lo stesso MCD. Se r=0 l’ algoritmo termina e n e’ l’MCD. Dario Bianchi - 2003 Fond. Informatica - Ing. Civile

Il crivello di Eratostene Si vogliono trovare tutti i numeri primi compresi fra 2 e n (In modo efficiente). 1) Si costruisca una sequenza ordinata dei numeri fra 2 e n. 2) Si estragga il primo numero dalla sequenza. E’ necessariamente un numero primo. 3) Si eliminino dalla sequenza tutti i multipli del numero estratto al passo 2). 4) se la sequenza non e’ vuota si torna la passo 2) altrimenti si termina. Dario Bianchi - 2003 Fond. Informatica - Ing. Civile

Il crivello di Eratostene: esempio Sequenza iniziale (da 2 a 20): 2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,19,20 2 e’ primo lo elimino con tutti i suoi multipli: 3,5,7,9,11,13,15,17,19 3 e’ primo lo elimino con tutti i suoi multipli: 5,7,11,13,17,19 5 e’ primo lo elimino con tutti i suoi multipli: … 19 e’ primo, la sequenza e’ vuota, termino. Dario Bianchi - 2003 Fond. Informatica - Ing. Civile

Fond. Informatica - Ing. Civile Diagrammi di flusso Sono un linguaggio grafico per la rappresentazione di algoritmi Le operazioni su cui si basa un diagramma di flusso Ingresso/Uscita dati Trasferimento di informazione (Assegnamenti) Calcolo di espressioni aritmetiche e logiche Assunzione di decisioni Esecuzione di iterazioni (Cicli) Possono contenere costanti e variabili Dario Bianchi - 2003 Fond. Informatica - Ing. Civile

Fond. Informatica - Ing. Civile Simboli Start Var Var = Expr Linea di flusso Elaborazione Assegnamenro Inizio diagramma Lettura dati Stop Var Fine diagramma Scrittura dati Si No Condizione Condizioni Expr1 = Expr2 Expr1 ≠ Expr2 Expr1 < Expr2 Expr1 > Expr2 Expr1 ≤ Expr2 Expr1 ≥ Expr2 Decisione Dario Bianchi - 2003 Fond. Informatica - Ing. Civile

Programmazione Strutturata Si compone di sequenze, decisioni (if then, if then else) e cicli (while-do, repeat until). Ogni diagramma ha esattamente un ingresso ed una uscita. Ogni azione puo essere una azione semplice una azione composta da altri diagrammi strutturati Dario Bianchi - 2003 Fond. Informatica - Ing. Civile

Fond. Informatica - Ing. Civile Somma di tre numeri Start X1 Somma←X1+X2+X3 X2 Somma X3 Fine Dario Bianchi - 2003 Fond. Informatica - Ing. Civile

Fond. Informatica - Ing. Civile Somma di N numeri Start I < N N N Si Somma=0 I=0 X Somma X3 Fine Somma←Soma+X I=I+1 Dario Bianchi - 2003 Fond. Informatica - Ing. Civile

Strutture per il controllo di flusso Sequenza I I O O Dario Bianchi - 2003 Fond. Informatica - Ing. Civile

Strutture per il controllo di flusso Decisione If then I I Vero Cond Azione Falso O O Dario Bianchi - 2003 Fond. Informatica - Ing. Civile

Strutture per il controllo di flusso Decisione If Then Else I I Vero Falso Cond Azione1 Azione2 O O Dario Bianchi - 2003 Fond. Informatica - Ing. Civile

Strutture per il controllo di flusso Ciclo While-Do I I Falso Cond Vero O O Azione Dario Bianchi - 2003 Fond. Informatica - Ing. Civile

Strutture per il controllo di flusso Ciclo Repeat Until I I Azione Falso Vero O Cond O Dario Bianchi - 2003 Fond. Informatica - Ing. Civile

Tecniche di programmazione Programmazione top-down: scomposizione iterativa del problema in sottoproblemi i sottoproblemi devono essere indipendenti ed avere interfacce ben definite visibilità dei dettagli di ogni sottoproblema solo all’interno del sottoproblema stesso Dario Bianchi - 2003 Fond. Informatica - Ing. Civile