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) ?

Slides:



Advertisements
Presentazioni simili
INFORMATICA Altre Istruzioni di I/O
Advertisements

LINGUAGGIO DI PROGRAMMAZIONE C
Iterazione while – do while - for.
PHP.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Dipartimento di Matematica
Algoritmi e Programmazione
Informatica Generale Marzia Buscemi
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Operazioni elementari
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
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.
Fondamenti di Informatica II Ingegneria Informatica (A-I) Prof. M.T. PAZIENZA a.a – 3° ciclo.
File.
1 Corso di Informatica (Programmazione) Lezione 11 (19 novembre 2008) Programmazione in Java: controllo del flusso (iterazione)
Corso di Informatica (Programmazione)
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
Introduzione alla programmazione lll
Array Struttura numerate di dati. Memorizzare molti dati In informatica cè spesso bisogno di memorizzare ed elaborare un insieme costituito da molti dati.
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
INFORMATICA Altre Istruzioni di I/O. © Piero Demichelis 2 Funzioni di I/O Per la lettura e la scrittura da videoterminale il C prevede numerose istruzioni.
Sistemi Operativi - Introduzione 1 Il sistema operativo UNIX AWK Niccolò Battezzati Politecnico di Torino Dip. Automatica e Informatica.
Lezione 17 maggio 2007 Parametri da linea di comando FILE Strutture (introduzione)
Lezione VII Laboratorio di Programmazione. Simulazione esame Scrivere in C++ una funzione di nome RICERCA che, presi come parametri. un array A di numeri.
File ad accesso casuale o random
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
BIOINFO3 - Lezione 24 ARRAY
Elenchi in Excel E’ possibile inserire le voci del nuovo elenco oppure
BIOINFO3 - Lezione 311 PAGINA HTML Confrontiamo il codice sorgente della pagina restituitaci dal programma con il programma originale Come si può notare,
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 221 Listruzione IF-ELSE prevede un secondo blocco di istruzioni da eseguire in alternativa al primo nel caso la condizione sia falsa.
IL MASSIMO DI UN ARRAY ESERCIZIO
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 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 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);
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.
Sulla barra dei messaggi fare clic su Abilita modifica
Corso JAVA Lezione n° 03 Istituto Statale di Istruzione Superiore “F. Enriques”
Introduzione a Javascript
R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting.
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
Programmazione Web PHP e MySQL 1. 2Programmazione Web - PHP e MySQL Esempio: un blog.
Lez. 9 (13/14)Elementi di Programmazione1 Lezione 9 Valutazione di espressioni File di testo sequenziali.
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.
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
Operatori di incremento e decremento
Ancora sulla shell. Shell e comandi La shell e' un programma che interpreta i comandi dell'utente. I comandi possono essere dati da terminale, oppure.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
INTRODUZIONE A MATLAB LEZIONE 2 Sara Poltronieri.
1 System Call che operano su processi Getpid, fork, exec, wait, waitpid, exit, dup, dup2.
Esercizi.
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
Eprogram informatica V anno. Introduzione a PHP Introduzione La diffusione di PHP ha avuto un notevole incremento dalla fine degli anni Novanta a oggi,
Strutture di controllo
Psicometria modulo 1 Scienze tecniche e psicologiche Prof. Carlo Fantoni Dipartimento di Scienze della Vita Università di Trieste Campionamento.
Transcript della presentazione:

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) ? Hasta la vista! length(substr($a,$c,1) ) ?1 (ovvio!) substr($a,lenght($a)-1) ?! index ($a, ) ?5

BIOINFO3 - Lezione 382 ESERCIZIO (TIPO ESAME?) Dato un programma con la sola istruzione: $a=10; Quanto valgono $b e $a dopo $b=++$a; ?$a=11 e $b=11 Quanto valgono $b e $a dopo un ulteriore $b=$a++; ? Quanto vale $c dopo $c=Formula $b; ? $a=12 e $b=11 $c=Formula 11 Quanto vale $d dopo $d=Formula $b; ?$d=Formula $b Quanto vale $c dopo $c.=$d ?$c=Formula 11 Formula $b

BIOINFO3 - Lezione 383 ESERCIZIO (TIPO ESAME?) Quante volte viene eseguito il seguente ciclo? Quali numeri stampa? for ($i=0;$i<10;$i){ print $i\n; } Il ciclo non termina mai perché $i non viene mai modificata e non sarà mai > o = a 10. Stampa una colonna interminabile di 0, finchè non viene ucciso con ^C Quante volte viene eseguito il seguente ciclo? Quali numeri stampa? for ($i=0;$i<10;$i++){ print $i\n; $i++; } Stampa i numeri pari da 0 a 8. Il ciclo è eseguito 5 volte! Primo ciclo $i=0 e alla fine del ciclo $i=2 … Quinto ciclo $i=8 e alla fine $i=10;

BIOINFO3 - Lezione 384 ESERCIZIO Leggere un file di sequenze EST in formato FASTA. Considerare solo le righe che contengono il pattern >gi|numero. Inserire in un array questi numeri. Copiare larray in altri 2 array. Eseguire un ciclo su tutti gli elementi di questi 2 array incrementando di 1 tutti i numeri del primo e raddoppiando tutti i numeri del secondo

BIOINFO3 - Lezione 385 Il pattern che ci interessa è descritto dallespressione regolare /^>gi\|(\d+)/ Ovvero tutte le stringhe che iniziano con > seguito da gi e da un | (ricordarsi di anteporre \ davanti a |, altrimenti conserva il suo significato di alternativa). Segue quindi un numero di almeno una cifra. Ci interessa catturare questo numero, pertanto racchiudiamo il pattern relativo tra parentesi. In esecuzione ritroveremo la parte di stringa che soddisfa il pattern tra parentesi nella variabile di perl $1. N.B. Non è possibile fare assegnamenti a $1. Se avessimo avuto altri pattern tra parentesi li ritroveremo in $2, $3, ecc… /^>gi\|(\d+)/ >gi| |gb|AB | $1=

BIOINFO3 - Lezione 386 Notare come $1, se la riga letta ($r) contiene il pattern descritto dallespressione regolare, sia aggiunto alla

BIOINFO3 - Lezione 387 Il pattern è ritrovato nella stringa $r, quindi ( $r=~ /^>gi\|(\d+)/ ) è VERA e si entra dentro allif per eseguire la push

BIOINFO3 - Lezione 388 Per queste tra altre righe lette successivamente il pattern descritto dallespressione regolare non viene trovato (infatti non iniziano con il maggiore, non contengono gi| ed un numero). Quindi lespressione ( $r=~ /^>gi\|(\d+)/ ) è FALSA e non si entra nellif per eseguire la push.

BIOINFO3 - Lezione 389 Nel debugger si possono fissare dei breakpoint, tipicamente quando si devono eseguire dei cicli molto lunghi e non vogliamo premere decine o centinaia di volte il tasto invio. b numero-di-linea Fissa un breakpoint alla riga dal numero specificato c Fa procedere il programma fino al prossimo breakpoint Lesecuzione fino al breakpoint ci posiziona alla fine del ciclo di lettura delle righe del file. Si può notare il contenuto a fine del ciclo (22 elementi) BREAKPOINT NEL DEBUGGER Fissa un breakpoint alla riga 11

BIOINFO3 - Lezione 3810 Lassegnamento ai 2 crea 2 array identici anchessi di $n elementi (con indice da 0 $n-1)

BIOINFO3 - Lezione 3811 Ora viene eseguito un ciclo, controllato dalla variabile $i sui $n elementi dei Allinterno del ciclo viene incrementato di 1 li-esimo elemento ($p[$i]) e raddoppiato li-esimo elemento ($d[$i]) $p[$i] prima … …e dopo $d[$i] prima … …e dopo? Perché non viene il doppio?

BIOINFO3 - Lezione 3812 Dando un altro comando c al debugger facciamo ripartire lesecuzione. Non essendoci altri break-point settati dopo la riga 11, lesecuzione procede fino alla fine del programma. Notare la stampa dei tre array come desiderato.

BIOINFO3 - Lezione 3813 ESERCIZIO Passare al programma un argomento. Verificare che largomento sia esattamente uno, altrimenti far morire il programma con un messaggio derrore. Largomento è il nome di un file di nomi da aprire in lettura. Se il file non esiste far morire il programma con un messaggio derrore. Leggere con un ciclo while le righe del file una alla volta fino alla fine del file, inserendo le righe in coda ad una lista. Stampare la lista ordinata, un elemento per riga (ciclo con listruzione foreach) in un file aperto in scrittura assegnandogli un nome uguale a quello letto, con in più il suffisso.ord

BIOINFO3 - Lezione 3814 Vediamo passo passo lesecuzione del programma. contiene gli argomenti passati da linea di comando (N.B. non i nomi dei file di redirezione) in un contesto scalare (!=1) vale 2, che è diverso da 1 e quindi si entra nellif che termina il programma

BIOINFO3 - Lezione 3815

BIOINFO3 - Lezione 3816

BIOINFO3 - Lezione 3817

BIOINFO3 - Lezione 3818

BIOINFO3 - Lezione 3819 Alla fine della lettura delle righe del Irma,Sonia) La lettura successiva restituisce la stringa vuota ($riga= =) cioè falso e quindi si esce dal while

BIOINFO3 - Lezione 3820 Dopo listruzione di Elda, Irma, Lucia, Marta,Sonia) Si apre quindi il file nomi.ord in scrittura (viene creato se non esiste) associandolo alla handle O O nomi.ord

BIOINFO3 - Lezione Elda, Irma, Lucia, Marta,Sonia) Il foreach esegue un ciclo per ogni elemento della lista quindi farà 6 cicli. In ogni ciclo $a prende il valore di uno degli elementi della lista. Le istruzioni di print sono eseguite sulla handle O e quindi sul file nomi.ord 2 1 3

BIOINFO3 - Lezione 3822 Terminati i 6 cicli il foreach termina non trovando più altri elementi Si può poi verificare il contenuto del file nomi.ord 4 5 6

BIOINFO3 - Lezione 3823 ESEMPIO (Esercitazione 5 – es. 3) Leggere un file di nomi (uno per riga) e stampare la frequenza dei nomi (quante volte compare ogni nome). Suggerimento: usare un array associativo avente come indici i nomi e come valori la frequenza Larray associativo è indicato come %freq nel suo complesso %freq Marco Matteo 6 Luca Quanto vale $freq{Matteo}? Quanto vale $freq{Marco}? 3 Quanto vale $freq{Giovanni}? 0 oppure la stringa vuota (dipende dal contesto) Quanto vale keys (%freq) ? (Marco,Matteo,Luca) Quanto vale sort ( keys (%freq)) ? (Luca, Marco, Matteo)

BIOINFO3 - Lezione 3824

BIOINFO3 - Lezione 3825 $riga dopo il chop vale Luca $freq{$riga}=$freq{Luca}=0 $freq{$riga}++ equivale a $freq{$riga}= $freq{$riga}+1 $freq{Luca}++ equivale a $freq{Luca}=$freq{Luca}+1=0+1=1 %freq 1 Luca

BIOINFO3 - Lezione %freq Marco 2 Luca

BIOINFO3 - Lezione %freq Matteo 5 Luca 3 Marco Alla fine del ciclo di lettura

BIOINFO3 - Lezione 3828

BIOINFO3 - Lezione 3829 ESEMPIO (Esercitazione 6 – Esercizio 2) Leggere tutti i nomi dei file della directory corrente, inserirli in una lista solo se non contengono il carattere.. Ordinare e stampare la lista (un nome per riga) Il file. indica la directory corrente Il file.. indica la directory padre della corrente Lopendir è lequivalente della open per le directory anziche per i file normali I nomi dei file contenuti nella directory vengono letti con la funzione readdir anziché con, sempre facendo riferimento alla handle con cui abbiamo aperto la directory

BIOINFO3 - Lezione 3830 Il primo file letto è. che però non verifica la condizione dellif. Analogamente per il secondo:.. Pattern matching: VERO se $f non contiene punti. /\./ indica tutte le stringhe che contengono punti Con !~ il pattern matching è VERO se la stringa $f non contiene punti (si fa il not della condizione)

BIOINFO3 - Lezione 3831 Poi si continua a ciclare. Tutti i file $f che contengono. non fanno entrare nellif

BIOINFO3 - Lezione 3832 Dopo molti cicli in cui vengono letti file contenenti un punto finalmente si trova un file, sequenze senza il punto che viene inserito

BIOINFO3 - Lezione 3833 Finalmente si riesce a terminare lelenco dei file e quindi a far diventare falsa listruzione $f=readdir(D). A questo contiene 7 nomi di file: (sequenze, nomi, numeri, nomi1, nomi2, seqfasta, nn)

BIOINFO3 - Lezione 3834 Dopo lesecuzione della contiene diventa: (nn, nomi, nomi1, nomi2, numeri, seqfasta, sequenze ) Si eseguono quindi 7 cicli col foreach usando la variabile $f come indice del ciclo. $f viene in ogni ciclo stampata sullo STDOUT ovvero a video

BIOINFO3 - Lezione 3835 Al termine del programma avremo 6 7