Funções
Public Function minimo(a As Integer, b As Integer) as integer If a < b Then minimo = a Else minimo = b End IfEnd Function
Option Explicit
Public Function maximo(a As Integer, b As Integer) as integer If a > b Then maximo = a Else maximo = b End IfEnd Function
Public Function media(a As Integer, b As Integer) as integer media = (a + b) / 2End Function
FunçõesPrivate Sub preencheCaixas() txtMin.Text = minimo(Val(txtA.Text), Val(txtB.Text)) txtMax.Text = maximo(Val(txtA.Text), Val(txtB.Text)) txtMed.Text = media(Val(txtA.Text), Val(txtB.Text))End Sub
Private Sub preencheCaixasA(max As Integer, min As Integer, med As Integer) txtMin.Text = min txtMAx.Text = max txtMed = medEnd Sub
InvocaçãoCall preencheCaixasA(max , min , med )
Call preencheCaixasA(maximo(Val(txtA.Text), Val(txtB.Text), minimo(Val(txtA.Text), Val(txtB.Text) , media(Val(txtA.Text), Val(txtB.Text) )
FunçõesPrivate Sub txtB_Change() cmdCalcula.Enabled = True Call preencheCaixasEnd Sub
Private Sub cmdCalcula_Click() Call preencheCaixasEnd Sub
Private Sub cmdSair_Click() EndEnd Sub
Private Sub txtA_Change() txtB.Locked = FalseEnd Sub
O comprimento do arco
Public Function comArco(angulo as integer, raio as integer) as double comArco = angulo * perimetroCirculo(raio) / 360End Sub
Public Function comArcoA(angulo as integer, perimetro as integer) as double comArco = angulo * perimetro(raio) / 360End Sub
Invocação
comArcoA(ang, perimetro)
OUcomArcoA(ang, perimetroCirculo(raio))
Objectos
Propriedades do Form
Posição inicial do form ao centro StartUpPosition = 2 – CenterScreen
MinButtom MaxButtom
True True
False True
True False
False False
FRAME
Frame
Os objectos devem de ser colocados logo dentro da FrameNão devem de ser levados de fora para dentro
Caixas de mensagensMsgBox(prompt[, buttons] [, title] [, helpfile, context])
MsgBox é uma função portanto, Retorna algo
Resultado = MsgBox( Mensagem, Botões, Título, helpfile, context )
Opcional
Caixas de mensagens
Constantes
Botões
Valores Descrição
vbOKOnly 0 1 botão OK
vbOKCancel 1 2 Botões OK e CancelvbYesNoCancel 3 3 Botões Yes, No e Cancel
vbYesNo 4 2 Botões Yes e No
Caixas de mensagensRetorno da caixa de mensagensConstante Botão
Constante
Valor retornado
vbOKOnly VbOk 1
vbOKCancelVbOk 1
VbCancel 2
vbYesNoVbYes 6
VbNo 7
vbYesNoCancelVbYes 6
VbNo 7
VbCancel 2
Private Sub Command1_Click()Dim mensagem As String, botões As Integer, titulo As StringDim resposta As Integer mensagem = "Mensagem" ' Define mensagem botões = vbYesNoCancel ' Define botões titulo = "Título" ' Define título resposta = MsgBox(mensagem, botões, titulo) If resposta = vbNo Then 'se a resposta foi "não" Text1.Text = "No" ElseIf resposta = vbYes Then 'se a resposta foi "sim" Text1.Text = "Yes" Else Text1.Text = "Cancel" 'se a resposta foi "cancelar" End IfEnd Sub
Caixas de mensagens Exemplo
Controlo de fluxo (Select case)
Select Case expressãoTeste[Case expressãoLista-n [codigoLista-n]] ...[Case Else [codigoLista-caso todas falhem ]]End Select
É executado o código do Caso que coincidir com a expressãoTeste
Controlo de fluxo (For...To...Next)
For contador = inicio To fim [Step passo] [código]Next [contador]
Ciclo For executa n vezes do inicio até ao fim inclusive (n é um valor conhecido)
O contador é incrementado ou decrementado de acordo com o Step
Opcional
O Step é opcional Quando omitido é considerado = 1
j=0For i = 0 To 5 Step 1 j = j + 1.Next i
Qual o valor do j no final do ciclo?
J = 6
Indiferente a sua utilização
Controlo de fluxo (For ...To ...Next)Exemplos:
j=0For i = 0 To 5 Step 2 j = j + 1.Next i
Qual o valor do j no final do ciclo?
J = 3
Public Function forExemplo(n As Integer)Dim j, i As Integer For i = 0 To n j = j + 2 Next i txtXpto.Text = "i =" & i & " j=" & j forExemplo = jEnd Function
SE n = 5 Qual o valor do j
e do i no final do ciclo?
I = 6 ; j = 12
Controlo de fluxo (For ...To ... Next)
For i = 1 To 10
For j = 1 To 10
For k = 1 To 10
L = L + 1
Next k
Next j
Next i
Exemplos:
Qual o valor do j no final do ciclo?
L = 1000
Controlo de fluxo (Do ... Loop)
Do [Código]Loop Until condição
Ciclo Do ... Loop Until executa 1 ou n vezes até que a condição seja verdadeira
Executa sempre pelo menos UMA vez
J = 0Do j = j + 1.Loop Until j = 5
Qual o valor do j no final do ciclo?
J = 5
Usa-se quando se desconhece o número de vezes que o ciclo é executado
Condição
Controlo de fluxo (Do ... Loop)
Do [Código]Loop While condição
Ciclo Do ... Loop while executa 1 ou n vezes enquanto a condição for verdadeira
Executa sempre pelo menos UMA vez
J = 0Do j = j + 1.Loop while j < 5
Qual o valor do j no final do ciclo?
J = 5
Usa-se quando se desconhece o número de vezes que o ciclo é executado
Condição
Controlo de fluxo (While...Wend)
While condição [Código]Wend
Ciclo while ... Wend executa 0 ou n vezes enquanto a condição for verdadeira
J = 0While j < 5 j = j + 1.Wend
Qual o valor do j no final do ciclo?
J = 5
Usa-se quando se desconhece o número de vezes que o ciclo é executado
Condição
Controlo de fluxo
J = 0While j < 5 j = j - 1.Wend
J = 0Do j = j - 1.Loop while j < 5
J = 0Do j = j + 1.Loop Until j = 0
Os ciclos While ... WendDo ... Loop While Do ... Loop Until
podem ser infinitos
O programa não termina
Ciclos infinitos
1º PassoNarrativa
Objectos necessários
Duas caixas de texto (textbox) uma para input outra para output
Um botão (commandoButton)
Alterar as propriedades name, capiton, enabled, locked e outras que considere conveniente
Posicione-os de forma lógica
Duas labels (valor de n, resultado do somatório)
Um form
Duas Frames (input, output)
Adicione um novo modulo ao projecto onde será desenvolvida a função “somatorio”
Verificar se o valor introduzido está dentro da gama pré definida
2º Passo
Se não é um valor aceitável
O programa não avança
É mostrada uma caixa de mensagens (MsgBox) com informação
Narrativa
Após o clik do utilizador
Ler o valor inscrito pelo utilizador
Aguada acção por parte do utilizador para continuar
Volta á posição inicial
3º Passo
4º Passo
Narrativa
Se é um valor aceitável
O programa avança
É invocada a função “somatorio”
Recolhido o resultado
Inscrito o resultado na caixa de texto de saída
NarrativaFunção “somatorio”
n
i i2
1
i é incrementado de 2 até n
4
2
1
i i
A cada incremento do i é feita a adição de ao valor anteriori
1
Ex: n = 4 4
1
3
1
2
1+ + =
12
13 1,083333
Quantos parâmetros e qual o seu tipo?
Que tipo de dados devolve?
Funcionamento