Un algorithme est avant tout une description non ambiguë en un ensemble fini d´étapes de la résolution d'un problème. Le programme quand à lui est la traduction dans un "Langage de Programmation" de l'algorithme. Une fonction mathématique est une relation entre un ou plusieurs élément de depart et un unique élément dárrivé d'un autre ensemble.Consiérons par exemple la resolution d'une équation du premier degré: La fonction f(a,b)->x
l'algorithme: degré_1(a,b) : calcule de la solution ax+b=0 si a==0 alors ERREUR: ce n'est pas une équation du premier degré sinon x=-(b/a) Le programme en Java public class Equation { public static double degre1(double a, double b) throws Exception { if (a==0) throw new Exception("Pas du premier degré"); else return b/a?; } remarques:
Trouvons maintenant le cas d'une équatoin du second degré
en effet une équation du second degré peut renvoyé 2 solutions L'argorithme degré_2(a,b,c) : Calcul les racines x1 et x2 de l'équation ax2+bx+c=0 si a==0 alors Cette équation est une équation du premier degré et on a: x1=x2=degré1(b,c) sinon , soit Delta=(b*b - 4*a*c); si delta >= 0 x1=(-b+sqrt(delta))/2*a,x2=(-b-sqrt(delta))/2*a sinon ERREUR Ici on rearque que pour réalisé cet algorithme nous avons utilisé un autre algorithme; c'est une décomposition descendante. En terme de fonction nous aurons un résultat par composition de fonctions. comment une fonction pourrait-elle retourné 2 valeurs? ce n'est pas possible. Il faut donc trouvé une solution permettant de retourné une seule valeur représentant le couple. Nous créons pour cela une structure de donné pouvant représenté RxR, en Java cela donne: public class Couple { public double x; public double y; } La classe Couple est une définition abstraite, pour créer un couple il faut "l'instancié" (cad le créer et l'ajouté a l'ensemble des objets du programme). La commande new permet de réalisé cette opération. new Couple(); Créra donc un couple et nous pourrons ensuite l'utilisé. D'où le programme en java: On ajoute la méthode suivante à la classe Equation public static Couple degre2(double a, double b, double c) throws Exception { Couple resultat=new Couple(); //Création d'un couple if (a==0) { resultat.x=resultat.y=degre1(b,c); } else { double delta=(b*b-4*a*c); if (delta>=0) { resultat.x=(-b+sqrt(deltat))/(2*a); resultat.x=(-b+sqrt(deltat))/(2*a); } else throw Exception("Erreur delta négatif"); } |
Accueil >