freeCodeCamp/curriculum/challenges/portuguese/07-scientific-computing-wit.../scientific-computing-with-p.../arithmetic-formatter.md

3.9 KiB

id title challengeType forumTopicId dashedName
5e44412c903586ffb414c94c Formatador aritmético 10 462359 arithmetic-formatter

--description--

Você trabalhará neste projeto com nosso código inicial do Replit.

--instructions--

Os alunos da escola primária geralmente organizam problemas aritméticos de modo vertical para facilitar a sua resolução. Por exemplo, "235 + 52" se torna:

  235
+  52
-----

Crie uma função que receba uma lista de strings que sejam problemas aritméticos e retorne os problemas dispostos verticalmente e lado a lado. A função deve, como opção, receber um segundo argumento. Quando o segundo argumento for definido como True, as respostas devem ser exibidas.

Exemplo

Chamada da função:

arithmetic_arranger(["32 + 698", "3801 - 2", "45 + 43", "123 + 49"])

Resultado:

   32      3801      45      123
+ 698    -    2    + 43    +  49
-----    ------    ----    -----

Chamada da função:

arithmetic_arranger(["32 + 8", "1 - 3801", "9999 + 9999", "523 - 49"], True)

Resultado:

  32         1      9999      523
+  8    - 3801    + 9999    -  49
----    ------    ------    -----
  40     -3800     19998      474

Regras

A função retornará a conversão correta se os problemas fornecidos forem formatados corretamente. Caso contrário, ela retornará uma string que descreve um erro significativo para o usuário.

  • Situações que retornarão um erro:
    • Se houver muitos problemas fornecidos para a função. O limite é 5. Qualquer outro número retornará: Error: Too many problems.
    • Os operadores apropriados que a função aceitará são adição e subtração. A multiplicação e a divisão retornarão um erro. Outros operadores não mencionados aqui não precisarão ser testados. O erro retornado será: Error: Operator must be '+' or '-'.
    • Cada número (operando) deve conter apenas algarismos. Caso contrário, a função retornará: Error: Numbers must only contain digits.
    • Cada operando (ou seja, o número de cada lado do operador) tem, no máximo, quatro algarismos. Do contrário, a string de erro retornada será: Error: Numbers cannot be more than four digits.
  • Se o usuário forneceu o formato correto dos problemas, a conversão retornada seguirá estas regras:
    • Deve haver um único espaço entre o operador e o maior entre os dois operandos. O operador estará na mesma linha do segundo operando. Ambos os operadores estarão na mesma ordem fornecida - o primeiro será o de cima e o segundo será o de baixo).
    • Os números devem estar alinhados à direita.
    • Deve haver quatro espaços entre cada problema.
    • Deve haver travessões abaixo de cada problema. Os travessões devem compreender todo o tamanho de cada problema individualmente. (O exemplo acima mostra como deve ser a aparência do resultado.)

Desenvolvimento

Escreva seu código em arithmetic_arranger.py. Para o desenvolvimento, você pode usar main.py para testar sua função arithmetic_arranger(). Clique no botão "Run" e main.py será executado.

Testes

Os testes unitários para este projeto estão em test_module.py. Estamos executando os testes de test_module.py em main.py para a sua conveniência. Os testes serão executados automaticamente sempre que você clicar no botão "Run". Como alternativa, você pode executar testes inserindo pytest no console.

Envio

Copie o URL do seu projeto e envie-o abaixo.

--hints--

O programa deve formatar corretamente um problema aritmético e passar em todos os testes.


--solutions--

/**
  Backend challenges don't need solutions,
  because they would need to be tested against a full working project.
  Please check our contributing guidelines to learn more.
*/