Faça um programa em Python que dado um número N, onde 1<=N<=15, calcule o valor da série:
11!-13!+25!-37!+59!+811!-1313!-2115! cdots
OBS: Se for fornecido um valor inválido, deve ser apresentada uma mensagem de erro e solicitado que usuário digite um valor válido.

Passo 1

Então, a gente tem um exercício que pede para fazer um programa em Python. O programa vai receber um número N, que deve estar entre 1 e 15. Com esse número, o programa vai calcular o valor de uma série matemática específica:
11!-13!+25!-37!+59!+811!-1313!-2115! cdots
Para resolver isso, vamos precisar saber como calcular fatorial, entender como lidar com uma sequência que alterna sinais e segue um padrão específico nos numeradores, além de implementar uma lógica para validar a entrada do usuário.

Passo 2

Primeiro, vamos entender o que é fatorial. O fatorial de um número n (escrito como n!) é o produto de todos os números inteiros positivos de 1 até n. Por exemplo:
5! = 5 times 4 times 3 times 2 times 1 = 120
Em Python, podemos calcular o fatorial usando uma função. Vamos criar uma função chamada fatorial que recebe um número e retorna seu fatorial.

Passo 3

Agora, vamos analisar a sequência dos numeradores na série:
1, -1, 2, -3, 5, 8, -13, -21, dots
Observamos que os numeradores seguem a sequência de Fibonacci:
1, 1, 2, 3, 5, 8, 13, 21, dots
Mas com alternância de sinais. Isso significa que vamos precisar gerar números da sequência de Fibonacci e alternar os sinais conforme a posição na série.

Passo 4

Vamos estruturar o programa:
  1. Solicitar ao usuário que insira um valor N.
  2. Validar se N está entre 1 e 15. Se não estiver, exibir uma mensagem de erro e solicitar novamente.
  3. Gerar os termos da série até o N-ésimo termo.
  4. Calcular o fatorial para os denominadores de cada termo.
  5. Aplicar os sinais corretos aos numeradores.
  6. Somar todos os termos para obter o resultado final.

Passo 5

Para alternar os sinais na série, podemos observar que eles seguem o padrão:
  • Termos nas posições ímpares positivos.
  • Termos nas posições pares negativos.
Isso significa que, para cada termo, se a posição for ímpar, o sinal é positivo; se for par, o sinal é negativo.

Passo 6

Agora, vamos implementar tudo isso em código Python:
def fatorial(n):
    resultado = 1
    for i in range(1, n + 1):
        resultado *= i
    return resultado

def gerar_fibonacci(n):
    fibonacci = [1, 1]
    while len(fibonacci) < n:
        fibonacci.append(fibonacci[-1] + fibonacci[-2])
    return fibonacci[:n]

def calcular_serie(N):
    fibonacci = gerar_fibonacci(N)
    soma = 0
    denominador = 1
    for i in range(N):
        termo = fibonacci[i] / fatorial(denominador)
        if (i + 1) % 2 == 0:
            termo *= -1
        soma += termo
        denominador += 2
    return soma

while True:
    try:
        N = int(input("Digite um número N (1 <= N <= 15): "))
        if 1 <= N <= 15:
            break
        else:
            print("Valor inválido. Por favor, insira um número entre 1 e 15.")
    except ValueError:
        print("Entrada inválida. Por favor, insira um número inteiro.")

resultado = calcular_serie(N)
print(f"O valor da série para N = {N} é: {resultado}")

Resposta

Este programa solicitará que o usuário insira um número N entre 1 e 15, calculará o valor da série especificada e exibirá o resultado final.

Exercícios relacionados