Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br ›...

52
1 Conceitos básicos de modularização e Estruturas de seleção Prof. Jesús P. Mena-Chalco CMCC/UFABC Q1/2020 Processamento da Informação

Transcript of Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br ›...

Page 1: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

1

Conceitos básicos de modularizaçãoe Estruturas de seleção

Prof. Jesús P. Mena-ChalcoCMCC/UFABC

Q1/2020

Processamento da Informação

Page 2: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

2

Precedência entre operadores

Page 3: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

3

Em português: a vírgula é muito importante

VAMOS PERDER, NADA FOI RESOLVIDO.

VAMOS PERDER NADA, FOI RESOLVIDO.

Page 4: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

4

Não queremos saber.

Não, queremos saber.

Page 5: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

5

Ordem nas operações

Na matemática, os parênteses destacam a prioridade de cálculo: as contas dentro de parênteses são resolvidas primeiro.

(2+3)*4-5 = 15

Page 6: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

6

Precedência de operadores

Operador Operação

** Exponenciação

- Negação

*///%

MultiplicaçãoDivisãoDivisão inteiraMódulo

+-

Somasubtração

Page 7: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

7

Exercício

Escreva a seguinte equação usando operadores binários:

Page 8: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

8

Exercício

Escreva a seguinte equação usando operadores binários:

x = 7 + 1 / (14-1/9)

Page 9: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

9

Da aula anterior

Quais das seguintes instruções dariam erro de sintaxe?

6 * -----------8

8 = alunos

((((4 ** 3))))

(-(-(-(-5))))

4 += 7 / 2

O número 8 recebe o valor de uma variável?

A tradução dex += 3

Seria x = x+3

Assim, a tradução seria4 = 4+7/2

Um número recebe o valor de 4+7/2

Page 10: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

10

Operadores de atribuição compostos

X += 1 → X = X+1

X -= 5 → X = X-5

X *= 7 → X = X*7

X /= 87 → X = X/87

Tambem temos os operadores compostos:

**=

//=

/=

%=

Page 11: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

11

Questão de estilo?

Page 12: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

12

Lorem ipsum dolor sit amet, consectetur adipiscing elit . Curabitur vel est augue. Donec aliquam laoreet ipsum , ac sagittis odio aliquam quis. In eleifend est tortor, dapibus posuere odio consectetur id. Donec varius eget est eu luctus . Phasellus scelerisque, nunc laoreet feugiat sagittis, risus neque condimentum nisi, eget feugiat turpis purusquis urna. Mauris tempor eros in turpis tincidunt, bibendum euismod est pretium. Praesent ligula dui, fermentum a porttitor vitae, pulvinar ut odio. Suspendisse vitae pretium dolor, at sodales mauris .

Sed consequat purus nec bibendum suscipit. Donec ultricies euismod enim, quis interdum mi ornare et . Ut facilisis elit vitae elementum fringilla. Pellentesque sed orci iaculis, imperdiet elit et, mollis enim.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur vel est augue. Donec aliquam laoreet ipsum, ac sagittis odio aliquam quis. In eleifend est tortor, dapibus posuere odio consectetur id. Donec varius eget est eu luctus. Phasellus scelerisque, nunc laoreet feugiat sagittis, risus neque condimentum nisi, eget feugiat turpis purus quis urna. Mauris tempor eros in turpis tincidunt, bibendum euismod est pretium. Praesent ligula dui, fermentum a porttitor vitae, pulvinar ut odio. Suspendisse vitae pretium dolor, at sodales mauris.

Sed consequat purus nec bibendum suscipit. Donec ultricies euismod enim, quis interdum mi ornare et. Ut facilisis elit vitae elementum fringilla. Pellentesque sed orci iaculis, imperdiet elit et, mollis enim.

Questão de estilo?

Page 13: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

13

Questão de estilo?

Direitos de autor: Dezignus

Page 14: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

14

Questão de estilo na escrita

Esta É Uma FRASe Que D3ver14 SeR s1mples de lEr?

Page 15: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

15

Questão de estilo na escrita

Vamos tentar nos organizar para ter um mesmo estilo na escrita de nossas variáveis, dos nossos programas...

As convenções são importantes para que times de programação possam interagir de forma mais rápida.

Por exemplo, ao usar uma variável de represente o valor máximo de um conjunto de números, podemos ter: maximo maxVal max_val valor_maximo

Regras que tentaremos usar https://wiki.python.org.br/GuiaDeEstilo [pep8]

Page 16: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

16

Módulos / Funções / Métodos

Page 17: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

17

Motivação

Exemplo de módulos (componentes) para Arduino:- Entrada.- Saída.

Page 18: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

18

Exemplo de uso de funções

Page 19: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

19

Exemplo de definição de uma função

Def é uma palavra reservadae utilizada para definir uma função.

A função tem apenas um parâmetro(ie., variável de entrada).

Usamos 4 espaços em brancopara indicar que as seguintesinstruções pertencem à função dobra(linhas 2 e 3)

A função (return) devolve umnúmero

Page 20: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

20

Caixa preta

Page 21: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

21

Caixa preta

caixa_pretax x³

Page 22: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

22

Média de 3 números

Os números podem ser inteiros ou reais?

Page 23: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

23

Média de 3 números

Exemplo de uma função que recebe 3 inteirose devolve um número real.

Note que cada variável tem um tipo de dado.Esse tipo é desejável para melhor compreensão.

Page 24: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

24

Tipos de dados em Python

Os tipos de dados que usaremos são os primitivos:

Page 25: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

25

Funções matemáticas em Python

Page 26: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

26

Funções matemáticas em Python

Page 27: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

27

Funções matemáticas em Python

Page 28: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

28

Volume de um cilindro

Crie uma função, em Python, que calcule o volume de um cilindro com raio r e altura h.

Assinatura:

Page 29: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

29

Volume de um cilindro

Page 30: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

30

Fibonacci

Page 31: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

31

Números de Fibonacci

Os números de Fibonacci foram propostos por Leonardo di Pisa (Fibonacci), em 1202, como uma solução para o problema de determinaro tamanho da população de coelhos.

(*) fonte http://www.oxfordmathcenter.com/drupal7/node/487

Page 32: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

32

Números de Fibonacci

Page 33: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

33

Números de Fibonacci

https://www.youtube.com/watch?v=SjSHVDfXHQ4

Page 34: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

34

Números de Fibonacci

(*) fonte http://britton.disted.camosun.bc.ca/fibslide/jbfibslide.htm

Page 35: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

35

Números de Fibonacci

Os números de Fibonacci estão relacionados com a razão aurea .O i-ésimo número pode ser aproximado pela seguinte equação (formula explícita):

Crie uma função em Python que receba um número inteiro i, e devolva Fi.

Assinatura:

Page 36: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

36

Números de Fibonacci

Page 37: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

37

Números de Fibonacci

Page 38: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

Golden ratio

Page 39: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte
Page 40: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

40

Estruturas de seleção – parte 1

Page 41: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

41

Execução condicional

Para escrever programas úteis, quase sempre precisamos da possibilidade de verificar condições e mudar o comportamento do programa.

Instruções/estruturas condicionais nos dão essa habilidade. A forma mais simples é o if:

if (x>0):

Instrucao1 Instrucao2 ...

Condição

Se a condição for verdade, então as instruções no bloco de instruções são executadas.

O bloco deve conter a mesma indentação.

Page 42: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

42

Execução condicional

A segunda forma da instrução if é a execução alternativa, na qual existem duas possibilidades e a condição determina qual delas será executada.

if (x > 0): ...

else: ...

Condição

Se a condição for verdadeira, será executado o primeiro conjunto de instruções

Se a condição for falsa, será executado o segundo conjunto de instruções

Page 43: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

43

Seleção simples Seleção compostaProcessamentosequencial

Page 44: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

44

Maior valor entre 2 números

Page 45: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

45

As duas funções realizam a mesma operação

Page 46: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

46

Maior valor entre 3 números

Como usar a função anterior para obter o maior valor entre 3 números?

Page 47: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

47

Maior valor entre 3 números

Diferentes possibilidades

maior( maior(a, b), c)

maior( a, maior(b, c) )

Page 48: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

48

Atividade em aula

Page 49: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

49

Maior valor entre 4 números

Crie um método que calcule o maior valor dados 4 números inteiros.

Assinatura:

def maior4(a: float, b: float, c:float, d:float) -> float:

Page 50: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

50

Maior valor entre 4 números

Page 51: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

51

Menor valor entre 4 números

Page 52: Conceitos básicos de modularização e Estruturas de seleçãoprofessor.ufabc.edu.br › ~jesus.mena › courses › pi-1q-2020 › PI-teori… · Estruturas de seleção – parte

52

Fatorial de um número inteiro