Informatica I. 3 Algoritmi e Linguaggi di Programmazione. 16 Aprile 2012
|
|
- Cristiano Caselli
- 6 anni fa
- Visualizzazioni
Transcript
1 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
2 Cos è un algoritmo? Un algoritmo è una procedura generale, finita, non ambigua ed eseguibile che lavora su dati d ingresso fornendo alcuni dati 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 tutti i triangoli e non solo quella di un particolare triangolo) finita: le istruzioni che la compongono ed il numero di volte che ogni azione deve essere eseguita devono essere finiti 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 deterministico: per ogni istruzione esiste, a parità di dati d'ingresso, un solo passo successivo; in pratica esiste uno e un solo possibile percorso (o path) dell algoritmo e quindi con gli stessi input produce gli stessi output Algoritmo non deterministico: contiene almeno un istruzione che ammette diversi passi successivi: può produrre output diversi con gli stessi input, compiendo diversi path di esecuzione. Es. Algoritmi probabilistici: per un istruzione, più passi successivi con associata una probabilità di essere scelti (lancio della moneta)
4 Storia Etimologia: Il termine algoritmo significa procedimento di calcolo Deriva dal termine latino medievale algorismus, che a sua volta deriva dal nome del matematico 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 parti in tutto) da cui deriva il nome algebra Abu Jafar Mohammad ibn- Musa al- Khowarismi
5 Storia Algoritmi in uso ancora oggi sono stati studiati da matematici 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 progettazione di algoritmi e di analisi di correttezza e di efficienza si sono evolute nella seconda metà del XX secolo grazie alla diffusione dei calcolatori elettronici Ovunque si impieghi un calcolatore occorrono algoritmi corretti e efficienti che ne utilizzino al massimo le potenzialità.
6 Come valutiamo un algoritmo? CORRETTEZZA (Risolve correttamente il problema?): un algoritmo si dice corretto se, per ogni istanza di input, si ferma con l output corretto/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 risolti in maniera efficiente Esempio: Knapsack problem (problema NP-completo) INPUT: uno zaino che sopporta un peso W e N oggetti, ognuno dei quali caratterizzato da un peso w i e un valore c i. OUTPUT: una scelta degli oggetti che massimizza il valore scegliere senza superare il peso sostenibile dallo zaino W.
7 Esempio: Ricette come algoritmi Una ricetta può essere vista come un algoritmo in cui: INPUT: ingredienti e utensili da cucina OUTPUT: il piatto cucinato Algoritmo: Cottura spaghetti Input: Spaghetti, sale, pentola, fornello Output: Spaghetti cotti Algoritmo: 1. Mettere l acqua nella pentola 2. Mettere la pentola sul fuoco 3. Attendere l ebollizione 4. Buttare gli spaghetti 5. Buttare il sale 6. Attendere il tempo di cottura 7. Scolare gli spaghetti
8 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 restituisco d 3. Altrimenti 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-1 4. Se b i = 0, allora restituisco a i. 5. Altrimenti incremento i, i i + 1. Passo 3. a i = q i b i + b i+1
9 Correttezza dell algoritmo di Euclide 1. Esiste N t.c. bn = 0? Sì esiste. Infatti 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 è strettamente decrescente, e quindi esiste un N tale che b N = Per tale N, an è 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 (infatti l ultimo 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 (an a N-1 =b N-2 ). Così proseguendo si ha che a N divide tutti i resti 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 scritti 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.
10 1071 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 =
11 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 =
12 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 =
13 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 Informatica I 3 Algoritmi A.A. 2011/2012
14 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)
15 Spaghetti flowchart
16 The friendship algorithm Jim Parsons aka Sheldon Cooper
17 Flowchart per l algoritmo di Euclide
18 Algoritmi e programmi Gli algoritmi vengono descritti tramite programmi, che si avvalgono di istruzioni e costrutti dei linguaggi di programmazione per essere eseguiti da calcolatori elettronici I programmi sono formulazioni concrete di algoritmi astratti che si basano su particolari rappresentazioni dei dati, e utilizzano operazioni di manipolazione dei dati, messe a disposizione da uno specifico linguaggio di programmazione Le proprietà degli algoritmi sono talmente fondamentali, generali e robuste, da essere indipendenti dalle caratteristiche di specifici linguaggi di programmazione o di particolari calcolatori elettronici
19 Quale linguaggio? Linguaggi ad alto livello, vicini al programmatore, i più adatti per codificare algoritmi astratti Pseudocodice (didattico, generico) Java C, C++ Fortran PHP Javascript...
20 Variabili Una variabile identifica una porzione di memoria (generalmente RAM) destinata a contenere dei dati, che possono essere modificati nel corso dell'esecuzione di un programma Ha associato un nome simbolico (nome della variabile) che permette di accedere al contenuto della variabile. Il nome è una sequenza di caratteri alfanumerici, che inizia con un carattere alfabetico Diversa dalle variabili in matematica, non necessariamente fa parte di un equazione o formula var x; Dichiarazione di una variabile con nome x
21 Costanti Una costante identifica una porzione di memoria destinata a contenere dei dati, che non possono essere modificati 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
22 Tipi di dato elementari Variabili e costanti hanno associato un tipo di dato, che determina l insieme dei valori che una variabile può rappresentare le operazioni supportate sui dati Esempi: String (sequenza di caratteri) var s1 = Hello ; const s2 = World ; Boolean (true, false) var t = true; const f = false; Number (numerico) const x = 10; var y = 5.23;
23 Strutture dati Il concetto di algoritmo è inscindibile da quello di dato: per risolvere un problema computazionale, occorre organizzare ed elaborare dati Un algoritmo può essere visto come un manipolatore di dati: a fronte di dati in ingresso che descrivono il problema producono dati in uscita come risultato del problema E fondamentale che i dati siano ben organizzati e strutturati in modo che il calcolatore li possa elaborare efficientemente
24 Strutture dati La struttura dati è un entità usata per organizzare un insieme di dati, insieme gli algoritmi per manipolare tali dati. L efficienza di tali algoritmi dipende dalla particolare struttura dati Sono costruite a partire dai tipi di dato elementari Struttura dati astratta (SDA): è una specifica della struttura e delle operazioni. Può avere diverse implementazioni. Cosa vogliamo? Struttura dati (concreta) (SD): è una struttura data implementata (realizzata) concretamente in un linguaggio. Come lo implementiamo?
25 Strutture dati - Esempi Struttura Dati: Liste Pile Code Heaps Grafi... Algoritmi Inserimento Cancellazione Ricerca Ordinamento...
26 Espressioni Un'espressione è un costrutto che combina valori, costanti, variabili, utilizzando 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)
27 Statement Uno statement è la più piccolo elemento eseguibile di un programma, un istruzione. Si compone di espressioni, organizzate secondo una sintassi specifica (che contiene 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;
28 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, permette di restituire in output un espressione Es. return x; return x!=y;
29 Statement semplici Chiamata a funzione: si utilizza per eseguire una funzione (metodo, routine, sottoprogramma). Una funzione è caratterizzata da un nome simbolico, zero o più argomenti di input, opzionalmente un argomento in output, restituito al chiamante attraverso il return statement, un blocco di statement che contiene il codice della funzione (il corpo della funzione) var xtimesy = mul(x,y); function mul (arg0, arg1) {...codice... return arg0*argn; }
30 Statement semplici Chiamata a funzione: si utilizza per eseguire una funzione (metodo, routine, sottoprogramma). Una funzione è caratterizzata da un nome simbolico, zero o più argomenti di input, opzionalmente un argomento in output, restituito al chiamante attraverso il return statement, un blocco di statement che contiene 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 Argomenti in input Return statement
31 Statement composti Uno statement composto, è uno statement che contiene a sua volta altri statement Blocco di statement: contiene zero o più statement racchiusi da { (begin block) e } (end block). Se composto da un singolo statement le parentesi si possono omettere. Control flow statement: costrutti che regolano il flusso di esecuzione del programma, ovvero se, quando, in quale ordine e quante volte le istruzioni del programma vanno eseguite
32 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, altrimenti (else) si esegue block2 se non necessario, l else si può omettere
33 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 precedenti eseguo il blocco di default, blockn. l istruzione break serve per uscire dalla struttura di controllo
34 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.
35 Control flow statement Do-While Sintassi do block while (cond) è come il while con la differenza che block viene eseguito prima di valutare cond
36 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.
37 If - Esempio Creare una funzione che restituisce il minimo tra due argomenti function min(a, b){ if(a<b) return a; else return b; } oppure function min(a, b){ if(a<b) return a; return b; }
38 While - Esempio Creare una funzione MCD che restituisce il massimo comun divisore (Euclide) tra due argomenti, 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; }
39 For - Esempio Creare una funzione che prende in input 3 interi e che stampa (funzione print) tutti gli interi tra a e b che sono multipli di c function multipli(a,b,c){ for(var i=a; i<=b; i++) if(i%c==0) print(i); }
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
DettagliInforma2ca I. 4 Algoritmi e Linguaggi di Programmazione. 11, 16 Aprile 2013
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 Cos è un algoritmo? Un algoritmo è una procedura
DettagliRappresentazione 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
DettagliJavaScript 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
Dettagliosservazione: 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)
DettagliIntroduzione 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
DettagliProgramma 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
DettagliProgrammazione 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
DettagliLaboratorio 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
DettagliLaboratorio 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[]
DettagliL 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
DettagliCorso 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
DettagliSommario. 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
DettagliStudio 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
DettagliCosa 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
DettagliProblemi 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
DettagliElementi 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à
DettagliConcetti 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
DettagliProblemi 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
DettagliELABORAZIONE 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
DettagliIntroduzione 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
DettagliAlgoritmi 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
DettagliDal 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
DettagliPROBLEMI 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
DettagliUnità 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
Dettaglin 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
DettagliAlgoritmi 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
DettagliSISTEMI 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:
DettagliUniversità 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
DettagliIl 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±
DettagliScaletta. 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
DettagliIntroduzione 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
DettagliInformatica 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
DettagliRisolvere 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
DettagliInformatica 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
DettagliStrutture 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
DettagliAlgoritmi. 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
DettagliL 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
DettagliIntroduzione 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
DettagliIl 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)
DettagliLez. 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
DettagliDESCRIZIONI 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
DettagliAltrimenti, 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
DettagliAlgoritmi 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)
DettagliCorso 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
DettagliRappresentazione 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
DettagliProgetto 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
DettagliINFORMATICA GENERALE Prof. Alberto Postiglione. Università degli Studi di Salerno. UD 3.1a: Gli Algoritmi
INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno : Gli Algoritmi INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università
DettagliINFORMATICA Algoritmi come formalizzazione della risoluzione di un problema
INFORMATICA Algoritmi come formalizzazione della risoluzione di un problema di Roberta Molinari Algoritmo Origine del termine Al-Khwarizmi: nato nel 780 circa a Baghdad. È un importante matematico Arabo.
Dettagliprint((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
DettagliInformatica 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
DettagliSommario. 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 1 Il Problema computazionale È computazionale
DettagliIntroduzione 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
DettagliLez. 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
DettagliCos è 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
DettagliStrutture 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
DettagliElementi di programmazione
Fondamenti di Informatica per la Sicurezza a.a. 2008/09 Elementi di programmazione Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università
DettagliScienza 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.
DettagliCOMPLESSITÀ 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,
DettagliUn 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
DettagliLaboratorio 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
DettagliCapitolo 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,
DettagliElaboratore 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
DettagliLaboratorio 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
DettagliSviluppo 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
DettagliI 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
DettagliLA 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
DettagliPROBLEMI 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.
DettagliSviluppo 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)
DettagliElementi 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
DettagliIl 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
DettagliLaboratorio 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
DettagliIstruzioni 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
DettagliINFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno
INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno : Gli Algoritmi INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze
DettagliLezione 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
DettagliSTRUTTURE 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
DettagliAlgoritmi e diagrammi di flusso
Algoritmi e diagrammi di flusso Pablo Genova gallini.genova@gmail.com I. I. S. Angelo Omodeo Mortara Indirizzo Tecnico-Economico A. S. 2015 2016 Cos'è un algoritmo? Algoritmo: procedimento che risolve
DettagliTeoria 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
DettagliScrivere 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
Dettagli10 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
DettagliALGORITMI: 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
DettagliProblemi, 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
DettagliCorso 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
DettagliIf 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
DettagliMODULO 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
Dettagli19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
19 - Eccezioni 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 Corso
DettagliSommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...
Sommario PREFAZIONE...XI Aggiornamenti e novità... xi Lo scopo di questo libro... xii Diagramma delle dipendenze... xii La metodologia di insegnamento... xiii Panoramica sul libro... xvi Ringraziamenti...
DettagliINFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan
INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento lunedì, prima o dopo lezione? Aula? 1 Analisi e programmazione Tramite un elaboratore si possono risolvere
DettagliAppunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso
Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso Marco Liverani (liverani@mat.uniroma3.it)
DettagliInformatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati
Informatica 3 LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Modulo 1: Perchè studiare algoritmi e strutture dati Modulo 2: Definizioni di base Informatica 3 Lezione 10 - Modulo 1 Perchè
DettagliCos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione
DettagliProgrammazione web lato client con JavaScript. Marco Camurri 1
Programmazione web lato client con JavaScript Marco Camurri 1 JavaScript E' un LINGUAGGIO DI PROGRAMMAZIONE che consente di inserire codice in una pagina web Sintassi simile a Java (e al C), ma NON E'
Dettagli3. 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
DettagliCorso 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
Dettagliin 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
DettagliProblema: 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
DettagliLe 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
Dettagli1 Esercizi in pseudocodice
Questa dispensa propone esercizi sulla scrittura di algoritmi in un linguaggio semiformale, utile all acquisizione delle abilità essenziali per implementare algoritmi in qualsiasi linguaggio di programmazione.
DettagliVerifica 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
DettagliTipo 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