Lez.6 (13/14)Elementi di Programmazione1 Lezione 6 Funzioni Passaggio di parametri.

Slides:



Advertisements
Presentazioni simili
Lez. 12 (10/11) - PBElementi di Programmazione1 Lezione 12 Esercizi.
Advertisements

Lezione 8 Anno accademico Titolare corso: Prof. Costanza Torricelli
LS Tron Classe 4TC – as 2006/07 LORGANIZZAZIONE DEI PROGRAMMI UD. 8 p. 282.
Le funzioni UD. 8 – Lorganizzazione dei programmi p. 309 LS Tron 4TC 06/07.
Lez. 6 (10/11) - PBElementi di Programmazione1 Lezione 6 Parametri Facoltativi Matrici Matrici di parametri.
Lez. 8 (10/11) - PBElementi di Programmazione1 Lezione 8 Date Valutazione di espressioni File di testo sequenziali.
Lez. 8 (11/12) - PBElementi di Programmazione1 Lezione 8 Date Valutazione di espressioni File di testo sequenziali.
Lez. 11 (11/12) - PBElementi di Programmazione1 Lezione 11 Esercizi.
Lez. 7 (10/11) - PBElementi di Programmazione1 Lezione 7 Matrici di Celle Tipi String e Date.
Lez 4 (11/12)Elementi di Programmazione1 Istruzioni per il controllo del Flusso 2.
Lez. 10 (10/11) - PBElementi di Programmazione1 Lezione 10 Funzioni e Moduli Macro Analisi del flusso Esercizi.
Lez 4 (10/11)Elementi di Programmazione1 Istruzioni per il controllo del Flusso 2.
Elementi di Programmazione
EP 10/11 - PBLezione 2-21 Elementi di Programmazione Tipi di Dati Conversioni Istruzioni di controllo del flusso.
Oggetti Form e Controlli Registratore di Macro
EP 11/12 - PBLezione 31 Elementi di Programmazione Tipi di Dati e Conversioni Istruzioni di controllo del flusso.
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.
Lez. 9 (10/11) - PBElementi di Programmazione1 Lezione 9 Oggetti Moduli e Controlli Registratore di Macro.
Lez. 11 (10/11) - PBElementi di Programmazione1 Lezione 11 Esercizi.
Lez. 7 (11/12) - PBElementi di Programmazione1 Lezione 7 Tipi String e Date.
Lez 4 (10/11)Elementi di Programmazione1 Istruzioni per il controllo del Recupero lez.4.
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Dipartimento di Matematica
Algoritmi e Programmazione
Moduli 1 In Access è possibile automatizzare diverse operazioni mediante l’utilizzo del linguaggio VBA (Visual Basic for Applications). Le istruzioni.
Programmazione Procedurale in Linguaggio C++
Funzioni definite dall’utente
Allocazione dinamica della memoria
1 Corso di Informatica (Programmazione) Lezione 12 (19 novembre 2008) Programmazione in Java: i metodi statici.
Esercizio 4 Data una stringa P di lunghezza m e definita sullalfabeto, scrivere un programma PERL per calcolare la seguente funzione: PREFIX_FUNCTION:
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Il linguaggio Fortran 90: 5. Formato di I/O e Files
Introduzione alla programmazione lll
Array Funzioni che operano su array. Funzioni Ricordiamo che una funzione è una parte di codice a sé stante che esegue un compito e/o ritorna un risultato.
Somma = A + B start Stampa Somma Leggi A,B stop Sub SOMMA( ) Dim A, B as Integer A = InputBox("Immetti un numero") B = InputBox(Immetti un secondo numero)
Lezione 4: Costrutti Condizionali Prof. Raffaele Montella.
Procedure e funzioni nei linguaggi di alto livello Lab Programmazione - turno /2006.
Algebra Lineare Esercizi assegnati.
Le funzioni.
JavaScript 3. Commenti in JS Come in altri linguaggi di programmazione anche javascript offre la possibilità di inserire i commenti all'interno delle.
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.
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
PROBLEMA ALGORITMO PROGRAMMA LINGUAGGI di PROGRAMMAZIONE
Cicli in Fortran I cicli consentono di eseguire una sequenza di istruzioni più di una volta due tipi: Cicli iterativi Cicli while.
Programmare in Visual Basic
Lo sviluppo top down Le funzioni
BIOINFO3 - Lezione 331 SUBROUTINE IN PERL Una subroutine (funzione, metodo, procedura o sottoprogramma), e` una prozione di codice all`interno di un programma.
Algoritmo Ordinamento di 3 Numeri
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
- prof. V. Riboldi - SOTTOPROGRAMMI IN TPASCAL METODO TOP DOWN.
Il linguaggio Fortran 90: 3. Procedure e Funzioni
Lez. 10 (13/14)Elementi di Programmazione1 Lezione 10 Oggetti Moduli e Controlli.
Lz. 3 (13/14)Elementi di Programmazione1 Istruzioni (strutture) di controllo 1.
Lez. 5 (13/14)Elementi di Programmazione1 Lezione 5 Procedure.
FUNZIONI Dichiarazione: Definizione:
Introduzione a Javascript
Vettori (a una dimensione)
Lez. 9 (13/14)Elementi di Programmazione1 Lezione 9 Valutazione di espressioni File di testo sequenziali.
Informatica 4 Funzioni. FUNZIONE: definizione MATEMATICA Relazione (o applicazione) binaria tra due insiemi A e B che associa a ogni elemento di A un.
Sottoprogrammi e funzioni
Lez 4 (13/14)Elementi di Programmazione1 Strutture di controllo 2.
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
Lez. 12 (13/14)Elementi di Programmazione1 Lezione 12 Esercizi.
Lez. 11 (13/14)Elementi di Programmazione1 Lezione 11 Esercizi.
Laboratorio Informatico
Copyright © Istituto Italiano Edizioni Atlas
Università dell'Insubria - C.d.L. in Banca & Finanza - A.A Modelli Finanziari nel Tempo Continuo 1 Elementi di Programmazione in Visual Basic.
Transcript della presentazione:

Lez.6 (13/14)Elementi di Programmazione1 Lezione 6 Funzioni Passaggio di parametri

Lez.6 (13/14)Elementi di Programmazione2 Funzioni Function nomeFunz (parametri) As Tipo dichiarazione variabili locali istruzioni End Function –Per terminare una funzione senza giungere a End Function si usa Exit Function –È meglio, non obbligatorio, dichiarare le variabili locali all’inizio della procedura –Il valore che deve restituire la funzione è assegnato al nome della funzione che in pratica è un ulteriore parametro –Le funzioni da aggiungere all’ambiente Excel vanno dichiarate in un modulo ( module )

Lez.6 (13/14)Elementi di Programmazione3 Funzioni –Per richiamare una funzione si possono usare tre sintassi alternative: Call nomeFunzione (argomenti) nomeFunzione argomenti Val = nomeFunzione (argomenti) –Dove argomenti è l’elenco degli argomenti specificato in maniera posizionale o con la sintassi nomeParametro := valore –Con le prime due notazioni si perde il valore restituito

Lez.6 (13/14)Elementi di Programmazione4 Funzioni –L’uso delle parentesi per racchiudere i parametri attuali è diverso rispetto alle sub Con l’istruzione Call è obbligatorio l’uso delle parentesi Senza assegnare il valore restituito ad una variabile le parentesi vanno omesse; in caso contrario si ha un comportamento anomalo: –Se vi è un solo parametro è comunque passato ByVal –Se vi è più di un parametro è generato un errore di sintassi : Quando si desidera assegnare il valore restituito ad una variabile le parentesi sono obbligatorie

Lez.6 (13/14)Elementi di Programmazione5 Esempio Function pari (x As Integer) As Boolean Dim y As Integer y = x Mod 2 pari = (y = 0) End Function Sub richiama () Dim r1 As Boolean, r2 As Boolean r1 = pari (5) r2 = pari (12) MsgBox (r1 & " " & r2) End Sub Prepara il valore per la restituzione al chiamante

Lez.6 (13/14)Elementi di Programmazione6 Esempio Scrivere una funzione che ha come parametro un valore numerico e lo restituisce raddoppiato utilizzare questa funzione in Sub che legge un valore dalla cella A3 lo passa alla funzione e quindi scrive il risultato nella cella C8

Lez.6 (13/14)Elementi di Programmazione7 Esempio Function raddoppia(val As Double) raddoppia = val * 2 End Function Sub calcola() Dim v As Double v = Range("A3").Value Range("C8").Value = raddoppia(v) End Sub

Lez.6 (13/14)Elementi di Programmazione8 Esempio Option Explicit Function raddoppia(A As Double) _ As Double raddoppia = A * 2 A = A - 2 End Function Sub rch() Dim x As Double, y As Double Dim z As Double, w As Double x = 10 y = 20 z = 30 Call raddoppia(x) raddoppia y w = raddoppia(z) End Sub rch() x y z w raddoppia() A raddoppia (^x) (^x) (^x) < (^y) (^y) (^y) < (^z) (^z) (^z) <

Lez.6 (13/14)Elementi di Programmazione9 Esercizio Option Explicit Function raddoppia(A As Double) _ As Double raddoppia = A * 2 A = A - 2 End Function Sub rch() Dim x As Double, y As Double Dim z As Double, w As Double x = 10 y = 20 z = 30 w = raddoppia(z) + raddoppia(y) / 5 End Sub rch() x y z w raddoppia() A raddoppia (^z) (^z) (^z) 60 60< (^y) (^y) (^y) <

Lez.6 (13/14)Elementi di Programmazione10 Esempio Scrivere una subroutine che preleva il valore della cella C7 e scrive da D7 in avanti tutti i divisori di C7

Lez.6 (13/14)Elementi di Programmazione11 Sub divisori() Dim v As Integer, i As Integer Dim j As Integer v = Range("C7").Value j = 1 For i = 1 To v If v Mod i = 0 Then Cells(7, (3 + j)) = i j = j + 1 End If Next While Not IsEmpty(Cells(7,(3+j))) Cells(7, (3 + j)) = "" j = j + 1 Wend End Sub

Lez.6 (13/14)Elementi di Programmazione12 Parametri facoltativi In VBA è molto semplice passare ad una routine una serie di parametri facoltativi (optional parameter) –Si fa precedere dalla parola chiave Optional ByRef o ByVal se presenti altrimenti Optional precede il nome del parametro I parametri Optional devono essere gli ultimi della lista –Si dichiara il parametro di tipo Variant Strettamente parlando il parametro potrebbe essere di qualsiasi tipo ma se è di tipo Variant è possibile usare la funzione IsMissing(nomeParametro) che restituisce True se il parametro non è stato passato alla funzione

Lez.6 (13/14)Elementi di Programmazione13 Parametri facoltativi –Quando si richiama la routine i parametri facoltativi possono essere omessi Usando la notazione posizionale si mette la virgola (, ) per i parametri che non si vogliono fornire quando si debbono dare dei valori ai parametri successivi a quello da saltare usando la notazione := per indicare solo i parametri necessari

Lez.6 (13/14)Elementi di Programmazione14 Parametri facoltativi E’ buona norma dare un valore prefissato per i parametri facoltativi –Per i parametri di tipo Variant : Usando la funzione IsMissing() per stabilire se il parametro è presente e quindi dando il valore in caso non lo sia usando la notazione: Optional nomeParametro = valoreDefault –Per i parametri non di tipo Variant usando la notazione: Optional nomeParametro As Tipo = valoreDefault

Lez.6 (13/14)Elementi di Programmazione15 Esempio Function facoltativi(x As Integer, _ Optional ByVal y = 2, Optional k) If IsMissing(k) Then k = 3 facoltativi = x + y + k End Function Sub richiama () MsgBox (facoltativi(8)) MsgBox (facoltativi(8, 7)) MsgBox (facoltativi(8,, 100)) MsgBox (facoltativi(8, 10, 7)) MsgBox (facoltativi(8, k:=7)) End Sub

Lez.6 (13/14)Elementi di Programmazione16 Esercizio Option Explicit Sub facoltativi(x As Integer, _ Optional ByVal y, _ Optional ByVal z) If IsMissing(z) Then z = 12 End If If IsMissing(y) Then y = -30 End If x = z + y End Sub Sub rch() Dim a As Integer, b As Integer, c As Integer a = 8 facoltativi a,,900 End Sub