BIOINFO3 - Lezione 331 SUBROUTINE IN PERL Una subroutine (funzione, metodo, procedura o sottoprogramma), e` una prozione di codice all`interno di un programma.

Slides:



Advertisements
Presentazioni simili
INFORMATICA Altre Istruzioni di I/O
Advertisements

LINGUAGGIO DI PROGRAMMAZIONE C
Funzioni e procedure Ogni linguaggio di programmazione ad alto livello mette a disposizione del programmatore questi strumenti, ed il C non è da meno!
Procedure In assembler.
Procedure e funzioni A. Ferrari.
PHP.
Lez. 11 (11/12) - PBElementi di Programmazione1 Lezione 11 Esercizi.
Lez. 5 (10/11 - PB)Elementi di Programmazione1 Lezione 5 Procedure Funzioni Passaggio di parametri.
Lez. 5 (11/12- PB)Elementi di Programmazione1 Lezione 5 Procedure Funzioni Passaggio di parametri.
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Introduzione al linguaggio C
Indirizzi delle variabili A ogni variabile sono associati tre concetti fondamentali: il valore memorizzato; il tipo dati di appartenenza; lindirizzo. Il.
FUNZIONI DI BIBLIOTECA
Caratteri e stringhe di caratteri
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
Funzioni definite dall’utente
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
1 Corso di Informatica (Programmazione) Lezione 12 (19 novembre 2008) Programmazione in Java: i metodi statici.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Indipendenza lineare,
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
Ricorsione e Debug.
eliana minicozzi linguaggi1a.a lezione2
Procedure e funzioni nei linguaggi di alto livello Lab Programmazione - turno /2006.
I File.
Le funzioni.
Lezione 24 maggio 2007 Strutture File Allocazione dinamica della memoria.
Javascript 6 Funzioni. Una funzione sarà eseguita in risposta ad un evento o ad una chiamata diretta. Le funzioni possono essere inserite comodamente.
Linguaggi di programmazione: funzioni Le funzioni richiedono un numero fisso o variabile di argomenti, ovvero valori che devono essere passati alla funzione.
BIOINFO3 - Lezione 24 ARRAY
I Metodi in Java Il termine "metodo" è sinonimo di "azione". Quindi, affinché un programma esegua qualche istruzione, deve contenere metodi.
Un esempio: Calcolo della potenza n-esima di un numero reale
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
Array e Funzioni in PHP Laboratorio di Progettazione Web AA 2007/2008 Chiara Renso ISTI- CNR -
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.
PARSERIZZAZIONE DI FILE
BIOINFO3 - Lezione 361 RICERCA DI SIMILARITA TRA SEQUENZE Un altro problema comunissimo in bioinformatica è quello della ricerca di similarità tra sequenze.
BIOINFO3 - Lezione PARSING RISULTATI DI BLAST Nella lezione di ieri abbiamo visto come automatizzare lesecuzione di BLAST. Oggi proviamo.
BIOINFO3 - Lezione 321 ACCESSO REMOTO AL SERVER SIBILLA Attraverso Internet è possibile accedere al server sibilla.cribi.unipd.it. Potrete così effettuare.
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 111 CGI-BIN CGI-BIN sono chiamati i programmi la cui esecuzione può essere richiesta attraverso il WEB. Il server web (httpd) della.
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 15 ISTRUZIONI
BIOINFO3 - Lezione 291 PATTERN MATCHING Imparato cosa sono e come si usano le espressioni regolari per individuare dei pattern, vediamo come si usano in.
BIOINFO3 - Lezione 271 PATH DEL FILE Bisogna fare molta attenzione al path del file da aprire. Per non sbagliare converrebbe passare sempre il path assoluto.
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);
2000 Prentice Hall, Inc. All rights reserved. Attivazione di funzioni La chiamata/attivazione di funzione viene indicata citando il nome della funzione.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
File e Funzioni Si possono distinguere tre tipi di file che vengono utilizzati in MATLAB: M-file: hanno estensione .m e in essi vengono memorizzati i.
Costruzione di una semplice Agenda telefonica Elettronica Esercizio sull'uso delle principali system call Unix.
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
Il linguaggio Fortran 90: 3. Procedure e Funzioni
Lezione 3 Struttura lessicale del linguaggio
Programmazione ad oggetti
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.
Informatica 4 Funzioni. FUNZIONE: definizione MATEMATICA Relazione (o applicazione) binaria tra due insiemi A e B che associa a ogni elemento di A un.
Lez.6 (13/14)Elementi di Programmazione1 Lezione 6 Funzioni Passaggio di parametri.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Corso integrato di Matematica, Informatica e Statistica Informatica di base Linea 1 Daniela Besozzi Dipartimento di Informatica e Comunicazione Università.
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.
Istruzioni e algoritmi. Istruzioni Operative I passi elementari che compongono l’algoritmo sono le istruzioni. Distinguiamo: Istruzioni di input Istruzioni.
Metodi in Java. Note Identificazione input: (il raggio è un numero reale !!!) Identificazione delle operazioni necessarie al calcolo Area=r*r*PI Circonferenza=2*r*PI.
Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo Esercizi su stringhe e file 15 Stringhe e file.
Transcript della presentazione:

BIOINFO3 - Lezione 331 SUBROUTINE IN PERL Una subroutine (funzione, metodo, procedura o sottoprogramma), e` una prozione di codice all`interno di un programma piu` grande, che svolge una specifica funzione ed e` relativamente indipendente dal resto del codice. Una subroutine in Perl è definita dalla parola chiave sub sub nome-della-subroutine { istruzioni della subroutine } Per eseguire la subroutine da qualunque punto del programma è sufficiente scrivere: &nome-della-subroutine; N.B. Quando il programma incontra la definizione della subroutine non la esegue! Le definizioni di subroutine tipicamente si collocano alla fine del programma, ma nulla ci vieta di metterle in qualunque posizione, eventualmente anche allinizio

BIOINFO3 - Lezione 332 ESEMPIO

3 ESEMPIO Abbiamo verificato che le due subroutine testa e coda sono eseguite solo quando invocate e non anche al momento della loro definizione.

BIOINFO3 - Lezione 334 DEBUGGER: S Osserviamo lesecuzione passo passo del programma dal debugger usando il comando S (step) per avanzare da una riga alla successiva Usando il comando S del debugger si entra nelle subroutine e vengono mostrate tutte le istruzioni eseguite allinterno della subroutine. E evidenziato anche il nome della subroutine che si sta eseguendo (circoletto verde)

BIOINFO3 - Lezione 335 DEBUGGER: N Osserviamo invece lesecuzione passo passo del programma dal debugger usando il comando N (next) Usando il comando N del debugger non viene mostrato il dettaglio dellesecuzione di tutte le istruzioni delle subroutine! Le subroutine vengono mostrate dal debugger come ununica istruzione (la chiamata della subroutine).

BIOINFO3 - Lezione 336 FUNZIONI Sono delle subroutine che restituiscono al programma chiamante un valore, di solito dipendente dai parametri passati dal programma alla subroutine. La chiamata di una funzione può quindi essere essere utilizzata come un valore (essa restituisce un valore!) in qualunque espressione. Ad esempio potrà essere assegnato ad una variabile o usato in espressioni complesse: $a=&media(20,30); $b=&media(&media($a,28),24)+12; Supponiamo che media sia una funzione (subroutine che restituisce un valore) che calcola la media dei due parametri ricevuti: sub media{ # I parametri passati alla sub sono contenuti $media=($a+$b)/2; return $media; }

BIOINFO3 - Lezione 337 FUNZIONI E importante fare attenzione alle variabili usate nelle subroutine. Si corre infatti il rischio di usare delle variabili già utilizzate dal programma e di andare a modificarne il valore, con conseguenze devastanti (problema dei side effect, effetti collaterali). Per questo è buona norma dichiarare le variabili delle subroutine come locali alla subroutine (nel nostro esempio: local oppure my ). Anche se si usa un nome di variabile già utilizzato nel programma, nella subroutine viene creata una nuova istanza di quella variabile, accessibile solo dalla subroutine, che è poi rimossa alla fine dellesecuzione della subroutine stessa. (in modo simile contiene i parametri passati alla funzione. E essenziale lesecuzione dellistruzione return che provoca effettivamente la fine della subroutine e la trasmissione del valore specificato. Ad esempio potremo avere degli if con dei return in punti diversi della subroutine in cui a seconda di determinate condizioni vengono ritornati valori diversi.

BIOINFO3 - Lezione 338 ESEMPIO

9 ESEMPIO Notare che $a e $b non sono state modificate dalla funzione!

BIOINFO3 - Lezione 3310 CHIAMATA DI PROGRAMMI ESTERNI Esistono 3 diversi modi di chiedere lesecuzione di un programma esterno da un programma Perl. system comando-unix; exec comando-unix; qx {comando-unix}; Listruzione system interrompe lesecuzione del programma, esegue il comando unix specificato e al termine di questultimo esegue listruzione successiva alla system e quindi ritorna il controllo al programma. Listruzione exec invece termina lesecuzione del programma Perl e lancia lesecuzione del comando unix specificato. Listruzione qx è sicuramente la più utile poiché restituisce sotto forma di stringa lo standard output prodotto dallesecuzione del comando unix. La stringa tipicamente sarà assegnata ad unaltra variabile.

BIOINFO3 - Lezione 3311 ESEMPIO

BIOINFO3 - Lezione 3312 ESEMPIO Proviamo ora a chiamare il programma (che restituisce i codici così come li trova nel file, e quindi non ordinati) da un altro, ad esempio proprio per ordinare i codici Programma che restituisce i codici genbank delle est contenute nel file passato come argomento

BIOINFO3 - Lezione 3313 ESEMPIO

BIOINFO3 - Lezione 3314 ESERCIZIO Scrivere una subroutine leggi che: scrive in output il messaggio ricevuto come parametro, legge da input una stringa, rimuove il carattere finale di a capo e restituisce la stringa letta. Chiamare la subroutine 3 volte dal programma: Inserire il proprio nome e assegnare il valore della funzione a $nome Inserire il proprio cognome e assegnare il valore della funzione a $cog Inserire la propria età e assegnare il valore della funzione a $anni Stampare $nome, $cognome, $anni

BIOINFO3 - Lezione 3315 ESERCIZIO

BIOINFO3 - Lezione 3316 RIEPILOGO Definizione e chiamata di subroutine in Perl Funzioni Chiamata di programmi esterni in Perl