image

Access unlimited bootcamps and 650+ courses

33
%OFF
Article image
Anderson Martins
Anderson Martins27/12/2025 17:33
Share

Dízima Periódica em Código

    Sobre a Matemática

    Dízima periódica é um número decimal infinito e repetitivo, no qual um ou mais algarismos se repetem indefinidamente após a vírgula. Surge quando uma divisão não é exata e o resto passa a se repetir.

    Na divisão 31/99 o quociente é 0,313131… onde esse resultado é um exemplo de dízima periódica. Os algarismos 3 e 1 (que formam o período) repetem-se infinitamente.

    Sobre o Código

    Na linguagem de programação Python,

    def – é a palavra-chave que define uma função em Python, permitindo agrupar instruções reutilizáveis.

    = – é o operador de atribuição que associa um valor a uma variável.

    // – é o operador de divisão inteira, retorna apenas a parte inteira do quociente.

    {} – delimitador de dicionário,estrutura de dados que armazena pares chave–valor.

    [] – delimitador da lista, estrutura de dados ordenada e mutável para armazenar vários valores.

    while – é a estrutura de repetição que executa um bloco enquanto a condição for verdadeira.

    != – é o operador relacional que verifica se dois valores são diferentes.

    if..in.. – é a estrutura condicional que verifica se um valor pertence a uma coleção.

    restos[resto] – acessa ou armazena um valor no dicionário usando a chave resto.

    [inicio_periodo:] – é o fatiamento (em inglês, slicing) de lista ou string a partir de um índice até o final.

    [:inicio_periodo] – é o fatiamento de lista ou string do início até um índice específico.

    break – interrompe imediatamente a execução de um laço.

    *= – é o operador de atribuição com multiplicação (multiplica e atribui).

    .append – é o método de lista que adiciona um elemento ao final.

    str() – é a função que converte um valor para o tipo string.

    %= – é o operador de atribuição com módulo (resto da divisão).

    += – é o operador de atribuição com soma (incrementa um valor).

    else: – é o bloco executado quando a condição anterior não é satisfeita.

    f"..." – f-string, abreviação de literal de string formatado (em inglês, formatted string literal), permite inserir variáveis dentro de textos.

    .join – une elementos de uma lista de strings em uma única string.

    print() – exibe informações no console (saída padrão).

    from – importa elementos específicos de um módulo.

    fractions – é o módulo da biblioteca padrão para trabalhar com números racionais.

    import – é o comando para carregar módulos ou bibliotecas.

    Fraction – é a classe que representa frações exatas (números racionais).

    float() - é a função que converte um valor para número decimal de ponto flutuante.

    # – é 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…

    def dizima_periodica(numerador, denominador):
      """
      Calcula a dízima periódica de uma fração
      e identifica o período da repetição.
      """
      
      parte_inteira = numerador // denominador
      resto = numerador % denominador
      
      restos = {}
      casas_decimais = []
      posicao = 0
    
      while resto != 0:
          # Se o resto já apareceu, existe período
          if resto in restos:
              inicio_periodo = restos[resto]
              periodo = casas_decimais[inicio_periodo:]
              nao_periodica = casas_decimais[:inicio_periodo]
              break
          
          restos[resto] = posicao
          resto *= 10
          casas_decimais.append(str(resto // denominador))
          resto %= denominador
          posicao += 1
      else:
          # Caso não exista dízima periódica
          periodo = []
          nao_periodica = casas_decimais
    
      # Montagem da representação decimal
      if periodo:
          decimal = f"{parte_inteira},{''.join(nao_periodica)}({''.join(periodo)})"
      else:
          decimal = f"{parte_inteira},{''.join(casas_decimais)}"
    
      print(f"Fração: {numerador}/{denominador}")
      print(f"Representação decimal: {decimal}")
    
    # Exemplo clássico de dízima periódica
    dizima_periodica(31, 99)
    

    image

    image

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

    Fração: 31/99

    Representação decimal: 0,(31)

    # Utilizando biblioteca Python para frações
    from fractions import Fraction
    
    def dizima_periodica_com_biblioteca(numerador, denominador):
      """
      Representa uma fração como dízima periódica
      utilizando biblioteca Python.
      """
      
      fracao = Fraction(numerador, denominador)
      valor_decimal = float(fracao)
    
      print(f"Fração: {fracao}")
      print(f"Valor decimal aproximado: {valor_decimal}")
      print("Observação: se o decimal for infinito e repetitivo, trata-se de uma dízima periódica.")
    
    # Exemplo clássico
    dizima_periodica_com_biblioteca(31, 99)
    

    image

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

    Fração: 31/99

    Valor decimal aproximado: 0.31313131313131315

    Observação: se o decimal for infinito e repetitivo, trata-se de uma dízima periódica.

    Fonte:

    • Editora Didática Paulista. Ensino Didático 2000: Ensino Fundamental e Ensino Médio. Sorocaba: Editora Didática Paulista, [s.d.].
    • Código gerado por ChatGPT com revisão nossa.
    • https://docs.python.org/pt-br/3/ [Documentação Oficial do Python]
    Share
    Recommended for you
    Microsoft Certification Challenge #5 - AI 102
    Bradesco - GenAI & Dados
    GitHub Copilot - Código na Prática
    Comments (0)