46
Lógica de Programação Unimep/Pronatec 2° Semestre/2014 AULA 07 - Prof. André Bertoletti - [email protected]

Lógica de Programação - Unimep/Pronatec - Aula 07

Embed Size (px)

Citation preview

Page 1: Lógica de Programação - Unimep/Pronatec - Aula 07

Lógica de Programação

Unimep/Pronatec

2° Semestre/2014

AULA 07

- Prof. André Bertoletti -

[email protected]

Page 2: Lógica de Programação - Unimep/Pronatec - Aula 07

Aula de hoje

• Operadores lógicos

• Tabela verdade

• Exercícios C#

Page 3: Lógica de Programação - Unimep/Pronatec - Aula 07

NÃO SE ESQUEÇA DA SUA Hora do Código

Acesse, identifique-se e faça os exercícios!

abre.ai/horadocodigo

Page 4: Lógica de Programação - Unimep/Pronatec - Aula 07

Quando precisamos combinar mais de

uma condição O que fazer?!

Page 5: Lógica de Programação - Unimep/Pronatec - Aula 07

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

Page 6: Lógica de Programação - Unimep/Pronatec - Aula 07

E

Page 7: Lógica de Programação - Unimep/Pronatec - Aula 07

E =

E =

E =

E =

Page 8: Lógica de Programação - Unimep/Pronatec - Aula 07

OU

Page 9: Lógica de Programação - Unimep/Pronatec - Aula 07

OU =

=

=

=

OU

OU

OU

Page 10: Lógica de Programação - Unimep/Pronatec - Aula 07

Conheça a Tabela Verdade

Associação entre condições lógicas

Page 11: Lógica de Programação - Unimep/Pronatec - Aula 07

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

Page 12: Lógica de Programação - Unimep/Pronatec - Aula 07

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

Page 13: Lógica de Programação - Unimep/Pronatec - Aula 07

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

Page 14: Lógica de Programação - Unimep/Pronatec - Aula 07

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

Page 15: Lógica de Programação - Unimep/Pronatec - Aula 07

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

Page 16: Lógica de Programação - Unimep/Pronatec - Aula 07

Hierarquia de resolução das operações

^

MOD

(raiz(), abs(), round(), etc...)

(<, >, ==, !=, etc...)

Page 17: Lógica de Programação - Unimep/Pronatec - Aula 07

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

Page 18: Lógica de Programação - Unimep/Pronatec - Aula 07

Vamos treinar um pouco?!

Page 19: Lógica de Programação - Unimep/Pronatec - Aula 07

Lista de Exercícios

Resolva as expressões lógicas a seguir

Page 20: Lógica de Programação - Unimep/Pronatec - Aula 07

Exercício X_1

1 + 2 == 3 e 4 > 2 – 1

3 == 3 e 4 > 1

V e V

V

Page 21: Lógica de Programação - Unimep/Pronatec - Aula 07

Exercício X_2

2 ^ 2 != 5 e “Luiz” == “Augusto”

4 != 5 e “Luiz” == “Augusto”

V e F

F

Page 22: Lógica de Programação - Unimep/Pronatec - Aula 07

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

Page 23: Lógica de Programação - Unimep/Pronatec - Aula 07

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

Page 24: Lógica de Programação - Unimep/Pronatec - Aula 07

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

Page 25: Lógica de Programação - Unimep/Pronatec - Aula 07

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

Page 26: Lógica de Programação - Unimep/Pronatec - Aula 07

Aplicando estes conceitos nos nossos

algoritmos

Associação entre condições lógicas

Page 27: Lógica de Programação - Unimep/Pronatec - Aula 07

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.

Page 28: Lógica de Programação - Unimep/Pronatec - Aula 07

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.

Page 29: Lógica de Programação - Unimep/Pronatec - Aula 07

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.

Page 30: Lógica de Programação - Unimep/Pronatec - Aula 07

Bora codificar!

Passe o exercício anterior para um programa em C#

Page 31: Lógica de Programação - Unimep/Pronatec - Aula 07

Operadores lógicos em C#

Algoritmo C#

e &&

ou ||

não !

Page 32: Lógica de Programação - Unimep/Pronatec - Aula 07

Exercício S_6 (Programa C# com operadores lógico)

Page 33: Lógica de Programação - Unimep/Pronatec - Aula 07

Vamos treinar um pouco?!

Page 34: Lógica de Programação - Unimep/Pronatec - Aula 07

Lista de Exercícios

Resolva os exercícios a seguir em algoritmo e/ou C#

Page 35: Lógica de Programação - Unimep/Pronatec - Aula 07

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

Page 36: Lógica de Programação - Unimep/Pronatec - Aula 07

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

Page 37: Lógica de Programação - Unimep/Pronatec - Aula 07

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.

Page 38: Lógica de Programação - Unimep/Pronatec - Aula 07

Exercício S_7 (em C#) FORMATO 2: Utilizando o ELSE, com a abertura “{“ e fechamento “}” de blocos entre eles.

Page 39: Lógica de Programação - Unimep/Pronatec - Aula 07

Exercício S_7 (em C#)

FORMATO 3: Utilizando o ELSE, sem a abertura “{“ e fechamento “}” de blocos entre eles.

Page 40: Lógica de Programação - Unimep/Pronatec - Aula 07

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

Page 41: Lógica de Programação - Unimep/Pronatec - Aula 07

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

Page 42: Lógica de Programação - Unimep/Pronatec - Aula 07

Exercício S_8 (em C#)

Page 43: Lógica de Programação - Unimep/Pronatec - Aula 07

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

Page 44: Lógica de Programação - Unimep/Pronatec - Aula 07

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

Page 45: Lógica de Programação - Unimep/Pronatec - Aula 07

Exercício S_9 (em C#)

Page 46: Lógica de Programação - Unimep/Pronatec - Aula 07

Por hoje é só...

Agora é hora de estudar!