| | | |

Algoritmos e Programação I

4 Funções

Compre o e-book deste material aqui! Consulte outras formas de colaborar.

4.1 Funções predefinidas e módulos

4.1.1 Funções predefinidas

Como o nome indica, funções predefinidas são aquelas disponíveis por padrão na linguagem de programação, i.e. sem a necessidade de serem explicitamente definidas no código. As funções predefinidas do Python podem ser consultadas em

https://docs.python.org/3/library/functions.html

Nós já vinhamos utilizando várias dessas funções.

Entrada e saída de dados

Na entrada e saída de dados, utilizamos

  • input entrada

    Essa função lê uma linha digitada no prompt, converte-a em uma string e a retorna. Admite como entrada uma string que é impressa no prompt antes da leitura.

  • print saída

    Essa função recebe um objeto e o imprime em formato texto, por padrão, no prompt de saída.

    1s = input('Olá, qual o seu nome? ')
    2print(f'Bem vinde, {s}!')
    Olá, qual o seu nome? Fulane
    Bem vinde, Fulane!

Construtores de dados

Temos as funções que constroem objetos de classes de números:

  • bool() booleano

    Recebe um objeto e retorna outro da classe bool.

    1bool(0)
    False
    1bool(1)
    True
    1bool('')
    False
    1bool('0')
    True
  • int() inteiro

    Recebe um número ou string x e retorna um objeto da classe int.

    1int(-2.1)
    -2
    1int(3.9)
    3
    1int(5.5)
    5
    1int('51')
    51
  • float() decimal

    Recebe um número ou string x e retorna um objeto da classe float.

    1float(1)
    1.0
    1float('-2.7')
    -2.7
  • complex() complexo

    Recebe as partes real e imaginária de um número complexo ou uma string e retorna um objeto da classe complex.

    1complex(2,-3)
    (2-3j)
    1complex('-7+5j')
    (-7+5j)

Para a construção de objetos de classes de coleção de dados, temos:

  • dict() dicionário

    Recebe um mapeamento ou um iterável e retorna um objeto da classe dict.

  • list() lista

    Recebe um iterável e retorna um objeto da classe list.

  • set() conjunto

    Recebe um iterável e retorna um objeto da classe set.

  • str() string

    Recebe um objeto e retorna um outro da classe str.

  • tuple() n-upla

    Recebe um iterável e retorna um objeto da classe tuple.

Alguns construtores de iteráveis especiais são:

  • range() sequência de números

    Recebe até três inteiros start, stop, step e retorna um objeto range, um iterável com início em start (incluído) e término em stop (excluído).

    1list(range(5))
    [0, 1, 2, 3, 4]
    1tuple(range(-10,1,2))
    (-10, -8, -6, -4, -2, 0)
  • enumerator() enumeração

    Recebe um iterável e retorna um objeto enumerate, um iterável de tuples que enumera os objetos do iterável de entrada.

    1cores = ['amarelo', 'azul', 'vermelho', ]
    2list(enumerate(cores))
    [(0, 'amarelo'), (1, 'azul'), (2, 'vermelho')]

4.1.2 Módulos

Módulos são bibliotecas computacionais, i.e. um arquivo contendo funções (e/ou constantes) que podem ser incorporadas e usadas em outros programas. Existem vários módulos disponíveis na linguagem Python, para citar alguns:

  • math módulo de matemática elementar

  • random módulo de números randômicos

  • numpy módulo de computação matricial

  • matplotlib módulo de vizualização gráfica

  • sympy módulo de matemática simbólica

  • torch módulo de aprendizagem de máquina

Nesta seção vamos apenas introduzir o módulo math. Mais a frente, também fazemos uma introdução aos módulos numpy e matplotlib.

Módulo math

O módulo math contém constantes e funções matemáticas elementares de números reais. Para importar o módulo em nosso código, podemos usar a instrução import

1import math

Então, para usar algum recurso do módulo usamos math. seguido do nome do recurso que queremos. Por exemplo,

1math.e
2.718281828459045

retorna o número de Euler3333endnote: 33Leonhard Paul Euler, 1707-1783, matemático e físico suíço. Fonte: Wikipédia: Ronald Fisher. em ponto flutuante.

Alternativamente, podemos importar o módulo com o nome que quisermos. Por padrão, usa-se

1import math as m
2m.pi
3.141592653589793

Ainda, pode-se importar apenas um ou mais recursos específicos, por exemplo

1from math import pi, sin, cos
2sin(pi)**2 + cos(pi) == 1
False
Exemplo 4.1.1.

Considere um polinômio de segundo grau da forma

p(x)=ax2+bx+c. (4.1)

O seguinte código, computa as raízes de p para valores dos coeficientes fornecidos por usuária(o).

1import math as m
2
3# entrada de dados
4a = float(input('Digite o valor de a:\n'))
5b = float(input('Digite o valor de b:\n'))
6c = float(input('Digite o valor de c:\n'))
7
8# discriminante
9delta = b**2 - 4*a*c
10
11# raízes
12# raízes distintas
13if (delta > 0):
14  x1 = (-b + m.sqrt(delta))/(2*a)
15  x2 = (-b - m.sqrt(delta))/(2*a)
16# raiz dupla
17elif (delta == 0):
18  x1 = -b/(2*a)
19  x2 = x1
20# raízes complexas
21else:
22  real = -b/(2*a)
23  img = m.sqrt(-delta)/(2*a)
24  x1 = complex(real, img)
25  x2 = x1.conjugate()
26
27print(f'x1 = {x1}')
28print(f'x2 = {x2}')

4.1.3 Exercícios

E. 4.1.1.

Complete as lacunas.

  1. a)

    Funções predefinidas são aquelas disponíveis por padrão na linguagem de programação.

  2. b)

    A função input permite a entrada de uma string.

  3. c)

    A função print permite a impressão de uma string.

  4. d)

    Construtores são funções que permitem a alocação/casting de objetos de uma dada classe.

Resposta.

a) predefinidas; b) input; c) string; d) Construtores.

E. 4.1.2.

Complete as lacunas.

  1. a)

    Um módulo é uma biblioteca computacional Python.

  2. b)

    O módulo math contém constantes e funções matemáticas elementares de números reais.

Resposta.

a) módulo; b) math

E. 4.1.3.

Desenvolva um código que computa e imprime a hipotenusa h de um triângulo retângulo com catetos a e b fornecidos por usuária(o).

Resposta.

Dica: use h = math.sqrt(a**2 b**2)+.

E. 4.1.4.

Um triângulo de lados a, b e c, existe se

|bc|<a<b+c. (4.2)

Desenvolva um código que verifica e informa a existência de um triângulo de lados fornecidos por usuária(o).

Resposta.

Dica: verifique a condição (m.fabs(b-c) < a) and (a < bc)+

E. 4.1.5.

Considere um triangulo com as seguintes medidas

[Uncaptioned image]

Desenvolva um código que computa e imprime o valor da altura de um triangulo de lados a, b e c fornecidos por usuária(o).

Resposta.

Dica: use a lei dos cossenos e relações fundamentais de triangulo retângulo para obter o valor da altura h.

E. 4.1.6.

Desenvolva um código em que a(o) usuária forneça um ângulo θ em graus e seja computado e impresso os sen(θ) e cos(θ).

Resposta.

Dica: consulte as funções math.sin, math.cos.

E. 4.1.7.

Desenvolva um jogo em que a(o) usuária(o) tenha três tentativas para adivinhar um número inteiro entre 0 a 51 (incluídos).

Resposta.

Dica: O módulo random fornece a função random.randint(a, b) que retorna um inteiro axb.


Envie seu comentário

Aproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!

Opcional. Preencha seu nome para que eu possa lhe contatar.
Opcional. Preencha seu e-mail para que eu possa lhe contatar.
As informações preenchidas são enviadas por e-mail para o desenvolvedor do site e tratadas de forma privada. Consulte a política de uso de dados para mais informações.

Licença Creative Commons
Este texto é disponibilizado nos termos da Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional. Ícones e elementos gráficos podem estar sujeitos a condições adicionais.

Algoritmos e Programação I

4 Funções

Compre o e-book deste material aqui! Consulte outras formas de colaborar.

4.1 Funções predefinidas e módulos

4.1.1 Funções predefinidas

Como o nome indica, funções predefinidas são aquelas disponíveis por padrão na linguagem de programação, i.e. sem a necessidade de serem explicitamente definidas no código. As funções predefinidas do Python podem ser consultadas em

https://docs.python.org/3/library/functions.html

Nós já vinhamos utilizando várias dessas funções.

Entrada e saída de dados

Na entrada e saída de dados, utilizamos

  • input entrada

    Essa função lê uma linha digitada no prompt, converte-a em uma string e a retorna. Admite como entrada uma string que é impressa no prompt antes da leitura.

  • print saída

    Essa função recebe um objeto e o imprime em formato texto, por padrão, no prompt de saída.

    1s = input('Olá, qual o seu nome? ')
    2print(f'Bem vinde, {s}!')
    Olá, qual o seu nome? Fulane
    Bem vinde, Fulane!

Construtores de dados

Temos as funções que constroem objetos de classes de números:

  • bool() booleano

    Recebe um objeto e retorna outro da classe bool.

    1bool(0)
    False
    1bool(1)
    True
    1bool('')
    False
    1bool('0')
    True
  • int() inteiro

    Recebe um número ou string x e retorna um objeto da classe int.

    1int(-2.1)
    -2
    1int(3.9)
    3
    1int(5.5)
    5
    1int('51')
    51
  • float() decimal

    Recebe um número ou string x e retorna um objeto da classe float.

    1float(1)
    1.0
    1float('-2.7')
    -2.7
  • complex() complexo

    Recebe as partes real e imaginária de um número complexo ou uma string e retorna um objeto da classe complex.

    1complex(2,-3)
    (2-3j)
    1complex('-7+5j')
    (-7+5j)

Para a construção de objetos de classes de coleção de dados, temos:

  • dict() dicionário

    Recebe um mapeamento ou um iterável e retorna um objeto da classe dict.

  • list() lista

    Recebe um iterável e retorna um objeto da classe list.

  • set() conjunto

    Recebe um iterável e retorna um objeto da classe set.

  • str() string

    Recebe um objeto e retorna um outro da classe str.

  • tuple() n-upla

    Recebe um iterável e retorna um objeto da classe tuple.

Alguns construtores de iteráveis especiais são:

  • range() sequência de números

    Recebe até três inteiros start, stop, step e retorna um objeto range, um iterável com início em start (incluído) e término em stop (excluído).

    1list(range(5))
    [0, 1, 2, 3, 4]
    1tuple(range(-10,1,2))
    (-10, -8, -6, -4, -2, 0)
  • enumerator() enumeração

    Recebe um iterável e retorna um objeto enumerate, um iterável de tuples que enumera os objetos do iterável de entrada.

    1cores = ['amarelo', 'azul', 'vermelho', ]
    2list(enumerate(cores))
    [(0, 'amarelo'), (1, 'azul'), (2, 'vermelho')]

4.1.2 Módulos

Módulos são bibliotecas computacionais, i.e. um arquivo contendo funções (e/ou constantes) que podem ser incorporadas e usadas em outros programas. Existem vários módulos disponíveis na linguagem Python, para citar alguns:

  • math módulo de matemática elementar

  • random módulo de números randômicos

  • numpy módulo de computação matricial

  • matplotlib módulo de vizualização gráfica

  • sympy módulo de matemática simbólica

  • torch módulo de aprendizagem de máquina

Nesta seção vamos apenas introduzir o módulo math. Mais a frente, também fazemos uma introdução aos módulos numpy e matplotlib.

Módulo math

O módulo math contém constantes e funções matemáticas elementares de números reais. Para importar o módulo em nosso código, podemos usar a instrução import

1import math

Então, para usar algum recurso do módulo usamos math. seguido do nome do recurso que queremos. Por exemplo,

1math.e
2.718281828459045

retorna o número de Euler3333endnote: 33Leonhard Paul Euler, 1707-1783, matemático e físico suíço. Fonte: Wikipédia: Ronald Fisher. em ponto flutuante.

Alternativamente, podemos importar o módulo com o nome que quisermos. Por padrão, usa-se

1import math as m
2m.pi
3.141592653589793

Ainda, pode-se importar apenas um ou mais recursos específicos, por exemplo

1from math import pi, sin, cos
2sin(pi)**2 + cos(pi) == 1
False
Exemplo 4.1.1.

Considere um polinômio de segundo grau da forma

p(x)=ax2+bx+c. (4.1)

O seguinte código, computa as raízes de p para valores dos coeficientes fornecidos por usuária(o).

1import math as m
2
3# entrada de dados
4a = float(input('Digite o valor de a:\n'))
5b = float(input('Digite o valor de b:\n'))
6c = float(input('Digite o valor de c:\n'))
7
8# discriminante
9delta = b**2 - 4*a*c
10
11# raízes
12# raízes distintas
13if (delta > 0):
14  x1 = (-b + m.sqrt(delta))/(2*a)
15  x2 = (-b - m.sqrt(delta))/(2*a)
16# raiz dupla
17elif (delta == 0):
18  x1 = -b/(2*a)
19  x2 = x1
20# raízes complexas
21else:
22  real = -b/(2*a)
23  img = m.sqrt(-delta)/(2*a)
24  x1 = complex(real, img)
25  x2 = x1.conjugate()
26
27print(f'x1 = {x1}')
28print(f'x2 = {x2}')

4.1.3 Exercícios

E. 4.1.1.

Complete as lacunas.

  1. a)

    Funções predefinidas são aquelas disponíveis por padrão na linguagem de programação.

  2. b)

    A função input permite a entrada de uma string.

  3. c)

    A função print permite a impressão de uma string.

  4. d)

    Construtores são funções que permitem a alocação/casting de objetos de uma dada classe.

Resposta.

a) predefinidas; b) input; c) string; d) Construtores.

E. 4.1.2.

Complete as lacunas.

  1. a)

    Um módulo é uma biblioteca computacional Python.

  2. b)

    O módulo math contém constantes e funções matemáticas elementares de números reais.

Resposta.

a) módulo; b) math

E. 4.1.3.

Desenvolva um código que computa e imprime a hipotenusa h de um triângulo retângulo com catetos a e b fornecidos por usuária(o).

Resposta.

Dica: use h = math.sqrt(a**2 b**2)+.

E. 4.1.4.

Um triângulo de lados a, b e c, existe se

|bc|<a<b+c. (4.2)

Desenvolva um código que verifica e informa a existência de um triângulo de lados fornecidos por usuária(o).

Resposta.

Dica: verifique a condição (m.fabs(b-c) < a) and (a < bc)+

E. 4.1.5.

Considere um triangulo com as seguintes medidas

[Uncaptioned image]

Desenvolva um código que computa e imprime o valor da altura de um triangulo de lados a, b e c fornecidos por usuária(o).

Resposta.

Dica: use a lei dos cossenos e relações fundamentais de triangulo retângulo para obter o valor da altura h.

E. 4.1.6.

Desenvolva um código em que a(o) usuária forneça um ângulo θ em graus e seja computado e impresso os sen(θ) e cos(θ).

Resposta.

Dica: consulte as funções math.sin, math.cos.

E. 4.1.7.

Desenvolva um jogo em que a(o) usuária(o) tenha três tentativas para adivinhar um número inteiro entre 0 a 51 (incluídos).

Resposta.

Dica: O módulo random fornece a função random.randint(a, b) que retorna um inteiro axb.


Envie seu comentário

Aproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!

Opcional. Preencha seu nome para que eu possa lhe contatar.
Opcional. Preencha seu e-mail para que eu possa lhe contatar.
As informações preenchidas são enviadas por e-mail para o desenvolvedor do site e tratadas de forma privada. Consulte a política de uso de dados para mais informações.

Licença Creative Commons
Este texto é disponibilizado nos termos da Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional. Ícones e elementos gráficos podem estar sujeitos a condições adicionais.

Pedro H A Konzen
| | | |