CFAC: Visual Basic: III - Procedimentos

Documentos relacionados
Visual Basic. III Procedimentos. CFAC Concepção e Fabrico Assistidos por Computador. João Manuel R. S. Tavares

V - Repetição. CFAC Concepção e Fabrico Assistidos por Computador. 2) Elementos de uma estrutura de repetição;

CFAC: Visual Basic: IV - Decisões

Visual Basic. V - Repetição. CFAC Concepção e Fabrico Assistidos por Computador João Manuel R. S. Tavares

Visual Basic. IV - Decisões. CFAC Concepção e Fabrico Assistidos por Computador João Manuel R. S. Tavares

CFAC: Visual Basic: VIII - Ficheiros de Acesso Aleatório

Visual Basic. VIII Ficheiros de Acesso Aleatório. CFAC Concepção e Fabrico Assistidos por Computador João Manuel R. S. Tavares

1 - Ambiente de desenvolvimento

Instituto Superior Politécnico de VISEU. Escola Superior de Tecnologia

Informática II Cap. 4-4

Visual Basic. II Fundamentos de Programação em Visual Basic. CFAC Concepção e Fabrico Assistidos por Computador. João Manuel R. S.

Linguagem de Programação

Um algoritmo deve conter passos não ambíguos, executáveis e que sejam terminados quando seguidos.

CFAC: Visual Basic: II - Fundamentos da Programação em Visual Basic

Módulo 1a: Introdução ao Visual Basic for Applications (VBA)

Programação de Computadores III

Visual Basic. VII Ficheiros Sequenciais. CFAC Concepção e Fabrico Assistidos por Computador João Manuel R. S. Tavares

CFAC: Visual Basic: VII - Ficheiros Sequenciais. VII Ficheiros Sequenciais

Visual Basic. VI - Arrays. CFAC Concepção e Fabrico Assistidos por Computador João Manuel R. S. Tavares

Algoritmos e Programação

Introdução à Programação Aula 09. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Módulo 3 Subprogramas

Programação de Computadores III

APROG. Civil. Programas Básicos. ISEP DEI, Angelo Martins 2006 ISEP DEI, António Silva Programas Básicos

Introdução à Computação. Programas Básicos. ISEP DEI, Angelo Martins 2006 Programas Básicos - 1

UNISINOS - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) Curso: Informática

O que é um programa em Visual Basic?

Modularização. Prof. Antonio Almeida de Barros Junior

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: funções

Linguagem de Programação II. Introdução à programação em VB Professor: Armando Hage

Universidade Estadual do Maranhão Curso de Engenharia da Computação Mestrado em Engenharia da Computação e Sistemas

C++ - Funções. Forma geral das funções C++

SSC INTRODUÇÃO À COMPUTAÇÃO PARA ENGENHARIA AMBIENTAL MODULARIZAÇÃO. Profa. Dra. Milena Guessi Margarido

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema

p A modularização consiste num método utilizado para facilitar a construção de grandes programas;

Introdução ao FORTRAN 90. Aula 4

Blocos, Escopo de variáveis, procedimentos e funções. 1- Blocos

Objectivos. Iniciar a programação de funções. Estudar a chamada de funções. Estudar a forma como são executadas as funções

Tarefa Orientada 4 Aplic. Manutenção de Produtos - ComboBox

Fundamentos Programação

3. Linguagem de Programação C

Páginas seleccionadas

Programação de Computadores usando VBA

Aula 07 Introdução à Programação Subprogramas

Fig. 1: Ilustração de um exemplo de Modularização de um guindaste em suas partes Fonte: Internet

AutoLISP - I Introdução. João Manuel R. S. Tavares Joaquim Oliveira Fonseca

CFAC: AutoLISP (I) - Introdução

DRIVER LYNX-IO ACESSO A I/O NO WINDOWS NT 4.0

Programação em MATLAB

Integração por Web Services

CFAC: Programação em FORTRAN - I

Subprogramação. Subprogramação. Subprogramação. A subprogramação é uma ferramenta que contribui com a tarefa de programar:

Exercícios Data Modeling

Programação em FORTRAN - I. João Manuel R. S. Tavares

Modularidade - Funções e Procedimentos

Laboratório de Programação I

Variáveis Tipos de Dados

Introdução à linguagem JavaScript

@2007 João Manuel R. S. Tavares FEUP/DEMEGI/SDI. CFAC Concepção e Fabrico Assistidos por Computador

Universidade Estadual de Maringá- UEM Centro de Tecnologia - CTC Departamento de Informática - DIN Fundamentos da Computação.

Sumário. 1.1 Variáveis Globais e Locais Passagem de Parâmetro (por valor por referência) 1

Código do formulário frmcalculardesvalorização

Objectos Gráficos 1. APROG (Civil) Aula 4

VBA Visual Basic for Applications. APROG - Civil

Estruturas de Decisão. APROG (Civil) Aula 6

DEM-Sec.Sistemas Tipos Abstractos de Informação 2006 / Programação

FORCE. João Manuel R. S. Tavares

Aula 12: Funções. CI208 - Programação de Computadores. Prof. MSc. Diego Roberto Antunes

Aula teórica 7. Preparado por eng.tatiana Kovalenko

Correção do 1º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica 30 de Junho de 2006, 2º Semestre

Este Exame é individual, sem consulta e com a duração de 90 minutos. Responda às questões no próprio teste, no espaço próprio.

Subprogramação. Leonardo Gresta Paulino Murta.

Linguagem C Funções. André Tavares da Silva.

Instituto Superior Politécnico de VISEU. Escola Superior de Tecnologia

Objectivos. Introdução à programação Macros em Microsoft Excel Introdução ao Visual Basic para Aplicações (VBA)

Programação em FORTRAN III. João Manuel R. S. Tavares

Explicação do programa:

Variáveis Tipos de Dados. APROG (Civil) Aula 2

1.2.5 As operações básicas do sistema operativo de interface gráfico

Minicurso de JavaScript PET Sistemas de Informação Terceiro Dia Anthony Tailer. Clécio Santos. Rhauani Fazul.

Introdução à Computação

AutoLISP -I Introdução

Programação estruturada no Fortran 90-1

Visual Basic. I Introdução à Programação e ao Visual Basic. Sumário. 1. Ciclo de desenvolvimento de um programa;

Noção de Funções. A Linguagem C permite que um programa seja escrito como um conjunto de funções que são executadas a partir de uma

Universidade Federal Rural de Pernambuco Departamento de Estatística e Informática Subprogramas

ESTRUTURA DE DADOS (TCC )

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

Introdução ao AutoCAD Capitulo III: Ecrã do AutoCAD e Operações de selecção

AULA 13 PROCEDIMENTOS. Disciplina: Algoritmos e POO Professora: Alba Lopes.

Introdução à Programação

LEIA ATENTAMENTE AS INSTRUÇÕES PARA A RESOLUÇÃO DO

Programação de Computadores I Procedimentos e Funções PROFESSORA CINTIA CAETANO

Sub Rotinas. Estrutura de Dados. Prof. Kleber Rezende

Paradigmas de Linguagens de Programação. Subprogramas

Para iniciarmos o trabalho se faz necessária a implantação da GUIA DESENVOLVEDOR. Botão Direito do Mouse; Personalizar Faixa de Opções

Informática Básica. Aula 13 Macros e introdução a programação

Macros e Programação VBA

CFAC: Programação em FORTRAN - V

Módulos ou Subrotinas: PARTE II. Criando seus próprios módulos

Transcrição:

Visual Basic III Procedimentos CFAC Concepção e Fabrico Assistidos por Computador João Manuel R. S. Tavares Sumário 1) Criar Subrotinas em Visual Basic; 2) Criar Funções; 3) Mecanismo de passagem de parâmetros; 4) Modularização em Linguagens de Programação. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 2 @2009 - João Manuel R. S. Tavares 1

O que é a Modularização? Dividir o programa em subtarefas. Uma subrotina, ou uma função, executa um tarefa bem definida. Aumento da facilidade de testar, depurar (debug) e corrigir, um programa. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 3 Porque utilizar Subrotinas e Funções? Prover operações abstractas. Torna os programas mais simples de escrever, depurar e manter. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 4 @2009 - João Manuel R. S. Tavares 2

Modularização de Programas em Visual Basic No Visual Basic, existem dois tipos de di t procedimentos (além dos procedimentos de eventos): Subrotinas (Sub procedures); Funções (Functions). Nota: Para distinguir estes tipos procedimentos dos procedimentos associados a eventos, Subrotinas e Funções são referidos como procedimentos gerais (general procedure). Como regra, uma subrotina ou função executa apenas uma tarefa, ou várias tarefas fortemente relacionadas, e deverá ser relativamente pequena. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 5 Modularização de Programas em Visual Basic Os procedimentos de eventos são sempre activados a partir de uma acção executada pelo utilizador ou então pelo sistema operativo (ex: Windows). Os procedimentos gerais, funções ou subrotinas, são activados pelo próprio programador via código. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 6 @2009 - João Manuel R. S. Tavares 3

Passagem de Argumentos para subrotinas: Quando uma subrotina é definida é por vezes necessário transferir variáveis utilizadas em subrotinas diferentes. Tal é designado, nas linguagens de programação, por passagem. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 7 Propriedades das Subrotinas: Podem ser chamadas; Podem receber dados, designados por argumentos (por passagem); Podem retornar valores ao programa/módulo chamador; Podem alterar o valor de uma variável recebida. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 8 @2009 - João Manuel R. S. Tavares 4

Componentes de uma Subrotina: Nome: utilizado para identificar a subrotina; Parâmetros: uma subrotina aceita valores a partir do módulo chamador através dos seus parâmetros; também pode devolver valores através dos seus parâmetros. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 9 Nome das Subrotinas As regras para nomear as subrotinas são as mesmas para nomear as variáveis. Geralmente, os nomes das subrotinas começam com letras maiúsculas de forma a serem distinguidos dos nomes das variáveis. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 10 @2009 - João Manuel R. S. Tavares 5

Sintaxe de uma Subrotina Private Sub NomeDaSubrotina (lista de parâmetros) declaração/declarações A lista de parâmetros pode ser vazia; nestes casos, devesse manter os parênteses curvos nas designações das subrotinas mas omiti-los nas chamadas. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 11 Criar Subrotinas no Visual Basic: 1. Activar a janela de código; 2. Seleccionar Add Procedure no menu Tools; 3. Escrever na caixa respectiva o nome da subrotina ; 4. Clicar em Private para o alcance (por exemplo); 5. Carregar na tecla Enter ou clicar no botão OK; 6. Escrever as declarações da subrotina na janela de código. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 12 @2009 - João Manuel R. S. Tavares 6

Exemplo de Chamada de uma Subrotina: Private Sub cmdcompute_click() Dim num As Single num = Val(InputBox("Enter a number:")) Call Triple(num) Subrotina Triple: chamada Private Sub Triple(num As Single) ' Multiply the value of the number by 3 picresult.print "The number is"; 3 * num @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 13 Passagem de Argumentos para Subrotinas Argumentos: variáveis ou expressões colocadas entre parênteses numa declaração Call. Não é apenas o valor do argumento passado para o parâmetro mas também (no final) o valor do parâmetro é devolvido para o argumento. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 14 @2009 - João Manuel R. S. Tavares 7

Call Triple(num) Exemplo de Argumentos Parâmetros Varáveis colocadas entre parênteses depois do nome da Subrotina. Quando a subrotina é chamada, os valores dos correspondentes argumentos são transferidos para os seus parâmetros. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 15 Exemplo de Parâmetros Private Sub Triple(num As Single) Passagem de argumentos para parâmetros Call Triple(num ) Argumento Private Sub Triple (num As Single) Parâmetro @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 16 @2009 - João Manuel R. S. Tavares 8

Passagem de Argumentos para Parâmetros Call Add (x, y ) Argumentos Private Sub Add ( num1 As Single, num2 As Single) Parâmetros @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 17 Passagem de Argumentos A subrotina recebe a localização dos argumentos na memória, a subrotina pode utilizar e modificar o valor dos argumentos. Dois sentidos: de entrada e de saída da subrotina. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 18 @2009 - João Manuel R. S. Tavares 9

Passagem de Argumentos Private Sub cmddisplay_click() Dim amt As Single amt = 2 picresults.print amt; Call Triple(amt) picresults.print amt @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 19 Subrotina Triple Private Sub Triple(num As Single) ' Triple a number picresults.print num; num = 3 * num picresults.print num; @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 20 @2009 - João Manuel R. S. Tavares 10

Passagem de Argumentos Call Triple(amt) amt num Private Sub Triple (num As Single) @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 21 Passagem de Dados - por Referência amt amt amt amt 2 2 6 6 num num Subrotina Triple @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 22 @2009 - João Manuel R. S. Tavares 11

Passagem de Argumentos por Valor e por Referência A passagem de argumentos para subrotina pode ser feita por Valor ou por Referência. Na passagem por valor, a subrotina recebe apenas uma cópia do argumento; sendo assim, qualquer alteração no argumento dentro da subrotina não terá efeito no dado d real l( (após o retorno da subrotina assumirá o valor anterior que tinha no módulo chamador). @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 23 Passagem de Argumentos por Valor e por Referência Já na passagem por referência, a subrotina recebe o endereço que realmente contém o dado; assim sendo, qualquer alteração no argumento alterará o dado de verdade. O Visual Basic, por defeito, passa argumentos por referência. Para passar argumentos por valor, utiliza-se a palavra chave ByVal na lista de parâmetros, ou então coloca-se o argumento entre parênteses na chamada da subrotina. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 24 @2009 - João Manuel R. S. Tavares 12

Regras Importantes para a Passagem de Argumentos para uma Subrotina O número de argumentos e parâmetros deve coincidir. O tipo de dado de cada argumento deve ser igual ao do correspondente parâmetro. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 25 Variáveis Locais: Uma variável que é apenas utilizada no interior de um procedimento especifico (subrotina ou função). O alcance de uma variável local é a zona do procedimento no qual essa variável foi definida. Quando a mesma variável aparece em dois procedimentos diferentes o Visual Basic atribui às varáveis identidades distintas de tal modo que são tratadas como variáveis diferentes e independentes. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 26 @2009 - João Manuel R. S. Tavares 13

Variáveis Locais: Declaradas no interior da definição de um procedimento; Privadas à definição do procedimento; Variáveis em procedimentos diferentes são totalmente independentes; Procedimentos diferentes podem ter variáveis com nomes iguais; contudo, cada variável terá a sua locação de memória própria. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 27 Vantagens na utilização de Variáveis Locais Extremamente úteis na programação em equipa; Evitam efeitos colaterais (nos quais existe uma alteração acidental do valor da variável). @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 28 @2009 - João Manuel R. S. Tavares 14

Exemplo de Variáveis Locais Private Sub cmdbutton_click() Dim var1 As Integer, var2 As Integer, num As Integer var1 = 2 var2 = 4 Call Add(num) picbox.print num As variáveis var1, var2 e num, são locais ao procedimento; o valor da variável num é passado para a subrotina Add. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 29 Subrotina Add Private Sub Add(num As Integer) Dim var1 As Integer, var2 As Integer num = var1 + var2 As variáveis i var1 e var2 são locais à subrotina Add; no retorno, a variável num terá valor igual à soma de var1 com var2. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 30 @2009 - João Manuel R. S. Tavares 15

Variáveis a nível de Formulário Variáveis a nível de formulário (form-level variables) são visíveis a todos os procedimentos (são variáveis Globais) do formulário. Variáveis a nível de formulário aparecem no topo da janela de código do formulário. Trata-se de uma solução para tornar visíveis a todos os procedimentos de um formulário variáveis sem recorrer ao mecanismo de passagem. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 31 Como criar Variáveis a nível do Formulário? 1. Activar a janela de código; 2. Clicar na seta de queda na zona direita da caixa de listagem dos objectos; 3. Clicar em General; 4. Clicar em Declaration na caixa de listagem dos procedimentos; 5. Escrever as declarações Dim para as variáveis a nível de formulário. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 32 @2009 - João Manuel R. S. Tavares 16

Exemplo ' Na secção Declaration do objecto General Dim num1 As Single, num2 As Single num1 e num2 são duas variáveis i globais ao nível do formulário do tipo single. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 33 Revisão O Visual Basic tem dois tipos de procedimentos gerais: Subrotinas; Funções Cada subrotina/função executa uma tarefa distinta. A instrução Call provoca com que uma subrotina seja executada. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 34 @2009 - João Manuel R. S. Tavares 17

Revisão Uma subrotina pode receber muitos valores Subrotina Uma subrotina pode devolver muitos valores @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 35 Revisão Valores podem ser passados entre o programa/módulo chamador e a subrotina através da passagem de argumentos. O número e o tipo de argumentos no programa/módulo chamador e na subrotina devem ser compatíveis. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 36 @2009 - João Manuel R. S. Tavares 18

Revisão Variáveis que são usadas (definidas) num procedimento particular são designadas por variáveis locais. Valores atribuídos a este tipo de variáveis não são retornados ao módulo chamador. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 37 Revisão Diagramas de estrutura são úteis na determinação da divisão i de um programa em procedimentos gerais (subrotinas/funções). A programação modularizada oferece vantagens significativas: Facilidade d de manutenção; Extremamente útil na programação em equipa; Podem ser evitados efeitos colaterais. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 38 @2009 - João Manuel R. S. Tavares 19

Erros Frequentes Passar tipos de dados incorrectos. Não devolver o resultado da computação ao programa/módulo chamador. A única maneira de uma subrotina devolver um valor, ou vários valores, é por intermédio dos seus argumentos. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 39 Revisão Um procedimento geral é como uma caixa preta; sabese o que entra e o que sai; mas não é necessário saber o que acontece no seu interior (para quem o utiliza). Numa subrotina o(s) resultado(s) da computação no seu interior apenas pode ser devolvido através dos seus argumentos. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 40 @2009 - João Manuel R. S. Tavares 20

Um outro Exemplo Private Sub cmddisplay_click() ' Demonstra que as variaveis numa subrotina nao mantem ' os seus valores nas chamadas subsequentes Call Three Call Three @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 41 Subrotina Three Private Sub Three() Dim num As Single ' Mostra o valor de num e atribui-lhe o valor 3 picresults.print num; num = 3 Saída: 0 0 @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 42 @2009 - João Manuel R. S. Tavares 21

O que é uma função? Uma função também é desenvolvida para realizar uma tarefa especifica. Uma função é desenvolvida para devolver um único valor ao programa chamador. Tipos de Funções: Funções Standards (built-in); Funções definidas pelo programador. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 43 Funções Definidas pelo Programador Uma função é desenvolvida para devolver um único valor. O valor é devolvido pela utilização do nome da função. Os argumentos de uma função não devem ser alterados no seu interior. Se um subprograma necessita de devolver mais do que um valor devesse utilizar, em vez de uma função, uma subrotina. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 44 @2009 - João Manuel R. S. Tavares 22

Sintaxe para Funções Private Function NomeDaFuncao(lista de parâmetros) As tipodedado declaracão/declarações.. NomeDaFuncao =.. End Function Tal como para as subrotinas a lista de parâmetros pode ser vazia. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 45 Exemplo de uma Função (utiliza um função para converter de graus Fahrenheit para graus Celsius) Private Sub cmdconvert_click() Click() pictempc.cls pictempc.print FtoC(Val(txtTempF.Text)) Private Function FtoC(t ( As Single) As Single Convert Fahrenheit temperature to Celsius FtoC = (5 / 9) * (t - 32) End Function @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 46 @2009 - João Manuel R. S. Tavares 23

Regras para Definir e Chamar Funções No interior da função definida pelo programador deve existir uma atribuição do valor a retornar ao nome da função. Funções definidas pelo programador são chamadas da mesma forma que as funções predefinidas. Uma função definida pelo programador pode ser chamada no interior de uma expressão. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 47 Retorno de um Valor Uma função pode receber muitos valores Função Apenas um valor pode ser devolvido directamente @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 48 @2009 - João Manuel R. S. Tavares 24

Exemplo de uma Função Private Sub cmddetermine_click() Dim nom As String ' Determine a person's first name nom = txtfullname.text picfirstname.cls picfirstname.print "The first name is "; FirstName(nom) ( ) @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 49 Função FirstName Private Function FirstName(nom As String) As String Dim firstspace As Integer ' Extract the first name from a full name firstspace = InStr(nom, " ") FirstName = Left(nom, firstspace - 1) End Function @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 50 @2009 - João Manuel R. S. Tavares 25

Erros Frequentes Passagem de tipos de dados incorrectos; A não especificação do tipo de dado para o valor de retorno; Esquecimento do tipo de dado de uma parâmetro da função; Não atribuição do valor de retorno ao nome da função no seu interior; Escrita errada do nome da função; Evocação errada da função no interior de uma expressão. @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 51 Exemplos Private Sub cmddisplay ay_click () ' Compute Volume of a Cylinder Dim r As Single, h As Single r =1 h = 2 Call DisplayVolume (r, h) r =3 h = 4 Call DisplayVolume (r, h) @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 52 @2009 - João Manuel R. S. Tavares 26

Função Area Private Function Area (r As Single) As Single ' Compute area of a circle of radius r Area = 3.14159 * r ^ 2 End Function Subrotina DisplayVolume Private Sub DisplayVolume ( r As Single, h As Single) PicOutput.Print "Volume of cylinder having base area"; Area( r) PicOutput.Print "and height"; h; "is"; h * Area (r ) @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 53 Outro Exemplo Private Sub cmddisplay_click() Dim a As String ' Demonstrates local variables a = Choo picoutput.print = TypeOfTrain() @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 54 @2009 - João Manuel R. S. Tavares 27

Função TypeOfTrain Private Function TypeOf Train()AsString Dim a As String a = a & a TypeOfTrain = a & train End Function @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 55 Último Exemplo Private Sub cmddisplay_click () Dim num As Single ' Triple a number num = 5 picoutput.print Triple (num) picoutput.print t num @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 56 @2009 - João Manuel R. S. Tavares 28

Função Triple Private Function Triple(x As Single) As Single Dim num As Single num = 3 Triple = num * x End Function @2009 - João Manuel R. S. Tavares CFAC: Visual Basic: III - Procedimentos 57 @2009 - João Manuel R. S. Tavares 29