Você está na página 1de 38

Algoritmos e VBA

Parte II
Sumário

Estruturas de Controle
 Estruturas de seleção
– Simples, composta e de múltipla
escolha
 Estruturas de repetição
– com teste no início, no final e com
variável de controle

Informática Aplicada à Engenhari 2


a
Estruturas de controle

As estruturas de controle determinam o curso de ações de


um algoritmo. A estrutura sequencial, modo primitivo de
programação, fora estudada na Parte I das lições de
algoritmos.
Nesta etapa – Parte II – serão analisadas as estruturas
seletiva e repetitiva.

Informática Aplicada à Engenhari 3


a
Decisão ou seleção
Decisão ou seleção é a habilidade que o sistema possui para
escolher uma ação de um conjunto de alternativas
específicas. Comandos de seleção:

Portugol
se...então / se...então...senão / escolha...de...senão
VBA
if...then / if...then...else/elseif / select...case...else

Informática Aplicada à Engenhari 4


a
Seleção simples

Portugol

F
Condição
se (<condição>) então
V <comandos>
fim se
Comandos

Informática Aplicada à Engenhari 5


a
Seleção simples

VBA

F
Condição if (<condição>) then
         <comandos>
V end if
Comandos A sintaxe de linha única não usa end if:

if (<condição>) then <comandos>

Informática Aplicada à Engenhari 6


a
Seleção simples

Exemplo:
 
Ler dois valores numéricos, efetuar a soma e
apresentar a mensagem "Soma maior que dez"
caso o resultado da adição seja maior que 10.

Informática Aplicada à Engenhari 7


a
Seleção simples
Portugol
programa Adicão
num1, num2, soma : inteiro
escreva('Informe os valores: ')
leia(num1,num2)
soma  num1 + num2
se (soma > 10) então
escreva('Soma maior que dez')
fim se
fim programa

Informática Aplicada à Engenhari 8


a
Seleção simples
VBA
Sub Adicã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
Informática Aplicada à Engenhari 9
End Sub a
Seleção composta
Portugol

F V se (<condição>) então
Condição
<comandos>
{bloco verdade}
senão
Comandos Comandos
<comandos>
{bloco falsidade}
fim se

Informática Aplicada à Engenhari 10


a
Seleção composta
VBA

F V if (<condição>) then
Condição
<comandos>
{bloco verdade}
else
Comandos Comandos
<comandos>
{bloco falsidade}
end if

Informática Aplicada à Engenhari 11


a
Seleção composta

Exemplo:
Efetuar o cálculo da média aritmética das notas
de três provas e avaliar a situação quanto à
aprovação, como segue:

Informática Aplicada à Engenhari 12


a
Seleção composta
Portugol
programa MediaProvas
nt1, nt2, nt3, media : real
escreva('Informe a primeira nota: ')
leia(nt1)
escreva('Informe a segunda nota: ')
leia(nt2)
escreva('Informe a terceira nota: ')
leia(nt3)
media  (nt1 + nt2 + nt3) / 3
se (media >= 6.0) então
escreva('Aprovado')
senão
escreva('Reprovado')
fim se
fim programa
Informática Aplicada à Engenhari 13
a
Seleção composta
VBA
Sub MediaProvas()
Dim nt1 As single, nt2 As Single
Dim nt3 As Single, media As Single
nt1 = InputBox(“Informe a 1a. nota”)
nt2 = InpuBox(“Informe a 2a. nota”)
nt3 = InputBox(“Informe a 3a. nota”)
media = (nt1 + nt2 + nt3) / 3
if (media >= 6.0) then
MsgBox“Aprovado”
else
MsgBox“Reprovado”
end if
End Sub
Informática Aplicada à Engenhari 14
a
Seleção de múltipla escolha
Portugol

Expressão escolha <expressão> de


caso <expr1> : <comando 1>
caso <expr2> : <comando 2>
caso <expr3> : <comando 3>
... ...
C1 C2 C3
senão
<comando n>
fim escolha

Informática Aplicada à Engenhari 15


a
Seleção de múltipla escolha
VBA

Expressão Select Case <var>


case <expr1> : <comando 1>
case <expr2> : <comando 2>
case <expr3>: <comando 3>
...
C1 C2 C3 ... case else
<comando n>
End Select

Informática Aplicada à Engenhari 16


a
Seleção de múltipla escolha

Exemplo:
Elaborar um algoritmo para simular uma
calculadora eletrônica, efetuando uma das
operações básicas por vez a critério do usuário.

Informática Aplicada à Engenhari 17


a
Seleção de múltipla escolha
Portugol
programa Calculadora
valor1, valor2 : real
oper : caractere
escreva('Calculadora eletrônica')
escreva('Primeiro valor: ')
leia(valor1)
escreva('Operador (+,-,*,/): ')
leia(oper)
escreva('Segundo valor: ')
leia(valor2)
escolha oper
caso '+' : escreva('Soma = ', (valor1 + valor2))
caso '-' : escreva('Subtração = ', (valor1 - valor2))
caso '*', 'x' : escreva('Multiplicação = ',(valor1 * valor2))
caso '/', ':' : escreva('Divisão = ', (valor1 / valor2))
senão
escreva('Operação inválida')
fim escolha
fim Informática Aplicada à Engenhari 18
a
Seleção de múltipla escolha
VBA
Sub Calculadora()
Dim valor1 As Single, valor2 As Single
Dim oper As String
valor1 = InputBox(“Primeiro valor”, “Calculadora eletrônica”)
oper = InputBox(“Operador (+,-,*,/)”, “Calculadora eletrônica”)
valor2 = InputBox(“Segundo valor”, “Calculadora eletrônica”)
Select Case oper
Case "+": MsgBox “Soma = ” & valor1 + valor2
Case "-": MsgBox “Subtração = ” & valor1 - valor2
Case "*", "x": MsgBox “Multiplicação = ” & valor1 * valor2
Case "/", ":": MsgBox “Divisão = ” & valor1 / valor2
Case Else
MsgBox "Operação inválida"
End Select
End Sub

Informática Aplicada à Engenhari 19


a
Comandos de seleção do VBA

 Exite uma variante da construção if...then...else


que é a utilização de elseif no lugar da cláusula
else com a seguinte sintaxe: if...then...elseif.
 Select Case pode ser mais útil na avaliação de
uma expressão única com diversas ações
possíveis.

Informática Aplicada à Engenhari 20


a
Estruturas de repetição
A repetição é uma poderosa habilidade, ao lado da decisão,
que o sistema tem para repetir um conjunto de ações
específicas. A linguagem algorítmica possui três formas de
repetição:
 enquanto...faça – quantidade indefinida de vezes;
 repita...até que – quantidade indefinida de vezes,
executa pelo menos uma vez;
 para...faça – quantidade definida de vezes.
(A opção enquanto serve para todas as situações, as outras
duas em certas situações podem ter melhor aplicação).

Informática Aplicada à Engenhari 21


a
Estruturas de repetição

Correspondem no VBA aos seguintes comandos:

 Do While...Loop – quantidade indefinida de vezes;


 Do...Loop Until – quantidade indefinida de vezes,
executa pelo menos uma vez;
 For...Next – quantidade definida de vezes.

Informática Aplicada à Engenhari 22


a
Repetição com teste no início

Portugol

F
Condição enquanto (<condição>) faça
<comandos>
V {condição verdadeira}
Comandos fim enquanto

Informática Aplicada à Engenhari 23


a
Repetição com teste no início

VBA

F
Condição Do While (<condição>)
<comandos>
V {condição verdadeira}
Comandos Loop

Informática Aplicada à Engenhari 24


a
Repetição com teste no início

Exemplo:
Multiplicar dois valores fornecidos pelo usuário
e apresentar o resultado, repetindo esse
processamento por tantas vezes quantas for a
necessidade do usuário.

Informática Aplicada à Engenhari 25


a
Repetição com teste no início
Portugol
Programa LaçoProduto
valor1, valor2, produto : inteiro
resp : caractere
resp  'sim'
enquanto (resp = 'sim') faça
escreva('Primeiro número: ')
leia(valor1)
escreva('Segundo número: ')
leia(valor2)
produto  valor1 * valor2
escreva(‘Resultado: ', produto)
escreva('Deseja continuar? (sim/não): ')
leia(resp)
fim enquanto
fim programa
Informática Aplicada à Engenhari 26
a
Repetição com teste no início
VBA
Sub LaçoProduto()
Dim valor1 As Integer, valor2 As Integer
Dim produto As Integer, resp As Integer
resp = vbYes
Do while (resp = vbYes)
valor1 = InputBox(“1o. número”)
valor2 = InputBox(“2o. número”)
produto = valor1 * valor2
MsgBox “Resultado: ” & produto
resp = MsgBox(“Deseja continuar?”, vbYesNo)
Loop
End Sub

Informática Aplicada à Engenhari 27


a
Repetição com teste no final
Portugol

Comandos
repita
<comandos>
até que (<condição>)
F
Condição

Informática Aplicada à Engenhari 28


a
Repetição com teste no final
VBA

Comandos
Do
<comandos>
Loop Until (<condição>)
F
Condição

Informática Aplicada à Engenhari 29


a
Repetição com teste no final

Exemplo:
 
Calcular e mostrar o fatorial de um
número fornecido pelo usuário.

Informática Aplicada à Engenhari 30


a
Repetição com teste no final
Portugol
programa CalcFatorial
num, fatorial, contador : inteiro
fatorial  1; contador  1
escreva('Informe um número: ')
leia(num)
repita
fatorial  fatorial * contador
contador  contador + 1
até que (contador > num)
escreva('Fatorial de ', num, ': ', fatorial)
fim programa.

Informática Aplicada à Engenhari 31


a
Repetição com teste no final
VBA
Sub CalcFatorial()
Dim num As Integer, fatorial As Integer Dim
contador As integer
fatorial = 1: contador = 1
num = InputBox(“Informe um número”)
Do
fatorial = fatorial * contador
contador = contador + 1
Loop Until (contador > num)
MsgBox “Fatorial de ” & num & “: ” & fatorial
End Sub

Informática Aplicada à Engenhari 32


a
Repetição com variável de controle

Portugol
Var, início,
fim,
incremento para <var> de <inicio> até <fim>
passo <incremento> faça
<comandos>
fim para
Comandos

Informática Aplicada à Engenhari 33


a
Repetição com variável de controle

VBA

Var, início,
fim,
incremento For <var> = <inicio> to <fim>
step <incremento>
<comandos>
Next <var>
Comandos

Informática Aplicada à Engenhari 34


a
Repetição com variável de controle

Exemplo:
Efetuar a somatória de dez números inteiros
quaisquer informados pelo usuário e escrever
seu resultado.

Informática Aplicada à Engenhari 35


a
Repetição com variável de controle
Portugol
programa Somatoria
num, soma, i : inteiro
soma  0
para i de 1 até 10 faça
escreva('Informe o ', i, 'o. numero: ')
leia(num)
soma  soma + num
fim para
escreva('Somatoria: ', soma)
fim programa

Informática Aplicada à Engenhari 36


a
Repetição com variável de controle
VBA
Sub Somatoria()
Dim num As Integer, soma As Integer
Dim i As Integer
soma = 0
for i = 1 to 10
num = InputBox("Informe o " & i & "o. numero”)
soma = soma + num
Next i
MsgBox "Somatoria " & soma
End Sub

Informática Aplicada à Engenhari 37


a
Estruturas de repetição

A linguagem VBA oferece construções alternativas de


repetìção:
 Do...Loop While – executa o loop enquanto a
condição for True;
 Do Until...Loop – executa o loop enquanto a
condição for False;
 For each...next – repete um grupo de instruções
para cada elemento de uma
coleção.

Informática Aplicada à Engenhari 38


a

Você também pode gostar