Contato

  • Jean Paulo Martins (jeanmartins utfpr edu br)
  • Sala 105, Bloco S (UTFPR - Campus Pato Branco)

Conteúdo

Ambiente de programação

Para seguir os exemplos aqui descritos sugiro a utilização do ambiente de programação online »repl.it.

Para programar em seu próprio computador, sem utilização de ferramentas web, siga os passos de instalação descritos nos links abaixo:

Modularização e funções

Programas são a implementação automatizada da solução de um determinado problema. Tais problemas podem ser tão simples quanto efetuar a soma de dois números, calcular a média de uma sequência de números, computar o valor total de uma lista de compras e assim por diante.

Apesar do imenso número de problemas que podem ser solucionados por meio de programação, os elementos básicos envolvidos são consideravelmente pequenos. Em geral, todo programa, independente do contexto ao qual se aplique, será composto por estruturas de decisão, estruturas de repetição, entrada de dados e saída de dados. Assim como esses componentes aparecerão diversas vezes durante a programação, outros também podem vir a ser necessários.

Suponha, por exemplo, o cálculo do fatorial de um número $n > 0$ qualquer. Existem um imenso número de problemas que requerem o cálculo do fatorial e seria entediante ao programador ter que implementar o cálculo do fatorial novamente, sempre que sua utilização se fizesse necessária. Do mesmo modo, podemos mencionar o cálculo da média de uma sequência como algo que constantemente é necessário em diversos programas.

O ideal seria que todas a funcionalidades básicas estivessem disponíveis na linguagem de programação, no entanto, isso nem sempre é verdade, visto o imenso número de funcionalidades necessárias para se implementar um pograma complexo. No entanto, a maioria das linguagens de programação nos oferecem mecanimos para que criemos nossas próprias funcionalidades: as funções.

Uma função na linguagem de programação Python tem a seguinte estrutura:

def somar(a, b):
    return a + b

Temos a palavra-chave def a qual indica que queremos definir uma nova funcionalidade, a qual terá como nome, somar, neste exemplo. Por fim temos a palavra-chave return a qual indica qual será o resultado produzido pela função (neste exemplo a função está retornando a soma de a + b, e a e b são chamados argumentos da função).

É importante notarmos que a definição da função, como feito acima, não produz resultado algum, ela apenas especifica o comportamento da função. Para que uma função qualquer produza um resultado é preciso passarmos a elas valores concretos, exemplo:

somar(10,11)

A explicação acima nos permite reavaliar o que temos aprendido da linguagem Python até então e identificarmos algumas funções que temos utilizado:

  • input()
  • range()
  • print()

Exercício 1: soma dos n primeiros números

Implemente uma função que receba um número $n$ e retorne a soma de todos os números $1, 2, 3, \dots, n$.

def soma(n):
    # Complete
    # ...
    return soma

Exercício 2: fatorial

Implemente a função fatorial, a qual recebe como argumento um número n e retorna o fatorial de $n$. O fatorial de $n$ é dado por

def fatorial(n):
    # Complete 
    # ...
    return fatorial
# Testando a função
print(fatorial(2))
print(fatorial(3))
print(fatorial(6))

Exercício 3: fibonacci

A sequência de Fibonacci é definida assumindo que cada termo é o resultado da soma dos dois anteriores.

Implemente uma função que calcule o i-ésimo termo da sequência de Fibonacci.

def fibonacci(i):
    # Complete
    # ...
    return termo;
# Testando a função
print(fibonacci(3))
print(fibonacci(4))
print(fibonacci(7))

Exercício 4: série harmônica

A série harmônica consiste das frações

Implemente uma função que compute a soma dos $n$ primeiros termos dessa série.

def harmonica(n):
    # Complete
    # ...
    return soma
# Testando a função
print(harmonica(2))
print(harmonica(3))
print(harmonica(4))

Exercício 5: maior de três

Implemente uma função chamada max que receba três números e retorne o maior deles

def max(a, b, c):
    # Complete
    # ...
    return maior

# Testando a função
print( max(1,2,3) )
print( max(5,9,10) )
print( max(-1,-10,-11) )

Exercício 6: verificar se é par

Implemente uma função chamada par que recebe um número e retorne verdadeiro (True) caso esse número seja par e falso (False) caso ele seja ímpar

def par(num):
    # Complete aqui
    # ...
# Testando a função
print( par(2) )
print( par(-1) )
print( par(11) )
print( par(22) )

Exercício 7: sequência de números par

Utilize a função par(numero) para imprimir todos os números pares entre 0 e n.