IL MASSIMO DI UN ARRAY ESERCIZIO

Slides:



Advertisements
Presentazioni simili
LINGUAGGIO DI PROGRAMMAZIONE C
Advertisements

INFORMATICA Algoritmi fondamentali
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Argomenti della lezione
Il problem-solving Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino.
Dati strutturati A. Ferrari.
Algoritmi notevoli.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità G1 Dati strutturati.
Ripasso R1 Dati strutturati.
Array multidimensionali
Algoritmi notevoli In linguaggio C.
Array (vettori) In linguaggio C / C++.
Le operazioni di moltiplicazione e divisione in Aritmetica e geometria
Universita di Camerino
Array di array Capitolo 20 febbraio 2004 Array di array.
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
Anno accademico Array e puntatori in C.
Algoritmi in C++ (1) da completare
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Corso di Fondamenti di programmazione a.a.2009/2010
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
File.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
1 Corso di Informatica (Programmazione) Esercitazione 1 (26 novembre 2008)
Creazione di matrici Delimititatore di riga Delimititatore di matrice
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Argomenti della lezione
Array Struttura numerate di dati. Memorizzare molti dati In informatica cè spesso bisogno di memorizzare ed elaborare un insieme costituito da molti dati.
07/04/2003Algoritmi Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure.
Heap allocation e garbage collector di Oberon Algoritmo Quick Fit e garbage collector mark and sweep.
Le funzioni.
Linguaggi di programmazione: funzioni Le funzioni richiedono un numero fisso o variabile di argomenti, ovvero valori che devono essere passati alla funzione.
Elementi di Informatica di base
Problema dell’ordinamento di un array: Il metodo Bubble Sort.
BIOINFO3 - Lezione 24 ARRAY
Radix-Sort(A,d) // A[i] = cd...c2c1
BIOINFO3 - Lezione 261 ESERCIZIO Esercizio. Leggere delle sequenze di DNA (una per riga, a partire da inizio riga) e stampare solo le sequenze lunghe più
BIOINFO3 - Lezione 381 ESERCIZIO Dato un programma con la sola istruzione: $a=Hasta la vista! Quanto vale length($a) ?15 substr($a,0) ? substr($a,$b) ?
BIOINFO3 - Lezione 221 Listruzione IF-ELSE prevede un secondo blocco di istruzioni da eseguire in alternativa al primo nel caso la condizione sia falsa.
BIOINFO3 - Lezione PARSING RISULTATI DI BLAST Nella lezione di ieri abbiamo visto come automatizzare lesecuzione di BLAST. Oggi proviamo.
BIOINFO3 - Lezione 201 Come in ogni corso di introduzione ad un linguaggio di programmazione, proviamo a scrivere lormai celebre primo programma di prova.
BIOINFO3 - Lezione 211 INPUT La lettura di un input dallo standard input (tastiera) si effettua utilizzando lespressione. Quando il programma incontra.
BIOINFO3 - Lezione 17 VARIABILI
BIOINFO3 - Lezione 331 SUBROUTINE IN PERL Una subroutine (funzione, metodo, procedura o sottoprogramma), e` una prozione di codice all`interno di un programma.
BIOINFO3 - Lezione 41 ALTRO ESEMPIO ANCORA Progettare il comando di creazione di una tabella di pubblicazioni scientifiche. Come chiave usare un numero.
BIOINFO3 - Lezione 291 PATTERN MATCHING Imparato cosa sono e come si usano le espressioni regolari per individuare dei pattern, vediamo come si usano in.
REDIREZIONE INPUT E OUTPUT
BIOINFO3 - Lezione 251 ARRAY ASSOCIATIVI E possibile assegnare tutti gli elementi dellarray con ununica istruzione %anni=(Marco,30,Luigi,33,Anna,28,Chiara,25);
Complessità di un algoritmo
Vettori (a una dimensione)
Ordinamento in tempo lineare Il limite inferiore Ω(n log n) vale per tutti gli algoritmi di ordinamento generali, ossia per algoritmi che non fanno alcuna.
DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA Lab 2: 20 Aprile 2015 Marco D. Santambrogio – Gianluca Durelli –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 L Aprile 2015 Marco D. Santambrogio – Gianluca Durelli -
Operatori di incremento e decremento
1 Informatica Generale Alessandra Di Pierro Ricevimento: Giovedì ore presso Dipartimento di Informatica, Via Buonarroti,
1 Strutture dati. 2 Astrazione Non vogliamo sapere l’organizzazione fisica dei dati  indirizzi e celle di memoria Ci interessa solo la loro organizzazione.
Sommario Oggetti immutabili e non Tipi Primitivi: String, Arrays.
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
GLI ALGORITMI DI ORDINAMENTO
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
“ Pseudocodice ” Un programma per computer lavorerà su in insieme di “ variabili ” contenenti i dati del problema, soluzioni intermedie, soluzioni finali.
30/10/01Array 1  Un array e’ una struttura dati che contiene piu’ valori del medesimo tipo.  La lunghezza di un array e’ stabilita quando l’array viene.
Introduzione alla LOGICA MATEMATICA Corso di Matematica Discreta. Corso di laurea in Informatica. Prof. Luigi Borzacchini VIII. Insiemi e Strutture Dati.
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
Psicometria modulo 1 Scienze tecniche e psicologiche Prof. Carlo Fantoni Dipartimento di Scienze della Vita Università di Trieste Campionamento.
Transcript della presentazione:

IL MASSIMO DI UN ARRAY ESERCIZIO BIOINFO3 - Lezione 18 IL MASSIMO DI UN ARRAY ESERCIZIO Trovare il valore massimo all’interno di un array a di n elementi ed assegnarlo alla variabile max. Poi proveremo insieme l’esecuzione con l’array a=(5,7,3,1,9,2) BIOINFO3 - Lezione 18

LA SOMMA DI UN ARRAY ESERCIZIO BIOINFO3 - Lezione 18 LA SOMMA DI UN ARRAY ESERCIZIO Effettuare la somma di tutti gli elementi di un array a di n elementi memorizzandola in una variabile s Poi proveremo insieme l’esecuzione con l’array a=(5,7,3,1,9,2) BIOINFO3 - Lezione 18

RICERCA IN ARRAY ESERCIZIO BIOINFO3 - Lezione 18 RICERCA IN ARRAY ESERCIZIO Ricercare in un array a di n elementi (tutti diversi) l’indice di un elemento di valore uguale al contenuto della variabile v restituendolo nella variabile p. (Quindi supponiamo di avere già le variabili a e v). Se l’elemento non esiste restituire come posizione –1. Poi proveremo insieme l’esecuzione con l’array a=(5,7,3,1,9,2) ed elementi v=7 e v=4 BIOINFO3 - Lezione 18

ORDINAMENTO DI UN ARRAY BIOINFO3 - Lezione 18 ORDINAMENTO DI UN ARRAY Vediamo ora un algoritmo (semplice, ma non molto efficiente; ne esistono di “migliori”, che richiedono cioè un numero minore di operazioni e sono quindi più veloci) per ordinare gli elementi di un array. Alcuni linguaggi possiedono delle funzioni già predisposte per questa operazione. L’algoritmo consiste nello scandire l’intero array dal primo elemento (posizione 0) al penultimo (posizione n-1) usando una variabile i come indice. Per ogni posizione i si determina l’elemento da disporre in quella posizione nell’ordinamento confrontando l’elemento in posizione i con tutti gli elementi di posizione successiva. Per questo secondo ciclo si usa un indice j che varia da i+1 a n. Se l’elemento in posizione j è minore di quello in posizione i i due elementi vengono scambiati di posto. BIOINFO3 - Lezione 18

ORDINAMENTO DI UN ARRAY BIOINFO3 - Lezione 18 ORDINAMENTO DI UN ARRAY Provare su carta l’esecuzione passo per passo dell’algoritmo di ordinamento con l’array a=(6,3,5,9,8) BIOINFO3 - Lezione 18

Ordinamento Bucket sort BIOINFO3 - Lezione 18 Ordinamento Bucket sort Prevede l`utilizzo di un array unidimensionale di interi positivi da ordinare, e un array bidimensionale di interi. In questo array le righe hanno indici che vanno da 0 a 9 mentre le colonne indici che vanno da 0 a n-1 (n e` il numero di elementi da ordinare). Ogni riga del dell`array e` detta bucket o secchiello. Si pone ogni valore dell`array unidimensionale in una riga dell`array di bucket sulla base della cifra delle unita` presente nel numero. Ad esempio, 97 viene messo alla riga 7, 3 nella riga 3, e 100 nella riga 0. Con un ciclo sulle righe si copiano nuovamente i valori nell`array originario. (100,3,97). Si ripete il procedimento per ogni sucessiva cifra. BIOINFO3 - Lezione 18

Risultato finale: a=(3,97,100) BIOINFO3 - Lezione 18 a=(97,3,100) a=(100,3,97) a=(100,3,97) 1 2 100 3 4 5 6 7 97 8 9 1 2 100,3 3 4 5 6 7 8 9 97 1 2 3,97 100 3 4 5 6 7 8 9 Risultato finale: a=(3,97,100) BIOINFO3 - Lezione 18

BIOINFO3 - Lezione 18 ARRAY ASSOCIATIVI Siamo sempre in presenza di un array e quindi di un gruppo di variabili contraddistinte da un nome comune. A differenza degli array, gli array associativi permettono di identificare i singoli elementi mediante un nome, anziché un indice numerico anni 10 12 2 8 Mario Luigi Andrea Marta BIOINFO3 - Lezione 18

RIFERIMENTI AD ARRAY ASSOCIATIVI BIOINFO3 - Lezione 18 RIFERIMENTI AD ARRAY ASSOCIATIVI Alcuni linguaggi di programmazione (guarda caso ancora il Perl) permettono di assegnare i nomi degli indici e i corrispondenti valori ad un array associativo con una unica operazione del tipo anni=(´Mario´,10,’Luigi’,12,’Andrea’,2,’Marta’,8) N.B. Perl riconosce dal nome il tipo di array (lo vedremo) Per indirizzare le singole celle dell’array si usano le parentesi grafe { } anziché quelle quadre [ ] anni{‘Mario’}=4 anni{‘Luigi’}= anni{‘Luigi’}+1 anni {‘Giorgio’}=7 anni 4 13 2 8 7 Mario Luigi Andrea Marta Giorgio BIOINFO3 - Lezione 18

BIOINFO3 - Lezione 18 ESEMPIO Leggere da input, fino a quando si incontra la stringa ‘#’, una stringa (il nome di un prodotto) ed un numero (il prezzo del prodotto). Assegnare alla cella di un array associativo, avente come indice il nome del prodotto, il prezzo corrispondente BIOINFO3 - Lezione 18

BIOINFO3 - Lezione 18 LISTE Possiamo pensarle come degli array, i cui elementi non sono caratterizzati da indici ed in cui è possibile effettuare delle operazioni standard: Inserimento alla fine della lista Prelievo del primo elemento Operazione caratteristica di strutture dati FIFO=FirstInFirstOut (esempio: CODE) Prelievo dell’ultimo elemento Operazione caratteristica di strutture dati LIFO=LastInFirstOut (esempio: STACK) BIOINFO3 - Lezione 18

RIEPILOGO Array: ricerca massimo Array: somma degli elementi BIOINFO3 - Lezione 18 RIEPILOGO Array: ricerca massimo Array: somma degli elementi Array: ricerca di un elemento Array: ordinamento Array associativi Liste BIOINFO3 - Lezione 18