Modulo III - Cenni alla programmazione in R

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Modulo III - Cenni alla programmazione in R"

Transcript

1 Modulo III - Cenni alla programmazione in R Elisabetta Ronchieri Università di Ferrara Dipartimento di Economia e Management elisabetta.ronchieri@unife.it 12 Dicembre 2016 Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

2 Contenuti 1 Introduzione 2 Strutture di controllo 3 Funzioni Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

3 Programma in R Un programma o script è un insieme di comandi (o istruzioni), eseguiti uno dopo l altro. Un programma si compone di quattro parti: ingresso, elaborazione, uscita, documentazione. Durante la scrittura di un programma i diversi comandi sono inseriti in un file detto script che può essere salvato. Sia il nome del file programma.r. Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

4 Esecuzione dei programmi in R Supposto di aver il programma nel file programma.r nella cartella di lavoro, questo può essere eseguito: interattivamente: copiando il contenuto del file nella console di R, eseguendo ogni istruzione direttamente dal prompt dei comandi; non interattivamente: con il comando source( programma.r ) tramite il quale le istruzioni vengono lette dal file ed eseguite dall interprete una ad una in sequenza. Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

5 Esempio di script R File radici.quadrate.r equazione di secondo grado: ar 2 + br + c = 0 # i n g r e s s i a < 1 b < 4 c < 2 # c a l c o l o d e l l e r a d i c i q u a d r a t e r 1 < ( b + s q r t ( bˆ2 4 a c ) ) / (2 a ) r 2 < ( b s q r t ( bˆ2 4 a c ) ) / (2 a ) # u s c i t a p r i n t ( c ( r1, r 2 ) ) La funzione print() stampa testo e variabili insieme. L esecuzione di questo codice produce la seguente uscita: > s o u r c e ( r a d i c i. q u a d r a t e. R ) [ 1 ] Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

6 Controllo del flusso di esecuzione di un programma I programmi sono eseguiti sequenzialmente, istruzione dopo istruzione, ma in alcuni casi il flusso di esecuzione può scegliere vie alternative o ripetersi ciclicamente. In R esistono strutture di controllo specifiche per regolare il flusso di esecuzione di un programma: Blocchi di istruzioni; Istruzioni condizionali; Istruzioni di looping. Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

7 Sequenze e blocchi di istruzioni Le istruzioni possono essere raggruppate insieme utilizzando le parentesi graffe. Una sequenza di istruzioni fra parentesi graffe costituisce un blocco. { # i n g r e s s i a < 1 b < 4 c < 2 # c a l c o l o d e l l e r a d i c i q u a d r a t e r 1 < ( b + s q r t ( bˆ2 4 a c ) ) / (2 a ) r 2 < ( b s q r t ( bˆ2 4 a c ) ) / (2 a ) # u s c i t a p r i n t ( c ( r1, r 2 ) ) } I blocchi vengono valutati solo dopo la chiusura delle parentesi graffe. Si può pensare ad un blocco come ad una sola macro istruzione costituita da una sequenza di istruzioni. Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

8 Istruzioni condizionali La istruzione if... else permette flussi alternativi di esecuzione dipendenti dalla valutazione di una condizione logica. Sintassi i f ( c o n d i z i o n e ) b l o c c o 1 e l s e b l o c c o 2 Semantica se la condizione è vera viene eseguito il blocco1 altrimenti viene eseguito il blocco2. Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

9 Esempi if... else # Esempio 1 i f ( x>=0) #e s p r e s s i o n e l o g i c a p r i n t ( x e p o s i t i v o ) e l s e p r i n t ( x e n e g a t i v o ) # Esempio 2 i f ( x<=0) { y < x ˆ 2 ; z < l o g 2 (1+y ) ; } e l s e z < l o g 2 ( x ) ; # Esempio 3 i f ( x ) #v a r i a b i l e l o g i c a p r i n t ( x e d i v e r s o da 0 ) e l s e p r i n t ( x e u g u a l e a 0 ) Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

10 Esempi if... else Il ramo else può anche essere assente. # Esempio 4 i f ( x <0) x < x ; s q r t ( x ) La istruzione sqrt(x) viene sempre eseguita, mentre x -x viene eseguita solo se x è negativo. Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

11 Istruzioni if... else innestate Le istruzioni if... else possono essere innestate: i f ( c o n d i z i o n e 1 ) b l o c c o 1 e l s e i f ( c o n d i z i o n e 2 ) b l o c c o 2... e l s e i f ( c o n d i z i o n e N ) bloccon e l s e bloccon+1 Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

12 Esempio di script R File radici.quadrate.r con istruzione if... else: # i n g r e s s i a < 5 b < 4 c < 1 # d i s c r i m i n a n t e d i s c r i m i n a n t e < bˆ2 4 a c # c a l c o l o d e l l e r a d i c i i f ( d i s c r i m i n a n t e > 0) { r a d i c i < c( b + s q r t ( d i s c r i m i n a n t e ) / (2 a ), b s q r t ( d i s c r i m i n a n t e ) / (2 a ) ) } e l s e { i f ( d i s c r i m i n a n t e == 0) { r a d i c i < b / (2 a ) } e l s e { r a d i c i < c ( ) } } # u s c i t a show ( r a d i c i ) L esecuzione di questo codice produce la seguente uscita: > s o u r c e ( r a d i c i. q u a d r a t e. R ) NULL > d i s c r i m i n a n t e [ 1 ] 4 Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

13 Funzione switch() La funzione switch() consente di scegliere fra opzioni multiple. Sintassi switch (istruzione, lista) Semantica Viene valutata la istruzione e viene ritornato un valore: se il valore è un numero compreso fra 1 e lunghezza della lista, allora viene valutato il corrispondente elemento della lista e viene ritornato un risultato; se il valore è troppo grande o troppo piccolo viene ritornato NULL. Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

14 Esempi switch() > x < 3 > s w i t c h ( x, 2+2, mean ( 1 : ), 1 : 3 ) [ 1 ] > x < 2 > s w i t c h ( x, 2+2, mean ( 1 : ), 1 : 3 ) [ 1 ] > x < 5 > v a l o r e < s w i t c h ( x, 2+2, mean ( 1 : ), 1 : 3 ) > v a l o r e NULL Se nella funzione s w i t c h ( e s p r e s s i o n e, l i s t a con nomi ) la valutazione di espressione ritorna un vettore di caratteri che corrisponde al nome associato ad un elemento della lista, tale elemento viene valutato. > y < f r u t t o > s w i t c h ( y, f r u t t o= p e r a, o r t a g g i o= c a v o l o, + legume= f a g i o l o ) [ 1 ] p e r a Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

15 Istruzioni loop Permettono di ripetere ciclicamente blocchi di istruzioni per un numero prefissato di volte o fino a che una determinata condizione logica viene soddisfatta. Sono istruzioni la cui struttura sintattica è del tipo: l o o p { b l o c c o d i i s t r u z i o n i } Esistono diverse forme di istruzioni di loop: for while repeat Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

16 Istruzione for Sintassi f o r ( nome i n v ) b l o c c o d i i s t r u z i o n i v può essere un vettore o una lista. Semantica Gli elementi di v sono assegnati ad uno ad uno alla variabile nome ed il blocco di istruzioni viene valutato ciclicamente fino a che non sono stati esauriti tutti gli elementi di v. Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

17 Esempi for > v < 1 : 5 > f o r ( i i n 1 : l e n g t h ( v ) ) cat ( v [ i ], ) > f o r ( i i n ( 1 : 5 ) 5) cat ( v [ i ], ) 5 NA NA NA NA > f o r ( j i n c ( 1, 3, 5 ) ) cat ( v [ j ], ) La funzione cat() (o concatenate) permette di combinare testo e variabili insieme. Converte gli argomenti in caratteri e li concatena. Questa funzione può essere chiamata solo su tipi atomici (logico, intero, reale, complesso e carattere) e nomi. Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

18 Esempi for La istruzione for può ciclare su qualsiasi tipo di sequenza: accedere in sequenza alle componenti di un data frame > f o r ( v a r i n names ( data ) ) {... ; componente < data $ v a r ;... } accedere in sequenza a funzioni diverse: > x < c ( pi, p i / 2, p i / 4) # p i c o r r i s p o n d e a > f o r ( f i n c ( s i n, cos, tan ) ) p r i n t ( f ( x ) ) [ 1 ] e e e 01 [ 1 ] e e e 01 [ 1 ] e e e+00 Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

19 Esempio di script R File miasomma.r con istruzione for: v < seq ( 1, 9, by=2) sum. v < 0 f o r ( x i n v ) { sum. v < sum. v +x cat ( L elemento c o r r e n t e d e l l o o p e, x, \n ) cat ( La somma a t t u a l e e, sum. v, \n ) } L esecuzione di questo codice produce la seguente uscita: > s o u r c e ( miasomma. R ) L elemento c o r r e n t e d e l l o o p e 1 La somma a t t u a l e e 1 L elemento c o r r e n t e d e l l o o p e 3 La somma a t t u a l e e 4 L elemento c o r r e n t e d e l l o o p e 5 La somma a t t u a l e e 9 L elemento c o r r e n t e d e l l o o p e 7 La somma a t t u a l e e 16 L elemento c o r r e n t e d e l l o o p e 9 La somma a t t u a l e e 25 La somma degli elementi del vettore v si può ottenere scrivendo sum(v). Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

20 Esempio di script R File fattoriale.r con istruzione for: # i n g r e s s o n < 6 # c a l c o l o n. f a t t o r i a l e < 1 f o r ( i i n 1 : n ) { n. f a t t o r i a l e < n. f a t t o r i a l e i } # u s c i t a show ( n. f a t t o r i a l e ) L esecuzione di questo codice produce la seguente uscita: > s o u r c e ( f a t t o r i a l e. R ) [ 1 ] 720 Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

21 Istruzione while Sintassi w h i l e ( c o n d i z i o n e ) b l o c c o d i i s t r u z i o n i condizione è una espressione logica. Semantica condizione viene valutata: se il suo valore è TRUE allora viene eseguito il blocco di istruzioni. Il blocco di istruzioni continua ad essere eseguito ciclicamente se la condizione rimane TRUE. Quando la condizione diventa FALSE allora si esce dal ciclo. Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

22 Esempi while > f. w h i l e < f u n c t i o n ( y ) { + i < 0 ; + w h i l e ( y > 1) { + y < y/ 2 ; + i < i + 1 ; + } + i + } La funzione f.while() deve essere chiamata con un argomento. > f. w h i l e ( 1 ) # cond. 1>1 [ 1 ] 0 > f. w h i l e ( 2 ) # cond. 2>1 [ 1 ] 1 > f. w h i l e ( 1 0 ) # cond. 10>1 [ 1 ] 4 > f. w h i l e ( 1 000) # cond. 1000>1 [ 1 ] 10 Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

23 Esempi while > a < 1 : 1 0 > i< 1 ; w h i l e ( a [ i ] < 0) i < i +1; Ciclo infinito: while (TRUE) {... } Ricerca della prima occorrenza di UAG nel vettore di caratteri d: > d < c ( BIL, CIU, UAG, SOL ) > i< 1 ; w h i l e ( d [ i ]!= UAG & i <=l e n g t h ( d ) ) i < i +1; > i [ 1 ] 3 Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

24 Esempio di script R File restituzione.prestito.r con istruzione while: # i n g r e s s o t < #t a s s o d i i n t e r e s s e a n n u a l e p e r i o d o < 1/12 #p e r i o d o d i pagamento i n a n n i d e b i t o. i n i z i a l e < 1000 #somma r i c e v u t a i n p r e s t i t o v e r s a t o< 12 #ammontare r e s t i t u i t o ad o g n i p e r i o d o # c a l c o l o tempo< 0 d e b i t o< d e b i t o. i n i z i a l e w h i l e ( d e b i t o >0) { tempo< tempo+p e r i o d o d e b i t o< d e b i t o (1+ t p e r i o d o ) v e r s a t o } #u s c i t a cat ( I l p r e s t i t o v i e n e r e s t i t u i t o i n, tempo, a n n i \n ) L esecuzione di questo codice produce la seguente uscita: > s o u r c e ( r e s t i t u z i o n e. p r e s t i t o. R ) I l p r e s t i t o v i e n e r i p a g a t o i n a n n i Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

25 Istruzione repeat Sintassi repeat b l o c c o d i i s t r u z i o n i Semantica blocco di istruzioni viene eseguito ciclicamente all infinito a meno che non venga incontrata una istruzione break che forzi l uscita dal loop. Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

26 Esempi repeat > f. r e p e a t < f u n c t i o n ( y ) { + i < 0 ; + r e p e a t { + i f ( y<=1) + break ; + y < y/ 2 ; + i < i + 1 ; + } + i + } La funzione f.repeat() è semanticamente equivalente alla funzione f.while() vista negli esempi per la istruzione while(). Con la istruzione break si ha il punto di uscita. Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

27 Esempi repeat Ciclo infinito: repeat {... } Si possono prevedere anche più punti di uscita: r e p e a t { i f ( a [ i ]> 0. 1 ) break ; i< i +1;... i f ( i >l e n g t h ( a ) ) break ;... } Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

28 Iterazioni e operazioni o funzioni vettorizzate Molte operazioni e funzioni in R sono vettorizzate ed operano elemento per elemento su interi oggetti. Utilizzare direttamente operazioni o funzioni vettorizzate è più efficiente che effettuare le medesime operazioni utilizzando cicli for. Esistono almeno due buone ragioni per rimpiazzare (dove sia possibile) i cicli for con funzioni o operazioni vettorizzate: 1 la velocità: il loop for è molto più lento perchè deve essere valutato ogni volta dall interprete; 2 la chiarezza: è molto più semplice e sintetica la espressione sum(a*b) piuttosto di una serie di cicli for. Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

29 Iterazioni e operazioni o funzioni vettorizzate Le funzioni vettorizzate includono: gli operatori, come +, -, * funzioni matematiche, come sin, cos, log; la istruzione ifelse per la valutazione vettorizzata di condizioni logiche: > x < c ( 2, 1,1,2) > i f e l s e ( x >0, P o s i t i v o, N e g a t i v o ) [ 1 ] N e g a t i v o N e g a t i v o P o s i t i v o P o s i t i v o Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

30 Comandi famiglia apply I comandi della famiglia apply iterano una funzione specificata su insiemi di oggetti. La loro sintassi generale è del tipo: comando a p p l y ( i n s i e m e d i o g g e t t i, f ) La funzione f() viene applicata ciclicamente a ciascun oggetto contenuto nell insieme di oggetti. Sono semanticamente equivalenti ad un ciclo for del tipo: f o r ( i i n i n s i e m e d i o g g e t t i ) f ( i n s i e m e d i o g g e t t i [ i ] ) In generale la loro esecuzione è più efficiente del corrispondente ciclo for. Ne esistono diverse varianti. Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

31 Comandi famiglia apply lapply() (ritorna una lista) e sapply() si applicano a liste. > x < l i s t ( a = 1 : 1 0, l o g i c = c (TRUE, FALSE, FALSE, TRUE) ) > l a p p l y ( x, q u a n t i l e ) $a 0% 25% 50% 75% 100% $ l o g i c 0% 25% 50% 75% 100% > s a p p l y ( x, q u a n t i l e ) a l o g i c 0% % % % % Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

32 Comandi famiglia apply apply() si applica ad array. > x < c b i n d ( x1 = 3, x2 = c ( 4 : 1, 2 : 5 ) ) > dimnames ( x ) [ [ 1 ] ] < l e t t e r s [ 1 : 8 ] > a p p l y ( x, 2, mean ) x1 x2 3 3 tapply si usa con fattori. > campione. p a z i e n t i < data. frame ( p a z i e n t e = 1 : 1 0 0, + e t a = rnorm ( 1 0 0, mean = 60, sd = 1 2 ), + t r a t t a m e n t o = g l ( 2, 50, l a b e l s = c ( Trattamento, C o n t r o l l o ) ) ) > t a p p l y ( campione. p a z i e n t i $ eta, campione. p a z i e n t i $ t r a t t a m e n t o, mean ) Trattamento C o n t r o l l o Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

33 Funzioni Abbiamo già visto molti esempi di funzioni disponibili in R. Le funzioni in R possono anche essere definite dagli utenti. I programmi in R possono essere realizzati tramite funzioni. Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

34 Sintassi <nome funzione> < f u n c t i o n (<argomenti >) { <corpo d e l l a f u n z i o n e> <v a l o r e r e s t i t u i t o d a l l a f u n z i o n e> } nome funzione può essere qualsiasi nome contenente caratteri alfanumerici compreso il.; function è una parola chiave di R; argomenti è una lista eventualmente vuota di argomenti formali separati da virgole: (arg1, arg2,..., argn). - Un argomento formale può essere un simbolo o una istruzione del tipo simbolo=espressione. corpo della funzione può essere qualsiasi espressione valida in R. Spesso è costituito da un gruppo di espressioni racchiuso fra parentesi graffe. valore restituito dalla funzione è il risultato della ultima espressione valutata o del comando return(). Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

35 Esempio di funzione # d e s c r i z i o n e : f u n z i o n e p e r i l c a l c o l o d e l l a somma t r a due numeri : # a, b a r g o m e n t i : numeri d i c u i s i v u o l e c a l c o l a r e l a somma # u s c i t a : i l v a l o r e d e l l a somma. somma < f u n c t i o n ( a=0,b=0) { a+b } # La s equenza d i i s t r u z i o n i d e l corpo d e l l a f u n z i o n e # deve e s s e r e r a c c h i u s a f r a p a r e n t e s i g r a f f e. Per chiamare la funzione somma() è sufficiente scrivere: > somma ( ) [ 1 ] 0 > somma ( 1, 2 ) [ 1 ] 3 > somma( a=2) [ 1 ] 2 Il valore di ritorno di questa funzione è il valore della ultima espressione valutata. Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

36 Argomenti formali e attuali a e b sono argomenti formali > somma < f u n c t i o n ( a=0,b=0) {... } Tali valori vengono sostituiti dagli argomenti attuali quando la funzione è chiamata. Gli argomenti attuali vengono effettivamente utilizzati all interno della funzione somma(). Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

37 Argomenti passati per valore Le modifiche agli argomenti effettuate nel corpo delle funzioni non hanno effetto all esterno delle funzioni stesse: > q u a d r a t o < f u n c t i o n ( b ) {b < bˆ2} > a < 4 > q u a d r a t o ( a ) > a > [ 1 ] 4 > v a l o r e < q u a d r a t o ( a ) > v a l o r e > [ 1 ] 16 In altre parole i valori degli argomenti attuali sono modificabili all interno della funzione stessa, ma non hanno alcun effetto sulla variabile dell ambiente chiamante. Nell esempio precedente la copia di b locale alla funzione viene modificata, ma non viene modificato il valore della variabile a passata come argomento attuale alla funzione quadrato(). Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

38 Modalità di assegnamento degli argomenti Tramite assegnamento posizionale gli argomenti sono assegnati in base alla loro posizione nella lista degli argomenti: > nome < f u n c t i o n ( x, y, z, w) {} > nome ( 1, 2, 3, 4 ) L argomento attuale 1 viene assegnato a x, 2 a y, 3 a z e 4 a w. Funzione sottrazione(): > s o t t r a z i o n e < f u n c t i o n ( a, b ) {a b} > s o t t r a z i o n e ( 3, 2 ) # a< 3 e b< 2 [ 1 ] 1 > s o t t r a z i o n e ( 2, 3 ) # a< 2 e b< 3 [ 1 ] 1 Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

39 Modalità di assegnamento degli argomenti Tramite assegnamento per nome gli argomenti sono assegnati in base alla loro nome nella lista degli argomenti: > nome < f u n c t i o n ( x, y, z, w) {} > nome ( x=1, y =2, z =3, w=4) L argomento attuale 1 viene assegnato a x, 2 a y, 3 a z e 4 a w. Quando gli argomenti sono assegnati per nome non è necessario rispettare l ordine degli argomenti: > nome ( y=2, w=4, z =3, x=1) > nome ( x=1, y =2, z =3, w=4) Funzione sottrazione(): > s o t t r a z i o n e < f u n c t i o n ( a, b ) {a b} > s o t t r a z i o n e ( a=3,b=2) # a< 3 e b< 2 [ 1 ] 1 > s o t t r a z i o n e ( b=2,a=3) # a< 3 e b< 2 [ 1 ] 1 Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

40 Valori di default per gli argomenti È possibile stabilire valori predefiniti per tutti o per parte degli argomenti. Tali valori vengono assunti dalle variabili a meno che non vengano esplicitamente modificati nella chiamata della funzione. > # z e w hanno v a l o r i p r e d e f i n i t i > nome < f u n c t i o n ( x, y, z =2, w=1) { x+y+z+w} > nome ( 1, 2 ) # x< 1, y< 2, z< 2, w< 1 [ 1 ] 6 > nome ( 1, 2, 5 ) # x< 1, y< 2, z< 5, w< 1 [ 1 ] 9 > nome ( 1 ) # y non ha v a l o r e d i d e f a u l t! E r r o r i n nome ( 1 ) : Argument y i s m i s s i n g, w i t h no d e f a u l t Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

41 Argomenti formali, variabli locali e variabili libere Le variabili che non sono nè argomenti formali e nè variabili locali sono chiamate variabili libere. # y e z v a r i a b i l i l o c a l i # x v a r i a b i l e f o r m a l e # w v a r i a b i l e l i b e r a nome < f u n c t i o n ( x ) { y < 2 x z < y ˆ2 z < z + w z } > nome ( 3 ) E r r o r i n f ( 3 ) : O b j e c t w not found > w < 3 > nome ( 3 ) [ 1 ] 39 Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

42 Operatore di superassegnamento Il passaggio dei parametri alle funzioni avviene per valore. Tramite l operatore di superassegnamento << è però possibile modificare il valore della variabile nell ambiente di livello superiore. # x << z 1 superassegnamento nome < f u n c t i o n ( x ) { y < x/ 2 ; z < y ˆ 2 ; x << z 1; } Quando la funzione nome() viene chiamata il valore della variabile x viene modificato: > x=1; nome ( x ) > x [ 1 ] 0.75 Se la variabile x non viene trovata nell ambiente top-level, x viene creata e le viene assegnato il valore calcolato dalla funzione: > rm( x ) ; nome ( 1 ) > x [ 1 ] 0.75 Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

43 Esercizio Dati i prezzi di alcuni titoli specificati nella seguente tabella: Date, AAPL, CVX, IBM,XOM, GS, BA,MON 09/05/ , , , , , , , /05/ , , , , , , , /05/ , , , , , , , /05/ , , , , , , , /05/ , , , , , , , /05/ , , , , , , , effettuarne la rappresentazione grafica. Inserire nello script R le seguenti funzioni opportunamente chiamate all interno dello script: filtrare.ordinare.titoli(x) con x una sequenza di titoli; estrarre.prezzi(y,z) con y una sequenza di titoli e z il nome del file csv da cui leggere i dati; dati.non.validi(w) con w un data frame; creare.grafici(k) con k un data frame. Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

44 Documentazione e bibliografia su R Per ciascuna funzione visionare l help online di R. Materiale del corso è scaricabile dalle pagine Web del corso: Informatica : http: // materiali-corso-a-a /materiale-modulo-iii. W.N. Venables, D. M. Smith and the R Development Core Team, An introduction to R, 2016, Cap. 9 e 10, Regole di programmazione, Link a Tutorial e training on-line. Elisabetta Ronchieri Modulo III.4 12 Dicembre / 44

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132

JavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132 JavaScript Core Language Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132 Condizioni L utilizzo di operatori relazionali e logici consente di formulare delle condizioni

Dettagli

Strutture di controllo del flusso di esecuzione

Strutture di controllo del flusso di esecuzione Università degli Studi di Milano Laurea Specialistica in Genomica Funzionale e Bioinformatica Corso di Linguaggi di Programmazione per la Bioinformatica Strutture di controllo del flusso di esecuzione

Dettagli

Programmi e funzioni in R

Programmi e funzioni in R Università degli Studi di Milano Laurea Specialistica in Genomica Funzionale e Bioinformatica Corso di Linguaggi di Programmazione per la Bioinformatica Programmi e funzioni in R Giorgio Valentini e mail:

Dettagli

Modulo III - Introduzione ad R

Modulo III - Introduzione ad R Modulo III - Introduzione ad R Elisabetta Ronchieri Università di Ferrara Dipartimento di Economia e Management e-mail: elisabetta.ronchieri@unife.it 7 Novembre 2016 Elisabetta Ronchieri Modulo III.1 -

Dettagli

Corso di Fondamenti di Informatica

Corso di Fondamenti di Informatica Corso di Fondamenti di Informatica Le classi di istruzioni in C++ 1 Le classi di istruzioni in C++ SEQUENZIALI Statement semplice Statement composto CONDIZIONALI if < expr.> else switch case

Dettagli

Le strutture di controllo in C++

Le strutture di controllo in C++ Le strutture di controllo in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi di Napoli

Dettagli

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it

Dettagli

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

STATISTICA LAB. Analisi dei dati con R - Ex 2. Marta Nai Ruscone. LIUC - Università Carlo Cattaneo, Castellanza STATISTICA LAB

STATISTICA LAB. Analisi dei dati con R - Ex 2. Marta Nai Ruscone. LIUC - Università Carlo Cattaneo, Castellanza STATISTICA LAB Analisi dei dati con R - Ex 2 Marta Nai Ruscone LIUC - Università Carlo Cattaneo, Castellanza Funzioni Una funzione è un insieme di comandi elementari. In R sono disponibili un gran numero di funzioni

Dettagli

PROGRAMMAZIONE STRUTTURATA

PROGRAMMAZIONE STRUTTURATA PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:

Dettagli

Modulo III - Creazione di documenti, presentazioni e report

Modulo III - Creazione di documenti, presentazioni e report Modulo III - Creazione di documenti, presentazioni e report Elisabetta Ronchieri Università di Ferrara Dipartimento di Economia e Management e-mail: elisabetta.ronchieri@unife.it 1 Dicembre 2016 Elisabetta

Dettagli

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Le Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Le Strutture di controllo Del Linguaggio C Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni STRUTTURE DI CONTROLLO PRIMITIVE SEQUENZA SELEZIONE (o scelta logica) ITERAZIONE NON PRIMITIVE

Dettagli

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso Unità Didattica 2 Linguaggio C Espressioni, Operatori e Strutture linguistiche per il controllo del flusso 1 Espressioni e assegnazioni Le espressioni sono definite dalla grammatica: espressione = variabile

Dettagli

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2014/2015

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2014/2015 Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.it AA 2014/2015 Ambiente di test Cercare PHP online per avere un interprete PHP Assegnamento

Dettagli

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Dettagli

STRUTTURE DI CONTROLLO DEL C++

STRUTTURE DI CONTROLLO DEL C++ STRUTTURE DI CONTROLLO DEL C++ Le istruzioni if e else Le istruzioni condizionali ci consentono di far eseguire in modo selettivo una singola riga di codice o una serie di righe di codice (che viene detto

Dettagli

Introduzione a Matlab

Introduzione a Matlab INFORMATICA B Ingegneria Elettrica Introduzione a Matlab Introduzione a Matlab Matlab (MATrix LABoratory) è uno strumento per il calcolo scientifico ed ingegneristico Matlab facilita lo sviluppo di programmi

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

Dettagli

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso Obiettivi Di seguito vengono riportate una serie di domande che possono essere poste durante la prova formale del corso. Le seguenti domande non sono da ritenersi esaustive ma esemplificative. 1. Architettura

Dettagli

Le strutture di controllo

Le strutture di controllo INFORMATICA B Ingegneria Elettrica Le strutture di controllo Selezione un esempio introduttivo Si disegni il diagramma di flusso di un algoritmo che chiede all utente un valore intero e visualizza il suo

Dettagli

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2015/2016

Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni. Andrea Marchetti IIT-CNR AA 2015/2016 Laboratorio Progettazione Web Il linguaggio PHP Le Istruzioni Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.it AA 2015/2016 Ambiente di test PHP online per avere un interprete PHP Php Online PHP Tester

Dettagli

Laboratorio Progettazione Web Il linguaggio PHP Lezione 6. Andrea Marchetti IIT-CNR 2011/2012

Laboratorio Progettazione Web Il linguaggio PHP Lezione 6. Andrea Marchetti IIT-CNR 2011/2012 Laboratorio Progettazione Web Il linguaggio PHP Lezione 6 Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2011/2012 Assegnamento L assegnamento ad una variabile è il classico variabile = valore;

Dettagli

Valori Alfanumerici. Informatica di Base -- R.Gaeta 1

Valori Alfanumerici. Informatica di Base -- R.Gaeta 1 Valori Alfanumerici Finora abbiamo utilizzato solo valori numerici; Se vogliamo usare valori alfanumerici (caratteri e numeri), usiamo le stringhe; In Logo le stringhe si delimitano con le parentesi quadre;

Dettagli

Matlab 5. Funzioni. Slide basate sul corso di C. Blundo. A.A. 2010/ GPersiano. Laboratorio di Informatica per Fisici 1

Matlab 5. Funzioni. Slide basate sul corso di C. Blundo. A.A. 2010/ GPersiano. Laboratorio di Informatica per Fisici 1 Matlab 5 Funzioni Slide basate sul corso di C. Blundo A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 1 Funzioni Le funzioni sono utili quando occorre ripetere una serie di comandi più

Dettagli

Introduzione all ambiente MATLAB. Richiami II. Calcolo Numerico - A.A. 2008/09

Introduzione all ambiente MATLAB. Richiami II. Calcolo Numerico - A.A. 2008/09 Introduzione all ambiente MATLAB Richiami II Programmazione MATLAB MATLAB non è un vero e proprio linguaggio di programmazione, ma permette comunque di realizzare programmi utilizzando le classiche strutture

Dettagli

Costrutti condizionali e iterativi

Costrutti condizionali e iterativi Costrutti condizionali e iterativi Introduction to Fortran 90 Paolo Ramieri, CINECA Aprile 2014 Strutture di controllo Le strutture di controllo permettono di alterare la sequenza di esecuzione delle istruzioni

Dettagli

Fondamenti di Programmazione. Strutture di controllo

Fondamenti di Programmazione. Strutture di controllo Fondamenti di Programmazione Strutture di controllo 1! Controllo del flusso! n Flusso di esecuzione: ordine in cui le istruzioni di un programma sono eseguite! n Salvo contrordini, è in sequenza! n Due

Dettagli

UNIVERSITÀ DEGLI. DI - Dipartimento di Informatica Università degli Studi di Milano

UNIVERSITÀ DEGLI. DI - Dipartimento di Informatica Università degli Studi di Milano Docente: Matteo Re UNIVERSITÀ DEGLI STUDI DI MILANO Insegnamento: Informatica A.A. 2015-2016 semestre II C.d.l. BIOTECNOLOGIA curriculum farmaceutico Programmi e Funzioni in R Matteo Re mail: matteo.re@unimi.it

Dettagli

Javascript. - Corso Web Design - Media Dream Academy. Stefano Gaborin

Javascript. - Corso Web Design - Media Dream Academy. Stefano Gaborin Javascript - Corso Web Design - Media Dream Academy Stefano Gaborin stefano.gaborin@above.company www.above.company Cos è Javascript? JavaScript è un linguaggio di programmazione interpretato. Utilizzato

Dettagli

Matlab. Istruzioni condizionali, cicli for e cicli while.

Matlab. Istruzioni condizionali, cicli for e cicli while. Matlab. Istruzioni condizionali, cicli for e cicli while. Alvise Sommariva Università degli Studi di Padova Dipartimento di Matematica 17 marzo 2016 Alvise Sommariva Introduzione 1/ 18 Introduzione Il

Dettagli

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari 7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa

Dettagli

5 - Istruzioni condizionali

5 - Istruzioni condizionali 5 - Istruzioni condizionali Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin Linguaggio C strutture di controllo: strutture iterative Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Strutture iterative

Dettagli

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A Matematica 13/11/2007 Teoria Compito A Domanda 1 Descrivere, eventualmente utilizzando uno schema, gli elementi funzionali di una CPU. Domanda 2 Java è un linguaggio compilato o interpretato? Motivare

Dettagli

Introduzione al MATLAB c Parte 3 Script e function

Introduzione al MATLAB c Parte 3 Script e function Introduzione al MATLAB c Parte 3 Script e function Lucia Gastaldi DICATAM - Sezione di Matematica, http://lucia-gastaldi.unibs.it Indice 1 M-file di tipo Script e Function Script Function 2 Gestione dell

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Dettagli

Informatica Applicata al Suono Tutorial Matlab

Informatica Applicata al Suono Tutorial Matlab Prof. Mario Malcangi malcangi@di.unimi.it MATLAB è un linguaggio di alto livello e un ambiente interattivo per il calcolo numerico, l'analisi e la visualizzazione dei dati e la programmazione. MATLAB consente

Dettagli

<istruzione> ::= <istruzione-semplice> <istruzione> ::= <istruzione-di-controllo> <istruzione-semplice> ::= <espressione> ;

<istruzione> ::= <istruzione-semplice> <istruzione> ::= <istruzione-di-controllo> <istruzione-semplice> ::= <espressione> ; ISTRUZIONI Le istruzioni esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno del programma o del mondo circostante. Le strutture di controllo permettono di

Dettagli

Il linguaggio Java Istruzioni di Controllo

Il linguaggio Java Istruzioni di Controllo Il linguaggio Java Istruzioni di Controllo Istruzioni per il controllo di flusso Istruzioni di selezione if switch Istruzioni di iterazione while do-while for Istruzioni di salto break continue return

Dettagli

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di

Dettagli

Programmazione web lato client con JavaScript. Marco Camurri 1

Programmazione web lato client con JavaScript. Marco Camurri 1 Programmazione web lato client con JavaScript Marco Camurri 1 JavaScript E' un LINGUAGGIO DI PROGRAMMAZIONE che consente di inserire codice in una pagina web Sintassi simile a Java (e al C), ma NON E'

Dettagli

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1

osservazione: 1 MCD(m,n) min(m,n) = si provano i numeri compresi tra 1 e min(m,n) conviene iniziare da min(m,n) e scendere verso 1 Esempio: Leggere due interi positivi e calcolarne il massimo comun divisore. MCD(12, 8) = 4 MCD(12, 6) = 6 MCD(12, 7) = 1 Sfruttando direttamente la definizione di MCD osservazione: 1 MCD(m,n) min(m,n)

Dettagli

Un esempio di if annidati

Un esempio di if annidati Programmazione A.A. 2002-03 I Costrutti di base ( Lezione XIV, parte I ) Costrutto di selezione switch Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di

Dettagli

L utility Unix awk [Aho-Weinberger-Kernighan]

L utility Unix awk [Aho-Weinberger-Kernighan] L utility Unix awk [Aho-Weinberger-Kernighan] L utility awk serve per processare file di testo secondo un programma specificato dall utente. L utility awk legge riga per riga i file ed esegue una o più

Dettagli

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA MATLAB I/O Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA Funzione input valore = input( inserisci un valore ); Matlab stampa a video la stringa inserisci un valore ed aspetta di ricevere

Dettagli

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell

Dettagli

Il linguaggio PHP. Elementi base

Il linguaggio PHP. Elementi base Il linguaggio PHP Elementi base Il Linguaggio PHP PHP è un acronimo ricorsivo che sta per PHP Hypertext Preprocessor Sintassi di base: un blocco di scripting PHP può stare ovunque in un documento, inizia

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

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 5 Alberto Ceselli alberto.ceselli@unimi.it Università degli Studi di Milano 12 Marzo 2013 Le funzioni sono oggetti di prima classe in Scheme In Scheme le funzioni

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza

Dettagli

Evoluzione del FORTRAN 14/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN

Evoluzione del FORTRAN 14/03/2016. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 15 IL LINGUAGGIO FORTRAN Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna

Dettagli

Le funzioni in JavaScript. Modularizzazione

Le funzioni in JavaScript. Modularizzazione Modularizzazione Quando abbiamo a che fare con un problema complesso spesso lo suddividiamo in problemi più semplici che risolviamo separatamente, per poi combinare insieme le soluzioni dei sottoproblemi

Dettagli

Funzioni in C. Funzioni. Strategie di programmazione. Funzioni in C. Come riusare il codice? (2/3) Come riusare il codice? (1/3)

Funzioni in C. Funzioni. Strategie di programmazione. Funzioni in C. Come riusare il codice? (2/3) Come riusare il codice? (1/3) Funzioni Il concetto di funzione Parametri formali e attuali Il valore di ritorno Definizione e chiamata di funzioni Passaggio dei parametri Corpo della funzione 2 Strategie di programmazione Riuso di

Dettagli

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche

Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

print((math.floor(1345/10)%10); print (Math.floor(1345/100)%10); Le funzioni in JavaScript

print((math.floor(1345/10)%10); print (Math.floor(1345/100)%10); Le funzioni in JavaScript Funzioni Funzioni predefinite della libreria matematica Funzioni disponibili: Math.sqrt(x) radice quadrata Math.log(x) logaritmo naturale in base e di x Math.abs(x) valore assoluto di x Math.ceil(x) arrotonda

Dettagli

MATLAB c. Lucia Gastaldi Dipartimento di Matematica Lezione 4 (15 ottobre 2003)

MATLAB c. Lucia Gastaldi Dipartimento di Matematica  Lezione 4 (15 ottobre 2003) MATLAB c M-file. Lucia Gastaldi Dipartimento di Matematica http://dm.ing.unibs.it/gastaldi/ Lezione 4 (15 ottobre 2003) Esercizio Problema 3: la successione di funzioni f n (x) = (x 2 x) n per 0 x 1 è

Dettagli

Istruzioni di ripetizione in Java 1

Istruzioni di ripetizione in Java 1 in Java Corso di laurea in Informatica Le istruzioni di ripetizione consentono di eseguire molte volte la stessa Si chiamano anche cicli Come le istruzioni condizionali, i cicli sono controllati da espressioni

Dettagli

Strutture di controllo iterative

Strutture di controllo iterative Capitolo 4 Strutture di controllo iterative ANDREA GINI Le strutture di controllo iterative permettono di impostare la ripetizione di un insieme di istruzioni per un determinato numero di volte. In Java

Dettagli

Programmazione in Python. Moreno Marzolla

Programmazione in Python. Moreno Marzolla Programmazione in Python Moreno Marzolla http://www.moreno.marzolla.name/ Copyright 2011, Moreno Marzolla (http://www.moreno.marzolla.name/teaching/labinf2011/) This work is licensed under the Creative

Dettagli

Corso di Laboratorio di Sistemi Operativi

Corso di Laboratorio di Sistemi Operativi Corso di Laboratorio di Sistemi Operativi Lezione 4 Alessandro Dal Palù email: alessandro.dalpalu@unipr.it web: www.unipr.it/~dalpalu Approfondimento su make http://http://capone.mtsu.edu/csdept/facilitiesandresources/make.htm

Dettagli

Tipi di dato strutturati: Array

Tipi di dato strutturati: Array Tipi di dato strutturati: Array I dati visti finora sono: numeri (interi o razionali), booleani le stringhe (sequenze di caratteri) ma i dati manipolati nelle applicazioni reali sono spesso complessi (o

Dettagli

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt); Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i

Dettagli

Programmazione orientata agli oggetti: le classi

Programmazione orientata agli oggetti: le classi Programmazione orientata agli oggetti: le classi Oggetti e tipi di dati La programmazione che abbiamo visto finora agisce su variabili che appartengono a tipi di dati predefiniti: interi, floating point,

Dettagli

Diagrammi di flusso. Un metodo per rappresentare graficamente gli algoritmi. sotto programma. Input/ Output. Start. predicato Elaborazione Stop

Diagrammi di flusso. Un metodo per rappresentare graficamente gli algoritmi. sotto programma. Input/ Output. Start. predicato Elaborazione Stop Diagrammi di flusso Un metodo per rappresentare graficamente gli algoritmi. Input/ Output sotto programma Start predicato Elaborazione Stop La programmazione strutturata Un algoritmo è strutturato in blocchi

Dettagli

Istruzioni Condizionali

Istruzioni Condizionali Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 6 Istruzioni Condizionali Carla Limongelli Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Istruzioni condizionali

Dettagli

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire:

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire: Sviluppo di programmi Per scrivere un programma C corretto bisogna: E ora, finalmente Si comincia! DD Cap. pp.4974 Analizzare il problema (input, output, casi estremali) 2. Progettare una soluzione (algoritmo)

Dettagli

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA Matlab: esempi ed esercizi Sommario e obiettivi Sommario Esempi di implementazioni Matlab di semplici algoritmi Analisi di codici Matlab Obiettivi

Dettagli

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande/ VERSIONE 1 1) L approccio con cui si studia un sistema focalizzandosi solo sul rapporto tra input e output si chiama

Dettagli

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy

Dettagli

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 6 Introduzione al C++ Mauro Piccolo Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,

Dettagli

Programmazione Procedurale in Linguaggio C++

Programmazione Procedurale in Linguaggio C++ Programmazione Procedurale in Linguaggio C++ Sottoprogrammi Parte 2 (a) Sintassi e Semantica versione 2.0 Questolavoroè concessoin uso secondoi termini di unalicenzacreative Commons (vedi ultima pagina)

Dettagli

Il computer. Il case e l'unità di elaborazione. Il computer, una macchina aggiornabile.

Il computer. Il case e l'unità di elaborazione. Il computer, una macchina aggiornabile. Liceo Scientifico Vinci PROGRAMMA FINALE A.S. 2016/2017 Materia: INFORMATICA Classe 1Q Prof. Dardanelli Francesco PROGRAMMA SVOLTO NELL ANNO SCOLASTICO IL COMPUTER. Hardware e software. Il computer. Il

Dettagli

Individuazione di sottoproblemi

Individuazione di sottoproblemi Individuazione di sottoproblemi Quando il problema è complesso conviene partire con una individuazione di sottoproblemi Scriviamo un algoritmo contenente azioni o condizioni complesse per l esecutore che

Dettagli

1) Matlab e simulazione. 2) Esempi di utilizzo. Mauro De Sanctis corso di Informazione e Codifica Università di Roma Tor Vergata

1) Matlab e simulazione. 2) Esempi di utilizzo. Mauro De Sanctis corso di Informazione e Codifica Università di Roma Tor Vergata Argomenti della Lezione 1) Matlab e simulazione 2) Esempi di utilizzo 1 Mauro De Sanctis corso di Informazione e Codifica Università di Roma Tor Vergata Matlab è un sistema di programmazione ad alto livello

Dettagli

CORSO DI LABORATORIO DI INFORMATICA

CORSO DI LABORATORIO DI INFORMATICA CORSO DI LABORATORIO DI INFORMATICA Corso di Laurea Triennale in Ingegneria Elettrica a.a. 2015/2016 Docente: Ing. Domenico Amalfitano Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione

Dettagli

Introduzione alla programmazione in C(++)

Introduzione alla programmazione in C(++) Testi Testi Consigliati: Introduzione alla programmazione in C(++) A. Kelley & I. Pohl C didattica e programmazione A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. D. M. M. Ritchie

Dettagli

Iterazione (introduzione)

Iterazione (introduzione) Fondamenti di informatica Oggetti e Java (introduzione) Capitolo 17 (estratto) ottobre 2015 1 Contenuti Accesso a sequenze Accumulazione Conteggio Altre aggregazioni Verifica esistenziale Verifica universale

Dettagli

Linguaggio C: introduzione

Linguaggio C: introduzione Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: introduzione La presente dispensa e da utilizzarsi

Dettagli

Strutturare il codice: sottoprogrammi

Strutturare il codice: sottoprogrammi Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Motivazioni Alcuni problemi si presentano frequentemente durante lo sviluppo di un programma

Dettagli

Definizione di metodi in Java

Definizione di metodi in Java Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un

Dettagli

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale

IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input

Dettagli

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave

Dettagli

Istruzioni condizionali di diramazione in Fortran 90

Istruzioni condizionali di diramazione in Fortran 90 Istruzioni condizionali di diramazione in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: Istruzioni di diramazione DIS - Dipartimento

Dettagli

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Programmi Un elaboratore riceve dei dati in ingresso, li elabora secondo una sequenza predefinita di operazioni e infine restituisce il risultato sotto forma

Dettagli

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C 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

Liste. Università degli Studi di Milano

Liste. Università degli Studi di Milano Università degli Studi di Milano Laurea Specialistica in Genomica Funzionale e Bioinformatica Corso di Linguaggi di Programmazione per la Bioinformatica Liste Giorgio Valentini e mail: valentini@dsi.unimi.it

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Istruzione condizionale switch Istruzioni di salto break e continue Uso di variabili di tipo boolean Variabili di tipo array (monodimensionali)

Dettagli

I costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni

I costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni Classi di istruzioni In maniera simile a quanto fatto per i dati, un linguaggio mette a disposizione dei costrutti per realizzare la parte esecutiva dell algoritmo. Questa consiste di: Leggi i valori di

Dettagli

Istruzioni semplici e strutturate

Istruzioni semplici e strutturate Consorzio NETTUNO Corso di Fondamenti di Informatica I secondo giorno di stage Istruzioni semplici e strutturate Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II

Dettagli

Strutture di Controllo

Strutture di Controllo Strutture di Controllo Informatica B Istruzioni condizionali #include int main() char c; printf("inserire il carattere maiuscolo: "); scanf("%c", &c); printf("la traduzione e' %c\n",c+32); return

Dettagli

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.

Errori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A. Cicli e array Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7 Lez. 8 - Introduzione all ambiente

Dettagli

8 Introduzione MATLAB

8 Introduzione MATLAB 8.1 Basi Per pulire il workspace (eliminare tutte le variabili esistenti): 1 clear Per pulire la finestra dei comandi (command window): 1 clc In MATLAB non è necessario dichiarare le variabili ed esse

Dettagli

Esercitazioni di Fondamenti Informatica - Modulo A 1

Esercitazioni di Fondamenti Informatica - Modulo A 1 Esercitazioni di Fondamenti Informatica - Modulo A 1 Da MSDN: The while statement executes a statement or a block of statements until a specified expression evaluates to false while ( expression ) statement

Dettagli

Finestre di dialogo. Corso di Laboratorio di Programmazione Web. Controllo dell input e window.alert. prompt di stringhe!

Finestre di dialogo. Corso di Laboratorio di Programmazione Web. Controllo dell input e window.alert. prompt di stringhe! Corso di Funzioni ed Oggetti Finestre di dialogo prompt( Inserisci il valore, 1000 ); restituisce la stringa inserita nel campo alarm( Stai per uscire! ); Dipartimento di Informatica Università degli Studi

Dettagli

ISTRUZIONI ISTRUZIONI

ISTRUZIONI ISTRUZIONI ISTRUZIONI Le istruzioni esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno del programma o del mondo circostante. Le strutture di controllo permettono di

Dettagli

Completiamo le istruzioni condizionali: Istruzione switch Può essere usata per realizzare una selezione a più vie. Sintassi:

Completiamo le istruzioni condizionali: Istruzione switch Può essere usata per realizzare una selezione a più vie. Sintassi: Completiamo le istruzioni condizionali: Istruzione switch Può essere usata per realizzare una selezione a più vie. Sintassi: switch (espressione) { case espressione-1: istruzioni-1... case espressione-n:

Dettagli

Il linguaggio di programmazione Python

Il linguaggio di programmazione Python Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

PHP Lezione 4. Istruzione condizionale IF. Sintassi IF: if (condizione) { istruzioni; }

PHP Lezione 4. Istruzione condizionale IF. Sintassi IF: if (condizione) { istruzioni; } Università degli Studi di Milano Dipartimento di Informatica e Comunicazione Corso di Laurea in Scienze e Tecnologie della Comunicazione Musicale Informatica Generale - Prof. Luca A. Ludovico PHP Lezione

Dettagli

Strategie di programmazione

Strategie di programmazione Funzioni Funzioni in C Il concetto di funzione Parametri formali e attuali Il valore di ritorno Definizione e chiamata di funzioni Passaggio dei parametri Corpo della funzione 2 Funzioni in C Strategie

Dettagli