Lógica de Programação
Unimep/Pronatec
2° Semestre/2014
AULA 06
- Prof. André Bertoletti -
Mais um comando para a nossa coleção
• Comando Se/Senão
• Este comando deve ser utilizado sempre quando você precisar desviar o fluxo de execução do algoritmo, baseado numa condição lógica.
• Condição Lógica = Pergunta que deverá sempre retornar VERDADEIRO ou FALSO
Operadores relacionais
Operador Significado
> Maior do que
>= Maior ou igual do que
< Menor do que
<= Menor ou igual do que
== Igual a
!= Diferente de
Exemplos de algumas condições lógicas
10 > 5
“banana” == “maçã”
8.5 < 9
1120 != 1120
20 >= 20
(2+2)==4
Verdadeiro
Falso
Verdadeiro
Falso
Verdadeiro
Verdadeiro
Exemplo 01 de resolução seguindo a hierarquia das operações
10 – 20 * 3 > 20 - Raiz(4) * (3 – 1)
10 – 60 > 20 - Raiz(4) * 2
– 50 > 20 - 2 * 2
– 50 > 20 – 4
– 50 > 16
FALSO
Exemplo 02 de resolução seguindo a hierarquia das operações
(20 * (3 + 1)) - 100 * 3 <= (20 - Raiz(4)) * 3 / 10
(20 * 4) – 100 * 3 <= (20 – 2) * 3 / 10
80 – 100 * 3 <= 18 * 3 / 10
80 – 300 <= 54 / 10
-220 <= 5.4
VERDADEIRO
Sintaxe do comando Se()/Senão Inicio
(...)
SE (condição)
Inicio
<linha(s) de comando quando a condição for VERDADEIRA>
Fim
SENÃO
Inicio
<linha(s) de comando quando a condição for FALSA>
Fim
(...)
Fim
Escreva um algoritmo que leia um número
inteiro qualquer e informe no final se este número é positivo ou
negativo.
1. Inicio
2. Inteiro Num
3. Ler(Num)
4. Se (Num >= 0)
5. Inicio
6. Escrever(“Este número é positivo”)
7. Fim
8. Senão
9. Inicio
10. Escrever(“Este número é negativo”)
11. Fim
12. Fim
Exercicio S_1
Fazer um programa que leia duas palavras e informe se as palavras são IGUAIS ou DIFERENTES
Exercício S_1 (Resolução em algoritmo) 1. Inicio
2. Texto Palavra1
3. Texto Palavra2
4. Ler(Palavra1)
5. Ler(Palavra2)
6. Se (Palavra1 == Palavra2)
7. Inicio
8. Escreva(“Estas palavras são IGUAIS”)
9. Fim
10. Senão
11. Inicio
12. Escreva(“Estas palavras são DIFERENTES”)
12. Fim
14. Fim
Exercicio S_2
Fazer um programa que leia dois números e escreva qual dos dois é maior e o menor entre eles.
Exercício S_2 (Resolução em algoritmo) 1. Inicio
2. Decimal Num1
3. Decimal Num2
4. Ler(Num1)
5. Ler(Num2)
6. Se (Num1 > Num2)
7. Inicio
8. Escrever(“O maior número é o:”)
9. Escrever(“Num1)
10. Escrever(“O menor número é o:”)
11. Escrever(“Num2)
12. Fim
13. Senão
14. Inicio
15. Escrever(“O maior número é o:”)
16. Escrever(“Num2)
17. Escrever(“O menor número é o:”)
18. Escrever(“Num1)
19. Fim
20. Fim
Exercicio S_3
Num determinado parque de diversões, visitantes menores de idade pagam meia entrada, e os demais pagam a entrada completa. Desenvolva um programa que leia o nome e a idade do visitante, e escreva se ele irá “PAGAR MEIA” ou “PAGAR INTEIRA”
Exercício S_3 (Resolução em algoritmo) 1. Inicio
2. Texto NomeDoVisitante;
3. Inteiro IdadeDoVisitante;
4. Ler(NomeDoVisitante);
5. Ler(IdadeDoVisitante);
6. Se (IdadeDoVisitante >= 18)
7. Inicio
8. Escrever(“Este visitante pagará entrada INTEIRA”)
9. Fim
10. Senão
11. Inicio
12. Escrever(“Este visitante pagará MEIA entrada”)
13. Fim
14. Fim
Exercício S_4 (Resolução em algoritmo) 1. Inicio
2. Inteiro Numero
3. Inteiro RestoDaDivisaoPorDois
4. Ler(Numero)
5. RestoDaDivisaoPorDois (Numero % 2)
6. Se (RestoDaDivisaoPorDois == 0)
7. Inicio
8. Escrever(“Este número é PAR”)
9. Fim
10. Senão
11. Inicio
12. Escrever(“Este número é IMPAR”)
13. Fim
14. Fim
Exercício S_5
Fazer um programa que recebe um símbolo de operação do usuário (+, -, / ou *) e dois números decimais. O programa deve retornar o resultado da operação recebida sobre estes dois números. Ou seja, se o usuário digitou “+” exibe a soma, se digitou “-” exibe a subtração e assim por diante.
Exercício S_5 (Resolução em algoritmo com o Se/Senão)
1. Inicio
2. Texto Operador
3. Decimal Num1
4. Decimal Num2
5. Decimal Result
6. Ler(Num1)
7. Ler(Num2)
8. Ler(Operador)
9. Se (Operador == “+”)
10 Inicio
11. Result Num1 + Num2
12. Fim
13. Senão
14. Inicio
15. Se (Operador == “-”)
16. Inicio
17. Result Num1 - Num2
18. Fim
19. Senão
20. Inicio
21. Se (Operador == “*”)
22. Inicio
23. Result Num1 * Num2
24. Fim
25. Senão
26. Inicio
27. Se (Operador == “/”)
28. Inicio
29. Result Num1 / Num2
30. Fim
31. Senão
32. Inicio
33. Escrever(“Operador inválido”)
34. Fim
35. Fim
36. Fim
37. Fim
38. Escrever(Result)
39.Fim
Um outro comando que pode ser utilizado para condições lógicas
• Comando Escolha/Caso
• Este comando poderá ser utilizado para substituir uma sequência de comandos Se/senão aninhados. Os comandos Caso realizam a escolha entre possíveis valores para uma variável, fornecida como parâmetro no comando Escolha()
• Em alguns cenários, o código pode ficar mais elegante utilizando o comando Escolha/Caso
Sintaxe do comando Escolha/Caso
Inicio
(...)
ESCOLHA (variável)
Inicio
Caso Condição1: <Faça isso>
Caso Condição2: <Faça aquilo>
Caso Condição3: <Faça aquele outro>
Senão: <Faça apenas isso>
Fim
(...)
Fim
Exercício S_5 (Resolução em algoritmo com o Escolha/Caso)
1. Inicio
2. Texto Operador
3. Decimal Num1
4. Decimal Num2
5. Decimal Result
6. Ler(Num1)
7. Ler(Num2)
8. Ler(Operador)
9. Escolha(Operador)
10. Inicio
11. Caso “+”: Result Num1 + Num2
12. Caso “-”: Result Num1 - Num2
13. Caso “*”: Result Num1 * Num2
14. Caso “/”: Result Num1 / Num2
15. Senão: Escrever(“Operador invalido”)
13. Fim
14. Escrever(Resultado)
15. Fim
Exercício S_6
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 (Resolução em algoritmo) 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