Escreva a função soma(n)
que tome um número inteiro como argumento e devolva a soma dos n primeiros inteiros (1 + 2 + 3 + … + n) e que contenha um laço for
.
Pretendemos utilizar um laço for
na função soma(n)
. Portanto, antes de mais, é necessário identificar a operação repetitiva e determinar quantas vezes é repetida.
À mão, podemos começar por testar os casos n=1, n=2, n=3, …
S(1) = 1
S(2) = 1 + 2 = 3
S(3) = 1 + 2 + 3 = 6
Continuando com n=4, n=5, … vamos facilmente perceber que é melhor adicionar 4, 5, … ao resultado anterior em vez de recalcular tudo: preferimos assim fazer S(4) = S(3) + 4 = 6 + 4 = 10 do que S(4) = 1 + 2 + 3 + 4.
Acabámos de distinguir então a operação que se repete: “S(i) = S(i-1) + i”.
Para calcular a soma dos números inteiros de 1 a n, é necessário fazer variar i
de 1 a n. Utilizaremos então range(1,n+1)
.
Tomamos S como a soma procurada. No início do laço, a variável S será 0: S = 0. No final do laço, queremos S = 1 + 2 + … + n.
Antes do laço for
, a variável S é criada, começando por 0. A cada iteração do laço for
, é executada a seguinte operação: “armazena S+i em S”.
Existe uma fórmula explícita em função de n para calcular a soma dos primeiros n números inteiros:
Escreva uma função potencia(x,n)
que tome um valor real x e um inteiro natural n como argumento e devolva a x elevado n-ésima potência, .
Como repetimos n vezes , utilizamos o laço for
bem como a soma dos n primeiros números inteiros. Aqui multiplicamos o resultado por x a cada iteração.
Em Python, há a possibilidade de utilizar o duplo asterisco para representar a potência.
Além disso, o módulo math
de Python dispõe da função pow(x,n)
para calcular potências.