Calcolare il massimo di una lista



Похожие документы
Funzioni in C. Violetta Lonati

Per scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli

Laboratorio di Informatica

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

Arduino: Programmazione

Fondamenti di Programmazione

[MANUALE VISUAL BASIC SCUOLA24ORE PROF.SSA PATRIZIA TARANTINO] 14 dicembre 2008

Le stringhe. Le stringhe

Algoritmi di Ricerca. Esempi di programmi Java

Matematica - SMID : Programmazione Febbraio 2009 FOGLIO RISPOSTE

NOZIONI BASE SHELL E SCRIPT LINUX

Laboratorio di programmazione

Concetto di Funzione e Procedura METODI in Java

Le funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.

Inizializzazione, Assegnamento e Distruzione di Classi

Codifica: dal diagramma a blocchi al linguaggio C++

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI

Sottoprogrammi: astrazione procedurale

void funzioneprova() { int x=2; cout<<"dentro la funzione x="<<x<<endl; }

Fondamenti di Informatica e Laboratorio T-AB T-16 Progetti su più file. Funzioni come parametro. Parametri del main

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

LISTE, INSIEMI, ALBERI E RICORSIONE

APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL

Esercizi su. Funzioni

Corso di Fondamenti di Informatica

Introduzione al MATLAB c Parte 2

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

Richiesta pagina PHP (es: index.php)

Linguaggio C - Stringhe

Gestione delle stringhe in C

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

Introduzione all' OO in Python

Esempio: dest = parolagigante, lettere = PROVA dest (dopo l'invocazione di tipo pari ) = pprrlogvgante

Matematica in laboratorio

1.0 GUIDA PER L UTENTE

Esercizi Capitolo 6 - Alberi binari di ricerca

Esercizio 1. Esercizi 5. Esercizio 3. Esercizio 2 CICLI

GESGOLF SMS ONLINE. Manuale per l utente

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS

Breve riepilogo della puntata precedente:

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

un file in formato FASTA contenente un elenco di sequenze una espressione regolare una indicazione se si tratta di DNA,RNA,proteine

Alcune regole di base per scrivere un programma in linguaggio C

Istruzioni condizionali. Istruzioni condizionali IF-THEN- ELSE IF-THEN-ELSE. Statistica computazionale Carla Rampichini a.a.

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Introduzione alla programmazione in C

anno Introduzione all'algoritmica per i Licei 3 Controllo del flusso di esecuzione.

LABORATORIO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO V Indice

Programmazione dinamica

WORD per WINDOWS95. Un word processor e` come una macchina da scrivere ma. con molte più funzioni. Il testo viene battuto sulla tastiera

Informatica B. Sezione D. Scuola di Ingegneria Industriale Laurea in Ingegneria Energetica Laurea in Ingegneria Meccanica

Le variabili. Olga Scotti

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Node.js. REPL e oltre. by Stefano Burigat

La posta elettronica (mail)

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

13. Campi vettoriali

Regolamento In italiano

Lezioni di Matematica 1 - I modulo

ESERCIZI DI PROGRAMMAZIONE C/C++ per le classi terza

4 3 4 = 4 x x x 10 0 aaa

Modulo 4: Ereditarietà, interfacce e clonazione

(a cura di Francesca Godioli)

Test Excel conoscenze di Base

I file di dati. Unità didattica D1 1

L algoritmo di ricerca binaria. Daniele Varin LS Ing. Informatica Corso di Informatica teorica Docente: prof. Paolo Sipala

Corso html 5. Di Roberto Abutzu. *********** Quarta parte: Body ed elementi strutturali. ********** Cos'è il Body e gli elementi strutturali?

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Primo scritto 11 Gennaio 2008

Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 18 31/03/2014

Variabili e tipi di dato

jt - joetex - percorsi didattici

Prof.ssa Paola Vicard

Istruzioni per la configurazione di IziOzi

Programmazione 1 A.A. 2015/2016

ci sono più problemi che programmi esiste un problema che non si può risolvere con un programma

Corso di Informatica

COME CREARE UN SONDAGGIO CON SCELTA SU MOODLE

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

3.6 Preparazione stampa

Esercitazione 01: DDL e DML di base

Corso di Archivistica

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

APPUNTI SU PROBLEMI CON CALCOLO PERCENTUALE

AT1542C - CED - Tablet offline - manuale utente

UTILIZZO DEL MODULO DATA ENTRY PER L IMPORTAZIONE DEI DOCUMENTI (CICLO PASSIVO)

Versione 7.0 Taglie e Colori. Negozio Facile

Scrivere uno script php che, dato un array associativo PERSONE le cui chiavi sono i

Algoritmi e Strutture Dati & Laboratorio di Algoritmi e Programmazione

TUTORIAL DI DOCMAN RC2 PER UTILIZZATORI FINALI di

Транскрипт:

Calcolare il massimo di una lista Ieri abbiamo imparato a calcolare il massimo di una lista predefinita: lista = [4,24,-89,81,3,0,-12,31] max = lista[0] # questo e' un commento: primo elemento di lista pos = 1 # pos si utilizza per accedere ai restanti elementi della lista while pos < len(lista) : # si controlla che il valore di pos sia valido if lista[pos] > max : # se il valore puntato da pos e' > max max = lista[pos] # tale valore deve diventare il massimo pos = pos + 1 # incrementa pos per puntare all'elemento successivo print max # stampa il valore massimo assegnato a max Alcuni commenti: Molti di voi hanno trovato difficoltà a capire come scorrere la lista (uso di pos): se pos vale 2 allora lista[pos] vale lista[2], etc. La condizione del while controlla se il valore di pos è in [0,len(lista)-1], infatti l'indice della prima posizione è 0, mentre quello dell'ultima è pari alla lunghezza della lista meno 1

Cosa impariamo oggi? Oggi impariamo a: definire una funzione (procedura) che calcola il massimo di una lista scrivere un programma in un file da far eseguire all'interprete Python utilizzare in un programma i parametri passati dalla linea di comando leggere e scrivere da programma uno o più file utilizzare altre istruzioni di controllo del flusso utilizzare altre strutture dati

Come si definisce una funzione? Definiamo una funzione che restituisce il massimo di una lista passata come argomento: def massimo_lista(lista) : max = lista[0] pos = 1 while pos < len(lista) : if lista[pos] > max : max = lista[pos] pos = pos + 1 return max La parola chiave def introduce una definizione di funzione Deve essere seguita dal nome della funzione e dalla lista dei parametri formali racchiusa tra parentesi; in questo caso def massimo_lista(lista) : L'istruzione return restituisce una funzione con un valore. return senza un'espressione come argomento restituisce None

Come si definisce una funzione? Vediamo come possiamo utilizzare la funzione appena definita per riprodurre il comportamento del codice scritto ieri def massimo_lista(lista) : max = lista[0] pos = 1 while pos < len(lista) : if lista[pos] > max : max = lista[pos] pos = pos + 1 definizione funzione; prima di poter utilizzare una funzione bisogna definirla! return max mia_lista = [4,24,-89,81,3,0,-12,31] max = massimo_lista(mia_lista) corpo del programma che utilizza la funzione print max

Come si definisce una funzione? Potevamo anche chiamare direttamente la funzione come argomento di print: def massimo_lista(lista) : max = lista[0] pos = 1 while pos < len(lista) : if lista[pos] > max : max = lista[pos] pos = pos + 1 definizione funzione; prima di poter utilizzare una funzione bisogna definirla! return max mia_lista = [4,24,-89,81,3,0,-12,31] print massimo_lista(mia_lista) corpo del programma che utilizza la funzione

Come si definisce una funzione?...e anche chiamare la funzione con argomento dato da una lista: def massimo_lista(lista) : max = lista[0] pos = 1 while pos < len(lista) : if lista[pos] > max : definizione funzione; prima di poter utilizzare una funzione bisogna definirla! max = lista[pos] pos = pos + 1 return max print massimo_lista([4,24,-89,81,3,0,-12,31]) corpo del programma che utilizza la funzione

Eseguire un programma in un file Invece di inserire i comandi a linea di comando, possiamo inserirli in un file Ad esempio, provate a copiare I seguenti comandi in un file con nome massimo_lista.py (l'estensione.py indica che il file contiene codice Python) def massimo_lista(lista) : max = lista[0] pos = 1 while pos < len(lista) : if lista[pos] > max : max = lista[pos] pos = pos + 1 return max print massimo_lista([4,24,-89,81,3,0,-12,31]) Per eseguire il programma digitare da linea di comando: python massimo_lista.py 81 risultato dell'esecuzione

Parametri di un programma Nell'esempio precedente si calcola il massimo di una lista definita in modo costante all'interno del codice È possibile passare la lista come parametro del programma, i.e. python massimo_lista.py 4,24,-89,81,3,0,-12,31 Ma come facciamo a leggere la lista all'interno del programma? Quando si esegue l'interprete python, i parametri (o argomenti) sono inseriti in un array (lista) chiamata sys.argv notare che non sono presenti Nel caso della chiamata spazi nella definizione della lista python massimo_lista.py 4,24,-89,81,3,0,-12,31 sys.argv = ['massimo_lista.py','4,24,-89,81,3,0,-12,31'] Notare che i parametri sono individuati utilizzando gli spazi: per questo motivo è importante definire la lista senza introdurre spazi fra gli elementi Per poter utilizzare sys.argv si devono importare nell'interprete delle procedure di sistema predefinite tramite il comando import sys

Parametri di un programma Cerchiamo di capire come funziona il passaggio di parametri con il seguente programma da copiare in un file che chiameremo parametri.py import sys pos = 0 while pos < len(sys.argv) : notare l'uso della virgola per stampare più argomenti separati da uno spazio print 'parametro',pos,':',sys.argv[pos] pos = pos + 1 Provate ad eseguire il programma passando uno o più parametri separati da uno spazio, ad esempio python parametri.py python parametri.py pippo python parametri.py pippo topolino python parametri.py pippo,topolino python parametri.py pippo, topolino

Parametri di un programma Ora siamo (quasi!) pronti per definire il nostro programma parametrico import sys def massimo_lista(lista) : max = lista[0] pos = 1 while pos < len(lista) : if lista[pos] > max : max = lista[pos] pos = pos + 1 return max merita una spiegazione... lista_in = [int(x) for x in sys.argv[1].split(',')] print 'Il valore massimo di',lista_in,'e\'',massimo_lista(lista_in)

stringa.split(delimitatore) >>> import string >>> Verso = "Nel mezzo del cammin..." >>> Verso.split() ['Nel', 'mezzo', 'del', 'cammin...'] >>> Verso = "Nel,mezzo,del,cammin..." >>> Verso.split(',') ['Nel', 'mezzo', 'del', 'cammin...']

Inoltre... for Guardiamo il tutorial online alla sezione 4.2 Da stringa a numero: int('123') restituisce il numero 123

Esercizio Scrivere un programma, utilizzando la funzione massimo_lista, che stampa gli elementi di una lista numerica, passata come parametro, dal valore più grande al valore più piccolo AIUTO: si può cancellare un elemento da una lista utilizzando lista.remove(elemento) Ad esempio mia_lista = [35,5,-12,8,44] mia_lista.remove(5) rimuove l'elemento 5 da mia_lista, che diventerà uguale a [35,-12,8,44] Notare che il seguente codice ottiene lo stesso effetto mia_lista = [35,5,-12,8,44] mia_variabile = 5 mia_lista.remove(mia_variabile)

Altro esercizio Scrivere una funzione ordina_dec che data una lista numerica, passata come parametro, ne restituisca una ordinata dal valore più grande al valore più piccolo AIUTO 1: utilizzare il metodo append definito per le liste lista.append(elemento) AIUTO 2: una variabile può essere inizializzata ad una lista vuota con la seguente istruzione mia_lista = [ ]

Altro esercizio Scrivere una funzione ordina che dati come parametri una lista numerica e un carattere, restituisca la lista ordinata dal valore più grande al valore più piccolo se il carattere è uguale a 'd', altrimenti restituisca la lista ordinata dal valore più piccolo al valore più grande Esempi di chiamata ordina([34, -1, 6, -31, 8, 123],'d') restituisce [123,34,8,6, -1, -31] ordina([34, -1, 6, -31, 8, 123],'c') restituisce [-31,-1,6,8,34,123]

Leggere e scrivere file Guardiamo il tutorial online a partire dalla sezione 7.2 Esercizio Scrivere un programma che legge una lista numerica da un file, il cui nome è passato come primo parametro, e scrive gli elementi della lista, dal valore più grande al valore più piccolo, in un altro file, il cui nome è passato come secondo parametro (variante: passare un terzo parametro che stabilisca se ordinare gli elementi in modo crescente o decrescente)

Altre istruzioni di controllo Guardiamo il tutorial online: sezioni 4.1, 4.3, 4.4

Altre strutture dati Guardiamo il tutorial online alla sezione 5