O objetivo desta aula é experimentar a definição de funções envolvendo algoritmos simples, utilizando variáveis e estruturas de controlo. Após a realização da prática, deverá ter sido adquirida uma noção básica dos seguintes conceitos:
=
...if
while
Tal como na prática anterior, será necessário criar um projeto. Uma boa forma de organizar os exercícios das práticas é criar um projeto por cada aula prática.
Desenvolva um módulo com funções que permitam:
Exemplo:
maximum(7, 9) → 9
Exemplo:
is_multiple(25, 5) → True
def maximum(a, b):
if a < b:
return b
else:
return a
def is_multiple(a, b):
resto = a
divisor = b
while resto >= divisor:
resto = resto - divisor
return resto == 0
def is_multiple(a, b):
return a/b == int(a/b)
def absolute(x):
if x < 0:
return -x
return x
absolute(-2)
//
).¶Exemplos:
divide(31, 5) → 6
divide(35, 7) → 5
def divide(a, b):
resto = a
quociente = 0
while resto > b:
resto = resto - b
quociente = quociente + 1
return quociente
divide(31, 5)
**
), dado o expoente num argumento que se assume ser um número natural n (diferente de zero).¶Exemplo:
power_of_two(4) → 16
power_of_two(8) → 256
def power_of_two(n):
power = 1
i = 0
while i != n:
power = power*2
i = i + 1
return power
power_of_two(8)
Exemplo:
sum_of_naturals_up_to(5) → 15 (1 + 2 + 3 + 4 + 5)
def sum_of_naturals_up_to(n):
total = 0
i = 1
while i != n + 1:
total = total + i
i = i + 1
return total
def sum_of_naturals_up_to(n):
return (n + 1)*n//2
Exemplo:
sum_of_even_numbers_between(3, 8) → 18 (4 + 6 + 8)
def sum_of_even_numbers_between(a, b):
soma = 0
if a%2 == 0:
i = a
else:
i = a + 1
while i <= b + 1:
soma = soma + i
i = i + 2
return soma
sum_of_even_numbers_between(3, 8)
Exemplos:
first_digit(2011) → 2
first_digit(1998) → 1
def first_digit(n):
while n >= 10:
n = n // 10
return n
def first_digit(n):
digit = n
while digit//10 != 0:
digit = digit//10
return digit
first_digit(2020)
Recorde que os primeiros números da sequência de Fibonacci são 0, 1, 1, 2, 3, 5, 8, 13, 21, ...
Exemplo:
fibonacci(7) → 13
def fibonacci(n):
a1 = 0
a2 = 1
a3 = 1
i = 0
while i < n:
a1 = a2
a2 = a3
a3 = a1 + a2
i = i + 1
return a1
fibonacci(7)
Exemplo:
gcd(25, 30) → 5