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

Post on 26-Jul-2015

125 views 1 download

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

Lógica de Programação

Unimep/Pronatec

2° Semestre/2014

AULA 07

- Prof. André Bertoletti -

apbertolet@unimep.br

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!