Buscar

PMI ESTRUTURA_DE_CONTROLE_1_2

Prévia do material em texto

PMI – ESTRUTURA DE CONTROLE
O QUE SÃO ESTRUTURAS DE CONTROLE? 
O VBA disponibiliza algumas estruturas que pode utilizar para controlar o decurso da execução da rotina. Estas estruturas dão ao programador um poder enorme para construir rotinas bastante complexas e flexíveis. 
Prof. Vanderlei R. da Silva - 2020
Estruturas de seleção  (if...then...else/elseif)
As instruções condicionais avaliam se uma condição é verdadeira ou falsa, e em seguida especificam uma ou mais instruções a serem executadas, dependendo do resultado dessa avaliação.
Prof. Vanderlei R. da Silva - 2020
Comandos de seleção Simples:
Sub Adição() 
Dim num1 As Integer, num2 As Integer
Dim soma As Integer
num1= InputBox("Informe o 1o. valor")
num2 = InputBox("Informe o 2o. valor")
soma = num1 + num2
if (soma > 10) then
MsgBox "Soma maior que dez"
end if 
  End Sub
Prof. Vanderlei R. da Silva - 2020
Seleção composta:
(If … Then … Else) — testa uma condição única e executa um entre dois blocos de instruções.
Sintaxe: 
	 If (condição) Then	 
	 	Instruções	
	 Else	
	 	Instruções	
	 End If	
Prof. Vanderlei R. da Silva - 2020
Exemplo:
Sub mediaProvas() 
Dim nt1 As single, nt2 As Single 
Dim media As Single 
nt1 = InputBox("Informe a 1a. nota") 
nt2 = InputBox("Informe a 2a. nota")
media = (nt1 + nt2 + nt3) / 2 
if (media >= 6.0) then if (media >= 6.0) then 
 MsgBox "Aprovado” MsgBox "Aprovado“ 
else end if 
 MsgBox "Reprovado“ If (media<6) then
end if MsgBox “Reprovado” 
End Sub end if
 End Sub 
Prof. Vanderlei R. da Silva - 2020
Seleção composta encadeada
(If … Then … ElseIf) — testa mais de uma condição e executa um dos vários blocos de instruções.
Sintaxe: 	 If condição Then	 
	 Instruções	
	 ElseIf condição Then	
	 Instruções	
	 . . .	
	 Else	
	 Instruções	
	 End If	
Prof. Vanderlei R. da Silva - 2020
Exemplo:
Sub sal_bonus() 
Dim cargo As Integer
Dim salario As Currency, bonus As Currency
salario = InputBox("Informe o salario: ")
cargo = InputBox("Informe o cargo: ")
If cargo = 1 Then
	bonus = salario * 0.15
ElseIf cargo = 2 Then
	bonus = salario * 0.10
ElseIf cargo = 3 Then
	bonus = salario * 0.08
Else
	bonus = 0
End If
	MsgBox "Cargo: " & cargo & " Bonus: " & bonus
End Sub 
Prof. Vanderlei R. da Silva - 2020
Operadores lógicos
Utilizados em expressões lógicas compostas ou para inverter o estado lógico de uma condição. Retornam o valor verdadeiro ou falso.
	
Prof. Vanderlei R. da Silva - 2020
	Expressão usual	Operação	Operador
	E	Conjunção	AND
	OU	Disjunção	OR
	Não	Negação	NOT
Tabela verdadeira para operador lógico AND
Condição A Condição B Condição A AND Condição B
Verdade Verdade Verdade
Verdade Falso Falso 
Falso Verdade Falso
Falso Falso Falso
Prof. Vanderlei R. da Silva - 2020
Exemplo de operador lógico AND:
Private Sub Constant_AND()
 Dim a As Integer
 a = 10
 Dim b As Integer
 b = 0 
 If a <> 0 And b <> 0 Then
 MsgBox ("Resultado é : Verdade")
 Else
 MsgBox ("Resultado é : Falso")
 End IfEnd Sub
Prof. Vanderlei R. da Silva - 2020
Tabela Verdadeira para o Operador lógico OR
Condição A Condição B Condição A OR Condição B
Verdade Verdade Verdade
Verdade Falso Verdade
Falso Verdade Verdade
Falso Falso Falso
Prof. Vanderlei R. da Silva - 2020
Exemplo de operador lógico OR
Private Sub Constant_OR()
 Dim a As Integer
 a = 10
 Dim b As Integer
 b = 0
 If a <> 0 Or b <> 0 Then
 MsgBox ("Resultado é : Verdade")
 Else
 MsgBox ("Resultado é : Falso")
 End If
End Sub
Prof. Vanderlei R. da Silva - 2020
Tabela Verdadeira para o Operador NOT
Condition1 NOT Condition1
Verdade Falso
Falso Verdade
Prof. Vanderlei R. da Silva - 2020
Exemplo de Operador lógico NOT:
Private Sub Constant_Not()
 Dim a As Integer
 a = 10
 Dim b As Integer
 b = 0
 If Not (a <> 0 or b <> 0) Then
 MsgBox ("Resultado é : Verdade")
 Else
 MsgBox ("Resultado é : Falso")
 End If
End Sub
Prof. Vanderlei R. da Silva - 2020
Cria um programa para a tabela verdadeira AND.
Usar:
0 para falso e 1 verdadeiro OU
V para verdadeiro e F para falso
Prof. Vanderlei R. da Silva - 2020
Seleção de múltipla escolha
Quando um conjunto de valores discretos precisa ser testado e ações diferentes são associadas a esses valores, estamos diante de uma seleção encadeada homogênea do tipo se-senão-se. Como essa situação é bastante frequente na construção de algoritmos que dependem de alternativas, utilizaremos uma estrutura específica para estes casos, a seleção de múltipla escolha.
Prof. Vanderlei R. da Silva - 2020
Seleção de múltipla escolha
A instrução Case pode avaliar valores separados por vírgula, sequências de valores - de até - e comparar com outros valores como aparece no exemplo a instrução Case Is.
Nota: Para melhor legibilidade, vale a pena usar a estrutura Select Case em lugar da If ... Then ... ElseIf quando a instrução ElseIf avaliar a mesma expressão várias vezes.
Prof. Vanderlei R. da Silva - 2020
Seleção de múltipla escolha
(Select Case) — testa uma condição única e executa um dos vários blocos de instruções.
Sintaxe: Select Case var(1)	 
	 Case expr(2): instruções	
	 . . .	
	 Case Else: instruções	
	 End Select	
(1)var = variável
(2)expr = expressão numérica ou de sequência de caracteres.
Prof. Vanderlei R. da Silva - 2020
Seleção de múltipla escolha
Exemplo:
O procedimento abaixo calcula e mostra o valor do bônus com base no cargo e salário do funcionário. (É o mesmo exemplo da seção anterior apenas este apresenta mais opções de cargo e salário.)
A instrução Case pode avaliar valores separados por vírgula, sequências de valores - de até - e comparar com outros valores como aparece no exemplo a instrução Case Is.
Nota: Para melhor legibilidade, vale a pena usar a estrutura Select Case em lugar da If ... Then ... ElseIf quando a instrução ElseIf avaliar a mesma expressão várias vezes.
Prof. Vanderlei R. da Silva - 2020
Seleção de múltipla escolha
Sub bonus()
Dim cargo As Integer
Dim salario As Currency, bonus As Currency
salario = InputBox("Informe o salario: ")
cargo = InputBox("Informe o cargo: ")
Select Case cargo
Case 1: bonus = salario * 0.15
Case 2: bonus = salario * 0.10
Case 3: bonus = salario * 0.08
Case 4, 5: bonus = salario * 0.05 
Case 6 To 8: bonus = salario * 0.01
Case Is < 12: bonus = salario * 0.005
Case Else: bonus = 0
Prof. Vanderlei R. da Silva - 2020
End Select
MsgBox ("Cargo: " & cargo & " Bonus: " & bonus)
 End Sub
Seleção de múltipla escolha
Prof. Vanderlei R. da Silva - 2020
Sub Tempo_Fila_Banco()
Dim NFila As Integer
NFila = Inputbox("Número de pessoas na sua frente na fila(1 a 10)") 
Select Case NFila Case 1 
MsgBox "Você é o proximo!" 
Case 2 To 5
MsgBox "Será atendido em breve" 
Case 6, 7, 8 
MsgBox "Tempo de espera moderado“
Case Else MsgBox "Não receberá atendimento hoje" 
End Select End Sub

Outros materiais