// La tarjeta de transporte escrita "al estilo C": un registro de datos
// sueltos y funciones aparte que reciben ese registro como parámetro.
class CardData {
    String id;
    int balance;                    // saldo en céntimos
}

void recharge(CardData card, int amount) {
    card.balance += amount;
}

boolean pay(CardData card, int fare) {
    if (card.balance < fare) {
        return false;
    }
    card.balance -= fare;
    return true;
}

void main() {
    CardData card = new CardData();
    card.id = "A-001";
    recharge(card, 1000);
    pay(card, 250);
    IO.println(card.id + ": " + card.balance + " céntimos");

    // Nada impide que cualquier parte del programa rompa los datos.
    card.balance = -500;
    IO.println(card.id + ": " + card.balance + " céntimos");
}
