Ordinamento di una lista: bubble-sort

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Ordinamento di una lista: bubble-sort"

Transcript

1 Python

2 Ordinamento di una lista: bubble-sort L idea è di far galleggiare il minimo della lista nelle prima posizione Riduco la parte di lista da considerare, escludendo le prime posizioni già ordinate

3 Ordinamento: bubble-sort Passo 1: parto dalla fine della lista e scambio il valore di due elementi se quello con l indice più alto è minore dell altro. prova[0] prova[1] prova[2] prova[3] prova[4] prova[0] prova[1] prova[2] prova[3] prova[4] prova[0] prova[1] prova[2] prova[3] prova[4]

4 Ordinamento: bubble-sort Passo 2: riduco la lista da considerare per l ordinamento e ripeto il passo 1 prova[0] prova[1] prova[2] prova[3] prova[4] prova[0] prova[1] prova[2] prova[3] prova[4] prova[0] prova[1] prova[2] prova[3] prova[4]

5 Bubble sort Data una variabile lista chiamata seq, l algoritmo di bubblesort che la ordina si può scrivere come: for sorted in range(0,len(seq)-1): for index in range(len(seq)-1, sorted, -1): if seq[index-1] > seq[index]: seq[index-1], seq[index] = \ seq[index], seq[index-1]

6 Bubble sort: note Data una variabile lista chiamata seq, l algoritmo di bubblesort che la ordina si può scrivere come: for sorted in range(0,len(seq)-1): for index in range(len(seq)-1, sorted, -1): if seq[index-1] > seq[index]: seq[index-1], seq[index] = \ seq[index], seq[index-1] Da notare l utilizzo di range() per creare una lista di valori decrescenti attraverso la sintassi range (iniziale, finale, passo), con passo<0 e finale<iniziale

7 Bubble sort: note Data una variabile lista chiamata seq, l algoritmo di bubblesort che la ordina si può scrivere come: for sorted in range(0,len(seq)-1): for index in range(len(seq)-1, sorted, -1): if seq[index-1] > seq[index]: seq[index-1], seq[index] = \ seq[index], seq[index-1] Per scambiare il valore di due variabili è possibile utilizzare questa sintassi:

8 Scambiare il valore di variabili Se abbiamo delle variabili di cui vogliamo scambiare il valore, Python mette a disposizione un facile metodo: Metodo rapido - Python >>> a=10 >>> b=20 >>> a,b=b,a >>> print a,b Metodo esplicito >>> a=10 >>> b=20 >>> tmp=a >>> a=b >>> b=tmp >>> print a,b 20 10

9 Utilizzare bubblesort Scriviamo uno script che crei una lista di valori casuali (attraverso la funzione random() del modulo random), e che poi la ordini. import random N=input( Inserisci il numero di elementi della lista ) seq=[random.random() for x in range(n)] for sorted in range(0,len(seq)-1): for index in range(len(seq)-1, sorted, -1): if seq[index-1] > seq[index]: seq[index-1], seq[index] = \ seq[index], seq[index-1]

10 Crea una lista Lista che contiene come elementi i numeri da 0 a 0.9 spaziati di 0.1 Creare una lista con il for Può essere comodo generare una lista di dati che siano una funzione di una lista di interi. Python mette a disposizione una sintassi semplice per questo problema. Se f(x) è una funzione di x: Lista=[f(x) for x in range(1,n)] Lista=[x**2 for x in range(10) Crea una lista Lista che contiene come elementi i quadrati dei numeri interi da 0 a 9 Lista=[x/10.0 for x in range(10)

11 Visualizzare l evoluzione E possibile visualizzare il progressivo ordinamento della lista, mostrando in un grafico i valori degli elementi della lista ad ogni passo di iterazione: import pylab import random N=input( Inserisci il numero di elementi della lista ) seq=[random.random() for x in range(n)] pylab.ion() for sorted in range(0,len(seq)-1): pylab.plot(seq) pylab.draw() pylab.hold(0) raw_input("premi un tasto...") for index in range(len(seq)-1, sorted, -1): if seq[index-1] > seq[index]: seq[index-1], seq[index] = \ seq[index], seq[index-1] raw_input("premi un tasto per chiudere il grafico...")

12 Esercizi (1) 4. Scrivere uno script che trovi il valore e la posizione del minimo di una lista. 5. Data una lista t che contenga N campioni numerici nell intervallo dell asse reale [0,2π], calcolare le liste: x=4*cos(t) y=8*sin(t) e visualizzare il grafico dei punti (x,y)

13 Esercizi (2) 6. Scrivere uno script (un file.py) che calcoli il fattoriale N! di un numero N inserito dall utente. Il fattoriale è definito nel seguente modo 0! = 1 1! = 1 n! = n ( n 1)!

Ordinamento di una lista: bubble-sort

Ordinamento di una lista: bubble-sort Ordinamento di una lista: bubble-sort L idea è di far galleggiare il minimo della lista nelle prima posizione Riduco la parte di lista da considerare, escludendo le prime posizioni già ordinate Ordinamento:

Dettagli

Ordinamento di una lista: bubble-sort

Ordinamento di una lista: bubble-sort Ordinamento di una lista: bubble-sort L idea è di far galleggiare il minimo della lista nelle prima posizione Riduco la parte di lista da considerare, escludendo le prime posizioni già ordinate Ordinamento:

Dettagli

Liste. Una lista è una serie ordinata di valori, ognuno identificato da un indice. I valori che fanno parte della lista sono chiamati elementi.

Liste. Una lista è una serie ordinata di valori, ognuno identificato da un indice. I valori che fanno parte della lista sono chiamati elementi. Python Liste Una lista è una serie ordinata di valori, ognuno identificato da un indice. I valori che fanno parte della lista sono chiamati elementi. Una lista di 8 elementi: el1 el2 el3 el4 el5 el6 el7

Dettagli

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio

Appunti di informatica. Lezione 10 anno accademico Mario Verdicchio Appunti di informatica Lezione 10 anno accademico 2016-2017 Mario Verdicchio Esercizio Scrivere un programma che, data una sequenza di 10 interi (scelta dall utente), la ordini in ordine crescente Soluzione

Dettagli

FONDAMENTI DI INFORMATICA. Prof. Alfredo Accattatis Prof. Venturino Taggi

FONDAMENTI DI INFORMATICA. Prof. Alfredo Accattatis Prof. Venturino Taggi FONDAMENTI DI INFORMATICA Prof. Alfredo Accattatis Prof. Venturino Taggi accattatis@ing.uniroma2.it taggi@ing.uniroma2.it 2 Fondamenti di Informatica 2015/16 V.Taggi taggi@ing.uniroma2.it Algoritmi di

Dettagli

Laboratorio di Python

Laboratorio di Python Laboratorio di Python Matrici con Liste Lab09 5 Aprile 2017 Outline Correzione esercizi per oggi Matrici Teoria Esercizi Esercizi per casa Esercizio 1 per casa Scrivere una funzione che verifica se una

Dettagli

Laboratorio 8. Programmazione - CdS Matematica. Marco Virgulin 13 Gennaio 2015

Laboratorio 8. Programmazione - CdS Matematica. Marco Virgulin 13 Gennaio 2015 Laboratorio 8 Programmazione - CdS Matematica Marco Virgulin 13 Gennaio 2015 Esercizio di riepilogo. Generare N numeri reali in [0,1[ e scriverli su file. Leggere i valori dal file e inserirli in un albero

Dettagli

Programmare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione

Programmare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Python Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere date in un linguaggio comprensibile dal calcolatore. In generele questi

Dettagli

Laboratorio di Python

Laboratorio di Python Laboratorio di Python Matrici con Liste Lab09 10 Aprile 2018 Outline Correzione esercizi per oggi Matrici Teoria Esercizi Esercizi per casa Outline Correzione esercizi per oggi Matrici Teoria Esercizi

Dettagli

Laboratorio Programmazione Anno Lezione 3

Laboratorio Programmazione Anno Lezione 3 Laboratorio Programmazione Anno 2012-2013 Lezione 3 Scripting Fino ad ora, per fare esercizi, abbiamo utilizzato l ambiente interattivo di python. È possibile creare dei file contenenti (lunghe) sequenze

Dettagli

Laboratorio 8. Programmazione - CdS Matematica. Mirko Polato 15 Dicembre 2015

Laboratorio 8. Programmazione - CdS Matematica. Mirko Polato 15 Dicembre 2015 Laboratorio 8 Programmazione - CdS Matematica Mirko Polato 15 Dicembre 2015 Operare su File Per operare su un file occorre eseguire le seguenti operazioni: aprire il file in scrittura o lettura; scrivere

Dettagli

Fondamenti di Programmazione

Fondamenti di Programmazione Fondamenti di Programmazione Capitolo 9 Tuple Prof. Mauro Gaspari: gaspari@cs.unibo.it Le tuple Due strutture dati composte: Stringhe: non modificabili (immutabili) Liste: modificabili (mutabili) Le tuple

Dettagli

Informatica Generale Andrea Corradini Algoritmi: ordinamento per inserimento e ricorsione

Informatica Generale Andrea Corradini Algoritmi: ordinamento per inserimento e ricorsione Informatica Generale Andrea Corradini 14 - Algoritmi: ordinamento per inserimento e ricorsione Sommario Un algoritmo iterativo: l'ordinamento per inserimento (insertion sort) La ricorsione: i numeri triangolari

Dettagli

Programmare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione

Programmare. Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Python Programmare Definire una sequenza di istruzioni che specificano come effettuare una elaborazione Le istruzioni devono essere date in un linguaggio comprensibile dal calcolatore. In generele questi

Dettagli

PASCAL: I VETTORI TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL. 1, HOEPLI. Informatica

PASCAL: I VETTORI TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL. 1, HOEPLI. Informatica PASCAL: I VETTORI TRATTO DA CAMAGNI-NIKOLASSY, CORSO DI INFORMATICA, VOL. 1, HOEPLI Informatica I dati strutturati: gli array I vettori (o Array) Fino a ora abbiamo memorizzato le informazioni (valori)

Dettagli

Ordinamenti e crescita della complessità

Ordinamenti e crescita della complessità Ordinamenti e crescita della complessità Informatica@SEFA 07/08 - Lezione Massimo Lauria Venerdì, 7 Ottobre 07 Nota bibliografica: Il contenuto di questa e di alcune delle prossime

Dettagli

Bubblesort e ordinamenti per confronti

Bubblesort e ordinamenti per confronti Bubblesort e ordinamenti per confronti Informatica@SEFA 2017/2018 - Lezione 12 Massimo Lauria http://massimolauria.net/courses/infosefa2017/ Venerdì, 3 Novembre 2017 1 Bubblesort

Dettagli

Pensiero Algoritmico. Lezione 3 23 Novembre Ripasso. Anatomia di un programma. Anatomia di un programma. Ozalp Babaoglu Università di Bologna

Pensiero Algoritmico. Lezione 3 23 Novembre Ripasso. Anatomia di un programma. Anatomia di un programma. Ozalp Babaoglu Università di Bologna Pensiero Algoritmico Lezione 3 23 Novembre 2016 Ozalp Babaoglu Università di Bologna Ripasso Definizione del problema Astrarre i dettagli, costruire un modello Costruire l algoritmo che risolve il problema

Dettagli

>> A = [1 2 3; 4 5 6; 7 8 9]; >> A

>> A = [1 2 3; 4 5 6; 7 8 9]; >> A Creazione di matrici Delimititatore di riga Delimititatore di matrice >> A = [1 2 3; 4 5 6; 7 8 9]; >> A = [... 1 2 3 4 5 6 7 8 9 ]; Entrambi i comandi creano la stessa matrice 3x3 Accedere agli elementi

Dettagli

Progetto Corda. Alberto Ferrari. Alberto Ferrari Ingegneria dell'informazione, UniPR. 18/12/2017 Progetto Corda

Progetto Corda. Alberto Ferrari. Alberto Ferrari Ingegneria dell'informazione, UniPR. 18/12/2017 Progetto Corda Progetto Corda Alberto Ferrari Alberto Ferrari Ingegneria dell'informazione, UniPR file:///e:/cordanoweb/lez/array.html#3 1/33 Array (ordinamento) 2/33 file:///e:/cordanoweb/lez/array.html#3 2/33 Sort

Dettagli

1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso

1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso Domanda 1 1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso x n+1 = x n f(x n), n = 0, 1, 2,... K dove x 0 è il punto iniziale, f(x) = x 3 cos(x) e K è una costante assegnata.

Dettagli

Laboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili, Bisezione

Laboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili, Bisezione Laboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili, Bisezione Claudia Zoccarato E-mail: claudia.zoccarato@unipd.it Dispense: Moodle Dipartimento ICEA 22 Marzo 2017 Vettori in

Dettagli

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 3-15/3/2018

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 3-15/3/2018 Complementi di Matematica e Calcolo Numerico A.A. 2017-2018 Laboratorio 3-15/3/2018 Programmare con Matlab: Script-files Che cos è uno script file? È un file con estensione.m (ad esempio: myfile.m). Contiene

Dettagli

Laboratorio 04. Programmazione - CdS Matematica. Michele Donini 19 Novembre 2013

Laboratorio 04. Programmazione - CdS Matematica. Michele Donini 19 Novembre 2013 Laboratorio 04 Programmazione - CdS Matematica Michele Donini 19 Novembre 2013 Controllo del flusso Selezione: ci permette di modificare il normale flusso sequenziale di un programma a seconda della valutazione

Dettagli

Parte 1: tipi primitivi e istruzioni C

Parte 1: tipi primitivi e istruzioni C Parte 1: tipi primitivi e istruzioni C Esercizio 1 Scrivere un programma che stampa la somma di una sequenza di N numeri inseriti dall utente. Esercizio 2 Scrivere un programma che stampa la somma di una

Dettagli

Laboratorio di Programmazione Appunti sulla lezione 5: Algoritmi di ordinamento (cont.) Alessandra Raffaetà

Laboratorio di Programmazione Appunti sulla lezione 5: Algoritmi di ordinamento (cont.) Alessandra Raffaetà Laboratorio di Programmazione Appunti sulla lezione : Algoritmi di ordinamento (cont.) Alessandra Raffaetà Università Ca Foscari Venezia Corso di Laurea in Informatica Bubblesort Idea: Due elementi adiacenti

Dettagli

File e puntatori a file

File e puntatori a file File e puntatori a file Vitoantonio Bevilacqua vitoantonio.bevilacqua@poliba.it La libreria stdio.h mette a disposizione delle funzioni che hanno la peculiarità di trattare con questa nuova tipologia di

Dettagli

Calcolo Numerico (CdS in Matematica) A.A. 2012/13

Calcolo Numerico (CdS in Matematica) A.A. 2012/13 Calcolo Numerico (CdS in Matematica) A.A. 2012/13 Esercitazione di Laboratorio sulla risoluzione di sistemi di equazioni lineari Parte 1. Fattorizzazione di matrici Scrivere una funzione Matlab che implementi

Dettagli

Introduzione a Python e Gurobi

Introduzione a Python e Gurobi Introduzione a Python e Gurobi Introduzione Python è un linguaggio di programmazione ad alto livello, rilasciato pubblicamente per la prima volta nel 1991 dal suo creatore Guido van Rossum, programmatore

Dettagli

LABORATORIO DI INFORMATICA ESERCITAZIONE VIII

LABORATORIO DI INFORMATICA ESERCITAZIONE VIII LABORATORIO DI INFORMATICA ESERCITAZIONE VIII Cercate di eseguire gli esercizi da soli. Se non ci riuscite, cercate di capire i messaggi di errore. Se non ci riuscite, provateci di nuovo. Poi chiamate

Dettagli

Laboratorio di Python

Laboratorio di Python , Input da tastiera, Iterazione incondizionata 7 marzo 2014 Sommario 1 2 3 Outline 1 2 3 Definizione di funzione import modulo Si importa il modulo specificato def nome_f(par 1,, par n ) : Si definiscono

Dettagli

Calcolare il massimo di una lista

Calcolare il massimo di una lista Calcolare il massimo di una lista Lunedì abbiamo definito un algoritmo per calcolare il valore massimo fra gli elementi di una lista predefinita di interi. In particolare, abbiamo: deciso di rappresentare

Dettagli

Programmare Ottenere Python Primi passi Tipi dati Funzioni Approfondimenti. Un introduzione a Python 7 maggio 2012

Programmare Ottenere Python Primi passi Tipi dati Funzioni Approfondimenti. Un introduzione a Python 7 maggio 2012 Un introduzione a Python 7 maggio 2012 Programmi e linguaggi Programma: Serie di istruzioni che indicano al computer quali operazioni svolgere. Programmi e linguaggi Programma: Serie di istruzioni che

Dettagli

Soluzione di Equazioni non lineari

Soluzione di Equazioni non lineari Soluzione di Equazioni non lineari Corso di Calcolo Numerico 20 Marzo 2018 Function in MATLAB Lo scopo di una funzione è quello di prendere in input un certo numero di valori, fare alcune operazioni con

Dettagli

LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica. Algoritmi ricorsivi

LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica. Algoritmi ricorsivi LABORATORIO DI PROGRAMMAZIONE 2 Corso di laurea in matematica Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna Partiamo da un

Dettagli

Casi di prova. Il problema dell ordinamento. Casi di prova. Casi di prova. Casi di prova

Casi di prova. Il problema dell ordinamento. Casi di prova. Casi di prova. Casi di prova Casi di prova Casi di prova Quando si vuole testare un algoritmo si devono costruire vari casi di prova. Invece di eseguire il programma più volte si può costruire un file di dati contenente tutti i casi

Dettagli

Esercizi sulla ricorsione

Esercizi sulla ricorsione Laboratorio di Sperimentazioni di Fisica I MOD A 21 Ottobre 2009 Esercizi sulla ricorsione enea.poletti@dei.unipd.it elisa.veronese@dei.unipd.it enrico.grisan@deiunipd.it Esempi classici: calcolare il

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica Seconda lezione a Python Dottore Paolo Parisen Toldin - parisent@cs.unibo.it Dottoressa Sara Zuppiroli - sara.zuppiroli@unibo.it L'importanza di capire Perché non dobbiamo dichiarare

Dettagli

liceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE BIENNIO: SECONDA DISCIPLINA: INFORMATICA

liceo 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:

Dettagli

PON Liceo Scientifico Leonardo da Vinci Vallo della Lucania Nuovi percorsi matematici: Osservare, descrivere, costruire.

PON Liceo Scientifico Leonardo da Vinci Vallo della Lucania Nuovi percorsi matematici: Osservare, descrivere, costruire. PON 2007 2013 Liceo Scientifico Leonardo da Vinci Vallo della Lucania Nuovi percorsi matematici: Osservare, descrivere, costruire. Derive - 2 ESPRESSIONI E POLINOMI Vallo della Lucania 26 settembre 2008

Dettagli

Appunti di informatica. Lezione 8 anno accademico Mario Verdicchio

Appunti di informatica. Lezione 8 anno accademico Mario Verdicchio Appunti di informatica Lezione 8 anno accademico 2016-2017 Mario Verdicchio Il ciclo FOR Molto spesso in un programma bisogna ripetere un operazione per un numero prefissato di volte Si tratta di un iterazione

Dettagli

Liceo B.Russell Classe 2 I VETTORI. ORDINAMENTO DI UN VETTORE: Metodo ingenuo o sequenziale

Liceo B.Russell Classe 2 I VETTORI. ORDINAMENTO DI UN VETTORE: Metodo ingenuo o sequenziale Fondamenti: I VETTORI Riempimento di un vettore con numeri acquisiti da tastiera; Riempimento di un vettore lungo N con i numeri da 0 a N; Riempimento di un vettore lungo N con i numeri da N a 0; Riempimento

Dettagli

Si può scrivere un programma anche utilizzando un editor di testo (Blocco Note, WordPad, ) ricordandosi comunque di salvarlo con l estensione.py.

Si può scrivere un programma anche utilizzando un editor di testo (Blocco Note, WordPad, ) ricordandosi comunque di salvarlo con l estensione.py. Avviare il programma (Tutti i Programmi Python 2.7 Idle). Quello che si è avviato è l ambiente di sviluppo di Python, che serve per facilitare il programmatore nello scrivere programmi usando Python. Dalla

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

Laboratorio di Informatica

Laboratorio di Informatica Laboratorio di Informatica Facoltà di Ingegneria Clinica BCLR Dispense di Paolo Caressa e Raffaele Nicolussi. Lezione 5. Versione per Python 3. Docenti: Alberto Marchetti Spaccamela Raffaele Nicolussi

Dettagli

Esercizi vari. Alberto Montresor. 19 Agosto, 2014

Esercizi vari. Alberto Montresor. 19 Agosto, 2014 Esercizi vari Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle rispettive soluzioni

Dettagli

Informatica (A-K) 14. Linguaggio C -4

Informatica (A-K) 14. Linguaggio C -4 Strutture Dati in C Le strutture dati sono entità che permettono di memorizzare dati in modo organizzato e funzionale a particolari esigenze Informatica (A-K) 14. Linguaggio C -4 Strutture Dati tipiche

Dettagli

Tecniche di Ordinamento dei Vettori

Tecniche di Ordinamento dei Vettori Tecniche di Ordinamento dei Vettori Corso di Laurea Ingegneria Corso B A.A. 2010-2011 1 Contenuto 1) Generalità 2) Metodi a Minimo Ingombro di Memoria 2.1) Ordinamento per selezione ( Selection Sort )

Dettagli

Primi script in MATLAB

Primi script in MATLAB Primi script in MATLAB Laboratorio di Calcolo Numerico 6 Marzo 2018 Introduzione alla programmazione Obiettivo: scrivere programmi e sviluppare algoritmi in MATLAB Si utilizzano gli m-file, ovvero file

Dettagli

Esercizi su Python. 14 maggio Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che:

Esercizi su Python. 14 maggio Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che: Esercizi su Python 14 maggio 2012 1. Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che: 1. conti quanti elementi pari sono presenti nella lista; 2. conti quanti quadrati

Dettagli

Ordinamento efficiente: quick-sort

Ordinamento efficiente: quick-sort Ordinamento efficiente: quick-sort Si cerca di ridurre la parte disordinata di più di un elemento per volta (a differenza di selection-sort e bubble-sort) L idea è di ordinare parzialmente l array, in

Dettagli

COMPLESSITÀ COMPUTAZIONALE. Fondamenti di Informatica A - Massimo Bertozzi

COMPLESSITÀ COMPUTAZIONALE. Fondamenti di Informatica A - Massimo Bertozzi COMPLESSITÀ COMPUTAZIONALE Tipi di complessità Consideriamo l'analisi della complessità di un programma da due punti di vista: spazio tempo Complessità Spaziale Lo spazio utilizzato da un programma può

Dettagli

Laboratorio di Matematica e Informatica 1

Laboratorio di Matematica e Informatica 1 Laboratorio di Matematica e Informatica 1 Matteo Mondini Antonio E. Porreca matteo.mondini@gmail.com porreca@disco.unimib.it Dipartimento di Informatica, Sistemistica e Comunicazione Università degli Studi

Dettagli

Informatica e Laboratorio di Programmazione complessità degli algoritmi Alberto Ferrari. Alberto Ferrari Informatica e Laboratorio di Programmazione

Informatica e Laboratorio di Programmazione complessità degli algoritmi Alberto Ferrari. Alberto Ferrari Informatica e Laboratorio di Programmazione Informatica e Laboratorio di Programmazione complessità degli algoritmi Alberto Ferrari Alberto Ferrari Informatica e Laboratorio di Programmazione algoritmo o matematico persiano Muhammad al-khwarizmi

Dettagli

Laboratorio di Python

Laboratorio di Python Istruzione di condizione, Input da tastiera, Università di Bologna 6 e 8 marzo 2013 Sommario 1 Tipi di errore e Debugging 2 3 4 Outline Tipi di errore e Debugging 1 Tipi di errore e Debugging 2 3 4 Esercizio

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Algoritmi di ordinamento Gli ordinamenti interni sono fatti su sequenze in memoria centrale Fondamenti di Informatica 18. Algoritmi di ordinamento in C++ Gli ordinamenti esterni sono fatti su sequenze

Dettagli

Esempio: somma di due numeri

Esempio: somma di due numeri Esempio: somma di due numeri Scrivere l algoritmo che esegue la somma di due numeri ESEMPIO: somma di due numeri

Dettagli

A. Ferrari. algoritmi notevoli. Python. Alberto Ferrari Informatica

A. Ferrari. algoritmi notevoli. Python. Alberto Ferrari Informatica algoritmi notevoli Python algoritmi o ricerca (verificare la presenza di un valore in una sequenza) o o o ricerca sequenziale (sequenza non ordinata) ricerca sequenziale (sequenza ordinata) ricerca binaria

Dettagli

Algoritmi in C++ (seconda parte)

Algoritmi in C++ (seconda parte) Algoritmi in C++ (seconda parte) Introduzione Obiettivo: imparare a risolvere problemi analitici con semplici programmi in C++. Nella prima parte abbiamo imparato: generazione di sequenze di numeri casuali

Dettagli

Ordinamento. Lorenzo Donatiello,Moreno Marzolla Dip. di Scienze dell'informazione Università di Bologna

Ordinamento. Lorenzo Donatiello,Moreno Marzolla Dip. di Scienze dell'informazione Università di Bologna Ordinamento Lorenzo Donatiello,Moreno Marzolla Dip. di Scienze dell'informazione Università di Bologna Original work Copyright Alberto Montresor, University of Trento (http://www.dit.unitn.it/~montreso/asd/index.shtml)

Dettagli

Polinomi. E. Modica Didattica OrizzonteScuola. Polinomi Operazioni con i polinomi Prodotti notevoli

Polinomi. E. Modica  Didattica OrizzonteScuola. Polinomi Operazioni con i polinomi Prodotti notevoli Polinomi E. Modica http://dida.orizzontescuola.it Didattica OrizzonteScuola L orto... Polinomi Situazioni che hanno come modello un polinomio Generalità sui polinomi Qual è la lunghezza delle assi necessarie

Dettagli

Ambienti di Programmazione per il Software di Base

Ambienti di Programmazione per il Software di Base Ambienti di Programmazione per il Software di Base Le Funzioni in C Esercizi sulle Funzioni svolti Esercizi sulle Funzioni da svolgere A.A. 2011/2012 Ambienti di Programmazione per il Software di Base

Dettagli

Facoltà di Ingegneria Industriale. Matlab/Octave - Esercitazione 7. ricorsione e funzioni anonime

Facoltà di Ingegneria Industriale. Matlab/Octave - Esercitazione 7. ricorsione e funzioni anonime Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti Matlab/Octave - Esercitazione 7 ricorsione e funzioni anonime Politecnico di Milano - DEI 1 Esercizio 1 Implementare

Dettagli

Ricorsione. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico

Ricorsione. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico Ricorsione Stefano Ferrari Università degli Studi di Milano stefanoferrari@unimiit Programmazione anno accademico 2016 2017 Funzioni ricorsive Chiamata è ciascun uso di una funzione nel main o in un altra

Dettagli

MatLab - Testo pagina 1 di 5 101

MatLab - Testo pagina 1 di 5 101 MatLab - Testo pagina 1 di 5 101 8. FUNZIONI E SCRIPT IN MATLAB 801. Scrivere il listato di un file funzione MatLab alfa(x) che, dato un numero reale x dia come risultato la matrice p calcolata come segue:

Dettagli

Laboratorio di Matlab

Laboratorio di Matlab Laboratorio di Matlab Alessandro Formaglio Dipartimento di Ingegneria dell Informazione, Università di Siena alex@dii.unisi.it http://www.dii.unisi.it/ control/matlab/labmatlab.html 9 Luglio 2009 DII -

Dettagli

e L equazione associata a questa disequazione non è risolvibile in maniera analitica, con metodi numerici 2 si trova n 1754, 21

e L equazione associata a questa disequazione non è risolvibile in maniera analitica, con metodi numerici 2 si trova n 1754, 21 Il file distribuzioni.f90 è strutturato in tre parti. Il primo modulo è necessario per richiedere la precisione desiderata per i real di lavoro module precisione integer,parameter::kr=selected_real_kind(18)

Dettagli

ALGORITMI DI ORDINAMENTO E RICERCA BINARIA. Docente: Giorgio Giacinto AA 2008/2009. problema dell ordinamento in modi diversi

ALGORITMI DI ORDINAMENTO E RICERCA BINARIA. Docente: Giorgio Giacinto AA 2008/2009. problema dell ordinamento in modi diversi Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2

Dettagli

Calcolo Parallelo e Distribuito

Calcolo Parallelo e Distribuito Calcolo Parallelo e Distribuito 1 Problema Progettare un algoritmo parallelo per l ordinamento di un vettore su un calcolatore MIMD a memoria distribuita con p processori Sorting Bitonico A. Murli Calcolo

Dettagli

Lezione 05. Costruzione di grafici a torte, grafici a linee, istogrammi

Lezione 05. Costruzione di grafici a torte, grafici a linee, istogrammi Lezione 05 Costruzione di grafici a torte, grafici a linee, istogrammi Grafici a TORTA In un grafico a torta il cerchio (torta) è diviso in settori la cui ampiezza angolare è proporzionale al valore delle

Dettagli

Corso Matlab : Terza lezione (Esercitazione, 17/05/13) Samuela Persia, Ing. PhD.

Corso Matlab : Terza lezione (Esercitazione, 17/05/13) Samuela Persia, Ing. PhD. Advanced level Corso Matlab : Terza lezione (Esercitazione, 17/05/13) Samuela Persia, Ing. PhD. Sommario Richiami Teoria Cenni File script Grafici Acquisizione dati esterni Esercizi: Utilizzo degli script

Dettagli

laboratorio di python

laboratorio di python laboratorio di python iterazione in python 22 Marzo 2019 1/31 Correzione esercizi per oggi esercizio 1 per casa Scrivere una funzione che restituisce True se una stringa passata come parametro è palindroma

Dettagli

Insert sort. Considero il primo elemento a 1. cerco il minimo tra gli elementi 3...N. scambio il minimo trovato con il primo e- lemento

Insert sort. Considero il primo elemento a 1. cerco il minimo tra gli elementi 3...N. scambio il minimo trovato con il primo e- lemento Insert sort Considero il primo elemento a 1 cerco il minimo tra gli elementi 2...N scambio il minimo trovato con il primo e- lemento considero ora a 2 cerco il minimo tra gli elementi 3...N scambio il

Dettagli

RISOLUZIONE APPROSSIMATA DI UN EQUAZIONE

RISOLUZIONE APPROSSIMATA DI UN EQUAZIONE RISOLUZIONE APPROSSIMATA DI UN EQUAZIONE Introduzione Si vogliano individuare, se esistono, le radici o soluzioni dell equazione f(x)=0. Se f(x) è un polinomio di grado superiore al secondo o se è una

Dettagli

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 2 - Introduzione a MATLAB

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 2 - Introduzione a MATLAB Complementi di Matematica e Calcolo Numerico A.A. 2010-2011 Laboratorio 2 - Introduzione a MATLAB Che cos è? Programmare con Matlab: Script-files È un file con estensione.m (ad esempio: myfile.m). Contiene

Dettagli

Programmazione in Python per la bioinformatica

Programmazione in Python per la bioinformatica per la bioinformatica University of Verona Sommario pattern in interagire List comprehension Uso del construtto List comprehension Modo conciso e diretto per creare liste Utilizzato tipicamente per creare

Dettagli

Sommario. Ordinamento. Selection Sort Bubble Sort/ Shaker Sort Shell Sort

Sommario. Ordinamento. Selection Sort Bubble Sort/ Shaker Sort Shell Sort Ordinamento Sommario Ordinamento Selection Sort Bubble Sort/ Shaker Sort Shell Sort Cosa e' l'ordinamento Il problema consiste nell elaborare insiemi di dati costituiti da record I record hanno sono costituiti

Dettagli

Laboratorio di Python

Laboratorio di Python per casa sulle liste Università di Bologna 17 e 19 aprile 2013 Sommario per casa 1 2 3 per casa Correzione per casa def valle(s): if len(s)> 2: return(s[1]

Dettagli

Calcolo Parallelo e Distribuito

Calcolo Parallelo e Distribuito Calcolo Parallelo e Distribuito 1 Problema Progettare un algoritmo parallelo per l ordinamento di un vettore su un calcolatore MIMD a memoria distribuita con p processori Sorting Bitonico A. Murli Calcolo

Dettagli

Silvia Rossi. Algoritmi di Ordinamento. Informatica. Lezione n. Parole chiave: Bubble Sort Selection Sort. Corso di Laurea:

Silvia Rossi. Algoritmi di Ordinamento. Informatica. Lezione n. Parole chiave: Bubble Sort Selection Sort. Corso di Laurea: Silvia Rossi Algoritmi di Ordinamento 0 Lezione n. Parole chiave: Bubble Sort Selection Sort Corso di Laurea: Informatica Insegnamento: Programmazione I Email Docente: srossi@na.infn.it A.A. 00-0 Ordinamento

Dettagli

Pseudo codice. Paolo Bison. Fondamenti di Informatica 1 A.A. 2003/04 Università di Padova. Pseudo codice, Paolo Bison, A.A , p.

Pseudo codice. Paolo Bison. Fondamenti di Informatica 1 A.A. 2003/04 Università di Padova. Pseudo codice, Paolo Bison, A.A , p. Pseudo codice Paolo Bison Fondamenti di Informatica 1 A.A. 2003/04 Università di Padova Pseudo codice, Paolo Bison, A.A. 2003-04, 2003-09-30 p.1/38 Pseudo codice linguaggio testuale mix di linguaggio naturale

Dettagli

Silvia Rossi. Cenni sulla complessità. Informatica. Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Programmazione I

Silvia Rossi. Cenni sulla complessità. Informatica. Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Programmazione I Silvia Rossi Cenni sulla complessità 23 Lezione n. Parole chiave: Corso di Laurea: Informatica Insegnamento: Programmazione I Email Docente: srossi@na.infn.it A.A. 2009-2010 Abbiamo visto che dato un problema

Dettagli

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento

Fondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento Fondamenti di Informatica Algoritmi di Ricerca e di Ordinamento 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure l elemento

Dettagli

ripeto il procedimento a partire da a j cerco il minimo tra j +1 ed N scambio il valore trovato con a j ripeto finché j non è N 1

ripeto il procedimento a partire da a j cerco il minimo tra j +1 ed N scambio il valore trovato con a j ripeto finché j non è N 1 Insert sort Considero il primo elemento a 1 cerco il minimo tra gli elementi 2...N scambio il minimo trovato con il primo e- lemento considero ora a 2 cerco il minimo tra gli elementi 3...N scambio il

Dettagli

Funzioni elementari: potenze e esponenziali 1 / 1

Funzioni elementari: potenze e esponenziali 1 / 1 Funzioni elementari: potenze e esponenziali 1 / 1 Potenze e proprietá: esponente naturale 2 / 1 La funzione potenza con esponente naturale é definita come g: R R x x n dove per ogni x R si ha n N e n 1.

Dettagli

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni Esercizio 1 Dire quale è la complessità temporale del seguente metodo, espressa con notazione asintotica O(.) (con la migliore

Dettagli

05. Determinare una base ortonormale per ognuno dei seguenti spazi vettoriali.

05. Determinare una base ortonormale per ognuno dei seguenti spazi vettoriali. T.1 BASI ORTONORMALI, MATRICI ORTOGONALI 01. Sia V il sottospazio di IR 3 generato dalla base B : (1, 0, 2), (0, 2, 1). Verificare che anche C : (1, 2, 1), (1, 4, 0) è base per V e ortonormalizzare le

Dettagli

Generazione di variabili aleatorie con distribuzione non uniforme. Daniela Picin

Generazione di variabili aleatorie con distribuzione non uniforme. Daniela Picin Generazione di variabili aleatorie con distribuzione non uniforme Daniela Picin A partire da una sequenza di numeri random u k ~ U(0,1) opportunamente generati, alcuni dei metodi per la generazione di

Dettagli

CALCOLO NUMERICO. Prof. Di Capua Giuseppe. Appunti di Informatica - Prof. Di Capua 1

CALCOLO NUMERICO. Prof. Di Capua Giuseppe. Appunti di Informatica - Prof. Di Capua 1 CALCOLO NUMERICO Prof. Di Capua Giuseppe Appunti di Informatica - Prof. Di Capua 1 INTRODUZIONE Quando algoritmi algebrici non determinano la soluzione di un problema o il loro «costo» è molto alto, allora

Dettagli

Informatica B. Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti. Prof. Marco Masseroli

Informatica B. Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti. Prof. Marco Masseroli Facoltà di Ingegneria Industriale Laurea in Ingegneria Energetica, Meccanica e dei Trasporti Dipartimento di Elettronica e Informazione Informatica B Prof. Marco Masseroli Consigli utili (1/3) 1. E fondamentale

Dettagli

Il foglio elettronico Excel: Funzioni, grafici, ordina e filtri

Il foglio elettronico Excel: Funzioni, grafici, ordina e filtri Il foglio elettronico Excel: Funzioni, grafici, ordina e filtri Laboratorio di Informatica Corso di Laurea triennale in Biologia Dott. Fabio Aiolli (aiolli@math.unipd.it) Dott.ssa Elisa Caniato (ecaniato@gmail.com)

Dettagli