Lógica de Programação
Unimep/Pronatec
2° Semestre/2014
AULA 07
- Prof. André Bertoletti -
Aula de hoje
• Operadores lógicos
• Tabela verdade
• Exercícios C#
NÃO SE ESQUEÇA DA SUA Hora do Código
Acesse, identifique-se e faça os exercícios!
abre.ai/horadocodigo
Quando precisamos combinar mais de
uma condição O que fazer?!
Operadores lógicos
Operador Significado
E Só será verdadeiro quando ambos os lados da condição for verdade
OU Só será verdadeiro quando pelo menos um dos lados da condição for verdade
NÃO Sempre inverterá o resultado lógico informado
E
E =
E =
E =
E =
OU
OU =
=
=
=
OU
OU
OU
Conheça a Tabela Verdade
Associação entre condições lógicas
Tabela verdade com o operador lógico “e”
A B A e B
Verdade Verdade Verdade
Falso Verdade Falso
Verdade Falso Falso
Falso Falso Falso
Só será VERDADE quando todos os lados forem VERDADE
Tabela verdade com o operador lógico “ou”
A B A ou B
Verdade Verdade Verdade
Falso Verdade Verdade
Verdade Falso Verdade
Falso Falso Falso
Só será VERDADE quando pelo menos um dos lados for VERDADE
Tabela verdade com o operador lógico “não”
A não A
Verdade Falso
Falso Verdade
Sempre inverterá o valor lógico do lado verificado
Resolva a Tabela verdade a seguir utilizando o operador lógico “e”
A B C A e B e C
Verdade Verdade Falso Falso
Falso Verdade Falso Falso
Verdade Falso Verdade Falso
Verdade Verdade Verdade Verdade
Falso Verdade Verdade Falso
Resolva a Tabela verdade a seguir utilizando o operador lógico “ou”
A B C A ou B ou C
Verdade Verdade Falso Verdade
Falso Verdade Falso Verdade
Verdade Falso Verdade Verdade
Falso Falso Falso Falso
Falso Verdade Verdade Verdade
Hierarquia de resolução das operações
^
MOD
(raiz(), abs(), round(), etc...)
(<, >, ==, !=, etc...)
Resolvendo uma expressão lógica
não 2 ^ 3 < 4 ^ 2 ou abs(int(15.0/-2)) < 10
não 2 ^ 3 < 4 ^ 2 ou abs(int(-7,5)) < 10
não 2 ^ 3 < 4 ^ 2 ou abs(-7) < 10
não 2 ^ 3 < 4 ^ 2 ou 7 < 10
não 8 < 16 ou 7 < 10
não V ou V
F ou V
V
Vamos treinar um pouco?!
Lista de Exercícios
Resolva as expressões lógicas a seguir
Exercício X_1
1 + 2 == 3 e 4 > 2 – 1
3 == 3 e 4 > 1
V e V
V
Exercício X_2
2 ^ 2 != 5 e “Luiz” == “Augusto”
4 != 5 e “Luiz” == “Augusto”
V e F
F
Exercício X_3
não abs(3 - 10) != 5 e ((30*2) <= 60) ou “A”== “B”
não abs(3 - 10) != 5 e (60 <= 60) ou “A”== “B”
não abs(3 - 10) != 5 e V ou “A”== “B”
não abs(-7) != 5 e V ou “A”== “B”
não 7 != 5 e V ou “A”== “B”
não V e V ou F
F e V ou F
F ou F
F
Exercício X_4
Sabendo que A=3, B=7 e C=4, informe se as expressões abaixo são verdadeiras ou falsas.
EXPRESSÃO VERDADEIRO ou
FALSO
(A+C) > B Falso
B >= (A + 2) Verdadeiro
C == (B – A) Verdadeiro
(B + A) <= C Falso
(C+A) > B Falso
Exercício X_5
Tendo as variáveis SALARIO, IR e SALLIQ, e considerando os valores abaixo. Informe se as expressões são verdadeiras ou falsas.
SALARIO IR SALLIQ EXPRESSÃO
VERDADEIRO ou FALSO
100,00 0,00 100,00 (SALLIQ >= 100,00) Verdadeiro
200,00 10,00 190,00 (SALLIQ < 190,00) Falso
300,00 15,00 285,00 SALLIQ == SALARIO - IR Verdadeiro
Exercício X_6
Sabendo que A=5, B=4 e C=3 e D=6, informe se as expressões abaixo são verdadeiras ou falsas.
EXPRESSÃO VERDADEIRO ou
FALSO
(A > C) e (C <= D) Verdadeiro
(A+B) > 10 ou (A+B) == (C+D) Verdadeiro
(A>=C) e (D >= C) Verdadeiro
ABS(A – D) < C e (B == C) Falso
RAIZ(B) <= A ^ 2 e (D < C) ou A + 2 * 5 != C + 2 Verdadeiro
Aplicando estes conceitos nos nossos
algoritmos
Associação entre condições lógicas
Exercício S_6 (aula passada)
Fazer um programa para receber valores inteiros X, Y e Z do usuário e determinar se estes valores podem formar os lados de um triângulo equilátero. Sabendo-se que um triangulo desta natureza possui todos os seus lados com medidas iguais.
Exercício S_6 (Algoritmo sem operadores lógico)
1. Inicio
2. Decimal X
3. Decimal Y
4. Decimal Z
5. Ler(X)
6. Ler(Y)
7. Ler(Z)
8. Se (X == Y)
9. Inicio
10. Se (Y == Z)
11. Inicio
12. Escrever(“Estas medidas FORMAM um triangulo equilátero”)
13. Fim
14. Senão
15. Inicio
16. Escrever(“Estas medidas NÃO formam um triangulo equilátero”)
17. Fim
18. Fim
19. Senão
20. Inicio
21. Escrever(“Estas medidas NÃO formam um triangulo equilátero”)
22. Fim
23. Fim
Sem utilizar os operadores lógicos, nós somos obrigados
a encadear diversos comando Se(), um dentro do
outro.
Exercício S_6 (Algoritmo com operadores lógico)
1. Inicio
2. Decimal X
3. Decimal Y
4. Decimal Z
5. Ler(X)
6. Ler(Y)
7. Ler(Z)
8. Se (X == Y e Y == Z)
9. Inicio
10. Escrever(“Estas medidas FORMAM um triangulo equilátero”)
11. Fim
12. Senão
13. Inicio
14. Escrever(“Estas medidas NÃO formam um triangulo equilátero”)
15. Fim
16. Fim
Com os operadores lógicos, fica mais fácil e objetivo
resolver algumas condições lógicas.
Bora codificar!
Passe o exercício anterior para um programa em C#
Operadores lógicos em C#
Algoritmo C#
e &&
ou ||
não !
Exercício S_6 (Programa C# com operadores lógico)
Vamos treinar um pouco?!
Lista de Exercícios
Resolva os exercícios a seguir em algoritmo e/ou C#
Exercício S_7
Elabore um algoritmo que dado o nome e a idade de um nadador, classifique-o em uma das seguintes categorias:
• Infantil A = 5 a 7 anos Se (Idade >=5 e Idade <=7)
• Infantil B = 8 a 11 anos
• Juvenil A = 12 a 13 anos
• Juvenil B = 14 a 17 anos
• Adultos = Maiores ou igual a 18 anos
Exercício S_7 (em algoritmo) 1. Inicio
2. texto Nome
3. inteiro Idade
4. Ler(Nome)
5. Ler(Idade)
6. Se (Idade >= 5 e Idade <= 7)
7. Inicio
8. Escrever(“Infantil A”)
9. Fim
10. Senão Se (Idade >= 8 e Idade <= 11)
11. Inicio
12. Escrever(“Infantil B”)
13. Fim
14. Senão Se (Idade >= 12 e Idade <= 13)
15. Inicio
16. Escrever(“Juvenil A”)
17. Fim
18. Senão Se (Idade >= 14 e Idade <= 17)
19. Inicio
20. Escrever(“Juvenil B”)
21. Fim
22. Senão Se (Idade >= 18)
23. Inicio
24. Escrever(“Adulto”)
25. Fim
26. Fim
Exercício S_7 (em C#) FORMATO 1: Sem utilizar o comando ELSE. Dá certo, porém, haverá desperdício de processamento, visto que o programa testará todos os IFs.
Exercício S_7 (em C#) FORMATO 2: Utilizando o ELSE, com a abertura “{“ e fechamento “}” de blocos entre eles.
Exercício S_7 (em C#)
FORMATO 3: Utilizando o ELSE, sem a abertura “{“ e fechamento “}” de blocos entre eles.
Desenvolva um programa que:
–Leia 4 (quatro) números;
–Calcule o quadrado de cada um;
–Se o valor resultante do quadrado do terceiro número for entre 10 e 50, imprima-o na tela e finalize;
–Caso contrário, imprima todos os valores lidos e seus respectivos quadrados.
Exercício S_8
Exercício S_8 (em algoritmo) 1. Inicio
2. decimal N1, N2, N3, N4, Q1, Q2, Q3, Q4
3. Ler(N1)
4. Ler(N2)
5. Ler(N3)
6. Ler(N4)
7. Q1 N1 ^ 2
8. Q2 N2 ^ 2
9. Q3 N3 ^ 2
10. Q4 N4 ^ 2
11. Se (Q3 >= 10 e Q3 <= 50)
12. Inicio
13. Escrever(Q3)
14. Fim
15. Senão
16. Inicio
17. Escrever(N1);
18. Escrever(Q1);
19. Escrever(N2);
20. Escrever(Q2);
21. Escrever(N3);
22. Escrever(Q3);
23. Escrever(N4);
24. Escrever(Q4);
25. Fim
26. Fim
Exercício S_8 (em C#)
João Papo-de-Pescador, homem de bem, comprou um microcomputador para controlar o rendimento diário de seu trabalho. Toda vez que ele traz um peso de peixes maior que o limite estabelecido pelo regulamento de pesca do estado de São Paulo (50 kilos) deve pagar um multa por quilo excedente. João precisa que você faça um programa que leia a variável P (peso de peixes) e verifique se há excesso. Se houver, gravar na variável E (Excesso) e na variável M o valor da multa que João deverá pagar, conforme o regulamento abaixo. Escreva no final os resultados de E e M:
- até 20kg a mais, pagará R$ 4,00 por Kg excedente
- 21kg a 30kg a mais, pagará R$ 6,00 por Kg excedente
- acima de 30kg a mais, pagará R$ 9,00 por Kg excedente
Exercício S_9
Exercício S_9 (em algoritmo) 1. Inicio
2. decimal P
3. decimal E
4. decimal LimiteEstadoSP 50
5. decimal M
6. Ler(P)
7. E = P - LimiteEstadoSP;
8. Se (E > 0)
9. Inicio
10. Se (E <= 20)
11. M E * 4;
12. Senão SE (E >= 21 e E <= 30)
13. M E * 6;
14. Senão
15. M E * 9;
16. Escrever (E);
17. Escrever(M);
18. Fim
19. Senão
20. Escrever("Não houve excesso de peixes desta vez.");
21. Fim
Exercício S_9 (em C#)
Por hoje é só...
Agora é hora de estudar!