TÉCNICAS DE PROGRAMAÇÃO 1
OPERADORES RELACIONAIS E
EXPRESSÕES BOOLEANAS
2015.2
Morganna Carmem Diniz
Estrutura de Controle - SeleçãoRevisão
Seleção – Esta estrutura define o ponto de
bifurcação onde cada via conduz
a um
processamento distinto.
O formato de seleção da instrução de dois
ramos é
se <condição> então <bloco 1> senão <bloco 2>
Estrutura de Controle - SeleçãoRevisão
O formato de seleção da instrução
se <condição> então <bloco 1> senão <bloco 2>
se a <condição> for verdadeira é executado o
<bloco 1>
se a <condição> for falsa é executado o <bloco 2>
V
Condição
F
bloco 2
bloco 1
ação z
Exemplo
Uma <condição> é expressa utilizando-se os
operadores de relação
<, >, =, ≥, ≤ e ≠
A expressão que se obtém relacionando-se entre si
variáveis e ou constantes por meio de operadores
de relação chama-se expressão booleana.
Uma expressão booleana assume somente dois
valores mutuamente exclusivos
true (verdadeiro)
false (falso)
Definições básicas- Operadores
Aritméticos e Relacionais
Tipo de dados Inteiro
Elemento: número inteiros com sem sinal
operações
notação
relações
notação
Adição
+
menor
<
Subtração
-
maior
>
Multiplicação
*
igual
=
diferente
≠
menor ou igual
<=
maior ou igual
>=
quociente inteiro
/ (ou DIV)
resto da divisão
%(ou MOD)
Definições básicas- Operadores
Aritméticos e Relacionais
Tipo de dados Real
Elemento: número racionais com ou sem sinal
operações
notação
relações
notação
adição
+
menor
<
subtração
-
maior
>
multiplicação
*
igual
=
quociente inteiro
/ ( ou Div) diferente
≠
menor ou igual
<=
maior ou igual
>=
Exercício - Condicional
1.
Dado três números inteiros (a, b e c) , onde os
dois primeiros definem o limite inferior e superior
do intervalo, verificar se o terceiro número (c) está
dentro do intervalo definido anteriormente (a,b).
Análise do Problema:
Entrada: 50, 100, 64
Saída
64 está dentro do intervalo entre 50 e 100
Entrada: 35, 60, 14
Saída
14 está fora do intervalo entre 35 e 60
Exercício
Esboço
entrada de dados (a, b, c)
Verificar se c é maior que a e menor que b
saída do resultado ( se c está no intervalo entre a
e b)
Exercício
Esboço
entrada de dados (a, b, c)
Verificar se c é maior que a e menor que b
No passo acima podemos pensar na seguinte combinação de
condicionais:
Verificar se c é maior que a então
Verificar se c menor que b então
imprimir ( c, “está no intervalo entre” , a, “e”, b)
senão
imprimir ( c, “não está no intervalo entre” , a, “e”, b)
senão
imprimir ( c, “não está no intervalo entre” , a, “e”, b)
saída do resultado ( se c está no intervalo entre a e b)
Exercício - Condicional
Dado três números inteiros (a, b e c) , onde os dois primeiros definem o
limite inferior e superior do intervalo, verificar se o terceiro número (c)
está dentro do intervalo definido anteriormente (a,b).
ContidoNoIntervalo(){
leia(a,b,c);
se (c > a ) então
se (c < b) então
imprima (c,”está no intervalo entre”,a,“e”,b);
senão
imprima (c,” não está no intervalo entre”,a,“e”,b);
senão
imprima (c,” não está no intervalo entre”,a,“e”,b);
}
Exercício - Condicional
ContidoNoIntervalo(){
leia(a,b,c);
se (c > a ) então
se (c < b) então
imprima
(c,”está
entre”,a,“e”,b);
no
intervalo
senão
imprima
(c,”
não
está
intervalo entre”,a,“e”,b);
no
senão
imprima
(c,”
não
está
intervalo entre”,a,“e”,b);
}
no
Podemos ver que temos
repetidos duas vezes a
instrução para imprimir
que :
c não entre a e b
Exercício - Condicional
ContidoNoIntervalo(){
leia(a,b,c);
se (c > a ) então
se (c < b) então
imprima (c,”está no intervalo
entre”,a,“e”,b);
senão
imprima
(c,”
não
está
intervalo entre”,a,“e”,b);
no
senão
imprima
(c,”
não
está
intervalo entre”,a,“e”,b);
}
no
Será que podemos
unir os dois testes dos
condicionais em um
único condicional?
Exercício - Condicional
ContidoNoIntervalo(){
leia(a,b,c);
se (c > a ) então
se (c < b) então
imprima (c,”está no intervalo
entre”,a,“e”,b);
senão
imprima
(c,”
não
está
intervalo entre”,a,“e”,b);
no
senão
imprima
(c,”
não
está
intervalo entre”,a,“e”,b);
}
Será que podemos
unir os dois testes dos
condicionais em um
único condicional?
no
Resposta: SIM!
Utilizando o operador
Booleano “e”
Condição - Expressão Booleana
Tipo de dados Booleano (lógico)
Elemento : os valores lógicos true (verdadeiro) e
false (falso)
Constantes: T e F que representam os valores
true e false, respectivamente
operações
negação
notação
não
conjunção
e
disjunção
ou
Essas operações são binárias. São avaliadas a
condição da direta e da esquerda do operador para
avaliar o valor resultante da aplicação do operador.
Condição - Expressão Booleana
Tipo de dados Booleano (lógico)
Tabela Verdade
os valores lógicos true (verdadeiro) e false (falso)
constantes
T e F que representam os valores true e false, respectivamente
Dado as condições a e b e o resultado das suas avaliações,
vamos analisar o resultado da aplicação dos operadores:
a
b
não a
aeb
a ou b
F
F
T
F
F
F
T
T
F
T
T
F
F
F
T
T
T
F
T
T
Condição - Expressão Booleana
Exemplo: Sejam a = 34, b =100, c = 47
Condição 1 : c > a
avaliação da Condição1: Verdadeiro ( T)
Condição 2 : c < b
avaliação da Condição2: Verdadeiro ( T)
Pela tabela Condição1 e Condição2 = T e T
Resultado da avaliação : Verdadeiro (T)
Exercício – CondicionalVoltando ao Exemplo
Dado três números inteiros (a, b e c) , onde os dois
primeiros definem o limite inferior e superior do
intervalo, verificar se o terceiro número (c) está
dentro do intervalo definido anteriormente (a, b).
Análise do Problema:
Entrada: 50, 100, 64
Saída
64 está dentro do intervalo entre 50 e 100
Entrada: 35, 60, 14
Saída
14 está fora do intervalo entre 35 e 60
Exercício – CondicionalVoltando ao Exemplo
ContidoNoIntervalo(){
leia(a,b,c);
se (c > a ) então
se (c < b) então
imprima (c,”está no intervalo
entre”,a,“e”,b);
senão
imprima
(c,”
não
está
intervalo entre”,a,“e”,b);
no
senão
imprima
(c,”
não
está
intervalo entre”,a,“e”,b);
}
Será que podemos
unir os dois testes dos
condicionais em um
único condicional?
no
Resposta: SIM!
Utilizando o operador
Booleano “e”
Exercício – Condicional – Novo
algoritmo
ContidoNoIntervalo(){
leia(a,b,c);
se ((c > a ) e (c < b) )então
imprima (c,”está no intervalo
entre”,a,“e”,b);
senão
imprima
(c,”
não
está
intervalo entre”,a,“e”,b);
}
no
Exercício
Lembre-se no exercício fazer
A análise do problema;
A definição do objetivo;
As especificações da entrada e saída; e
A descrição do algoritmo em pseudo-código.
Exercício: intervalo
Dados um número n e quatro outros, a, b, c e d,
correspondentes, respectivamente, às extremidades dos
intervalos [a,b] e [c,d], sendo a < b, c < d e a < c
•
determinar se n pertence somente ao intervalo [a,b] ou
somente ao intervalo [c,d] ou, se n pertence a ambos
ou se n não pertence a nenhum dos dois
•
em cada caso imprimir uma mensagem conveniente
•
os números são reais.
Quais as situações possíveis?
Referências
D.D Salvetti e L.M. Barbosa, Algoritmos, Pearson
Makron Books, 1998.
Notas de aulas do curso presencial de Técnicas de
Programação1 - UNIRIO - Desenvolvidos pelas
professoras: Geiza Maria Hamazaki da Silva e
Adriana C. F Alvim – primeiro semestre de 2011.
Download

Aula 01 - parte 05