março 3, 2026

Soma de Frações em Código

Por admin

Sobre a Matemática

Para somar frações de denominadores diferentes, é preciso reduzi-las ao mesmo denominador, somar os numeradores, dar a soma do denominador comum e extrair os inteiros se houver.

Para somar frações de mesmo denominador, somam-se os numeradores, e dá-se ao total o denominador comum. Extraem-se os inteiros, se houver.

Sobre o Código

Na linguagem de programação Python,

from – é a palavra-chave usada para importar partes específicas de um módulo ou biblioteca.

fractions – é o nome do módulo da biblioteca padrão que contém a classe Fraction, usada para representar frações exatas.

import – é a palavra-chave que indica que estamos trazendo algo de um módulo para usar no código.

Fraction() – é a classe que cria objetos de fração. Exemplo: Fraction(2,3) representa 2/3.

Docstring – é um texto entre aspas triplas """ ... """ dentro de funções, usado para documentar e explicar o que a função faz.

for..in..: – é uma estrutura de repetição. Itera sobre elementos de uma sequência (lista, tupla, string, etc.).

if: – é a estrutura condicional que executa um bloco de código se a condição for verdadeira.

isinstance() – é a função que verifica se um objeto é de um tipo específico. Exemplo: isinstance(3, int) retorna True.

tuple – é o tipo de dado imutável que armazena múltiplos valores em uma sequência. Exemplo: (1, 2, 3).

+= – é o operador de atribuição que soma e atualiza o valor de uma variável. Exemplo: x += 2 equivale a x = x + 2.

elif: – é a condicional usada em conjunto com if. Significa “senão, se”. Permite testar múltiplas condições.

else: – é a condicional que executa um bloco de código caso nenhuma das condições anteriores seja verdadeira.

raise – é a palavra-chave usada para lançar (gerar) uma exceção.

ValueError – é o tipo de exceção que indica que um valor inválido foi fornecido a uma função ou operação.

return – indica o valor que uma função devolve quando é chamada.

print() – é a função que exibe informações no console.

float() – é a função que converte um valor para número decimal (ponto flutuante). Exemplo: float(3) vira 3.0.

.numerator – é o atributo de um objeto Fraction que retorna o numerador da fração.

.denominator – é o atributo de um objeto Fraction que retorna o denominador da fração.

# – é usado para criar comentários ao código, que são notas para se entender melhor o que o código faz.

Vamos ao código…

from fractions import Fraction

def somar_fracoes(fracoes):
    """
    Recebe uma lista de frações (como tuplas ou objetos Fraction)
    e retorna a soma simplificada.
    """
    soma = Fraction(0, 1)
    for f in fracoes:
        # Se for tupla (numerador, denominador), converte para Fraction
        if isinstance(f, tuple):
            soma += Fraction(f[0], f[1])
        elif isinstance(f, Fraction):
            soma += f
        else:
            raise ValueError("Formato inválido de fração")
    return soma
Código Python (.py)O que faz
from fractions import FractionImporta a classe Fraction da biblioteca padrão fractions, que permite trabalhar com frações de forma precisa e simplificada.
def somar_fracoes(fracoes):Define uma função chamada somar_fracoes que recebe uma lista de frações.
“”” Recebe uma lista de frações (como tuplas ou objetos Fraction) e retorna a soma simplificada. “””Docstring explicativa: descreve o que a função faz.
soma = Fraction(0, 1)Inicializa a variável soma como a fração 0/1, que servirá de acumulador.
for f in fracoes:Inicia um loop para percorrer cada elemento da lista fracoes.
if isinstance(f, tuple):Verifica se o elemento é uma tupla (numerador, denominador).
soma += Fraction(f[0], f[1])Converte a tupla em um objeto Fraction e soma ao acumulador.
elif isinstance(f, Fraction):Caso o elemento já seja um objeto Fraction.
soma += fCaso o elemento não seja nem tupla nem Fraction.
else:Caso o elemento não seja nem tupla nem Fraction.
raise ValueError(“Formato inválido de fração”)Lança um erro informando que o formato da fração é inválido.
return somaRetorna a soma final simplificada.
# Exemplos de uso:
# Frações com denominadores diferentes
resultado1 = somar_fracoes([(1, 2), (1, 3), (1, 6)])
print("Soma de 1/2 + 1/3 + 1/6 =", resultado1, "=", float(resultado1))

# Frações com mesmo denominador
resultado2 = somar_fracoes([(2, 5), (3, 5)])
print("Soma de 2/5 + 3/5 =", resultado2, "=", float(resultado2))

# Extraindo inteiros se houver
resultado3 = somar_fracoes([(7, 3), (2, 3)])
print("Soma de 7/3 + 2/3 =", resultado3, "=", resultado3.numerator // resultado3.denominator, "inteiro(s) e", Fraction(resultado3.numerator % resultado3.denominator, resultado3.denominator))
Código Python (.py)O que faz
resultado1 = somar_fracoes([(1, 2), (1, 3), (1, 6)])Chama a função para somar 1/2 + 1/3 + 1/6.
print(“Soma de 1/2 + 1/3 + 1/6 =”, resultado1, “=”, float(resultado1))Exibe o resultado como fração e como número decimal.
resultado2 = somar_fracoes([(2, 5), (3, 5)])Chama a função para somar 2/5 + 3/5.
print(“Soma de 2/5 + 3/5 =”, resultado2, “=”, float(resultado2))Exibe o resultado como fração e como número decimal.
resultado3 = somar_fracoes([(7, 3), (2, 3)])Chama a função para somar 7/3 + 2/3.
print(“Soma de 7/3 + 2/3 =”, resultado3, “=”, resultado3.numerator // resultado3.denominator, “inteiro(s) e”, Fraction(resultado3.numerator % resultado3.denominator, resultado3.denominator))Exibe o resultado como fração, mostra quantos inteiros cabem na soma (// divisão inteira) e a parte fracionária restante (% resto da divisão).

Saída do código (valor de retorno)…

Soma de 1/2 + 1/3 + 1/6 = 1 = 1.0
Soma de 2/5 + 3/5 = 1 = 1.0
Soma de 7/3 + 2/3 = 3 = 3 inteiro(s) e 0

Fonte:
– Editora Didática Paulista. Ensino Didático 2000: Ensino Fundamental e Ensino Médio. Sorocaba: Editora Didática Paulista, [s.d.].
– Códigos e comentários gerados por Microsoft Copilot com revisão nossa.
– https://docs.python.org/pt-br/3/ [Documentação Oficial do Python]