80
1 Aula 06 – Lógica de Programação: Estruturas condicionais BC-0005 Bases Computacionais da Ciência Prof. Rodrigo Hausen http://bcc.compscinet.org (baseado nos slides do Prof. Jesús P. Mena-Chalco)

Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

  • Upload
    ngodiep

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

1

Aula 06 – Lógica de Programação: Estruturas condicionais

BC-0005 Bases Computacionais da Ciência

Prof. Rodrigo Hausenhttp://bcc.compscinet.org(baseado nos slides do Prof. Jesús P. Mena-Chalco)

Page 2: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

2

Programar...

Aprender a programar envolve raciocinar sobre abstrações

Nessa aula veremos um conceito mais elaborado:

→ As estruturas condicionais.

Page 3: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

3

Estruturas de controle

Estruturas de controle permitem ao programador dominar o fluxo de execução dos comandos.

Temos três estruturas básicas de controle:

SequencialCondicional ou Desvio (if)Repetição

Page 4: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

4

Estrutura sequencial

Estrutura padrão em toda forma de algoritmo.

Conjunto de comandos que serão executados em sequência linear, de cima para baixo.

Comando 1

Comando 2

Comando 3

Comando N

Page 5: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

5

Estrutura sequencial

Comando 1

Comando 2

Comando 3

Comando N

Estrutura padrão em toda forma de algoritmo.

Conjunto de comandos que serão executados em sequência linear, de cima para baixo.

Page 6: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

6

Estrutura sequencial

Comando 1

Comando 2

Comando 3

Comando N

Estrutura padrão em toda forma de algoritmo.

Conjunto de comandos que serão executados em sequência linear, de cima para baixo.

Page 7: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

7

Estrutura sequencial

Comando 1

Comando 2

Comando 3

Comando N

Estrutura padrão em toda forma de algoritmo.

Conjunto de comandos que serão executados em sequência linear, de cima para baixo.

Page 8: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

8

Estrutura sequencial

Comando 1

Comando 2

Comando 3

Comando N

Estrutura padrão em toda forma de algoritmo.

Conjunto de comandos que serão executados em sequência linear, de cima para baixo.

Page 9: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

9

Estrutura condicional

É também conhecida como de decisão ou seleção

Um desvio condicional é usado para escolher entre cursos alternativos de ação em um programa

Page 10: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

10

Estrutura condicional

Estrutura/desvio condicional simples (se-então)

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

Page 11: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

11

Estrutura condicional

Estrutura/desvio condicional simples (se-então)

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

Page 12: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

12

Estrutura condicional

Estrutura/desvio condicional simples (se-então)

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

Page 13: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

13

Estrutura condicional

Estrutura/desvio condicional simples (se-então)

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

Page 14: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

14

Estrutura condicional

Estrutura/desvio condicional simples (se-então)

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

Page 15: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

15

Estrutura condicional

Estrutura/desvio condicional simples (se-então)

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

Page 16: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

16

Estrutura condicional

Estrutura/desvio condicional simples (se-então)

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

Page 17: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

17

Estrutura condicional

Estrutura/desvio condicional simples (se-então)

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

Page 18: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

18

Estrutura condicional

Estrutura/desvio condicional simples (se-então)

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

Page 19: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

19

Estrutura condicional

Estrutura/desvio condicional simples (se-então)

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

Page 20: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

20

Estrutura condicional

Estrutura/desvio condicional simples (se-então)

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

Page 21: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

21

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

Page 22: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

22

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

Page 23: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

23

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

Page 24: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

24

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

Page 25: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

25

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

Page 26: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

26

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

Page 27: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

27

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

Page 28: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

28

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

Page 29: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

29

Estrutura condicional

Estrutura/desvio condicional composta(o) (se-então-senão)

Page 30: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

30

Estrutura condicional

Estrutura/desvio condicional composta(o) (se-então-senão)

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

Page 31: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

31

Estrutura condicional

Estrutura/desvio condicional composta(o) (se-então-senão)

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

Page 32: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

32

Estrutura condicional

Estrutura/desvio condicional composta(o) (se-então-senão)

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

Page 33: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

33

Estrutura condicional

Estrutura/desvio condicional composta(o) (se-então-senão)

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

Page 34: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

34

Estrutura condicional

Estrutura/desvio condicional composta(o) (se-então-senão)

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

Page 35: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

35

Estrutura condicional

Estrutura/desvio condicional composta(o) (se-então-senão)

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

Page 36: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

36

Estrutura condicional

Estrutura/desvio condicional composta(o) (se-então-senão)

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

Page 37: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

37

Estrutura condicional

Estrutura/desvio condicional composta(o) (se-então-senão)

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

Page 38: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

38

Estrutura condicional

Estrutura/desvio condicional composta(o) (se-então-senão)

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

Page 39: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

39

Estrutura condicional

Estrutura/desvio condicional composta(o) (se-então-senão)

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

Page 40: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

40

Estrutura condicional

Estrutura/desvio condicional composta(o) (se-então-senão)

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

Page 41: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

41

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

Page 42: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

42

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

Page 43: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

43

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

Page 44: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

44

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

Page 45: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

45

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

Page 46: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

46

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

Page 47: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

47

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

Page 48: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

48

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

Page 49: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

49

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

Page 50: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

50

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

Page 51: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

51

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

Page 52: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

55

Operadores de comparação

-->a = 10;-->b = 20;

-->a == b ans = F -->a*2 == b ans = T

Page 53: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

56

Operadores de comparação

-->a = 10;-->b = 20;

-->a == b ans = F -->a*2 == b ans = T

operador de comparação

significado

== igual a

~= diferente de

< menor que

> maior que

<= menor ou igual a

>= maior ou igual a

Cuidado! Jamais confunda a atribuição (=) com o operador de comparação de igualdade (==)

Page 54: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

57

(1) Valor absoluto de um número

-->valorAbsoluto(10) ans = 10. -->valorAbsoluto(-10) ans = 10.

Page 55: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

58

(1) Valor absoluto de um número

Page 56: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

59

Função modulo do Scilab

Teste as seguintes instruções. O que faz esta função?

-->modulo(0, 2)-->modulo(1, 2)-->modulo(2, 2)-->modulo(2, 2)

-->modulo(11, 3)-->modulo(17, 3) -->modulo(15, 5)-->modulo(15, 8)

-->modulo(15, 18)

Page 57: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

60

Função modulo do Scilab

Teste as seguintes instruções. O que faz esta função?

-->modulo(0, 2)-->modulo(1, 2)-->modulo(2, 2)-->modulo(2, 2)

-->modulo(11, 3)-->modulo(17, 3) -->modulo(15, 5)-->modulo(15, 8)

-->modulo(15, 18)

No Scilab, a função modulo(n,d) nos dá o resto da divisão inteira de n por d.

n d

resto quociente

modulo(n,d)

Page 58: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

61

(2) Número par

function identificaPar(numero) if modulo(numero, 2) == 0 then disp("O número é par") else disp("O número é ímpar") endendfunction

mostra mensagem no console (“display”)

Page 59: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

62

(2) Número par

function identificaPar(numero) if modulo(numero, 2) == 0 then disp("O número é par") else disp("O número é ímpar") endendfunction

mostra mensagem no console (“display”)

E se quisermos, em vez de mostrar uma mensagem, apenas retornar um valor verdade: verdadeiro / falso ?

Page 60: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

63

Constantes lógicas

Representação dos valores verdade no Scilab:● Verdadeiro (true) é %t● Falso (false) é %f

Page 61: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

64

(2) Número par

function identificaPar(numero) if modulo(numero, 2) == 0 then disp("O número é par") else disp("O número é ímpar") endendfunction

function resp = ePar(numero) if modulo(numero, 2) == 0 then resp = %t else resp = %f endendfunction

Page 62: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

65

(2) Número par

function identificaPar(numero) if modulo(numero, 2) == 0 then disp("O número é par") else disp("O número é ímpar") endendfunction

function resp = ePar(numero) if modulo(numero, 2) == 0 then resp = %t else resp = %f endendfunction

Page 63: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

66

(3) Maior elemento

Crie uma função para, dados dois números como parâmetros, determinar o maior deles.

Exemplos:

-->maiorElemento(13, 15) ans = 15. -->maiorElemento(15, 13) ans = 15.

Page 64: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

67

(3) Maior elemento

Page 65: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

68

(4) Cara ou coroa

-->caraOuCoroa() ans = coroa -->caraOuCoroa() ans = cara

Page 66: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

69

Operadores lógicos

-->%t & %f ans = F -->%t | %f ans = T

Page 67: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

70

Operadores lógicos

-->a = 10;-->b = 20;

-->a<=b & a==10 ans = T

Page 68: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

71

Operadores lógicos

-->a = 10;-->b = 20;

-->a<=b & a==10 ans = T

x y x & y

V V V

V F F

F V F

F F F

tabela verdade“e” lógico

Page 69: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

72

Operadores lógicos

-->a = 10;-->b = 20;

-->a<=b & a==10 ans = T -->a<0 | b<0 ans = F

tabela verdade“e” lógico

x y x & y

V V V

V F F

F V F

F F F

Page 70: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

73

Operadores lógicos

-->a = 10;-->b = 20;

-->a<=b & a==10 ans = T -->a<0 | b<0 ans = F

tabela verdade“e” lógico

tabela verdade“ou” lógico

x y x & y

V V V

V F F

F V F

F F F

x y x | y

V V V

V F V

F V V

F F F

Page 71: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

74

Operadores lógicos

tabela verdade“ou” lógico

-->a = 10;-->b = 20;

-->~(a<0 | b<0) ans = T

negaçãotabela verdade

“não” lógico

x ~x

V F

F V

x y x | y

V V V

V F V

F V V

F F F

Page 72: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

75

(5) Quantidade de dias no mês

Crie uma função para determinar a quantidade de dias para um determinado mês do ano.

-->quantidadeDeDias(1 ) ans = 31.

-->quantidadeDeDias(2 ) ans = 28.

Nota: Assuma ano não bissexto.

123456789

101112

Page 73: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

76

(5) Quantidade de dias no mês

Page 74: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

77

(6) Ano Bissexto

Ano bissexto:- De 400 em 400 anos é ano bissexto.- De 100 em 100 anos não é ano bissexto.- De 4 em 4 anos é ano bissexto.- Prevalecem as primeiras regras sobre as últimas.

São bissextos todos os anos múltiplos de 400. p.ex: 1600, 2000, 2400, 2800...São bissextos todos os múltiplos de 4 e não múltiplos de 100. p.ex: 1996, 2004, 2008, 2012, 2016…Não são bissextos todos os demais anos.

Se (ano divisível por 400 ou (ano divisível por 4 e ano não divisível por 100))Então

O ano é bissextoSenão

O ano não é bissexto

Page 75: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

78

(6) Ano Bissexto

-->anoBissexto(2000) ans = T

-->anoBissexto(2016) ans = T

-->anoBissexto(2100) ans = F

function bissexto = anoBissexto(ano) if ( modulo(ano,400)==0 | .. (modulo(ano,4)==0 & modulo(ano,100)~=0) ) then bissexto = %t else bissexto = %f endendfunction

comando em maisde uma linha

Page 76: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

79

(7) Índice de massa corporal

Crie uma função para que, dado como parâmetros o peso (em kgr), a altura (em metros), se determine o índice de massa corporal e sua classificação. IMC = Peso/Altura²

-->IMC(55, 1.65) ans = 20.20202

Page 77: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

80

(7) Índice de massa corporal

--> [imc, classificacao] = IMC(55, 1.65) classificacao = peso normal imc = 20.20202

Page 78: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

81

Atividade 06: Tidia-ae

Considere a seguinte tabela e equação para determinar o IMCde uma pessoa.

Crie uma função para que, dada como entrada o peso (em kgr), a altura (em metros), e o gênero ('homem' ou 'mulher') seja determinado tanto o IMC quanto a sua classificação.

Exemplo de uso:[imc, classificacao] = imc2(55, 1.65, 'mulher')

- Nome do arquivo a ser enviado: imc2.sci

IMC = Peso (em kg) / Altura² (em m)

Page 79: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

82

Atividade 07: Tidia-ae

Crie uma função para que, dada como entrada 3 pontos no espaço cartesiano, a, b, e c, retorne um vetor:● se a está mais próximo de c, retorne apenas com a● se b está mais próximo de c, retorne apenas com b● caso a distância entre a e c, e b e c seja a mesma, a função deve retornar uma matriz com ambos os pontos a e b.

Nota: considere a distância Euclidiana.

Definição: menorDistancia(a, b, c)

- Nome do arquivo a ser enviado: menorDistancia.sci

Page 80: Aula 06 – Lógica de Programação: Estruturas condicionaiscompscinet.org/hausen/courses/2016/q3/bcc/aulas/06condicionais/BCC... · Estrutura padrão em toda forma de algoritmo

83

Atividade 07: Tidia-ae – exemplos

--> a = [0,0]; b = [10,10];-->menorDistancia(a, b, [0,5]) ans = 0. 0. -->menorDistancia(a, b, [10,5]) ans = 10. 10. -->menorDistancia(a, b, [5,5]) ans = 0. 0. 10. 10.

b

a

c cc

x

y