Algoritmi. Strutture dati. Strumenti del linguaggio di programmazione
|
|
- Filomena Rubino
- 5 anni fa
- Visualizzazioni
Transcript
1 COSA IMPAREREMO
2 ARGOMENTI CORSO Algoritmi Strutture dati Strumenti del linguaggio di programmazione
3 ARGOMENTI CORSO Algoritmi Tipi di dato semplici Tipi di dato strutturati: array struct Strutture di controllo del flusso File Puntatori Funzioni Strutture dati Strumenti del linguaggio di programmazione
4 ARGOMENTI CORSO Algoritmi Liste Pile Code Strutture dati Strumenti del linguaggio di programmazione
5 ARGOMENTI CORSO Algoritmi su vettori Algoritmi su liste Algoritmi su pile Algoritmi su code Algoritmi Strutture dati Strumenti del linguaggio di programmazione
6 ARGOMENTI CORSO COSA SUCCEDE SE? Algoritmi Strutture dati Strumenti del linguaggio di programmazione
7 ARGOMENTI CORSO Algoritmi Operare scelte CONSAPEVOLI considerando tutti i casi possibili e valutando efficacia ed efficienza per risolvere un problema Strutture dati Strumenti del linguaggio di programmazione La risoluzione di un problema è il processo che dato un problema e individuato un opportuno metodo risolutivo, trasforma i dati iniziali nei corrispondenti risultati finali.
8 PROGRAMMARE == IMPLEMENTARE? «Algoritmi e strutture dati» Demetrescu, Finocchi, Italiano, Mc Graw-Hill cap. 1
9 L ISOLA DEI CONIGLI Algoritmi Strutture dati Strumenti del linguaggio di programmazione Leonardo da Pisa si interessò di molte cose, tra cui il seguente problema di dinamica delle popolazioni: Quanto velocemente si espanderebbe una popolazione di conigli sotto appropriate condizioni? In particolare, partendo da una coppia di conigli in un isola deserta, quante coppie si avrebbero nell anno n?
10 LE REGOLE DI RIPRODUZIONE Una coppia di conigli genera due coniglietti ogni anno I conigli cominciano a riprodursi soltanto al secondo anno dopo la loro nascita I conigli sono immortali
11 L ALBERO DEI CONIGLI La riproduzione dei conigli può essere descritta in un albero come segue:
12 LA REGOLA DI ESPANSIONE Nell anno n, ci sono tutte le coppie dell anno precedente, e una nuova coppia di conigli per ogni coppia presente due anni prima. Indicando con F n il numero di coppie dell anno n, abbiamo la seguente relazione di ricorrenza: F n = F n-1 + F n-2 se n 3 1 se n=1,2
13 IL PROBLEMA Come calcoliamo F n?
14 UN APPROCCIO NUMERICO Possiamo usare una funzione matematica che calcoli direttamente i numeri di Fibonacci. Si può dimostrare che: dove:
15 ALGORITMO FIBONACCI1
16 CORRETTEZZA? Qual è l accuratezza su e per ottenere un risultato corretto? Ad esempio, con 3 cifre decimali: n fibonacci1(n) arrotondamento F n
17 ALGORITMO FIBONACCI2 Poiché fibonacci1 non è corretto, un approccio alternativo consiste nell utilizzare direttamente la definizione ricorsiva: algoritmo fibonacci2(intero n) intero if (n 2) then return 1 else return fibonacci2(n-1) + fibonacci2(n-2) Opera solo con numeri interi.
18 ALBERO DELLA RICORSIONE Utile per risolvere la relazione di ricorrenza. Nodi corrispondenti alle chiamate ricorsive. Figli di un nodo corrispondenti alle sottochiamate.
19 ALBERO DELLA RICORSIONE Dall albero della ricorsione e sfruttando alcuni teoremi sul numero di foglie e sul numero di nodi interni contenuti in un albero binario, si evince che l algoritmo fibonacci2 è MOLTO lento: il numero di linee di codice mandate in esecuzione a fronte di una generica chiamata alla funzione fibonacci2(n) cresce infatti.!!!! come i conigli di Fibonacci!!!! Ad esempio: per n=8 vengono mandate in esecuzione 61 linee di codice, per n=45 vengono mandate in esecuzione linee di codice.
20 ALGORITMO FIBONACCI3 Perché l algoritmo fibonacci2 è lento? Perché continua a ricalcolare ripetutamente la soluzione dello stesso sottoproblema. : memorizzare allora in un array le soluzioni dei sottoproblemi algoritmo fibonacci3(intero n) intero sia Fib un array di n interi Fib[1] Fib[2] 1 for i = 3 to n do Fib[i] Fib[i-1] + Fib[i-2] return Fib[n]
21 CALCOLO DEL TEMPO DI ESECUZIONE L algoritmo fibonacci3 impiega un tempo proporzionale a n invece che esponenziale in n come fibonacci2. Ad esempio: per n=45 vengono mandate in esecuzione 90 linee di codice, risultando così 38 milioni di volte più veloce di fibonacci2!!!! per n=58 fibonacci3 è circa 15 miliardi di volte più veloce di fibonacci2!!! Tempo effettivo richiesto da implementazioni in C dei due algoritmi su piattaforme diverse:
22 OCCUPAZIONE DI MEMORIA Il tempo di esecuzione non è la sola risorsa di calcolo che ci interessa. Anche la quantità di memoria necessaria può essere cruciale. Se abbiamo un algoritmo lento (non troppo), dovremo solo attendere più a lungo per ottenere il risultato. Ma se un algoritmo richiede più spazio di quello a disposizione, non otterremo mai la soluzione, indipendentemente dal tempo di attesa.
23 ALGORITMO FIBONACCI4 fibonacci3 usa un array di dimensione n. In realtà non ci serve mantenere tutti i valori di Fn precedenti, ma solo gli ultimi due, riducendo lo spazio a poche variabili in tutto: algoritmo fibonacci4(intero n) intero a b 1 for i = 3 to n do a rappresenta Fib[i-2] c a+b b rappresenta Fib[i-1] a b b c c rappresenta Fib[i] return b
24 POTENZE RICORSIVE fibonacci4 non è il miglior algoritmo possibile. E possibile dimostrare per induzione la seguente proprietà di matrici: n-1 = F n F n-1 F n-1 F n-2 Useremo questa proprietà per progettare un algoritmo più efficiente.
25 ALGORITMO FIBONACCI5 PSEUDOCODICE! Il tempo di esecuzione è ancora O(n). Cosa abbiamo guadagnato?
26 CALCOLO DI POTENZE Possiamo calcolare la n-esima potenza elevando al quadrato la (n/2)-esima potenza. Se n è dispari eseguiamo una ulteriore moltiplicazione Esempio: 3 2 =9 3 4 =(3 2 ) 2 =(9) 2 = =(3 4 ) 2 =(81) 2 =6561
27 ALGORITMO FIBONACCI6 Tutto il tempo richiesto da fibonacci6 è speso nella funzione potenzadimatrice che calcola ricorsivamente la potenza della matrice elevando al quadrato la sua potenza (n/2)-esima.
28 RIEPILOGO fibonacci2 fibonacci3 fibonacci4 fibonacci5 fibonacci6 Tempo di esecuzione O(2 n ) O(n) O(n) O(n) O(log n) Occupazione di memoria O(n) O(n) O(1) O(1) O(log n)
29 MORALE Progettare algoritmi efficienti può avere un effetto drammatico sull incremento delle prestazioni. (Ricordiamoci, ad esempio, che se n vale un miliardo log 2 n sarà pari a 30!!!) Come misurare l efficienza di un algoritmo? q.tà tempo di calcolo (tempo di CPU) indipendente dalle tecnologie e dalle piattaforme q.tà spazio Non vogliamo valutare i dettagli della particolare istanza del problema, ma riferirci alla dimensione dell istanza di ingresso. Una stima dell ordine di grandezza può darci le informazioni necessarie (notazione asintotica).
30 ALGORITMI
31 RISOLUZIONE DI PROBLEMI La risoluzione di un problema è il processo che dato un problema e individuato un opportuno metodo risolutivo, trasforma i dati iniziali nei corrispondenti risultati finali. Affinché la risoluzione di un problema possa essere realizzata attraverso l uso del calcolatore, tale processo deve poter essere definito come sequenza di azioni elementari.
32 ALGORITMO Un algoritmo (matematico arabo Al Khuwarizmi, vissuto nel IX secolo d.c.) è una sequenza finita di mosse che risolve in un tempo finito una classe di problemi L esecuzione delle azioni nell ordine specificato dall algoritmo consente di ottenere, a partire dai dati di ingresso, i risultati che risolvono il problema. METODO RISOLUTIVO (ALGORITMO) DATI Esecutore RISULTATI ESECUTORE: una macchina astratta capace di eseguire le azioni specificate dell algoritmo
33 ALGORITMI: PROPRIETA Eseguibilità: ogni azione deve essere eseguibile dall esecutore in un tempo finito Non-ambiguità: ogni azione deve essere univocamente interpretabile dall esecutore Finitezza: il numero totale di azioni da eseguire per ogni insieme di dati di ingresso deve essere finito
34 ALGORITMI: PROPRIETA Quindi, un algoritmo deve: Essere applicabile a qualsiasi insieme di dati in ingresso appartenenti al dominio di definizione dell algoritmo Essere costituito di operazioni appartenenti ad un determinato insieme di operazioni fondamentali Essere costituito di regole non ambigue, cioè interpretabili in modo univoco qualunque sia l esecutore (persona o «macchina») che le legge
35 ALGORITMI: PROPRIETA Un algoritmo deve poter essere eseguito da chiunque, senza che l'esecutore sia stato necessariamente coinvolto nella formulazione del problema o nella descrizione dell algoritmo Gli algoritmi devono essere formalizzati per mezzo di appositi linguaggi, dotati di strutture linguistiche che garantiscano precisione e sintesi I linguaggi naturali non soddisfano questi requisiti, infatti... sono ambigui: la stessa parola può assumere significati diversi in contesti differenti (pesca è un frutto o un attività sportiva) sono ridondanti: lo stesso concetto può essere espresso in molti modi diversi, ad esempio somma 2 a 3, calcola 2+3, esegui l addizione tra 2 e 3
36 ALGORITMI E PROGRAMMI Ogni elaboratore è una macchina in grado di eseguire azioni elementari su oggetti detti DATI L esecuzione delle azioni è richiesta all elaboratore tramite comandi elementari chiamati ISTRUZIONI espresse attraverso un opportuno formalismo: il LINGUAGGIO DI PROGRAMMAZIONE La formulazione testuale di un algoritmo in un linguaggio comprensibile a un elaboratore è detta PROGRAMMA
37 PROGRAMMA Un PROGRAMMA è un testo scritto in accordo alla sintassi e alla semantica di un linguaggio di programmazione Un programma è la formulazione testuale, in un certo linguaggio di programmazione, di un algoritmo che risolve un dato problema Problema ANALISI Algoritmo Relazioni tra problema, analisi, algoritmo, programmazione, programma, dati ed elaborazione PROGRAMMAZIONE Programma ELABORAZIONE Dati Risultati
38 ALGORITMO E PROGRAMMA Per risolvere un problema: Individuazione di un procedimento risolutivo Scomposizione del procedimento in un insieme ordinato di azioni ALGORITMO Rappresentazione dei dati e dell algoritmo attraverso un formalismo comprensibile dal calcolatore LINGUAGGIO DI PROGRAMMAZIONE Problema Algortimo Programma Metodo risolutivo Linguaggio di programmazione
39 ESEMPIO Come piegare un foglio quadrato per ottenere una figura:
40 PRIMITIVE
41 ESEMPIO: ORDINAMENTO DI UN MAZZO DI CARTE Problema: Sia dato un mazzo da 40 carte da ordinare in modo che quelle di cuori precedano quelle quadri, che a loro volta precedono quelle di fiori e quelle di picche; le carte di uno stesso seme sono ordinate dall asso al re. Algoritmo: Si suddivida il mazzo in 4 mazzetti, ciascuno costituito da tutte le carte dello stesso seme Si ordinino le carte di ciascun mazzetto dall asso al re Si prendano nell ordine i mazzetti di cuori, quadri, fiori e picche
42 ESEMPIO: CALCOLO DELLE RADICI DI EQ. DI 2 GRADO Problema: Calcolo delle radici reali dell equazione ax 2 +bx+c=0 Algoritmo: Acquisire i coefficienti a,b,c Calcolare = b 2 4ac Se <0 non esistono radici reali, eseguire l'istruzione 7) Se =0, x 1 =x 2 = b/2a, poi eseguire l'istruzione 6) Se >0, x 1 =( b+ )/2a, x 2 =( b )/2a Comunicare i valori x 1, x 2 Fine Si utilizzano VARIABILI, ossia nomi simbolici usati nell algoritmo per denotare dati
43 ESEMPIO: CALCOLO DEL M.C.D. Problema: Calcolare il M.C.D. di due interi a,b, con a>b Algoritmo: Formalizzato da Euclide nel 300 a.c., si basa sul fatto che ogni divisore comune ad a e b è anche divisore del resto r della divisione intera di a per b, quando a>b e r 0; se r=0, b è il M.C.D. MCD(a,b) = MCD(b,r), se r 0 MCD(a,b)=b, se r=0 L algoritmo garantisce la determinazione del M.C.D. senza il calcolo di tutti i divisori di a e b
44 ESEMPIO: CALCOLO DEL M.C.D. Acquisire i valori di a e b Se b>a, scambiare i valori di a e b Calcolare il resto r della divisione intera di a per b Se r=0, MCD(a,b)=b; comunicare il risultato all esterno; eseguire l istruzione 6) Se r 0, sostituire il valore di a con il valore di b ed il valore di b con il valore di r; tornare al passo 3) Fine
45 ALGORITMI EQUIVALENTI Due algoritmi si dicono equivalenti quando: Hanno lo stesso dominio di ingresso Hanno lo stesso dominio di uscita In corrispondenza degli stessi valori del dominio di ingresso producono gli stessi valori nel dominio di uscita
46 ALGORITMI EQUIVALENTI Due algoritmi equivalenti: Forniscono lo stesso risultato Ma possono avere diversa efficienza e possono essere profondamente diversi
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 1 Un introduzione informale agli algoritmi Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Definizione informale di algoritmo Insieme di istruzioni, definite
DettagliTempo e spazio di calcolo (continua)
Tempo e spazio di calcolo (continua) I numeri di Fibonacci come case study (applichiamo ad un esempio completo le tecniche illustrate nei lucidi precedenti) Abbiamo introdotto tecniche per la correttezza
DettagliTempo e spazio di calcolo (continua)
Tempo e spazio di calcolo (continua) I numeri di Fibonacci come case study (applichiamo ad un esempio completo le tecniche illustrate nei lucidi precedenti) Abbiamo introdotto tecniche per la correttezza
DettagliAlgoritmi e Strutture Dati. Capitolo 1 Un introduzione informale agli algoritmi
Algoritmi e Strutture Dati Capitolo Un introduzione informale agli algoritmi Ancora un esempio di problema e soluzioni algoritmiche: i numeri di Fibonacci verso un modello di calcolo più simile a un computer
DettagliAlgoritmi e Strutture Dati
Algoritmi e Strutture Dati Informazioni sul corso + Un introduzione informale agli algoritmi Domenico Fabio Savo 1 Domenico Fabio Savo Email: savo@dis.uniroma1.it Web: http://www.dis.uniroma1.it/~savo
DettagliAlgoritmi e strutture dati
Algoritmi e Strutture Dati Capitolo 1 Un introduzione informale agli algoritmi Definizione informale di algoritmo Insieme di istruzioni, definite passo per passo, in modo da poter essere eseguite meccanicamente
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
DettagliELEMENTI DI INFORMATICA L. Ing. Claudia Chiusoli
ELEMENTI DI INFORMATICA L Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Esempi di Testi di esame Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del corso
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
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 all informatica
Introduzione all informatica INFORMATICA Varie definizioni Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta Scienza della rappresentazione e dell
DettagliAlgoritmi e Strutture Dati
Algoritmi Ricorsivi e Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 I conigli di Fibonacci Ricerca Binaria L isola dei conigli
DettagliRisoluzione di problemi
ALGORITMI Risoluzione di problemi Algoritmi Strutture dati Strumenti del linguaggio di programmazione La risoluzione di un problema è il processo che dato un problema e individuato un opportuno metodo
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:
DettagliAlgoritmi e Strutture Dati
Algoritmi Ricorsivi e Ricorrenze Maria Rita Di Berardini 2, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino 2 Polo di Scienze Università di Camerino ad Ascoli Piceno
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 dati in ingresso (input) per produrre uno
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
DettagliProgrammazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica
Programmazione Dipartimento di Matematica Ing. Cristiano Gregnanin Corso di laurea in Matematica 29 febbraio 2016 1 / 33 INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, bisogna conoscere
DettagliAlgoritmi e Strutture Dati
Algoritmi Ricorsivi e Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino I conigli di Fibonacci Ricerca Binaria L isola dei conigli Leonardo da
DettagliLa Programmazione particolare insieme di azioni particolare tipologia di dati risolvere un problema
La Programmazione È l'attività con cui si predispone l'elaboratore ad eseguire un particolare insieme di azioni su una particolare tipologia di dati, allo scopo di risolvere un problema. 1 La Programmazione
DettagliCORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1
CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1 Lezione 1 (Introduzione e Definizioni) Docenti Docente: Prof. Michele Colajanni Lezioni (Aula IV): martedì 10:00-12:45 Esercitazioni (Laboratorio): mercoledì
DettagliRisoluzione di un problema
Algoritmi Risoluzione di un problema Descrizione di un problema! Individuazione di un ALGORITMO! Metodo risolutivo (progetto) Introduzione 2 Algoritmo Sequenza finita di mosse che risolve in un tempo finito
DettagliDall algoritmo al calcolatore: concetti introduttivi. Algoritmo. Problema: consumo medio 9/27/2018. Fondamenti di Programmazione 3
Dall algoritmo al calcolatore: concetti introduttivi Fondamenti di Programmazione Algoritmo Problema o compito Preparazione di una torta Programmazione del VCR MCD tra due numeri Algoritmo sequenza precisa
DettagliINFORMATICA. 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
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
DettagliINFORMATICA (Computer Engineering o
INFORMATICA (Computer Engineering o Computer Science?) COMPRENDE: Metodi per la rappresentazione delle informazioni Metodi per la rappresentazione delle soluzioni Linguaggi di programmazione Architettura
DettagliProgrammazione dinamica Primi esempi
Programmazione dinamica Primi esempi (20 ottobre 2009 e 9 novembre 2010) Programmazione dinamica e Divide et Impera Entrambe le tecniche dividono il problema in sottoproblemi: dalle soluzioni dei sottoproblemi
DettagliL informatica comprende: INFORMATICA. Varie definizioni: Definizione proposta: ELABORATORE ELETTRONICO ( COMPUTER ) L ELABORATORE
INFORMATICA L informatica comprende: Varie definizioni: Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione informazione Definizione proposta: Scienza della rappresentazione
DettagliCdL in Medicina Veterinaria - STPA AA
CdL in Medicina Veterinaria - STPA AA 2007-08 Programmi e algoritmi I Calcolatori: cos hanno di speciale? 1 Elaborazione dell Informazione Dati, informazione e istruzioni Un esempio: Dr Rossi 328275456
DettagliCosa è l Informatica?
Cosa è l Informatica? Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, elaborazione e trasmissione dell informazione Elaboratore
DettagliAlgoritmi. Andrea Passerini Informatica. Algoritmi
Andrea Passerini passerini@disi.unitn.it Informatica Elaboratore Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni sui dati digitale
DettagliEsempio : i numeri di Fibonacci
Esempio : i numeri di Fibonacci La successione di Fibonacci F 1, F 2,... F n,... è definita come: F 1 =1 F 2 =1 F n =F n 1 F n 2,n 2 Leonardo Fibonacci (Pisa, 1170 Pisa, 1250) http://it.wikipedia.org/wiki/leonardo_fibonacci
DettagliINFORMATICA. Scienza degli elaboratori elettronici (Computer. informazione
Varie definizioni: INFORMATICA Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione elaborazione
DettagliAlgoritmi. Andrea Passerini Conoscenze informatiche e relazionali Corso di laurea in Scienze dell Ingegneria Edile
Algoritmi Andrea Passerini passerini@dsi.unifi.it Conoscenze informatiche e relazionali Corso di laurea in Scienze dell Ingegneria Edile Elaboratore Un elaboratore o computer è una macchina digitale, elettronica,
DettagliFondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio
Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Algoritmi
DettagliAlgoritmi e Programmi
Algoritmi e Programmi Algoritmi e Programmi Le azioni che si compiono ogni giorno sono finalizzate alla risoluzione di problemi. Problema di elaborazione Insieme dati di partenza Risultato ricerca Algoritmi
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
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
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
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
DettagliLaboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale
Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano
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.
Dettagliliceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE BIENNIO: SECONDA DISCIPLINA: INFORMATICA
INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE PROGRAMMAZIONE BIENNIO: SECONDA DISCIPLINA: INFORMATICA PIANO DI LAVORO DEL DOCENTE / RELAZIONE FINALE Anno scolastico 2014/2015 DOCENTE Prof. PAOLO ARMANI CLASSE:
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
DettagliAnalisi e programmazione Gli algoritmi
Introduzione Analisi e programmazione Gli algoritmi Proprietà ed esempi Costanti e variabili, assegnazione, istruzioni, proposizioni e predicati Vettori e matrici I diagrammi a blocchi Analisi strutturata
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
DettagliFondamenti di Informatica 4. Gli algoritmi
Sommario Fondamenti di Informatica 4. Gli algoritmi Analisi e programmazione Gli algoritmi Proprietà ed esempi Costanti e variabili, assegnazione, istruzioni, proposizioni e predicati I linguaggi per la
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
DettagliLaboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale
Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Laurea in Ingegneria Civile e Ambientale Algoritmi e Algebra di Boole Stefano Cagnoni Il problema di fondo Descrizione
DettagliIl Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)
Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande
DettagliCORSO DI INFORMATICA Maria Grazia Celentano
CORSO DI INFORMATICA Maria Grazia Celentano INFORMATICA E PROGRAMMAZIONE L Informatica è definita come la Scienza della Rappresentazione e dell Elaborazione dell informazione o, in altri termini, lo studio
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
DettagliIntroduzione. Informatica Generale. Lezioni: lunedì h. 11:10-13:00 lab. Zironi martedì h. 11:10-13:00 lab. Zironi mercoledì h. 9:10-11:00 lab.
Introduzione Informatica Generale Lezioni: lunedì h. 11:10-13:00 lab. Zironi martedì h. 11:10-13:00 lab. Zironi mercoledì h. 9:10-11:00 lab. Zironi Docenti: Dott.ssa Federica Mandreoli Ricevimento: lunedì
DettagliIntroduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione
Sommario Problemi e soluzioni Definizione informale di algoritmo e esempi Proprietà degli algoritmi Input/Output, Variabili Algoritmi senza input o output 1 2 Problema Definizione (dal De Mauro Paravia):
DettagliUniversità degli Studi dell Aquila Anno Accademico 2015/2016
Università degli Studi dell Aquila Anno Accademico 2015/2016 Corso Integrato di Algoritmi e Strutture Dati con Laboratorio (12 CFU): Modulo da 6 CFU di Algoritmi e Strutture Dati (Prof. Guido Proietti)
DettagliFONDAMENTI DI INFORMATICA
Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia talia@deis.unical.it A.A. 2002-2003 Facoltà di Ingegneria UNICAL Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica
DettagliAnalisi 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
DettagliIl Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)
Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande
DettagliLaboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale
Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano Cagnoni Il problema
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
DettagliNozioni di base (II Parte)
Nozioni di base (II Parte) 1 Ricorsione [GTG14, Par. 5.1-5.4 and 13.1] Algoritmo Ricorsivo: algoritmo che invoca se stesso (su istanze sempre più piccole) sfruttando la nozione di induzione. La soluzione
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
Dettagli! Problemi, domande, risposte. ! Algoritmi che calcolano funzioni. ! Funzioni computabili e non. ! Problema = insieme di domande omogenee. !
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 24 26 maggio 2015!
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.
DettagliLezione 4. Problemi trattabili e soluzioni sempre più efficienti. Gianluca Rossi
Lezione 4 Problemi trattabili e soluzioni sempre più efficienti Gianluca Rossi Trattabile o intrattabile? Consideriamo ora il problema, ben noto a tutti gli studenti a partire dalla scuola media, di calcolare
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
DettagliAnalisi e programmazione
Gli algoritmi Analisi e programmazione Gli algoritmi Proprietà ed esempi Costanti e variabili, assegnazione, istruzioni, proposizioni e predicati Vettori e matrici I diagrammi a blocchi Analisi strutturata
DettagliIntroduzione agli Algoritmi 4
Introduzione agli Algoritmi Sommario Problemi e soluzioni Definizione informale di algoritmo e esempi Proprietà degli algoritmi Input/Output, Variabili Algoritmi senza input o output Introduzione agli
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
DettagliTecniche Algoritmiche: divide et impera
Tecniche Algoritmiche: divide et impera Una breve presentazione F. Damiani - Alg. & Lab. 04/05 Divide et impera (o Divide and conquer) Per regnare occorre tenere divisi i nemici e trarne vantaggio F. Damiani
DettagliChe cosa si intende per INFORMATICA?
Che cosa si intende per INFORMATICA? Scienza della rappresentazione e dell elaborazione dell informazione L informazione è il concetto principale dell Informatica. L elaborazione dell informazione avviene
DettagliEsercizi per il corso di Algoritmi, anno accademico 2011/12
Esercizi per il corso di Algoritmi, anno accademico 2011/12 Esercizi sulla Tecnica Divide et Impera N.B. Tutti gli algoritmi vanno scritti in pseudocodice (non in Java, nè in C++, etc. ). Di tutti gli
DettagliChe cos è l Informatica?
Che cos è l Informatica? Che cos è l Informatica? Non è facile da definire! Alcune affermazioni vere: L informatica è parente stretta della matematica Ha a che fare con il modo in cui risolviamo i problemi
DettagliUniversità degli Studi dell Aquila Anno Accademico 2016/2017
Università degli Studi dell Aquila Anno Accademico 2016/2017 Corso Integrato di Algoritmi e Strutture Dati con Laboratorio (12 CFU): Modulo da 6 CFU di Algoritmi e Strutture Dati (Prof. Guido Proietti)
DettagliNUMERI PRIMI E CRITTOGRAFIA
NUMERI PRIMI E CRITTOGRAFIA Parte I. Crittografia a chiave simmetrica dall antichità all era del computer Parte II. Note della Teoria dei Numeri concetti ed algoritmi a supporto della Crittografia Parte
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
DettagliAlgoritmi e Strutture Dati
Algoritmi e Strutture Dati Modelli di calcolo e metodologie di analisi Domenico Fabio Savo 1 Notazione asintotica f(n) = tempo di esecuzione / occupazione di memoria di un algoritmo su input di dimensione
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
DettagliLaboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale
Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano Cagnoni Il problema
DettagliFabrizio Messina, Marzio Pennisi
Fabrizio Messina, Marzio Pennisi {messina,mpennisi}@dmi.unict.it Argomenti trattati Algoritmo: definizione Analisi e programmazione: attività preliminari atte a risolvere problemi utilizzando un elaboratore,
DettagliAlgoritmi e Strutture Dati. Luciano Gualà
Algoritmi e Strutture Dati Luciano Gualà guala@mat.uniroma2.it www.mat.uniroma2.it/~guala Esercizio Analizzare la complessità nel caso medio del primo algoritmo di pesatura (Alg1) presentato nella prima
DettagliDISCIPLINA: MATEMATICA
Opera in modo faticoso e inappropriato nel calcolo e utilizza linguaggi e metodi della disciplina in modo scorretto. Opera in modo faticoso e incerto nel calcolo e utilizza linguaggi e metodi della disciplina
DettagliAlgoritmi 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
DettagliUnità di apprendimento 6. Dal problema al programma
Unità di apprendimento 6 Dal problema al programma Unità di apprendimento 6 Lezione 1 Conosciamo gli algoritmi e i linguaggi In questa lezione impareremo: cos è un problema come affrontarlo come descrivere
DettagliInformatica, 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
DettagliAnalisi e programmazione 1
Informatica Secondo l ACM l informatica è lo studio sistematico degli algoritmi che descrivono e trasformano l informazione: la loro teoria, analisi progetto efficienza realizzazione ed applicazione 1
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
DettagliAlgoritmi e Strutture Dati. Luciano Gualà
Algoritmi e Strutture Dati Luciano Gualà guala@mat.uniroma2.it www.mat.uniroma2.it/~guala Esercizio Analizzare la complessità nel caso medio del primo algoritmo di pesatura (Alg1) presentato nella prima
DettagliAlgoritmi e Strutture Dati
Introduzione al Corso Maria Rita Di Berardini (Camerino), Emanuela Merelli (Ascoli) 1 1 Dipartimento di Matematica e Informatica Università di Camerino Parte I Il concetto di algoritmo Informalmente, un
DettagliSommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo
Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi Istruzioni variabili e tipi Sottoprogrammi Strutture di controllo Ricorsione 1 2 Obiettivo Ciclo di sviluppo di programmi Risoluzione
DettagliAlgoritmi e loro proprietà. Proprietà formali degli Algoritmi Efficienza rispetto al tempo Efficienza rispetto allo spazio
Algoritmi e loro proprietà Proprietà formali degli Algoritmi Efficienza rispetto al tempo Efficienza rispetto allo spazio Cos è l informatica? L informatica è la scienza della rappresentazione e dell elaborazione
DettagliProblem solving elementare su dati scalari
Problem solving elementare su dati scalari Problemi numerici Problemi di codifica/decodifica Problemi testuali Problemi di verifica e filtro di dati Problemi di ordinamento Sommario 2 2006 Politecnico
DettagliRisoluzione di problemi con l uso dell elaboratore elettronico
Lab. Tecnologie Informatiche Risoluzione di problemi con l uso dell elaboratore elettronico L'INFORMATICA L'informatica è la scienza applicata che studia le modalità di raccolta, di conservazione, di trattamento
DettagliIstruzioni, algoritmi, linguaggi
Istruzioni, algoritmi, linguaggi 1 Algoritmo per il calcolo delle radici reali di un equazione di 2 o grado Data l equazione ax 2 +bx+c=0, quali sono i valori di x per cui l equazione è soddisfatta? 2
DettagliAlgoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo
1 Cos è l informatica? L informatica è la scienza della rappresentazione e dell elaborazione dell informazione Algoritmi e loro proprietà Proprietà formali degli Algoritmi Efficienza rispetto al tempo
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
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
Dettagli