passagem de parâmetros por valor txtinout1.text = num1 txtinout2.text = num2 txtout.text = num3 end...

22
Passagem de parâmetros por valor txtInOut1.Text = num1 txtInOut2.Text = num2 txtOut.Text = num3 nd Sub e Sub cmdVal_Click() num1 As Integer, num2 As Integer, num3 As Integer 1 = Val(txtInOut1.Text) 2 = Val(txtInOut2.Text) 3 = passagemPorValor(num1, num2)

Upload: internet

Post on 17-Apr-2015

109 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Passagem de parâmetros por valor txtInOut1.Text = num1 txtInOut2.Text = num2 txtOut.Text = num3 End Sub Private Sub cmdVal_Click() Dim num1 As Integer,

Passagem de parâmetros por valor

txtInOut1.Text = num1 txtInOut2.Text = num2 txtOut.Text = num3End Sub

Private Sub cmdVal_Click() Dim num1 As Integer, num2 As Integer, num3 As Integer num1 = Val(txtInOut1.Text) num2 = Val(txtInOut2.Text) num3 = passagemPorValor(num1, num2)

Page 2: Passagem de parâmetros por valor txtInOut1.Text = num1 txtInOut2.Text = num2 txtOut.Text = num3 End Sub Private Sub cmdVal_Click() Dim num1 As Integer,

Passagem de parâmetros por valor

Public Function passagemPorValor(ByVal a As Integer, ByVal b As Integer) Dim c As Integer passagemPorValor = a * b c = a a = b b = cEnd Function

Page 3: Passagem de parâmetros por valor txtInOut1.Text = num1 txtInOut2.Text = num2 txtOut.Text = num3 End Sub Private Sub cmdVal_Click() Dim num1 As Integer,

Passagem de parâmetros por ReferênciaPrivate Sub cmdRef_Click()

Dim num1 As Integer, num2 As Integer, num3 As Integer

num1 = Val(txtInOut1.Text)

num2 = Val(txtInOut2.Text)

num3 = passagemPorReferencia(num1, num2)

txtInOut1.Text = num1

txtInOut2.Text = num2

txtOut.Text = num3

End Sub

Page 4: Passagem de parâmetros por valor txtInOut1.Text = num1 txtInOut2.Text = num2 txtOut.Text = num3 End Sub Private Sub cmdVal_Click() Dim num1 As Integer,

Public Function passagemPorReferencia(ByRef a As Integer, ByRef b As Integer) Dim c As Integer passagemPorReferencia = a * b c = a a = b b = cEnd Function

Passagem de parâmetros por Referência

Page 5: Passagem de parâmetros por valor txtInOut1.Text = num1 txtInOut2.Text = num2 txtOut.Text = num3 End Sub Private Sub cmdVal_Click() Dim num1 As Integer,

Passagem de parâmetrosConclusão

Quando se usa passagem de parâmetros por referência as alterações feitas nos parâmetros

repercutem-se no exterior da função ou procedimento

O VB Usa por defeito a passagem de parâmetros por referência

Page 6: Passagem de parâmetros por valor txtInOut1.Text = num1 txtInOut2.Text = num2 txtOut.Text = num3 End Sub Private Sub cmdVal_Click() Dim num1 As Integer,

Resolução da prática 5

Objectos necessários

Duas caixas de texto (textbox)

Três botões (commandoButton)

Posicione-os de forma lógica

Duas labels (valor de n, resultado)

Um form

Duas Frames (input, output)

Page 7: Passagem de parâmetros por valor txtInOut1.Text = num1 txtInOut2.Text = num2 txtOut.Text = num3 End Sub Private Sub cmdVal_Click() Dim num1 As Integer,

Propriedades a alterar

Caption Input

Frame1

Text

Frame2

name lblResultadoLabel2

Caption Output

Textbox1

Caption N

Label1

Caption Resultado

Form1

Name frmOperacoes

Caption Operações

MaxButton False

StartUpPosition 2 – Center Screen

Textbox2

Locked True

Name txtN

Text

Name txtResultado

Page 8: Passagem de parâmetros por valor txtInOut1.Text = num1 txtInOut2.Text = num2 txtOut.Text = num3 End Sub Private Sub cmdVal_Click() Dim num1 As Integer,

Propriedades a alterarCommandButton1

Name cmdAdicao

Caption Soma

CommandButton2

Name cmdProduto

Caption Produto

CommandButton3

Name cmdSair

Caption Sair

Page 9: Passagem de parâmetros por valor txtInOut1.Text = num1 txtInOut2.Text = num2 txtOut.Text = num3 End Sub Private Sub cmdVal_Click() Dim num1 As Integer,

Funções necessárias

somatorio(n As Integer) As Double

No Novo modulo:

produto(n As Integer) As Double

validarEntrada(n As Integer, minimoAdmissivel As Integer) As Boolean

No form:

cmdAdicao_Click()

cmdProduto_Click()

cmdSair_Click()

txtN_Change()

Page 10: Passagem de parâmetros por valor txtInOut1.Text = num1 txtInOut2.Text = num2 txtOut.Text = num3 End Sub Private Sub cmdVal_Click() Dim num1 As Integer,

Sub do Form

End Sub

'objectivo: Gere as acções necessárias á execução do produtoPrivate Sub cmdProduto_Click()

Dim limiteSup As Integer, resultado As Double

limiteSup = Val(txtN.Text)

If Module1.validarEntrada(limiteSup, 1) Then

resultado = produto(limiteSup)

txtN.Text = limiteSup

txtResultado.Text = resultado

lblResultado.Caption = "Produto"

End If

Page 11: Passagem de parâmetros por valor txtInOut1.Text = num1 txtInOut2.Text = num2 txtOut.Text = num3 End Sub Private Sub cmdVal_Click() Dim num1 As Integer,

Sub do Form'objectivo: Gere as acções necessárias á execução do somatório

Private Sub cmdAdicao_Click()

Dim limiteSup As Integer, resultado As Double

limiteSup = Val(txtN.Text)

If Module1.validarEntrada(limiteSup, 2) Then

resultado = somatorio(limiteSup)

txtN.Text = limiteSup

txtResultado.Text = resultado

lblResultado.Caption = "Somatório"End If

End Sub

Page 12: Passagem de parâmetros por valor txtInOut1.Text = num1 txtInOut2.Text = num2 txtOut.Text = num3 End Sub Private Sub cmdVal_Click() Dim num1 As Integer,

Form

Page 13: Passagem de parâmetros por valor txtInOut1.Text = num1 txtInOut2.Text = num2 txtOut.Text = num3 End Sub Private Sub cmdVal_Click() Dim num1 As Integer,

Sub do Form

'objectivo: termina o programaPrivate Sub cmdSair_Click() EndEnd Sub

'Objecivo: Sempre que haja alterações na caixa de texto "txtN"' o Caption e o conteúdo da caixa "txtResultado" são alterados

Private Sub txtN_Change() lblResultado.Caption = "Resultado" txtResultado.Text = "" 'Apaga o conteúdo da caixa de textoEnd Sub

Page 14: Passagem de parâmetros por valor txtInOut1.Text = num1 txtInOut2.Text = num2 txtOut.Text = num3 End Sub Private Sub cmdVal_Click() Dim num1 As Integer,

Funções do Modulo

End Function

'objectivo:Calcula o somatório 1/i de 2 a nparâmetro entrada/saída : n número de vezes 'tipo intergerparâmetro saída : 'tipo double

Public Function somatorio(n As Integer) As Double

Dim i As Integer, resultado As Double

resultado = 0

For i = 2 To n

resultado = resultado + 1 / i

Next i

somatorio = resultado

Page 15: Passagem de parâmetros por valor txtInOut1.Text = num1 txtInOut2.Text = num2 txtOut.Text = num3 End Sub Private Sub cmdVal_Click() Dim num1 As Integer,

Funções do Modulo

End Function

'objectivo:Calcula o Produto 1/i de 2 a nparâmetro entrada/saída : n número de vezes tipo intergerparâmetro saída tipo double

Public Function produto(n As Integer) As DoubleDim i As Integer, resultado As Double

If n > 1 Then

resultado = 1

For i = 2 To nresultado = resultado * 1 / i

Next i

produto = resultado

End If

Page 16: Passagem de parâmetros por valor txtInOut1.Text = num1 txtInOut2.Text = num2 txtOut.Text = num3 End Sub Private Sub cmdVal_Click() Dim num1 As Integer,

Funções do Modulo'objectivo:verificar se N está dentro dos limites aceitáveis‘ parâmetro entrada/saída : n -> limite superior requerido pelo utilizador 'tipo interger‘parâmetro entrada/saida : minimoAdmissivel -> valor mínimo aceitável para n 'tipo interger'parâmetro saída : 'tipo boolean

Page 17: Passagem de parâmetros por valor txtInOut1.Text = num1 txtInOut2.Text = num2 txtOut.Text = num3 End Sub Private Sub cmdVal_Click() Dim num1 As Integer,

Funções do ModuloPublic Function validarEntrada(n As Integer, minAdmi As Integer) As Boolean

Dim cx As Integer

If n < minAdmi Thencx = MsgBox(" n = " & n & " não é válido " & Chr(13) & _ "Deseja substituir o valor de n pelo mínimo admissível?" & Chr(13) & _ "n = " & minAdmi, vbYesNo, "Erro")

If cx = vbYes Thenn = minAdmivalidarEntrada = True

Else

End Function

validarEntrada = FalseEnd If

ElsevalidarEntrada = True

End If

Page 18: Passagem de parâmetros por valor txtInOut1.Text = num1 txtInOut2.Text = num2 txtOut.Text = num3 End Sub Private Sub cmdVal_Click() Dim num1 As Integer,

Caixa de mensagem

Page 19: Passagem de parâmetros por valor txtInOut1.Text = num1 txtInOut2.Text = num2 txtOut.Text = num3 End Sub Private Sub cmdVal_Click() Dim num1 As Integer,

Funções com ciclos

Public Function primos(numero As Long) As Boolean

Dim incremento As Long

incremento = 2While (numero Mod incremento And numero <> 1)

incremento = incremento + 1Wend

If incremento = numero Or numero = 1 Then

primos = True

Else

primos = FalseEnd If

End Function

Page 20: Passagem de parâmetros por valor txtInOut1.Text = num1 txtInOut2.Text = num2 txtOut.Text = num3 End Sub Private Sub cmdVal_Click() Dim num1 As Integer,

Funções com ciclos

End Function

Public Function primos1(numero As Long) As Boolean

Dim incremento As Long

incremento = 1

Do

incremento = incremento + 1Loop While (numero Mod incremento And numero <> 1)

If incremento = numero Or numero = 1 Then

primos1 = True

primos1 = False

Else

End If

Page 21: Passagem de parâmetros por valor txtInOut1.Text = num1 txtInOut2.Text = num2 txtOut.Text = num3 End Sub Private Sub cmdVal_Click() Dim num1 As Integer,

Funções com ciclosPublic Function primos2(numero As Long) As Boolean

Dim incremento As Long, bool As Boolean

incremento = 1

Doincremento = incremento + 1bool = numero Mod incremento

Loop Until (Not bool Or numero = 1)

If incremento = numero Or numero = 1 Thenprimos2 = True

Elseprimos2 = False

End If

End Function

Page 22: Passagem de parâmetros por valor txtInOut1.Text = num1 txtInOut2.Text = num2 txtOut.Text = num3 End Sub Private Sub cmdVal_Click() Dim num1 As Integer,

Funções com ciclos

Public Sub pesquisaPrimos(inicio As Long, fim As Long)

Dim i As Long

For i = inicio To fim

If primos(i) Then cboPrimos.AddItem i

Next i

End SubComboBox

Adiciona um Item

Item a ser adicionado

Função que

verifica se I é primo