Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi.

Размер: px
Начинать показ со страницы:

Download "Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi."

Транскрипт

1 Algoritmi Un tema centrale dell informatica è lo studio degli algoritmi. Ora nostro obiettivo sarà quello di esplorare a sufficienza questa materia fondamentale per poter capire e apprezzare appieno l informatica. Brookshear Informatica XI ed Capitolo 5 l 00/00/00 1

2 ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo INPUT: dati iniziali INPUT: x,y,z AZIONI esempio: Somma x ed y Somma z al risultato OUTPUT: risultato OUTPUT: x+y+z Algoritmo: Sequenza di azioni per svolgere il calcolo Programma: Algoritmo espresso in notazione formale (linguaggio di programmazione) Creazione programma: Fase 1 = algoritmo Fase 2 = implementazione in dato linguaggio (C) Vedremo: Elementi di base per semplici algoritmi e programmi

3 ALGORITMI Tecniche algoritmiche permettono di risolvere problemi di: Trasmissione dati in Internet come si gestisce in pratica il flusso di dati nella rete? Ricerca nel WEB come fa Google a trovare le informazioni nel WEB? Bioinformatica come il DNA determina le nostre caratteristiche? Processi economici come si gestiscono le aste on-line su Ebay? come si effettua la compravendita di azioni su Internet? Organizzazione di risorse e servizi come si schedulano i voli delle aerolinee? come si assegnano le frequenze nelle celle delle reti cellulari?

4 Il termine Algoritmo deriva dal matematico Arabo al-khwarizmı (c ), autore del testo Al-jabrw al-muqabâla (da cui anche il termine Algebra)

5 Algoritmi di tipo numerico furono studiati da matematici babilonesi ed indiani più di di 3000 anni fa. Algoritmi in uso fino a tempi recenti furono studiati dai matematici greci nel 500 a.c. Esempio: Algoritmo di Euclide per il Massimo Comun Divisore Esempio: Algoritmi geometrici (calcolo di tangenti, sezioni di angoli,...)

6 Algoritmo: procedura computazionale che prende certi valori in input (ingresso) e produce i valori richiesti in output (uscita)

7 Un esempio si prepara ad un uscita galante... Va in profumeria, ma vuole risparmiare Come identificare il profumo più economico? 0. Prendi la prima bottiglia, 1. Vai alla prossima bottiglia nello scaffale 2. Confronta il prezzo sulla bottiglia nello scaffale con quello in mano 3. Se e minore scambia la bottiglia in mano con quella sullo scaffale 4. Se ci sono bottiglie non controllare, allora ripeti da Se le bottiglie sono finite, la bottiglia più economica è quella in mano

8 Algoritmo: procedura computazionale che prende certi valori in input (ingresso) e produce i valori richiesti in output (uscita) Problema: determina il profumo più economico Input: profumi con relativi costi Output: profumo di costo minimo Algoritmo: 0. Prendi la prima bottiglia, 1. Vai alla prossima bottiglia nello scaffale 2. Confronta il prezzo sulla bottiglia nello scaffale con quello in mano 3. Se è minore scambia la bottiglia in mano con quella sullo scaffale 4. Se ci sono bottiglie non controllare, allora ripeti da Se le bottiglie sono finite, la bottiglia più economica è quella in mano Procedura computazionale per ottenere la relazione costi/costo minimo

9 Riassumendo Un algoritmo è una serie di operazion non ambigue ed efficientemente computabili, che una volta eseguite producono un risultato in un tempo finito Se possiamo specificare un algoritmo allora possiamo automatizzare la soluzione

10 Un esempio Come identificare il profumo più economico? 0. Prendi la prima bottiglia, 1. Vai alla prossima bottiglia nello scaffale 2. Confronta il prezzo sulla bottiglia nello scaffale con quello in mano 3. Se è minore scambia la bottiglia in mano con quella sullo scaffale 4. Se ci sono bottiglie non controllare, allora ripeti da Se le bottiglie sono finite, la bottiglia più economica è quella in mano E un algoritmo? La soluzione è corretta? Quanto tempo prende?

11 Un algoritmo è una sequenza finita di passi elementari che descrive come risolvere in un tempo finito un problema Altri esempi di algoritmi: Istruzioni di montaggio Preparazione del caffè Prelievo bancomat Preparazione di un ricetta Algoritmo Calcolo del massimo comun divisore tra due interi

12 Algoritmo Dati iniziali ALGORITMO Dati finali (soluzione) Algoritmo: sequenza di azioni elementari che consenta di trasformare i dati iniziali nei risultati finali attraverso un numero finito di passi, elementari e non ambigui. Note: Insieme di dati iniziali ben definito Sequenza di passi può essere eseguita da un opportuno esecutore (es. calcolatore).

13 Algoritmo Dati iniziali ALGORITMO Dati finali (soluzione) Proprietà fondamentali di un Algoritmo Correttezza; produce sempre una soluzione Efficienza: L algoritmo perviene alla soluzione del problema usando la minor quantità possibile di risorse fisiche, quali tempo di esecuzione, memoria,.

14 Algoritmo Dati iniziali ALGORITMO Dati finali (soluzione) Ricapitolando, un algoritmo deve essere: applicabile a qualsiasi insieme di dati di ingresso appartenenti al dominio di definizione dell algoritmo costituito da operazioni appartenenti ad un determinato insieme di operazioni fondamentali costituito da regole non ambigue, cioè interpretabili in modo univoco qualunque sia l esecutore (persona o macchina ) che le legge

15 Un esempio Come identificare il profumo più economico? 0. Prendi la prima bottiglia, 1. Vai alla prossima bottiglia nello scaffale 2. Confronta il prezzo sulla bottiglia nello scaffale con quello in mano 3. Se è minore scambia la bottiglia in mano con quella sullo scaffale 4. Se ci sono bottiglie non controllare, allora ripeti da Se le bottiglie sono finite, la bottiglia più economica è quella in mano Dati ingresso? Operazioni? Esecutore?

16 Esempio: prendere l automobile Algoritmo 1. Aprire l auto 2. Aprire la portiera 3. Sedersi al posto di guida 4. Schiacciare la frizione 5. Avviare il motore 6. Inserire la prima marcia 7. Rilasciare delicatamente la frizione per partire I passi sono eseguiti in sequenza l'ordine delle istruzioni è essenziale per la correttezza

17 I libri sono disposti sugli scaffali Esempio: Biblioteca La posizione di ogni libro è fissa ed è individuata da due coordinate: -Scaffale(i.e. numero dello scaffale) -Posizione nello scaffale La biblioteca è dotata di uno schedario (ordinato per autore/i e titolo). Ogni scheda contiene, nell ordine: -cognome e nome dell autore -titolo del libro -data di pubblicazione -numero dello scaffale in cui si trova -posizione attribuita al libro nello scaffale.

18 Esempio: Biblioteca Esempio di scheda Autore/i:Sciuto, DonatellaBuonanno, GiacomoMari, Luca Titolo:Introduzione ai Sistemi Informatici, III Edizione, 2005 Scaffale:22 Posizione:11

19 Formulazione dell algoritmo 1.Decidi il libro da richiedere 2.Preleva il libro richiesto Esempio: Biblioteca Raffinamenti successivi : se un passo non è direttamente comprensibile ed eseguibile dall esecutore (operazione semplice), occorre dettagliarlo a sua volta mediante un ulteriore algoritmo.

20 Un algoritmo per il prelievo Esempio: Biblioteca 1.Decidi il libro da richiedere 2.Cerca la scheda del libro richiesto 3.Segnati numero scaffale e posizione 4.Cerca lo scaffale indicato 5.Accedi alla posizione indicata e preleva il libro 6.Scrivi i tuoi dati sulla "scheda prestito"

21 Il sotto-algoritmo di ricerca 1.Prendi la prima scheda. Esempio: Biblioteca 2.Esamina se titolo e autore/i sono quelli cercati. In caso positivo la ricerca termina con successo, altrimenti passa alla scheda successiva e ripeti. 3.Se esaurisci le schede il libro cercato non esiste.

22 Un algoritmo per il prelievo Esempio: Biblioteca 1.Decidi il libro da richiedere 2.Cerca la scheda del libro richiesto come segue: 2.1. Prendi la prima scheda Esamina se titolo e autore/i sono quelli cercati. In caso positivo la ricerca termina con successo, altrimenti passa alla scheda successiva e ripeti Se esaurisci le schede il libro cercato non esiste. 3.Segnati numero scaffale e posizione 4.Cerca lo scaffale indicato 5.Accedi alla posizione indicata e preleva il libro 6.Scrivi i tuoi dati sulla "scheda prestito"

23 ES. Come piegare un foglio quadrato per ottenere un uccello. Brookshear Informatica XI ed Capitolo 5 l 00/00/00 23

24 Primitive per l origami. Sono richieste delle primitive ben definite Un insieme di primitive costituisce un linguaggio di programmazione. Ogni primitiva è costituita da due parti: Sintassi Semantica Brookshear Informatica XI ed Capitolo 5 l 00/00/00 24

25 Pseudocodice Primitivo Istruzione di assegnamento nome espressione Selezione condizionale if condizione then attività Esecuzione ripetuta while condizione do azione Procedura procedure nome Brookshear Informatica XI ed Capitolo 5 l 00/00/00 25

26 ISTRUZIONI Assegnamento: x E, Calcola il valore dell espressione E e lo assegna alla variabile x Esempio: x x+y calcola il valore di x+y e lo assegna ad x se x vale 5 e y vale 3, x=x+y da ad x valore 8

27 ISTRUZIONI Assegnamento: x E, Calcola il valore dell espressione E e lo assegna alla variabile x Esempio: x x+y calcola il valore di x+y e lo assegna ad x se x vale 5 e y vale 3, x x+y da ad x valore 8 Istruzioni Strutturate: 1) Composizione di Istruzioni: I I I 2 m 1 ; ; ; Esegui I 1, quando e terminata esegui I 2, quando e terminata esegui I m. X 1; y 2; x x+y; (x vale 3) y x*y (y vale 6)

28 2) Istruzioni Condizionali: ISTRUZIONI Strutturate If (C) then I; Es. if (x<=y) then z 0: Poni z=0 se x<=y; altrimenti lascia il valore di z inalterato

29 2) Istruzioni Condizionali: ISTRUZIONI Strutturate If (C) then I; C condizione, I azione Es. if (x<=y) then z 0: Poni z=0 se x<=y; altrimenti lascia il valore di z inalterato If (C) then I else I ; C condizione, I ed I azioni Es. Poni z=0 se x<=y; poni z=x-y se x>y if (x<=y) then z 0 else z x-y

30 Pseudocodice Primitivo Istruzione di assegnamento nome espressione Selezione condizionale if condizione then attività Esecuzione ripetuta while condizione do azione Procedura procedure nome Brookshear Informatica XI ed Capitolo 5 l 00/00/00 30

31 while ( Condizione ) Azione; ES. Calcolo n, risultato in y X 1; y 0; while (x<=n) {y y+x; x x+1} x y = =6 n n

32 repeat I while (C); X 1; Y 0; repeat {y y+x; x x+1 while (x<=n) y x (>1) 1+2=3 3 (>2) 1+2+3=6 4 (>3) n n+1 (>n)

33 repeat I while (C); X 1; Y 0; repeat {y y+x; x x+1 while (x<=n) n=0? y x (>1) 1+2=3 3 (>2) 1+2+3=6 4 (>3) n n+1 (>n)

34 repeat I while (C); X 0; Y 0; repeat {y y+x; x x+1 while (x<=n) n=0? y x (>0) 0+1=1 1 (>1) 0+1+2=3 2 (>2) n n+1 (>n)

35 Pseudocodice Primitivo Istruzione di assegnamento nome espressione Selezione condizionale if condizione then attività Esecuzione ripetuta while condizione do azione Procedura procedure nome Brookshear Informatica XI ed Capitolo 5 l 00/00/00 35

36 Algoritmo di ricerca sequenziale in pseudocodice Data una lista (Lista) ordinata vogliamo sapere se un elemento (ValoreCercato) è nella lista Lista ordinata: elementi ordinati in ordine decrescente da sinistra a destra Es: (1,2,6,11,12,15,21,34,56,88,97,123) è una lista ordinata di interi Es. (albero, erba, pianta, vaso) è una lista ordinata di nomi in ordine albabetico. (ricorda es. Ricerca scheda libro nello schedario della biblioteca) Brookshear Informatica XI ed Capitolo 5 l 00/00/00 36

37 Algoritmo di ricerca sequenziale in pseudocodice Data una lista (Lista) ordinata vogliamo sapere se un elemento (ValoreCercato) è nella lista (ricorda es. scheda libro) Brookshear Informatica XI ed Capitolo 5 l 00/00/00 37

38 Algoritmo di ricerca sequenziale in pseudocodice Data una lista (Lista) ordinata vogliamo sapere se un elemento (ValoreCercato) è nella lista Es.. Cerchiamo 34 nella Lista (1,2,6,11,12,15,21,34,56,88,97,123) Cerchiamo 38 nella Lista (1,2,6,11,12,15,21,34,56,88,97,123) Brookshear Informatica XI ed Capitolo 5 l 00/00/00 38

39 Algoritmo di ricerca sequenziale in pseudocodice Data una lista (Lista) ordinata vogliamo sapere se un elemento (ValoreCercato) è nella lista (ricorda es. scheda libro) ALGORITMO ITERATIVO: Brookshear Informatica XI ed Capitolo 5 l ripete stessa 00/00/00 serie istruzioni 39

40 Iterazione ripetere piu volte una sequenza di operazioni Componenti del controllo iterativo. Brookshear Informatica XI ed Capitolo 5 l 00/00/00 40

41 Iterazione ripetere piu volte una sequenza di operazioni Ordinamento alfabetico della lista: Fred, Alex, Diana, Byron e Carol. Brookshear Informatica XI ed Capitolo 5 l 00/00/00 41

42 Algoritmo di ordinamento per inserimento espresso in pseudocodice. Brookshear Informatica XI ed Capitolo 5 l 00/00/00 42

43 Scrivere un algoritmo in pseudocodice per calcolare il massimo di una sequenza di valori. Più precisamente, scrivere una procedura max(lista) che restituisce il massimo valore in Lista, dove si assume che Lista non sia vuota e che i suoi elementi siano numeri interi positivi. Scrivere un algoritmo che calcoli il prodotto dei primi n numeri naturali. Sia Lista una lista contenente n numeri interi. Scrivere un algoritmo che calcoli la somma degli elementi di Lista. Ricorda: while (condizione) azione ES. Calcolo n, risultato in y X 1; y 0; while (x<=n) {y y+x; x x+1} 43

44 Sia A una lista contenente n numeri interi positivi (ed A[i] l elemento i-mo della lista). Si consideri il seguente algoritmo somma = 0; i = 1; A[n+1] = 10; while (A[i] < 10) i := i + 1; if (i <= n ) somma = somma +A[i] Qual è il valore di somma al termine del ciclo? Ricorda: while (condizione) azione ES. Calcolo n, risultato in y X 1; y 0; while (x<=n) {y y+x; x x+1} 44

45 Chiamate a procedure L esecuzione di una procedura conduce all esecuzione di un altra procedura ES. ProceduraA(n) if (n>100) then restituisci 0 else esegui PorceduraB(n) ProceduraB(n) c=0; while (n<100) do {n=2*n; c=c+1;} restituisci c; 45

46 Strutture ricorsive L esecuzione di una procedura conduce all esecuzione della stessa procedura su diverso input 46

47 Es. Calcolo di n! =1*2*3* *n Strutture ricorsive Base. 1!=1 In generale n!= (n-1)! * n = (n-2)! *(n-1)* (n) = (n-3)! * (n-2) *(n-1)* (n) =1*2* (n-2) *(n-1)* (n) fact(n) { if (n<=1) then restituisci 1 /*Base*/ else restituisci n * fact(n-1); 47

48 RICORSIONE L esecuzione di una procedura conduce all esecuzione della stessa procedura su diverso input Vengono avviate attivazioni multiple della procedura Di queste tutte attendono il completamento dell ultima (caso base) che è quella che viene effettivamente eseguita. fact(n) { if (n<=1) then restituisci 1 /*Caso Base - termina*/ else restituisci n * fact(n-1) }

49 RICERCA BINARIA Applicazione della nostra strategia per la ricerca della voce John in una lista ordinata. Brookshear Informatica XI ed Capitolo 5 l 00/00/00 49

50 Prima bozza della tecnica di ricerca binaria: Cerchiamo il valore ElementoCercato nella lista ordinata Lista Brookshear Informatica XI ed Capitolo 5 l 00/00/00 50

51 Algoritmo binario di ricerca in pseudocodice Cerchiamo il valore ElementoCercato nella lista ordinata Lista Brookshear Informatica XI ed Capitolo 5 l 00/00/00 51

52 Cerchiamo Bill nella lista Alice Bill Carol David Evelyn Fred George Brookshear Informatica XI ed Capitolo 5 l 00/00/00 52

53 Cerchiamo David nella lista Alice Carol Evelyn Fred George Brookshear Informatica XI ed Capitolo 5 l 00/00/00 53

54 Brookshear Informatica XI ed Capitolo 5 l 00/00/00 54

55 Tempo di computazione (Running Time) di programmi ANALISI: analizza il r.t. di un dato programma Si raggruppano input per dimensione (es. ordinamento: dimensione= numero elementi da ordinare, sisteme di n equazioni in n incognite: dimensione=n) Running time: funzione T(n), con n=dimensione input, che rappresenta il numero di istruzioni semplici usate dall algoritmo Tempo effettivo dipende da vari paramentri: velocità del processore usato, compilatore,.

56 Tempo di computazione (Running Time) di programmi Worst case (caso peggiore): su diversi input di stessa dimensione n si possono avere r.t. differenti T(n)= max tempo su qualsiasi input di dimensione n Es. ricerca iterativa di un elemento in una lista (dimensione=n = elementi nella lista) caso peggiore elemento non presente

57 Tempo di computazione (Running Time) di programmi Confronto di r.t. Dato un problema consideriamo 2 algoritmi A e B con r.t. T (n) e T (n) T (n)=100n T (n)=2n 2 T (n) n<50, T (n) < T (n) T (n) n>50, T (n) > T (n) n=100, n=1000, T (n) = 2 T (n) T (n) = 20 T (n) n

58 Tempo di computazione (Running Time) di programmi T (n)=100n T (n)=2n 2 Unità di tempo= 1ms (millisec) 1000 operazioni/sec sec (1000ms) max n per A max n per B (100n=1000*sec) ( 2n 2 =1000*sec)

59 Tempo di computazione (Running Time) di programmi T (n)=100n T (n)=2n 2 Unità di tempo= 1ms (millisec) 1000 operazioni/sec sec (1000ms) max n per A max n per B (100n=1000*sec) ( 2n 2 =1000*sec) Se calcolatori diventano 100 volte più veloci (unità di tempo =1/100 di ms operazioni/sec) In 10 sec A passa da n=100 ad n=10000 (*100) B passa da n=70 ad n=707 (*10)

60 Notazione Q-grande e r.t. approssimato Dato un programma ed un input, r.t. dipende ancora da 1. Calcolatore usato (velocità di esecuzione istruzioni) 2. Compilatore (numero istruzioni macchina/istruzione C) Quindi non ha senso parlare di tempo in sec per analizzare un algoritmo.

61 Notazione Q-grande e r.t. approssimato Dato un programma ed un input r.t. dipende ancora da 1. Calcolatore usato (velocità di esecuzione istruzioni) 2. Compilatore (numero istruzioni macchina/istruzione C) Quindi non ha senso parlare di tempo in sec per analizzare un algoritmo. Per nascondere effetti di 1. e 2. si usa la notazione Θ-grande (big-theta) che ignora le costanti Es. 4m-1=Q(m) (ignorando la costante moltiplicativa 4 e quella additiva 1)

62 Efficienza degli Algoritmi Misurata attraverso il numero di istruzioni eseguite Big theta notation: Utilizzata per rappresentare classi di efficienza Esempio: Insertion sort è Θ(n 2 ) Analisi del caso migliore (Best), del caso peggiore (worst) e del caso medio (average) Applicazione dell ordinamento per inserimento in una situazione di caso pessimo. Brookshear Informatica XI ed Capitolo 5 l 00/00/00 62

63 Algoritmo di ordinamento per inserimento: analisi del caso pessimo. Brookshear Informatica XI ed Capitolo 5 l 00/00/00 63

64 Algoritmo di ricerca binaria: analisi del caso pessimo. Brookshear Informatica XI ed Capitolo 5 l 00/00/00 64

65 65

66 Esercizi RICORSIONE Scrivere un algoritmo in pseudocodice per calcolare il massimo di una sequenza di valori. Più precisamente, scrivere una procedura max(lista) che restituisce il massimo valore in Lista, dove si assume che Lista non sia vuota e che i suoi elementi siano numeri interi positivi. Scrivere un algoritmo che calcoli il prodotto dei primi n numeri naturali. Sia L una lista contenente n numeri interi. Scrivere un algoritmo che calcoli la somma degli elementi di L. Qual è il risultato di emmecidi(18,24), dove emmecidi è la seguente procedura? procedure emmecidi(x,y) if (X = Y) then return X else if (X > Y) then return emmecidi(x-y, Y) else return emmecidi(x, Y-X) 66

Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi.

Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi. Algoritmi Un tema centrale dell informatica è lo studio degli algoritmi. Ora nostro obiettivo sarà quello di esplorare a sufficienza questa materia fondamentale per poter capire e apprezzare appieno l

Подробнее

ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo

ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo INPUT: dati iniziali INPUT: x,y,z AZIONI esempio: Somma x ed y

Подробнее

Introduzione agli Algoritmi

Introduzione agli Algoritmi Introduzione agli Algoritmi Informatica Sara Zuppiroli A.A. 2012-2013 Informatica () Introduzione agli Algoritmi A.A. 2012-2013 1 / 25 Risoluzione dei problemi Dalla descrizione del problema all individuazione

Подробнее

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

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio) Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande

Подробнее

L ELABORATORE ELETTRONICO

L ELABORATORE ELETTRONICO L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti

Подробнее

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito

Подробнее

Algoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo

Algoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo 1 Cos è l informatica? L informatica è la scienza della rappresentazione e dell elaborazione dell informazione Algoritmi e loro proprietà Proprietà formali degli Algoritmi Efficienza rispetto al tempo

Подробнее

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Подробнее

Corso di Informatica di Base

Corso di Informatica di Base Corso di Informatica di Base A.A. 2011/2012 Algoritmi e diagrammi di flusso Luca Tornatore Cos è l informatica? Calcolatore: esecutore di ordini o automa Programma: insieme di istruzioni che possono essere

Подробнее

Introduzione alla programmazione strutturata

Introduzione alla programmazione strutturata FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Prof. ELIO TOPPANO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio

Подробнее

L ELABORATORE ELETTRONICO!

L ELABORATORE ELETTRONICO! L ELABORATORE ELETTRONICO! Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti

Подробнее

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi Informatica Generale Andrea Corradini 12 - Gli algoritmi e la risoluzione di problemi Sommario Che significa risolvere un problema? Algoritmi e programmi Rappresentazione di algoritmi Lo pseudocodice Primitive

Подробнее

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la

Подробнее

Università degli Studi di Verona. Algoritmie Diagrammidiflusso. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie

Università degli Studi di Verona. Algoritmie Diagrammidiflusso. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie Università degli Studi di Verona Dipartimento di Biotecnologie Laurea in Biotecnologie Corso di Informatica2014/2015 Algoritmie Diagrammidiflusso Gennaio 2015 - Sergio Marin Vargas Problemi e soluzioni

Подробнее

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

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell

Подробнее

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza

Подробнее

Scrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica

Scrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica FODAMETI DI IFORMATICA Prof. PIER LUCA MOTESSORO Prof. ELIO TOPPAO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio Toppano

Подробнее

Laboratorio di Programmazione

Laboratorio di Programmazione Laboratorio di Programmazione Laurea in Bioinformatica Docente: Carlo Drioli Web: www.scienze.univr.it/fol/main?ent=oi&id=39990 Programmazione: Dati Strutture di controllo Algoritmi Materiale tratto dai

Подробнее

Rappresentazione degli algoritmi

Rappresentazione degli algoritmi Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti

Подробнее

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1 CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1 Lezione 1 (Introduzione e Definizioni) Docenti Docente: Prof. Michele Colajanni Lezioni (Aula IV): martedì 10:00-12:45 Esercitazioni (Laboratorio): mercoledì

Подробнее

Programmazione I. Fondamenti di programmazione. Problemi, Algoritmi, Diagrammi di flusso

Programmazione I. Fondamenti di programmazione. Problemi, Algoritmi, Diagrammi di flusso Programmazione I Fondamenti di programmazione ( Lezione I ) Problemi, Algoritmi, Diagrammi di flusso Fabrizio Messina [email protected] www.dmi.unict.it/~messina Algoritmo Dato un problema, un algoritmo

Подробнее

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota Corso di Problemi ed algoritmi Ing Pasquale Rota Argomenti Problemi ed algoritmi Proprietà degli algoritmi Pseucodice Diagrammi di flusso Problemi ed algoritmi - Ing. Pasquale Rota 2 Proprietà degli algoritmi

Подробнее

Formalismi per la descrizione di algoritmi

Formalismi per la descrizione di algoritmi Formalismi per la descrizione di algoritmi Per descrivere in passi di un algoritmo bisogna essere precisi e non ambigui Il linguaggio naturale degli esseri umani si presta a interpret non univoche Si usano

Подробнее

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla

Подробнее

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 12 Array e Oggetti A. Miola Dicembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Array e Oggetti 1 Contenuti Array paralleli

Подробнее

Diagrammi di flusso. Un metodo per rappresentare graficamente gli algoritmi. sotto programma. Input/ Output. Start. predicato Elaborazione Stop

Diagrammi di flusso. Un metodo per rappresentare graficamente gli algoritmi. sotto programma. Input/ Output. Start. predicato Elaborazione Stop Diagrammi di flusso Un metodo per rappresentare graficamente gli algoritmi. Input/ Output sotto programma Start predicato Elaborazione Stop La programmazione strutturata Un algoritmo è strutturato in blocchi

Подробнее

Algoritmi e Programmi

Algoritmi e Programmi Algoritmi e Programmi Algoritmi e Programmi Le azioni che si compiono ogni giorno sono finalizzate alla risoluzione di problemi. Problema di elaborazione Insieme dati di partenza Risultato ricerca Algoritmi

Подробнее

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,

Подробнее

Sistemi di Elaborazione delle Informazioni

Sistemi di Elaborazione delle Informazioni SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2016/2017 1 I linguaggi di programmazione e gli

Подробнее

Problemi di ordinamento

Problemi di ordinamento Problemi di ordinamento Input: una sequenza di n numeri a 1, a 2,..., a n ; Output: una permutazione a 1, a 2,..., a n di a 1, a 2,..., a n tale che a 1 a 2... a n. Generalmente, la sequenza è rappresentata

Подробнее

Dal problema all algoritmo

Dal problema all algoritmo Dal problema all algoritmo Un esempio di problema Problema Come si cucina un uovo al burro? Soluzione Far sciogliere in un tegamino 20 g. di burro, quando il burro assume un colore dorato rompere il guscio

Подробнее

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) 1 LEZIONE 9 ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) Laboratorio di Informatica per l Educazione A. A. 2014/2015 IN SINTESI (ELABORAZIONE) Con i COMPUTER, le macchine diventano

Подробнее

I Tipi di Dato Astratto

I Tipi di Dato Astratto I Tipi di Dato Astratto Sommario Cosa sono le Strutture Dati Astratte? Le strutture dati Le operazioni Come scegliere fra varie implementazioni? Quale è la questione? Come organizzare (strutturare) i dati

Подробнее

Cosa si intende con stato

Cosa si intende con stato Il concetto di stato Cosa si intende con stato I una particolare configurazione delle informazioni di una macchina, che in qualche modo memorizza le condizioni in cui si trova, e che cambia nel tempo passando

Подробнее

Il concetto di calcolatore e di algoritmo

Il concetto di calcolatore e di algoritmo Il concetto di calcolatore e di algoritmo Elementi di Informatica e Programmazione Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Informatica

Подробнее

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura [email protected] 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina

Подробнее

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti

Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 27 marzo 2012 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,

Подробнее

Analisi algoritmi ricorsivi e relazioni di ricorrenza

Analisi algoritmi ricorsivi e relazioni di ricorrenza Analisi algoritmi ricorsivi e relazioni di ricorrenza Punto della situazione Finora abbiamo affrontato: il tempo di esecuzione di un algoritmo, l analisi asintotica con le notazioni asintotiche e la tecnica

Подробнее

Problemi, algoritmi, calcolatore

Problemi, algoritmi, calcolatore Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione

Подробнее

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Introduzione al Corso Maria Rita Di Berardini (Camerino), Emanuela Merelli (Ascoli) 1 1 Scuola di Scienze e Tecnologie - Sezione di Informatica Università di Camerino Parte I Il concetto di Algoritmo Il

Подробнее

Dall algoritmo al programma

Dall algoritmo al programma Dall algoritmo al programma Il concetto di algoritmo Un algoritmo è una sequenza di passi necessari per risolvere un problema o eseguire una computazione In alcuni casi, lo stesso problema/computazione

Подробнее

Laboratorio di Python

Laboratorio di Python Problem solving, Ricorsione, Università di Bologna 13 e 15 marzo 2013 Sommario 1 2 3 4 Errore di semantica Esercizio def vocali(s): voc='' for c in s: if c in 'aeiou': voc=voc+c return voc Cerchiamo di

Подробнее

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Introduzione alla programmazione

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Introduzione alla programmazione UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA Introduzione alla programmazione Riferimenti Emanuele Goldoni Laboratorio Reti (MN) Tel. 0376-286234 E-mail: [email protected] Slide sul sito

Подробнее

Esercitazione 3. Espressioni booleane I comandi if-else e while

Esercitazione 3. Espressioni booleane I comandi if-else e while Esercitazione 3 Espressioni booleane I comandi if-else e while Esercizio Si consideri la seguente istruzione: if (C1) if (C2) S1; else S2; A quali delle seguenti interpretazioni corrisponde? if (C1) if

Подробнее

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Lez. 8 La Programmazione Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Dott. Pasquale De Michele Dott. Raffaele Farina Dipartimento di Matematica e Applicazioni Università di Napoli

Подробнее

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

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science) INFORMATICA Cosa è l informatica Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science) E una scienza E una tecnologia Cosa può essere automatizzato nell

Подробнее

MODULO 07. La soluzione dei problemi mediante gli algoritmi

MODULO 07. La soluzione dei problemi mediante gli algoritmi MODULO 07 La soluzione dei problemi mediante gli algoritmi MODULO 07 Unità didattica 02 Impariamo a fare i diagrammi a blocchi In questa lezione impareremo: come descrivere l algoritmo risolutivo utilizzando

Подробнее

Esercizi su alberi binari

Esercizi su alberi binari Esercizi su alberi binari Esercizi svolti: Determinazione nodi contenti verifica completezza verifica quasi completezza lunghezza del cammino interno determinazione ultima foglia in un quasi completo verifica

Подробнее

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl Approfondimento 2.1 Non è questo il testo dove trattare esaurientemente queste tecniche semantiche. Ci accontenteremo di dare un semplice esempio delle tecniche basate sui sistemi di transizione per dare

Подробнее

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione Sommario Problemi e soluzioni Definizione informale di algoritmo e esempi Proprietà degli algoritmi Input/Output, Variabili Algoritmi senza input o output 1 2 Problema Definizione (dal De Mauro Paravia):

Подробнее

PROGRAMMAZIONE STRUTTURATA

PROGRAMMAZIONE STRUTTURATA PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:

Подробнее

Lezione 8. Soluzione di un problema Problema. Soluzione di un problema. Comprensione del Problema. Analisi. Introduzione agli algoritmi

Lezione 8. Soluzione di un problema Problema. Soluzione di un problema. Comprensione del Problema. Analisi. Introduzione agli algoritmi Lezione 8 Introduzione agli algoritmi Lezione tratta dal libro: D. Sciuto, G. Buonanno, W. Fornaciari, L. Mari Introduzione ai sistemi informatici Seconda Edizione, McGraw-Hill Capitolo 2: La formalizzazione

Подробнее

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi e Strutture Dati Informazioni sul corso + Un introduzione informale agli algoritmi Domenico Fabio Savo 1 Domenico Fabio Savo Email: [email protected] Web: http://www.dis.uniroma1.it/~savo

Подробнее

10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate

10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 10 STRUTTURE DI CONTROLLO REPEAT E WHILE Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II

Подробнее

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

Подробнее

Indice. Prefazione. 3 Oggetti e Java 53

Indice. Prefazione. 3 Oggetti e Java 53 Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware

Подробнее

Algoritmi e diagrammi di flusso versione biennio

Algoritmi e diagrammi di flusso versione biennio Algoritmi e diagrammi di flusso versione biennio Pablo Genova [email protected] I. I. S. Angelo Omodeo Mortara Indirizzo Tecnico-Economico A. S. 2015 2016 Cos'è un algoritmo? Algoritmo: procedimento

Подробнее

Definizione FONDAMENTI DI INFORMATICA. Esempio di algoritmo: determinare il maggiore di due numeri interi x, y. Proprietà degli algoritmi

Definizione FONDAMENTI DI INFORMATICA. Esempio di algoritmo: determinare il maggiore di due numeri interi x, y. Proprietà degli algoritmi Università degli Studi di Cagliari Corsi di Laurea in Ingegneria Chimica e Ingegneria Meccanica FONDAMENTI DI INFORMATICA http://www.diee.unica.it/~marcialis/fi A.A. 201/2017 Docente: Gian Luca Marcialis

Подробнее

Lezioni di Informatica di Base per la Facoltà di Lettere e Filosofia. Algoritmi

Lezioni di Informatica di Base per la Facoltà di Lettere e Filosofia. Algoritmi Università degli Studi di Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica, Meccanica Lezioni di Informatica di Base per la Anno Accademico 2012/20103 Docente: ing. Salvatore Sorce Algoritmi

Подробнее

LABORATORIO DI INFORMATICA

LABORATORIO DI INFORMATICA LABORATORIO DI INFORMATICA Corso di laurea in Scienze della Formazione Primaria a.a.2014/2015 A cura del Prof. Sergio Miranda 2 LEZIONE N.6 Algoritmi GLI ALGORITMI (1/5) Un algoritmo è una sequenza di

Подробнее

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Algoritmi Ricorsivi e Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 I conigli di Fibonacci Ricerca Binaria L isola dei conigli

Подробнее

Tempo e spazio di calcolo (continua)

Tempo e spazio di calcolo (continua) Tempo e spazio di calcolo (continua) I numeri di Fibonacci come case study (applichiamo ad un esempio completo le tecniche illustrate nei lucidi precedenti) Abbiamo introdotto tecniche per la correttezza

Подробнее

Capitolo 3 L elaborazione e la strutturazione dell informazione

Capitolo 3 L elaborazione e la strutturazione dell informazione Capitolo 3 L elaborazione e la strutturazione dell informazione Problemi e algoritmi Definire il problema Eliminare le ambiguità nella formulazione del problema Individuare il risultato che si vuole ottenere,

Подробнее

Espressione composta da: Operatori Operandi (costanti, variabili, )

Espressione composta da: Operatori Operandi (costanti, variabili, ) Cenni linguaggio C: Espressioni Espressione: formula (regola di calcolo) che specifica sempre un valore Esempio: espressione algebrica: z=x* y, (x+3)/5 Espressione composta da: Operatori Operandi (costanti,

Подробнее

Teoria dell Informazione

Teoria dell Informazione Corso di Laurea Magistrale in Scienze dell Informazione Editoriale, Pubblica e Sociale Teoria dell Informazione Cosa è l informazione L informazione è qualcosa che si possiede e si può dare ad un altro

Подробнее