aula 06 – lógica de programação: estruturas...

Post on 08-Feb-2019

219 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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)

2

Programar...

Aprender a programar envolve raciocinar sobre abstrações

Nessa aula veremos um conceito mais elaborado:

→ As estruturas condicionais.

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

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

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.

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.

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.

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.

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

10

Estrutura condicional

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

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

11

Estrutura condicional

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

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

12

Estrutura condicional

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

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

13

Estrutura condicional

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

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

14

Estrutura condicional

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

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

15

Estrutura condicional

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

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

16

Estrutura condicional

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

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

17

Estrutura condicional

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

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

18

Estrutura condicional

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

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

19

Estrutura condicional

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

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

20

Estrutura condicional

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

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

21

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

22

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

23

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

24

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

25

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

26

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

27

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

28

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

29

Estrutura condicional

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

30

Estrutura condicional

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

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

31

Estrutura condicional

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

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

32

Estrutura condicional

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

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

33

Estrutura condicional

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

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

34

Estrutura condicional

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

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

35

Estrutura condicional

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

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

36

Estrutura condicional

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

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

37

Estrutura condicional

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

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

38

Estrutura condicional

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

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

39

Estrutura condicional

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

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

40

Estrutura condicional

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

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

41

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

42

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

43

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

44

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

45

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

46

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

47

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

48

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

49

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

50

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

51

Estrutura condicional

E se a condição for falsa?

…comandocomandocomando

condição

comandocomando

…comando

verdadeira

comandocomando

falsa

comandocomando

…comando

55

Operadores de comparação

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

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

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 (==)

57

(1) Valor absoluto de um número

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

58

(1) Valor absoluto de um número

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)

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)

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”)

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 ?

63

Constantes lógicas

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

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

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

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.

67

(3) Maior elemento

68

(4) Cara ou coroa

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

69

Operadores lógicos

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

70

Operadores lógicos

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

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

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

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

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

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

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

76

(5) Quantidade de dias no mês

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

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

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

80

(7) Índice de massa corporal

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

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)

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

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

top related