Informa2ca I. 4 Algoritmi e Linguaggi di Programmazione. 11, 16 Aprile 2013

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Informa2ca I. 4 Algoritmi e Linguaggi di Programmazione. 11, 16 Aprile 2013"

Transcript

1 Informa2ca I 4 Algoritmi e Linguaggi di Programmazione 11, 16 Aprile 2013 Corso di Laurea in Matema0ca e applicazioni Università di Camerino A.A. 2012/2013

2 Cos è un algoritmo? Un algoritmo è una procedura generale, finita, non ambigua ed eseguibile che lavora su da< d ingresso fornendo alcuni da< d uscita. procedura: una sequenza di passi computazionali o istruzioni generale: il metodo deve risolvere una classe di problemi e non un singolo problema (ad esempio deve essere in grado di calcolare l'area di tun i triangoli e non solo quella di un par<colare triangolo) finita: le istruzioni che la compongono ed il numero di volte che ogni azione deve essere eseguita devono essere fini< non ambigua: ogni istruzione deve essere definita in modo preciso ed univoco, senza alcuna ambiguità sul significato dell operazione eseguibile: deve esistere un agente di calcolo (umano o macchina) in grado di eseguire ogni istruzione in un tempo finito

3 Determinismo e non determinismo Algoritmo determinis2co: per ogni istruzione esiste, a parità di da< d'ingresso, un solo passo successivo; in pra<ca esiste uno e un solo possibile percorso (o path) dell algoritmo e quindi con gli stessi input produce gli stessi output Algoritmo non determinis2co: con<ene almeno un istruzione che ammete diversi passi successivi: può produrre output diversi con gli stessi input, compiendo diversi path di esecuzione. Es. Algoritmi probabilis0ci: per un istruzione, più passi successivi con associata una probabilità di essere scel< (es. lancio della moneta)

4 Storia E2mologia: Il termine algoritmo significa procedimento di calcolo Deriva dal termine la<no medievale algorismus, che a sua volta deriva dal nome del matema<co persiano Abu Jafar Mohammad ibn- Musa al- Khowarismi, vissuto nel IX (?) secolo, che pubblicò l opera Kitab Al- jabrwal Muquabala (L arte di numerare ed ordinare le par< in tuto) da cui deriva il nome algebra Abu Jafar Mohammad ibn- Musa al- Khowarismi

5 Storia Algoritmi in uso ancora oggi sono sta< studia< da matema<ci greci 2000 anni fa, es. Algoritmo di Euclide per il MCD La teoria degli algoritmi ha iniziato a stabilizzarsi agli inizi del XX secolo,mentre le tecniche di progetazione di algoritmi e di analisi di correbezza e di efficienza si sono evolute nella seconda metà del XX secolo grazie alla diffusione dei calcolatori eletronici Ovunque si impieghi un calcolatore occorrono algoritmi corren e efficien< che ne u<lizzino al massimo le potenzialità.

6 Macchina di Turing (MdT), accenno Modello teorico di calcolatore (umano o eletronico) Ispirazione: Impiegato diligente à svolge con cura gli ordini, niente più ObieNvo: studio della calcolabilità, ovvero capire quali algoritmi possono essere calcola< TESI DI CHURCH - TURING Un algoritmo è calcolabile se esiste una macchina di Turing in grado di calcolarlo. MdT: modello universale di calcolatore.

7 Macchina di Turing (MdT), accenno Dal punto di vista fisico: Nastro composto da un numero infinito di caselle, ognuna delle quali è in grado di memorizzare un solo simbolo di un prefissato alfabeto Tes2na, in grado di leggere e scrivere simboli sul nastro Unità di controllo, responsabile per lo spostamento della tes<na, con<ene il programma (insieme di istruzioni) e man<ene lo stato della macchina

8 Macchina di Turing (MdT), accenno Formalmente: Una MdT è una tupla (Q, A, δ, q 0 ), in cui: Q insieme finito di sta2, q 0 stato iniziale A alfabeto dei simboli (compresivo di simbolo bianco *) δ: Q x A à Q x A x {- 1, 0, 1} funzione di transizione Una transizione del <po (q,a) - > (q,a, m) ha la seguente seman<ca: Se sono nello stato q e sto leggendo a nella casella corrente, allora vado nello stato q, scrivo a al posto di a e mi sposto di m caselle Input di un algoritmo: simboli scrin nel nastro allo stato iniziale Arresto: una macchina M converge su un input w (M ê w) se si arriva a uno stato q e un simbolo a, t.c. δ(q,a) non è definita. Altrimen< diverge (Mé w) Output: I simboli rimas< sul nastro

9 Esempio (NOT con MdT) A = {0,1,*} INPUT: sequenza di n simboli {0,1} δ (q0, 0) - > (q0, 1, +1) (q0, 1) - > (q0, 0, +1) * q0

10 Esempio (NOT con MdT) A = {0,1,*} INPUT: sequenza di n simboli {0,1} δ (q0, 0) - > (q0, 1, +1) (q0, 1) - > (q0, 0, +1) * q0

11 Esempio (NOT con MdT) A = {0,1,*} INPUT: sequenza di n simboli {0,1} δ (q0, 0) - > (q0, 1, +1) (q0, 1) - > (q0, 0, +1) * q0

12 Esempio (NOT con MdT) A = {0,1,*} INPUT: sequenza di n simboli {0,1} δ (q0, 0) - > (q0, 1, +1) (q0, 1) - > (q0, 0, +1) δ(q0,*) non è definita La macchina si arresta sull input 010 e ha prodobo come output * q0

13 Esempio (successore on MdT) A = {0,1,*} INPUT: sequenza di n simboli {0,1} δ (q0, 0) - > (q0, 0, +1) (q0, 1) - > (q0, 1, +1) (q0, *) - > (q1, *, - 1) (q1, 0) - > (q3, 1, +1) (q1, 1) - > (q2, 0, - 1) (q2, 0) - > (q3, 1, 0) (q2, 1) - > (q2, 0, - 1) (q2, *) - > (q3, 1, 0) Verifichiamo con input = e con 11111

14 Come valu<amo un algoritmo? CORRETTEZZA (Risolve correbamente il problema?): un algoritmo si dice correto se, per ogni istanza di input, si ferma con l output correto/desiderato EFFICIENZA (Risolve il problema in maniera efficiente?): deve cioè fare un buon uso delle risorse a disposizione. (tempo o memoria). à analisi degli algoritmi e teoria della complessità Alcuni problemi non possono essere risol< in maniera efficiente Esempio: Knapsack problem (problema NP- completo) INPUT: uno zaino che sopporta un peso W e N oggen, ognuno dei quali caraterizzato da un peso w i e un valore c i. OUTPUT: una scelta degli oggen che massimizza il valore scegliere senza superare il peso sostenibile dallo zaino W.

15 Esempio: RiceTe come algoritmi Una riceta può essere vista come un algoritmo in cui: INPUT: ingredien< e utensili da cucina OUTPUT: il piato cucinato Algoritmo: CoBura spaghe_ Input: SpagheN, sale, pentola, fornello Output: SpagheN con Algoritmo: 1. MeTere l acqua nella pentola 2. MeTere la pentola sul fuoco 3. ATendere l ebollizione 4. BuTare gli spaghen 5. BuTare il sale 6. ATendere il tempo di cotura 7. Scolare gli spaghen

16 Esempio: Calcolo del MCD INPUT: Due naturali a e b OUTPUT: Il massimo comun divisore d di a e b Algoritmo banale: 1. Assegnare a d il minimo tra a e b 2. Se d divide sia a e b, allora res<tuisco d 3. Altrimen< decremento d. Passo 2. Algoritmo di Euclide: 1. Assegnare a a 0 ß a e a b 0 ß b (supponendo b a) 2. Assegnare a i ß 1 3. a i ß b i- 1 e b i ß a n- 1 mod b n Se b i = 0, allora res<tuisco a i. 5. Altrimen< incremento i, i ß i + 1. Passo 3. a i = q i b i + b i+1

17 CorreTezza dell algoritmo di Euclide 1. Esiste N t.c. b N = 0? Sì esiste. InfaN risulta b n+1 < b n per ogni n (essendo il resto della divisione tra a n e b n ), quindi la successione dei b n è stretamente decrescente, e quindi esiste un N tale che b N = Per tale N, a N è MCD(a,b)? Sì, dimostriamo in due passi. a) a N divide a e b? Sì, perchè a N =b N- 1 a N- 1 = q N- 1 b N- 1 (infan l ul<mo resto è 0). Inoltre a N a N- 2 = q N- 2 b N- 2 + b N- 1, perchè divide sia b N- 1 (=a N ) che q N- 2 b N- 2 (a N a N- 1 =b N- 2 ). Così proseguendo si ha che a N divide tun i res< successivi fino ad a e b. b) a N è il massimo tra i divisori? Sì, dimostriamo che il massimo comun divisore d di a e b divide anche a N (e quindi a N =d è l MCD). a e b possono essere scrin come a = md e b = nd, con m e n naturali. Allora d divide anche il primo resto a 2 =b 1 =a q 0 b = md q 0 nd = (m q 0 n)d. Analogalmente d divide anche a 3 =b 2 =a 1 - q 1 b 1 = b q 1 a 2 (perchè divide sia b che a 2 ), e così via. Quindi d a N, il che implica che d a N. Ma d è il massimo tra i divisori, quindi d a N. à d=a N, a N è l MCD.

18 Algoritmo di Euclide in azione a = 1071 b = 462 Passo a i = q i b i + b i+1 a i e b i = q b 1 a 0 = 1071, b 0 =

19 Algoritmo di Euclide in azione a = 1071 b = 462 Passo a i = q i b i + b i+1 a i e b i = q b 1 a 0 = 1071, b 0 = = q b 2 a 1 = 462, b 1 =

20 Algoritmo di Euclide in azione a = 1071 b = 462 Passo a i = q i b i + b i+1 a i e b i = q b 1 a 0 = 1071, b 0 = = q b 2 a 1 = 462, b 1 = = q b 2 a 2 = 147, b 2 =

21 Algoritmo di Euclide in azione a = 1071 b = 462 Passo a i = q i b i + b i+1 a i e b i = q b 1 a 0 = 1071, b 0 = = q b 2 a 1 = 462, b 1 = = q b 3 a 2 = 147, b 2 = 21 3 a 3 = 21, b 3 = 0 MCD(1071,462) = 21 Informa<ca I 3 Algoritmi A.A. 2012/2013

22 Codifica tramite flowchart I diagrammi di flusso (flowcharts) sono una notazione grafica per la codifica degli algoritmi Blocchi di inizio e fine algoritmo Input / Output Blocco di input/output Istruzione Blocco di istruzione Blocco condizionale (valuta una condizione, abilitando il percorso T (true) o F (false)

23 SpagheN flowchart

24 The friendship algorithm Jim Parsons aka Sheldon Cooper

25 Flowchart per l algoritmo di Euclide

26 Algoritmi e programmi Gli algoritmi vengono descrin tramite programmi, che si avvalgono di istruzioni e costrun dei linguaggi di programmazione per essere esegui< da calcolatori eletronici I programmi sono formulazioni concrete di algoritmi astra_ che si basano su par<colari rappresentazioni dei da<, e u<lizzano operazioni di manipolazione dei da<, messe a disposizione da uno specifico linguaggio di programmazione Le proprietà degli algoritmi sono talmente fondamentali, generali e robuste, da essere indipenden< dalle carateris<che di specifici linguaggi di programmazione o di par<colari calcolatori eletronici

27 Quale linguaggio? Linguaggi ad alto livello, vicini al programmatore, i più adan per codificare algoritmi astran Pseudocodice (didanco, generico) Java C, C++ Fortran PHP Javascript...

28 Variabili Una variabile iden<fica una porzione di memoria (generalmente RAM) des<nata a contenere dei da<, che possono essere modifica2 nel corso dell'esecuzione di un programma Ha associato un nome simbolico (nome della variabile) e univoco che permete di accedere al contenuto della variabile. Il nome è una sequenza di carateri alfanumerici, che inizia con un caratere alfabe<co Diversa dalle variabili in matema<ca, non necessariamente fa parte di un equazione o formula var x; Dichiarazione di una variabile con nome x

29 Costan< Una costante iden<fica una porzione di memoria des<nata a contenere dei da<, che non possono essere modifica< nel corso dell'esecuzione di un programma Ha associato anch essa un nome simbolico const x = 10; Dichiarazione di una costante con nome x e valore 10

30 Tipi di dato elementari Variabili e costan< hanno associato un 2po di dato, che determina l insieme dei valori che una variabile può rappresentare le operazioni supportate sui da< Esempi: String (sequenza di carateri) var s1 = Hello ; const s2 = World ; Boolean (true, false) var t = true; const f = false; Number (numerico) const x = 10; var y = 5.23;

31 StruTure da< Il conceto di algoritmo è inscindibile da quello di dato: per risolvere un problema computazionale, occorre organizzare ed elaborare da< Un algoritmo può essere visto come un manipolatore di da2: a fronte di da< in ingresso che descrivono il problema producono da< in uscita come risultato del problema E fondamentale che i da< siano ben organizza< e strubura2 in modo che il calcolatore li possa elaborare efficientemente

32 StruTure da< La strubura da2 è un en2tà usata per organizzare un insieme di da2, insieme agli algoritmi per manipolare tali da2. L efficienza di tali algoritmi dipende dalla par<colare strutura da< Sono costruite a par<re dai <pi di dato elementari StruTura da< astrata (SDA): è una specifica della strutura e delle operazioni. Può avere diverse implementazioni. Cosa vogliamo? StruTura da< (concreta) (SD): è una strutura da< implementata (realizzata) concretamente in un linguaggio di prg. Come lo implemen<amo?

33 StruTure da< - Esempi StruTura Da<: Liste Pile Code Heaps Grafi... Algoritmi Inserimento Cancellazione Ricerca Ordinamento...

34 Espressioni Un'espressione è un costruto che combina valori, costan<, variabili, u<lizzando operatori e funzioni. Le espressioni servono per rappresentare calcoli a livello simbolico, e vengono valutate producendo a loro volta valori Le espressioni sono valutate secondo regole di precedenza e di associazione. L'ordine di precedenza tra operatori stabilito dal linguaggio può essere alterato mediante parentesi. Es. a + b 3 / a*(b%5) (a == blabla )!(b1 && b2)

35 Statement Uno statement il più piccolo elemento eseguibile di un programma, un istruzione. Si compone di espressioni, organizzate secondo una sintassi specifica (che con<ene espressioni, keywords, altri statement) La fine di uno statement è marcata da un ; Es. var x = 1; return x; {var z=y; x=x+z;} if(z!=x) z=x; else y=z;

36 Statement semplici Assegnamento: assegna a una variabile un espressione Es. x = y + 5; x = (y>=5)&&(z.substr(0,5)== Hello ); z = Hello World! ; Return statement: in una funzione, permete di res<tuire in output un espressione Es. return x; return x!=y;

37 Statement semplici Chiamata a funzione: si u<lizza per eseguire una funzione (metodo, rou<ne, sotoprogramma). Una funzione è caraterizzata da un nome simbolico, zero o più argomen2 di input, opzionalmente un argomento in output, res<tuito al chiamante atraverso il return statement, un blocco di statement che con<ene il codice della funzione (il corpo della funzione) var xtimesy = mul(x,y); function mul (arg0, arg1) {...codice... return arg0*argn; }

38 Statement semplici Chiamata a funzione: si u<lizza per eseguire una funzione (metodo, rou<ne, sotoprogramma). Una funzione è caraterizzata da un nome simbolico, zero o più argomen2 di input, opzionalmente un argomento in output, res<tuito al chiamante atraverso il return statement, un blocco di statement che con<ene il codice della funzione (il corpo della funzione) Nome Funzione var xtimesy = mul(x,y); function mul (arg0, arg1) {...codice... return arg0*arg1; } Chiamata a funzione Argomen2 in input Return statement

39 Statement compos< Uno statement composto, è uno statement che con<ene a sua volta altri statement Blocco di statement: con<ene zero o più statement racchiusi da { (begin block) e } (end block). Se composto da un singolo statement le parentesi graffe si possono ometere. Control flow statement: costrun che regolano il flusso di esecuzione del programma, ovvero se, quando, in quale ordine e quante volte le istruzioni del programma vanno eseguite

40 Control flow statement If Sintassi if (cond) block1 else block2 cond è un espressione booleana (ovvero si valuta in true o false) se cond è vera, si esegue il blocco di statement block1, altrimen< (else) si esegue block2 se non necessario, l else si può ometere

41 Control flow statement If Esempio var a = 3; var max = 2; var min = 1; if (a>max){ max = a; } else if(a<min){ min = a; } // a=3, max=3, min=1

42 Control flow statement Switch Sintassi switch (n){ case a: block1; break; case b: block2; break;... default: blockn; } n è un espressione che viene valutata inizialmente se il valore di n è a, allora eseguo il block1; se è uguale a b, eseguo il block2;...; nel caso in cui non è uguale a nessuno dei preceden< eseguo il blocco di default, blockn. l istruzione break serve per uscire dalla strutura di controllo

43 Control flow statement Switch Esempio switch (n){ case 0: isbinary = true; break; case 1: isbinary = true; break; default: isbinary = false; } In questo caso se n è 0 o 1, la variable booleana isbinary è messa a true. Altrimen<, è messa a false. L istruzione break non va dimen<cata, altrimen< non si esce dallo switch e il blocco default viene eseguito comunque, anche quando uno dei cases è incontrato

44 Control flow statement While Sintassi while (cond) block cond è un espressione booleana finchè cond è vera, si esegue il blocco di statement block. A fine blocco si rivaluta la condizione.

45 Control flow statement While Esempio var a = 3; while (a > 0){ a--; //equivalente a a=a-1 } // alla fine, a=0

46 Control flow statement Do- While Sintassi do block while (cond) è come il while con la differenza che block viene eseguito prima di valutare cond

47 Control flow statement For Sintassi for (stmt1; cond; stmt2) block cond è un espressione booleana è come il while, con la differenza che prima dell entrata nel ciclo si esegue stmt1, e alla fine del blocco prima di rivalutare cond si esegue stmt2.

48 If - Esempio Creare una funzione che res2tuisce il minimo tra due argomen2 function min(a, b){ if(a<b) return a; else return b; } oppure function min(a, b){ if(a<b) return a; return b; }

49 While - Esempio Creare una funzione MCD che res2tuisce il massimo comun divisore (Euclide) tra due argomen2, e chiamarla con i valori 132 e 36. function MCD(a, b){ while(b!=0){ var r = a%b; a=b; b=r; } return a; }

50 For - Esempio Creare una funzione che prende in input 3 interi e che stampa (funzione print) tu_ gli interi tra a e b che sono mul2pli di c function multipli(a,b,c){ for(var i=a; i<=b; i++) if(i%c==0) print(i); }

Informatica I. 3 Algoritmi e Linguaggi di Programmazione. 16 Aprile 2012

Informatica I. 3 Algoritmi e Linguaggi di Programmazione. 16 Aprile 2012 Informatica I 3 Algoritmi e Linguaggi di Programmazione 16 Aprile 2012 Corso di Laurea in Matematica e applicazioni Università di Camerino A.A. 2011/2012 Cos è un algoritmo? Un algoritmo è una procedura

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1 Esempio: Leggere due interi positivi e calcolarne il massimo comun divisore. MCD(12, 8) = 4 MCD(12, 6) = 6 MCD(12, 7) = 1 Sfruttando direttamente la definizione di MCD osservazione: 1 MCD(m,n) min(m,n)

Dettagli

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

Dettagli

Rappresentazione con i diagrammi di flusso (Flow - chart)

Rappresentazione con i diagrammi di flusso (Flow - chart) Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo

Dettagli

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

Dettagli

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 messina@dmi.unict.it www.dmi.unict.it/~messina Algoritmo Dato un problema, un algoritmo

Dettagli

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132 JavaScript Core Language Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132 Condizioni L utilizzo di operatori relazionali e logici consente di formulare delle condizioni

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

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

Dettagli

Progetto e analisi di algoritmi

Progetto e analisi di algoritmi Progetto e analisi di algoritmi Roberto Cordone DTI - Università degli Studi di Milano Polo Didattico e di Ricerca di Crema Tel. 0373 / 898089 E-mail: cordone@dti.unimi.it Ricevimento: su appuntamento

Dettagli

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

Dettagli

Scaletta. Cenni di computabilità. Cosa fa un programma? Definizioni (1/2) Definizioni (2/2) Problemi e domande. Stefano Mizzaro 1

Scaletta. Cenni di computabilità. Cosa fa un programma? Definizioni (1/2) Definizioni (2/2) Problemi e domande. Stefano Mizzaro 1 Scaletta Cenni di computabilità Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 23 27 novembre 2013

Dettagli

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

Dettagli

Studio degli algoritmi

Studio degli algoritmi COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.2006/07 Prof. V.L. Plantamura Dott.ssa A. Angelini Studio degli algoritmi Dato un problema P, le problematiche riguardano: Sintesi

Dettagli

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso Unità Didattica 2 Linguaggio C Espressioni, Operatori e Strutture linguistiche per il controllo del flusso 1 Espressioni e assegnazioni Le espressioni sono definite dalla grammatica: espressione = variabile

Dettagli

Algoritmi e diagrammi di flusso versione biennio

Algoritmi e diagrammi di flusso versione biennio Algoritmi e diagrammi di flusso versione biennio Pablo Genova gallini.genova@gmail.com I. I. S. Angelo Omodeo Mortara Indirizzo Tecnico-Economico A. S. 2015 2016 Cos'è un algoritmo? Algoritmo: procedimento

Dettagli

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2014/2015

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2014/2015 Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.it AA 2014/2015 Ambiente di test Cercare PHP online per avere un interprete PHP Assegnamento

Dettagli

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]

Dettagli

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire:

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire: Sviluppo di programmi Per scrivere un programma C corretto bisogna: E ora, finalmente Si comincia! DD Cap. pp.4974 Analizzare il problema (input, output, casi estremali) 2. Progettare una soluzione (algoritmo)

Dettagli

Introduzione agli algoritmi e le stru1ure da2

Introduzione agli algoritmi e le stru1ure da2 Introduzione agli algoritmi e le stru1ure da2 Annalisa De Bonis Docente Annalisa De Bonis Studio 44, quarto piano, stecca 7 Email: debonis@dia.unisa.it URL: http://www.di.unisa.it/~debonis/ IASD a.a. 2015-2016

Dettagli

Concetti Introduttivi. Il Computer

Concetti Introduttivi. Il Computer Concetti Introduttivi Il Computer Introduzione Informazione Notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere Messaggio Tutto ciò che porta

Dettagli

Problemi e algoritmi. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05 (da U. de' Liguoro - Alg. & Spe. 03/04)

Problemi e algoritmi. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05 (da U. de' Liguoro - Alg. & Spe. 03/04) Problemi e algoritmi Il che cosa e il come Il che cosa ed il come Problema: descrive che cosa si deve calcolare Specifica (di un algoritmo): descrive che cosa calcola un algoritmo Algoritmo: descrive come

Dettagli

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2015/2016

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2015/2016 Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.it AA 2015/2016 Ambiente di test PHP online per avere un interprete PHP Php Online PHP Tester

Dettagli

Problemi e algoritmi. Il che cosa ed il come. Il che cosa ed il come. Il che cosa e il come

Problemi e algoritmi. Il che cosa ed il come. Il che cosa ed il come. Il che cosa e il come Problemi e algoritmi Il che cosa e il come Problema: descrive che cosa si deve calcolare Specifica (di un algoritmo): descrive che cosa calcola un algoritmo Algoritmo: descrive come effettuare un calcolo

Dettagli

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

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Programmi Un elaboratore riceve dei dati in ingresso, li elabora secondo una sequenza predefinita di operazioni e infine restituisce il risultato sotto forma

Dettagli

Elaboratore Elettronico

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 rre altri oggetti

Dettagli

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Algoritmi e programmazione Prof. Andrea Borghesan

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Algoritmi e programmazione Prof. Andrea Borghesan SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Algoritmi e programmazione Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento mercoledì, 14.00-15.30. Studio 34, dip. statistica Modalità esame:

Dettagli

Le Istruzioni di Controllo

Le Istruzioni di Controllo Lezione 10 Sistemi Informa.vi Aziendali a.a. 2008/2009 Qualsiasi problema di informa1ca può essere risolto eseguendo una serie di azioni in un ordine specifico. Algoritmi: Azioni da eseguire Ordine in

Dettagli

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

Dettagli

STRUTTURE DI CONTROLLO DEL C++

STRUTTURE DI CONTROLLO DEL C++ STRUTTURE DI CONTROLLO DEL C++ Le istruzioni if e else Le istruzioni condizionali ci consentono di far eseguire in modo selettivo una singola riga di codice o una serie di righe di codice (che viene detto

Dettagli

PROBLEMI ALGORITMI E PROGRAMMAZIONE

PROBLEMI ALGORITMI E PROGRAMMAZIONE PROBLEMI ALGORITMI E PROGRAMMAZIONE SCIENZE E TECNOLOGIE APPLICATE CLASSE SECONDA D PROGRAMMARE = SPECIFICARE UN PROCEDIMENTO CAPACE DI FAR SVOLGERE AD UNA MACCHINA UNA SERIE ORDINATA DI OPERAZIONI AL

Dettagli

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave

Dettagli

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

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da: Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da: http://it.wikipedia.org/wiki/al-khwarizmi Un

Dettagli

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

Dettagli

ALGORITMI: PROPRIETÀ FONDAMENTALI

ALGORITMI: PROPRIETÀ FONDAMENTALI ALGORITMI: PROPRIETÀ FONDAMENTALI Non si può risolvere un problema senza prima fissare un insieme di azioni, i di mosse elementari possibili per l'esecutore. Bisogna conoscerne le caratteristiche, le mosse

Dettagli

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.)

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.) Elaboratore Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni sui dati digitale l informazione è rappresentata in forma numerica

Dettagli

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

Dettagli

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

Dal Problema all Algoritmo. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Dal Problema all Algoritmo Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Cosa Impareremo Informazioni e codici Definizione e soluzione di un problema Individuazione dei dati Definizione

Dettagli

Informatica e Bioinformatica: Algoritmi

Informatica e Bioinformatica: Algoritmi Informatica e Bioinformatica: Algoritmi 20 Marzo 2014 Programmi Applicativi Programmi Applicativi Sistema Operativo (lezione 3) Macchina Hardware (lezione 1 e 2) La macchina hardware permette l esecuzione

Dettagli

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

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt); Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i

Dettagli

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

Dettagli

Programmazione in Java (I modulo)

Programmazione in Java (I modulo) Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto

Dettagli

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,

Dettagli

I costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni

I costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni Classi di istruzioni In maniera simile a quanto fatto per i dati, un linguaggio mette a disposizione dei costrutti per realizzare la parte esecutiva dell algoritmo. Questa consiste di: Leggi i valori di

Dettagli

Il Concetto di Algoritmo Corso di Informatica Laurea in Fisica

Il Concetto di Algoritmo Corso di Informatica Laurea in Fisica Il Concetto di Algoritmo Corso di Informatica Laurea in Fisica prof. ing. Corrado Santoro A.A. 2010-11 Esempio: risolviamo le equazioni di secondo grado ax 2 + bx + c = 0 La formula risolutiva è: x= b±

Dettagli

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

Dettagli

DESCRIZIONI RIGOROSE c7

DESCRIZIONI RIGOROSE c7 DESCRIZIONI RIGOROSE c7 Es. cucinare la pasta asciutta per una famiglia La descrizione rigorosa della strategia risolutiva prevede Analisi del problema (con chiara individuazione degli obiettivi e dei

Dettagli

COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI

COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.200.2005/06 Prof. V.L. Plantamura Dott.ssa A. Angelini Confronto di algoritmi Uno stesso problema può essere risolto in modi diversi,

Dettagli

Strutture di controllo iterative

Strutture di controllo iterative Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Introduzione Problema Scrivere un programma che acquisisca da standard input un intero

Dettagli

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi 0.1.1.1 Definire un algoritmo 1. Con il termine algoritmo si intende: a) il software utilizzato in un calcolatore b) l elenco finito di istruzioni necessario per risolvere un problema c) un elaboratore

Dettagli

Introduzione agli Algoritmi

Introduzione agli Algoritmi Introduzione agli Algoritmi Prof. Emanuela Fachini Contenuto del corso Motivazioni Qualche definizione iniziale Pagina del corso: http://twiki.di.uniroma1.it/ twiki/view/intro_algo/ad/webhome 1 Il libro

Dettagli

Informa(ca. Appun( della lezione 4

Informa(ca. Appun( della lezione 4 Informa(ca Appun( della lezione 4 L algoritmo di Euclide per l MCD Da( due numeri A e B, per trovare il loro MCD procedere nel seguente modo: 1. dividere il maggiore per il minore 2. se il resto è 0, il

Dettagli

LA METAFORA DELL UFFICIO

LA METAFORA DELL UFFICIO LA METAFORA DELL UFFICIO Lavagna di lavoro Lavagna di programma Sportello utenti Impiegato Capo Ufficio LAVAGNA DI LAVORO Chiamiamo variabili le posizioni sulla lavagna, identificate ognuna da un nome

Dettagli

print((math.floor(1345/10)%10); print (Math.floor(1345/100)%10); Le funzioni in JavaScript

print((math.floor(1345/10)%10); print (Math.floor(1345/100)%10); Le funzioni in JavaScript Funzioni Funzioni predefinite della libreria matematica Funzioni disponibili: Math.sqrt(x) radice quadrata Math.log(x) logaritmo naturale in base e di x Math.abs(x) valore assoluto di x Math.ceil(x) arrotonda

Dettagli

Cos è la programmazione?

Cos è la programmazione? La programmazione Cos è la programmazione? Termine usato per indicare le attività che trasformano l esigenza di risolvere un Problema in un Programma, inteso come sistema informatico capace di risolvere

Dettagli

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

Dettagli

Elementi di programmazione

Elementi di programmazione Fondamenti di Informatica per la Sicurezza a.a. 2003/04 Elementi di programmazione Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università

Dettagli

Tipo carattere. Campo di variabilità. Intervallo finito. Tipo. Dimensione (byte) char

Tipo carattere. Campo di variabilità. Intervallo finito. Tipo. Dimensione (byte) char Tipo carattere Finora abbiamo lavorato con valori numerici. I numeri costituiscono molta parte del lavoro dei computer, ma non tutta. I computer sono macchine per il trattamento dell informazione e l informazione

Dettagli

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

Dettagli

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

Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione. è uno strumento in grado di eseguire insiemi di azioni elementari. Esistono varie definizioni: Informatica Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione dell informazione.

Dettagli

Corso di Calcolatori Elettronici Un computer è un dispositivo in grado di eseguire dei calcoli e di prendere delle decisioni logiche.

Corso di Calcolatori Elettronici Un computer è un dispositivo in grado di eseguire dei calcoli e di prendere delle decisioni logiche. Corso di Calcolatori Elettronici Un computer è un dispositivo in grado di eseguire dei calcoli e di prendere delle decisioni logiche. APPUNTI SUL LINGUAGGIO C I computer elaborano i dati sotto il controllo

Dettagli

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

Dettagli

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO Rappresentazione degli algoritmi Problema Algoritmo Algoritmo descritto con una qualche notazione Programma Defne del procedimento

Dettagli

n Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

n Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Algoritmi 1 Cos è n Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati n Un algoritmo è un metodo per la soluzione di un problema adatto

Dettagli

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

Dettagli

Le strutture di controllo in C++

Le strutture di controllo in C++ Le strutture di controllo in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi di Napoli

Dettagli

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript Sommario Problema computazionale Sviluppo software Algoritmi Diagrammi di Flusso; Pseudo Codice Istruzioni Sequenziali, Condizionali, Cicliche; Javascript Il Problema computazionale È computazionale un

Dettagli

Corso di Fondamenti di Informatica Classi di istruzioni 2

Corso di Fondamenti di Informatica Classi di istruzioni 2 Corso di Informatica Classi di istruzioni 2 Anno Accademico 2010/2011 Francesco Tortorella Strutture di controllo Caratteristica essenziale degli algoritmi è la possibilità di decidere le operazioni da

Dettagli

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

Dettagli

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 francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina

Dettagli

Verifica parte IIB. Grafo di controllo. Criteri di selezione per test strutturali (white box) Test. Rif. Ghezzi et al

Verifica parte IIB. Grafo di controllo. Criteri di selezione per test strutturali (white box) Test. Rif. Ghezzi et al Verifica parte IIB Rif. Ghezzi et al. 6.3.4.1 Test In piccolo White box Black box Condizioni di confine Problema dell' Oracolo In grande Test di modulo Test di integrazione Test di Sistema Test di Accettazione

Dettagli

PROGRAMMAZIONE: Le strutture di controllo

PROGRAMMAZIONE: Le strutture di controllo PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Struttura del Corso Introduzione al Corso Maria Rita Di Berardini (Camerino), Emanuela Merelli (Ascoli) 1 1 Dipartimento di Matematica e Informatica Università di Camerino Struttura del corso Struttura

Dettagli

Modulo III - Cenni alla programmazione in R

Modulo III - Cenni alla programmazione in R Modulo III - Cenni alla programmazione in R Elisabetta Ronchieri Università di Ferrara Dipartimento di Economia e Management e-mail: elisabetta.ronchieri@unife.it 12 Dicembre 2016 Elisabetta Ronchieri

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica Le classi di istruzioni in C++ 1 Le classi di istruzioni in C++ SEQUENZIALI Statement semplice Statement composto CONDIZIONALI if < expr.> else switch case

Dettagli

Strutture dati e loro organizzazione. Gabriella Trucco

Strutture dati e loro organizzazione. Gabriella Trucco Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi

Dettagli

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

Dettagli

Informatica, Algoritmi, Linguaggi

Informatica, Algoritmi, Linguaggi Elementi di Informatica e Applicazioni Numeriche T Informatica, Algoritmi, Linguaggi Cos'è l'informatica? Che cos'è l'informatica? Cos'è l'informatica? Che cos'è l'informatica? Dell'informatica possiamo

Dettagli

PROBLEMI E ALGORITMI VESPIA CATERINA LICEO CLASSICO AGLI ANGELI

PROBLEMI E ALGORITMI VESPIA CATERINA LICEO CLASSICO AGLI ANGELI PROBLEMI E ALGORITMI prof.ssa VESPIA CATERINA LICEO CLASSICO AGLI ANGELI C O N T E N U T I Problemi. Concetto di algoritmo. Caratteristiche di un algoritmo. Descrizione di algoritmi - Diagrammi di flusso.

Dettagli

Fondamenti di Programmazione. Strutture di controllo

Fondamenti di Programmazione. Strutture di controllo Fondamenti di Programmazione Strutture di controllo 1! Controllo del flusso! n Flusso di esecuzione: ordine in cui le istruzioni di un programma sono eseguite! n Salvo contrordini, è in sequenza! n Due

Dettagli

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Le Strutture di controllo Del Linguaggio C Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni STRUTTURE DI CONTROLLO PRIMITIVE SEQUENZA SELEZIONE (o scelta logica) ITERAZIONE NON PRIMITIVE

Dettagli

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

Dettagli

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Lez. 5 La Programmazione. Prof. Salvatore CUOMO Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente

Dettagli

Istruzioni Condizionali

Istruzioni Condizionali Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 6 Istruzioni Condizionali Carla Limongelli Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Istruzioni condizionali

Dettagli

Capitolo 3 Elaborazione e Strutturazione dell Informazione. (Introduzione ai Sistemi Informatici Sciuto et alii)

Capitolo 3 Elaborazione e Strutturazione dell Informazione. (Introduzione ai Sistemi Informatici Sciuto et alii) Capitolo 3 Elaborazione e Strutturazione dell Informazione (Introduzione ai Sistemi Informatici Sciuto et alii) Il calcolatore come strumento per gestire informazione acquisire dati IN elaborare archiviare

Dettagli

If Statement. Il costrutto condizionale if ha la seguente sintassi:

If Statement. Il costrutto condizionale if ha la seguente sintassi: Costrutti Control Flow Con control flow (o strutture di controllo) si intende l insieme dei costrutti che servono a gestire il flusso di esecuzione di un programma, cioè a specificare quando e come eseguire

Dettagli

5 - Istruzioni condizionali

5 - Istruzioni condizionali 5 - Istruzioni condizionali Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica Obiettivi: studio delle strutture dati fondamentali studio degli strumenti e metodi per lo sviluppo di programmi di tipo tecnico-scientifico su piccola/media scala Approccio

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Dettagli

Il linguaggio di programmazione Python

Il linguaggio di programmazione Python Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Analisi e Programmazione

Analisi e Programmazione Algoritmi 1 Analisi e Programmazione I Calcolatori Elettronici si differenziano da altri tipi di macchine per il fatto che possono essere predisposti alla risoluzione di problemi di diversa natura. A tale

Dettagli

Algoritmi e soluzione di problemi

Algoritmi e soluzione di problemi Algoritmi e soluzione di problemi Dato un problema devo trovare una soluzione. Esempi: effettuare una telefonata calcolare l area di un trapezio L algoritmo è la sequenza di operazioni (istruzioni, azioni)

Dettagli

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi

Dettagli

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

Dettagli