
MÓDULO 2 - Estruturas de decisão
Estruturas de decisão
Os programas do VBasic podem testar condições e depois, dependendo do resultado do teste, executar diferentes operações.
As estruturas de decisão que o VB suporta são as seguintes:
If...Then
If...Then...Else
If...Then...ElseIf
Select Case
A instrução de decisão If Then Else vai decidir se o programa executa uma instrução.
If «condição» Then
instrução A
Else
instrução B
End If
Significado:
Se (If) a condição for Verdadeira, Então (Then)
o programa executa a instrução A.
Senão (Else)
o programa executa a instrução B.
Exemplo 1:
Se a quantidade for maior que 1, então o programa escreve na label a frase "Tem desconto".
quantidade = TextBox1.Text
If quantidade > 1 Then
Label2.Text = "Tem desconto"
End If
Exemplo 2:
Se a idade for maior ou igual a 18, Então o programa escreve na label a frase “Maior de Idade”;
Senão o programa escreve “Menor de Idade”.
idade = Val(TextBox1.Text)
If idade >= 18 Then
Label3.Text = "Maior de idade"
Else
Label3.Text = "Menor de idade“
End If
Instruções Encaixadas
As instruções de decisão podem ser “encaixadas” dentro de outras instruções. Exemplo:
If nota > 20 Then
Label1.Text = “Nota inválida”
Else
If nota < 10 Then
Label1.Text = “Negativa”
Else
Label1.Text = “Positiva”
End If
End IF
A instrução If... Then... ElseIf
A instrução If ..Then …ElseIF (Se ... Então... Senão Se) permite decidir qual a instrução a executar perante várias hipóteses.
Sintaxe:
If condição 1 Then
instrução A
ElseIf condição 2 Then
instrução B
ElseIf condição 3 Then
instrução C
...
Else
instrução X
End If
Exemplo:
Escrever o dia da semana correspondente ao número indicado.
dia = Val(TextBox1.Text)
If dia = 1 Then
Label2.Text = "Domingo"
ElseIf dia = 2 Then
Label2.Text = "Segunda-Feira"
ElseIf dia = 3 Then
Label2.Text = "Terça-Feira"
ElseIf dia = 4 Then
Label2.Text = "Quarta-Feira"
ElseIf dia = 5 Then
Label2.Text = "Quinta-Feira"
ElseIf dia = 6 Then
Label2.Text = "Sexta-Feira"
ElseIf dia = 7 Then
Label2.Text = "Sábado"
Else
Label2.Text = "Dia Inválido!"
End If
A instrução Select Case
A instrução de decisão Select Case permite escolher qual a instrução a executar.
Sintaxe:
Select Case « variável »
Case a
«Instrução A»
Case b
«Instrução B»
Case c
«Instrução C»
…
Case Else
«Instrução D»
End Select
Exemplo:
Escrever o dia da semana correspondente ao número indicado.
dia = Val(TextBox1.Text)
Select Case dia
Case 1
Label2.Text = "Domingo"
Case 2
Label2.Text = "Segunda-Feira"
Case 3
Label2.Text = "Terça-Feira"
Case 4
Label2.Text = "Quarta-Feira"
Case 5
Label2.Text = "Quinta-Feira"
Case 6
Label2.Text = "Sexta-Feira"
Case 7
Label2.Text = "Sábado"
Case Else
Label2.Text = "Dia Inválido!"
End Select
EXERCÍCIOS PRÁTICOS





PROGRAMA 01


PROGRAMA 02

PROGRAMA 03

PROGRAMA 04

PROGRAMA 05

PROGRAMA 06

PROGRAMA 07

PROGRAMA 08

PROGRAMA 09

PROGRAMA 10
Dica:
A função MOD devolve o resto da divisão inteira.
Dividindo um qualquer número por 2 poderá dar resto 1 ou 0. Caso seja ímpar ou par respectivamente.
resto = numero MOD 2

PROGRAMA 11

PROGRAMA 12

PROGRAMA 13
Objecto ScrollBar()
Uma ScrollBar (barra de deslocamento) permite:
•Arrastar o conteúdo de objectos (automático).
•Seleccionar valores (através de código).
Há 2 tipos de barras de deslocamento:
HScrollBar - Barra Horizontal
VScrollBar - Barra Vertical
Propriedade Descrição
Maximum Maior valor do intervalo
Minimum Menor valor do intervalo
Value O valor que a caixa da barra representa
LargeChange O total a alterar de cada vez que a barra é actualizada (incremento)
Exemplo:
Código da Barra horizontal
Dim nota As Integer
Private Sub HScrollBar1_Scroll(...
nota = HScrollBar1.Value
Label2.Text = nota
End Sub
Exemplo:
Código da Barra vertical
nota = VScrollBar1.Value
Label2.Text = nota
Select Case nota
Case 0, 1, 2, 3, 4
Label4.Text = "Mau"
Case 5, 6, 7, 8, 9
Label4.Text = "Insuf"
Case 10, 11, 12, 13, 14
Label4.Text = "Suf"
Case 15, 16, 17
Label4.Text = "Bom"
Case 18, 19, 20
Label4.Text = "M Bom"
End Select
EXERCÍCIOS PRÁTICOS




PROGRAMA 14

PROGRAMA 15

PROGRAMA 16

PROGRAMA 17

PROGRAMA 18

Objecto NumericUpDown()
Permite introduzir valores através do rato (com clique nas setas) ou do teclado:
Propriedade Descrição
Maximum Maior valor do intervalo
Minimum Menor valor do intervalo
Value O valor que a caixa numérica contém
DecimalPlaces Nº de casas decimais
Increment Valor a incrementar/decrementar a cada clique nas setas
Exemplo:
Dim nota As Double
Private Sub Button1_Click(
nota = NumericUpDown1.Value
If nota >= 9.5 Then
Label1.Text = "positiva"
Else
Label1.Text = "Negativa"
End If
End Sub
EXERCÍCIOS PRÁTICOS


PROGRAMA 19

PROGRAMA 20

Variáveis acumuladoras
As variáveis acumuladoras são variáveis que aumentam ou diminuem o seu valor, de uma forma constante, ou não.
BUTTON_1
conta = conta + 1
label2.text = conta
BUTTON_2
conta = conta - 1
label2.text = conta
EXERCÍCIOS PRÁTICOS

PROGRAMA 21

PROGRAMA 22

PROGRAMA 23

PROGRAMA 24

PROGRAMA 25

Objecto RadioButton e CheckBox
Propriedade que permite verificar se está marcado ou não marcado é:
Para o RadioButton:
RadioButton1.Checked = True
RadioButton1.Checked = False
Para o CheckBox:
CheckBox1.Checked = True
CheckBox1.Checked = False
EXEMPLO:


EXERCÍCIOS PRÁTICOS
PROGRAMA 26

PROGRAMA 27

PROGRAMA 28

GERAÇÃO DE NÚMEROS ALEATÓRIOS
RANDOMIZE() - este comando deverá ser sempre colocado antes do comando RND().
Este comando garante que não se repita a mesma sequência de números aleatórios.
RND() - este comando permite gerar números aleatórios entre 0 e 1 (sempre números decimais)
Dim numero As Integer
' Garante que não se repita a mesma série de números aleatórios
Randomize()
' INT permite que o número seja inteiro
' RND() * 10 ==> permite que gere um número aleatório, no máximo, até 10
' (RND() * 10) +1 ==> permite que gere um número aleatório entre 1 e 10
numero = INT ( RND() * 10 ) + 1
EXERCÍCIOS PRÁTICOS
PROGRAMA 29

PROGRAMA 30

PROGRAMA 31

PROGRAMA 32

PROGRAMA 33

REVISÕES
