Universidade do Sul de Santa Catarina
UNISUL – 2014 / 1
Engenharia Elétrica
Algoritmos
Prof. Paulo Villa
Aula 3
Slides adaptados do
Prof. Frederico Ferlini
Introdução
2
• Algoritmo da aula passada:
 Escrever um algoritmo que lê 3 valores reais a, b e c e
calcula as médias:
•
•
•
•
Aritmética: ma = (a+b+c)/3
Harmônica: mh = 3/(1/a + 1/b + 1/c)
Geométrica: mg = (a*b*c)^(1/3)
Ponderada: mp = (1*a + 2*b + 3*c)/(1 + 2 + 3)
Prof. Paulo Villa
 Escrever um algoritmo que calcula a media de consumo
de combustível de um veiculo
• media = km_rodado/litros_consumidos
Introdução
3
• Algoritmos Sequenciais
“Um algoritmo sequencial é aquele cuja execução é
efetuada na ordem em que as instruções ocorrem,
sem omissão de passos. A passagem de um passo a
outro é natural e automática e cada passo é
executado uma única vez”
Prof. Paulo Villa
Algoritmo Com Seleção
4
• Algoritmos Condicionais
“Um algoritmo em que se tem a execução de
determinados passos subordinada à veracidade de
uma condição é denominada de algoritmo de
seleção”
Prof. Paulo Villa
Algoritmo Com Seleção
5
Se <condição> entao
<instrução>
Fimse*
Se <condição> entao
<instrução_1>
Senao
<instrução_2>
Prof. Paulo Villa
Fimse*
*Fimse
serve para distinguir as instruções do fluxo normal do algoritmo
daquelas que dependem da condição para serem executadas ou não.
Algoritmo Com Seleção
Instrução: é qualquer uma das ações já vistas:
Exemplos:
Ler a
b ← 𝑎2 − 1
x1 ←
𝑎+𝑏+𝑐
3
Escrever x1
Prof. Paulo Villa
Condição: é uma expressão lógica
6
Expressão Lógica
7
• Álgebra Booleana: baseada em preposições
 As preposições são assertivas que podem estar corretas
(verdadeiras) ou incorretas (falsas).
 A álgebra booleana assume apenas dois estados: não
existem outros estados possíveis além de “verdadeiro” e do
“falso”
 Exemplo:
Prof. Paulo Villa
• Considerando somente números inteiros e positivos:
1. O resultado da multiplicação de um número par por X é par
2. O resultado da multiplicação de um número ímpar por X é ímpar
 A afirmação 1 é verdadeira, enquanto, a preposição 2 é falsa
Expressão Lógica
• A afirmação 2 pode se tornar verdadeira se
colocarmos uma condição
 C1: O resultado da multiplicação de um número ímpar
por X é ímpar se X for ímpar
 Para essa asserção ser verdadeira então:
• A1 – O número tem que ser ímpar
• A2 – X tem que ser ímpar
Prof. Paulo Villa
A condição C1 é verdadeira se
A1 E A2 forem verdadeiras
8
Expressão Lógica
• Outro exemplo
 Geralmente, em cadastros de pessoas, só há duas
opções de sexo possíveis: masculino ou feminino
 No caso de verificarmos se todos os cadastros estão
corretos devemos considerar as duas afirmações
• A3 – A pessoa X é do sexo masculino
• A4 – A pessoa X é do sexo feminino
Prof. Paulo Villa
 C2: O cadastro de uma pessoa está correto se ela tem
um sexo válido
 Para condição C2 acima ser verdadeira:
• A3 OU A4 tem que ser verdadeira
9
Expressão Lógica
10
• Outro exemplo
 Quando o cadastro está incorreto?
 No caso de verificarmos se todos os cadastros estão
corretos devemos considerar as duas afirmações
• A3 – A pessoa X é do sexo masculino
• A4 – A pessoa X é do sexo feminino
 C3: O cadastro de uma pessoa está incorreto se ela tem
um sexo inválido
Prof. Paulo Villa
 Para condição C3 acima ser verdadeira:
• (NÃO A3 ) E (NÃO A4)
11
Operadores Lógicos
Tabela Verdade (dos operadores lógicos NÃO, E e OU)
A
B
NÃO A
NÃO B
AEB
A OU B
F
F
V
V
F
F
F
V
V
F
F
V
V
F
F
V
F
V
V
V
F
F
V
V
Prof. Paulo Villa
Sendo: A e B operandos lógicos:
NÃO (~, ¬, NOT) – operação unária de negação
E (^, ., AND) – operação de produto lógico
OU (v, +, OR) – operação de soma lógica)
12
Operadores de Relação
Outras condições que resultam em valor lógico:
Relação
SÍMBOLO
Resultado
Maior
Menor
Maior ou igual
A>B
A<B
A≥B
V/F
V/F
V/F
Menor ou igual
diferente
A≤B
A≠B
V/F
V /F
Prof. Paulo Villa
13
Exemplo
• Algoritmo que determina qual quadrante de um
plano se encontra um ponto dado as suas
coordenadas X e Y, ou então, se está sobre um dos
eixos cartesianos ou na origem:
Prof. Paulo Villa
X
=0
Y
=0
Mensagem de Saída
Ponto na Origem
=0
≠0
>0
≠0
=0
>0
Ponto Sobre o Eixo Y
Ponto Sobre o Eixo X
Ponto no Quadrante 1
<0
>0
Ponto no Quadrante 2
<0
<0
Ponto no Quadrante 3
>0
<0
Ponto no Quadrante 4
14
Solução com condições Concatenada
Prof. Paulo Villa
algoritmo "PosicaoPonto"
var
x, y : inteiro
inicio
leia(x)
leia(y)
se ((x = 0) E (y = 0)) entao
escreval("Ponto na origem")
fimse
se ((x = 0) E (y <> 0)) entao
escreval("Ponto sobre o eixo y")
fimse
se ((x <> 0) E (y = 0)) entao
escreval("Ponto sobre eixo x")
fimse
se ((x > 0) E (y > 0)) entao
escreval("Ponto no quadrante 1")
fimse
se ((x < 0) E (y > 0)) entao
escreval("Ponto no quadrante 2")
fimse
se ((x < 0) E (y < 0)) entao
escreval("Ponto no quadrante 3")
fimse
se ((x > 0) E (y < 0)) entao
escreval("Ponto no quadrante 4")
fimse
fimalgoritmo
y
Quadrante 2
Quadrante 1
x
Quadrante 3
Quadrante 4
15
Solução com condições Aninhadas
Prof. Paulo Villa
algoritmo "PosicaoPonto2"
var
x, y : inteiro
Inicio
leia(x)
leia(y)
se (x <> 0) entao
se (y = 0) entao
escreval("Ponto sobre o eixo x")
senao
se (x > 0) entao
se (y > 0) entao
escreval("Ponto no quadrante 1")
senao
escreval("Ponto no quadrante 4")
fimse
senao
se (y > 0) entao
escreval("Ponto no quadrante 2")
senao
escreval("Ponto no quadrante 3")
fimse
fimse
fimse
senao
se (y = 0) entao
escreval("Ponto na origem")
senao
escreval("Ponto sobre o eixo y")
fimse
fimse
fimalgoritmo
y
Quadrante 2
Quadrante 1
x
Quadrante 3
Quadrante 4
16
Solução com condições Aninhadas
Prof. Paulo Villa
algoritmo "PosicaoPonto2"
var
x, y : inteiro
Inicio
leia(x)
leia(y)
se (x <> 0) entao
se (y = 0) entao
escreval("Ponto sobre o eixo x")
senao
se (x > 0) entao
se (y > 0) entao
escreval("Ponto no quadrante 1")
senao
escreval("Ponto no quadrante 4")
fimse
senao
se (y > 0) entao
escreval("Ponto no quadrante 2")
senao
escreval("Ponto no quadrante 3")
fimse
fimse
fimse
senao
se (y = 0) entao
escreval("Ponto na origem")
senao
escreval("Ponto sobre o eixo y")
fimse
fimse
fimalgoritmo
y
Quadrante 2
Quadrante 1
x
Quadrante 3
Quadrante 4
Download

aula3 - Paulo Villa