Menu
Coddy logo textTech

Recapitulação - Matemática de Carteira

Parte da seção Object Oriented Programming do Journey de Lua da Coddy — lição 30 de 70.

challenge icon

Desafio

Fácil

Vamos construir 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 suportará 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 representando quanto dinheiro ela contém. Inclua um construtor :new(amount) e implemente dois metamétodos:
    • __add: Somar duas carteiras cria uma nova carteira contendo o total combinado
    • __lt: Comparar carteiras determina qual contém menos dinheiro
  • main.lua: Importe seu módulo Wallet, crie instâncias de carteira e demonstre ambas as operações funcionando juntas.

Você receberá três entradas:

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

No seu arquivo principal, crie três carteiras com as quantias fornecidas. Então:

  1. Some a primeira e a segunda carteiras 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 deve ser:

80
true
false

A primeira carteira (50) mais a 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 Object Oriented Programming