Skip to article frontmatterSkip to article content
Início

Transformar o código em uma função reutilizável

Authors
Affiliations
PROFMAT, Universidade Federal do Cariri
PROFMAT, Universidade Federal do Cariri

Atividade 4 — Encapsulamento da calculadora em uma função

Nesta atividade, transformamos o código construído anteriormente em uma função reutilizável, chamada calculadora. Essa abordagem torna o programa mais modular, organizado e fácil de manter.

A função recebe como parâmetros os numeradores e denominadores de duas frações e realiza as seguintes ações:

  • Exibe ao usuário as frações fornecidas como entrada;
  • Exibe os resultados das operações na forma irredutível.

Essa organização permite reutilizar o mesmo código para diferentes pares de frações, bastando apenas modificar os valores de entrada.

Exemplo de chamada da função:

calculadora(2, 3, 1, 2)

Solução esperada

Abaixo está um exemplo de código completo tranformado em uma função reutilizavel que realiza as quatro operações com duas frações quaisquer:

function calculadora(num_1, den_1, num_2, den_2)
    println("As frações informadas foram: $(num_1)/$(den_1) e $(num_2)/$(den_2)")
    # Produto
    prod_num = num_1 * num_2
    prod_den = den_1 * den_2
    d_1 = gcd(prod_num, prod_den)
    println("Produto: $(prod_num ÷ d_1)/$(prod_den ÷ d_1)")

    # Quociente
    div_num = num_1 * den_2
    div_den = den_1 * num_2
    d_2 = gcd(div_num, div_den)
    println("Quociente: $(div_num ÷ d_2)/$(div_den ÷ d_2)")

    # Soma
    m = lcm(den_1, den_2)
    soma_num = m ÷ den_1 * num_1 + m ÷ den_2 * num_2
    d_3 = gcd(soma_num, m)
    println("Soma: $(soma_num ÷ d_3)/$(m ÷ d_3)")

    # Diferença
    sub_num = m ÷ den_1 * num_1 - m ÷ den_2 * num_2
    d_4 = gcd(sub_num, m)
    println("Diferença: $(sub_num ÷ d_4)/$(m ÷ d_4)")
end
calculadora (generic function with 1 method)

Exemplo:

Calcule as operações entre as frações 24\dfrac{2}{4} e 515\dfrac{5}{15}


calculadora(2,4,5,15)
As frações informadas foram: 2/4 e 5/15
Produto: 1/6
Quociente: 3/2
Soma: 5/6
Diferença: 1/6