Menu
Coddy logo textTech

Recapitulação - Matemática de Carteira

Parte da seção Programação Orientada a Objetos do Journey de Lua da Coddy. Lição 30 de 70.

challenge icon

Desafio

Fácil

Vamos criar uma classe Wallet que reúne as habilidades de sobrecarga de operadores que você aprendeu neste capítulo. Sua carteira armazenará uma quantia em dinheiro e oferecerá duas operações principais: combinar carteiras com + e comparar carteiras com <code>< e .

Você organizará seu código em dois arquivos:

  • Wallet.lua: defina sua classe Wallet com um campo amount que representa quanto dinheiro ela contém. Inclua um construtor :new(amount) e implemente dois metamétodos:
    • __add: adicionar duas carteiras cria uma nova carteira contendo o total combinado
    • __lt: comparar carteiras determina qual contém menos dinheiro
  • main.lua: exija seu módulo Wallet, crie instâncias de carteira e demonstre as duas operações funcionando em conjunto.

Você receberá três entradas:

  1. Quantidade na primeira carteira
  2. Quantidade na segunda carteira
  3. Quantidade na terceira carteira

Em seu arquivo principal, crie três carteiras com as quantias fornecidas. Em seguida:

  1. Adicione a primeira e a segunda carteira para criar uma carteira combinada
  2. Imprima a quantia da carteira combinada
  3. Compare a carteira combinada com a terceira carteira usando <code>< e imprima o resultado (true ou false)
  4. Compare a carteira combinada com a terceira carteira usando e imprima o resultado (true ou false)

Por exemplo, se as entradas forem 50, 30 e 100, a saída deverá ser:

80
true
false

A primeira carteira (50) somada à segunda carteira (30) cria uma carteira combinada com 80. Como 80 é menor que 100, a primeira comparação é true. Como 80 não é maior que 100, a segunda comparação é false.

Experimente você mesmo

local Wallet = require('Wallet')

-- Ler entrada
local amount1 = tonumber(io.read())
local amount2 = tonumber(io.read())
local amount3 = tonumber(io.read())

-- TODO: Criar três carteiras com os valores fornecidos

-- TODO: Somar a primeira e a segunda carteiras para criar uma carteira combinada

-- TODO: Imprimir o valor da carteira combinada

-- TODO: Comparar a carteira combinada com a terceira carteira usando < e imprimir o resultado

-- TODO: Comparar a carteira combinada com a terceira carteira usando > e imprimir o resultado

Todas as lições de Programação Orientada a Objetos

Pratique por conta própria: Compilador de Lua online