Récapitulatif - Calculatrice simple
Fait partie de la section Programmation orientée objet du Journey GDScript de Coddy. Leçon 8 sur 65.
Défi
MoyenÉcrivez la classe Calculator dans calculator.gd. Elle conserve un résultat courant dans la propriété float result, qui commence à 0.0.
add(number),subtract(number),multiply(number)etdivide(number)appliquent l’opération àresultavecnumber, stockent le nouveau résultat et le renvoient- Lorsque
divide()reçoit0, elle afficheError: Division by zero, laisseresultinchangé et le renvoie clear()réinitialiseresultà0.0et le renvoieget_result()renvoieresult
Le code fourni lit le nombre de commandes à exécuter, puis une commande par ligne, par exemple add 5, divide 0 ou clear. Après chaque commande, il affiche le nom de la commande et la valeur renvoyée par la méthode, puis le résultat final à la fin. Pour add 5, multiply 3, subtract 2, divide 0 et divide 2, il affiche :
add -> 5.0
multiply -> 15.0
subtract -> 13.0
Error: Division by zero
divide -> 13.0
divide -> 6.5
Final result: 6.5Votre code doit être placé dans calculator.gd. main.gd contient le code fourni pour les entrées et sorties et ne peut pas être modifié.
Essayez vous-même
extends Node
func _ready():
# Code d'entrée/sortie fourni : conservez-le tel quel
var calc := Calculator.new()
var count := int(OS.read_string_from_stdin())
for i in count:
var parts := OS.read_string_from_stdin().split(" ")
var value := 0.0
match parts[0]:
"add":
value = calc.add(float(parts[1]))
"subtract":
value = calc.subtract(float(parts[1]))
"multiply":
value = calc.multiply(float(parts[1]))
"divide":
value = calc.divide(float(parts[1]))
"clear":
value = calc.clear()
print("%s -> %s" % [parts[0], value])
print("Final result: %s" % calc.get_result())
Toutes les leçons de Programmation orientée objet
1Fondamentaux de la POO
Fichiers externesIntroduction à la POOClasses et objetsLe mot-clé selfMéthodesPropriétésConstructeur (_init)Récapitulatif - Calculatrice simple4Polymorphisme
Retour sur la redéfinition des méthodesTypage canardClasses et méthodes abstraitesConception d’interfacesRécapitulatif – Calculateur de formes7Signaux
Qu’est-ce qu’un signal ?Déclarer et émettreSe connecter aux signauxSignaux avec argumentsRécapitulatif - système de santé10Patrons de conception, partie 2
Patron CommandePatron AdaptateurPatron DécorateurPatron Méthode modèlePatron ÉtatPatron Composite2Propriétés de classe
Variables d’instance et variables statiquesFonctions statiquesSetters de propriétésGetters de propriétésPrivé par conventionRécapitulatif - Gestionnaire de comptes bancaires5Encapsulation
Membres publics et privésValidation avec les méthodes setterMasquage de l’informationPropriétés en lecture seuleRécapitulatif - Système de dossiers étudiants8Concepts avancés de la POO
Composition ou héritageClasses internesLes nœuds comme composantsRefCounted ou NodeEnums dans les classes3Héritage
Héritage de baseLe mot-clé superRedéfinition de méthodesChaînes d’héritageVérifier les types avec isRécapitulatif – Hiérarchie des employés6Méthodes spéciales
Introduction aux méthodes virtuellesLa méthode _to_stringItérateurs personnalisésRécapitulatif – Liste personnalisée9Patrons de conception, partie 1
Introduction aux patrons de conceptionPatron SingletonPatron FactoryPatron ObserverPatron StrategyEntraînez-vous par vous-même : Compilateur GDScript en ligne