Je veux que ce programme soit capable de calculer des modulo, l'opérateur modulo est un opérateur
binaire (contrairement à tan() qui est un opérateur unaire), donc je crée une classe "Modulo" qui hérite de la classe "Operateur
Binaire" et qui implémente la classe "Expression", on obtient :
public class Modulo extends OperateurBinaire implements Expression {
Modulo( Expression fg, Expression fd) { //constructeur, ne rien changer
super(fg,fd);
}
@Override
public double calculer(int var) {
}
@Override
public String ToString() {
}
}
Maintenant il suffit juste de compléter les méthodes calculer() et ToString() :
//fg représente l'expression à gauche de l'opérateur %
//fd représente l'expression à droite de l'opérateur %
public double calculer(int var) {
return getFg().calculer(var) % getFd().calculer(var);//on reconnait que cette méthode calcule de manière récursive
}
[code]
public String ToString() {
String chaine = "(" + getFg().ToString() + " mod " + getFd().ToString() + ")";
return chaine;
}
[/code]
Voilà, la classe Modulo est maintenant implémenté, on peut maintenant l'utiliser :)
[code]
public static void main(String[] args)
{
Expression expression = new Modulo ( new Constant(2) , new Constant(3) )
expression.calculer(0); //retourne 2 mod 3, càd 2
}
[/code]
Le paramètre de la méthode "calculer" représente la valeur de la variable, exemple :
[code]
public static void main(String[] args)
{
Expression expression = new Modulo ( new Variable() , new Constant(3) )
expression.calculer(0); //retourne x mod 3 = 0 mod 3 = 0
expression.calculer(2); //retourne x mod 3 = 2 mod 3 = 2
}
[/code]
[/spoiler]
[/spoiler]
[b][u]Pourquoi publier ce code sur P-C ?[/u][/b]
[spoiler]
Ce code a été programmé en Java, il est donc très facile à adapter ce code en C++, vous pouvez donc vous en servir pour vos projets sur calculatrice (par exemple pour un moteur CAS). :)
[/spoiler]
[b][u]Licence[/u][/b]
[spoiler]
Pas de licence, faite ce que vous voulez avec. ^^
[/spoiler]
Citer : Posté le 22/01/2015 16:14 | #
Pour ma propre information, qu'est-ce qu'une interface ? Je ne crois pas que ce concept existe en C++.
Citer : Posté le 22/01/2015 16:21 | #
C'est un concept du java, en gros c'est une série de méthode qui ne sont pas implémentée, et que des classes peuvent implémenter pour "implémenter" cette interface. En gros, c'est une sorte d'héritage sauf que la classe mère n'implémente rien et ne possède pas de variable.
Ajouté le 22/01/2015 à 16:23 :
C'est plus ou moins utilisé pour remplacer l'héritage multiple en C++
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2
merci a tout le monde pour son soutien
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm
(dont je connais le nom, mais pas vous )Arcuz !Citer : Posté le 22/01/2015 16:26 | #
C'est des fonctions virtuelle pures quoi. Les fonctions virtuelles sont faites pour qu'on puisse appeler une méthode overloadée à partir d'un pointeur sur une classe parente, et les pures sont celles qui ne sont pas implémentées pour ladite classe parente.
Citer : Posté le 22/01/2015 16:28 | #
C'est pas exactement ça, mais c'est le principe oui
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2
merci a tout le monde pour son soutien
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm
(dont je connais le nom, mais pas vous )Arcuz !