BERKIOSDocs
Galerie

Compte bancaire

Une classe Compte avec dépôt et retrait : des champs, des méthodes et des objets.

Télécharger l'exempleFichier .zip depuis la dernière release GitHub.

Type : BERKIOS Core · Niveau : intermédiaire · Fichier : compte.bks

Ce que vous allez apprendre

  • Définir une classe avec ses champs et ses méthodes.
  • Créer un objet et appeler ses méthodes.
  • Modifier l'état d'un objet avec self.

Avant de commencer

Connaître les fonctions Core : voir Remise et total à payer.

Étape 1 : récupérer l'exemple

Téléchargez, décompressez, ouvrez compte.bks dans un éditeur de texte.

Étape 2 : le code

module "Comptes"

class Compte
  titulaire: Text
  solde: Int

  fn deposer(montant: Int) -> Int
    self.solde = self.solde + montant
    retourner self.solde

  fn retirer(montant: Int) -> Int
    self.solde = self.solde - montant
    retourner self.solde

fn main() -> Int
  soit compte = Compte("Amina", 100)
  afficher compte.deposer(50)
  afficher compte.retirer(20)
  afficher compte.solde
  retourner 0

Étape 3 : lancer

berkios core compte.bks
BERKIOS Core : Comptes — 1 fonction(s), 1 type(s) : vérification réussie.
150
130
130

Le code expliqué

PartieRôle
class CompteDéclare un nouveau type d'objet.
titulaire: Text, solde: IntLes champs : les données que porte chaque compte.
fn deposer(montant: Int) -> IntUne méthode : une fonction qui appartient à la classe.
self.soldeself désigne le compte sur lequel on travaille.
Compte("Amina", 100)Crée un objet. Les valeurs suivent l'ordre des champs : titulaire, puis solde.
compte.deposer(50)Appelle la méthode : le solde passe de 100 à 150.

Cet exemple mélange des mots-clés anglais (class, fn, Text, Int) et français (soit, afficher, retourner) : le compilateur les accepte ensemble. Pour un code lisible, choisissez une langue et gardez-la.

À vous de jouer : un retrait trop grand

Que se passe-t-il si on retire plus que le solde ? Remplacez compte.solde par compte.retirer(500) : le programme affiche -370. Le compte est devenu négatif. Ajoutons une protection avec si :

module "Comptes"

class Compte
  titulaire: Text
  solde: Int

  fn retirer(montant: Int) -> Int
    si montant > self.solde
      afficher "Solde insuffisant"
      retourner self.solde
    self.solde = self.solde - montant
    retourner self.solde

fn main() -> Int
  soit compte = Compte("Amina", 100)
  afficher compte.retirer(500)
  afficher compte.retirer(30)
  retourner 0

Résultat : Solde insuffisant, 100, puis 70.

Pour aller plus loin