THÉORÈME DE PYTHAGORE ET SA RÉCIPROQUE

Messages postés
112
Date d'inscription
dimanche 23 mars 2003
Statut
Membre
Dernière intervention
1 août 2008
- - Dernière réponse : nicomilville
Messages postés
3498
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
- 3 juil. 2008 à 18:22
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/46298-theoreme-de-pythagore-et-sa-reciproque

Afficher la suite 
ralecul
Messages postés
112
Date d'inscription
dimanche 23 mars 2003
Statut
Membre
Dernière intervention
1 août 2008
-
Salut !

Voilà enfin une source qui n'a aucun intérêt ! (second degré inside, comprend qui peut...)
Cependant c'est un bon prétexte pour aborder la séparation code javascript / document xhtml.

La réalisation est malheureusement un petit peu bâclé :
- fonctions globales, pas de namespace
- répétition du code pour l'ajout des event (pour IE et les autres)
- erreur lors du test pour l'ajout de l'event onload

J'aimerais bien avoir un avis sur cette autre façon de présenter le même code :
(Utilisation d'un singleton comme namespace pour éviter les collisions)

var Pythagore = new function() {

function carre(valeur) {
return valeur*valeur;
}

function reciproque(cotelong, cote2, cote3) {
var carre_cotelong = carre(cotelong);
var carre_cote2 = carre(cote2);
var carre_cote3 = carre(cote3);
var carre_cote = carre_cote2 + carre_cote3;

if(carre_cotelong != carre_cote) {
return "Non";
} else {
return "Oui";
}
}

function hypotenuse(cote1, cote2) {
var hypotenuse = null;
hypotenuse = carre(cote1) + carre(cote2);
hypotenuse = Math.sqrt(hypotenuse);
return "La longueur de l'hypotenuse est : "+hypotenuse;
}

function cote3(hypotenuse, cote2) {
var cote3 = null;
cote3 = carre(hypotenuse) - carre(cote2);
cote3 = Math.sqrt(cote3);
return "La longueur du 3eme cote est : "+cote3;
}

function addEvent(element, event, callback) {
if (element.addEventListener)
element.addEventListener(event, callback, false);
else
element.attachEvent('on'+event, callback);
}

function init() {
function $(id) {
return document.getElementById(id);
}

addEvent($('button1'), 'click', function() { $('resultat1').value = reciproque(document.form1.texte1.value, document.form1.texte2.value, document.form1.texte3.value); });
addEvent($('button2'), 'click', function() { $('resultat2').value = hypotenuse(document.form2.texte1.value, document.form2.texte2.value); });
addEvent($('button3'), 'click', function() { $('resultat3').value = cote3(document.form3.texte1.value, document.form3.texte2.value); });
};

addEvent(window, 'load', init);
};
nicomilville
Messages postés
3498
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
25 -
Salut, merci pour ce commentaire constructif, que voulais tu faire passer comme message, je dois changer le code, c'est ça ???
ralecul
Messages postés
112
Date d'inscription
dimanche 23 mars 2003
Statut
Membre
Dernière intervention
1 août 2008
-
C'est toi qui a dit que tu voulais un commentaire constructif ou non, faudrait savoir !
Bon j'arrête le second degré...

Je te proposes juste de comparer le code que tu proposes avec la version que j'ai proposé, c'est tout.
nicomilville
Messages postés
3498
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
25 -
ok, merci a toi, je ne me suis pas plein de ton commentaire, au contraire je te remercie de l'avoir posté, je n'avais juste pas compris le sens de ton message !!!

a++
dvdstory
Messages postés
196
Date d'inscription
dimanche 23 janvier 2005
Statut
Membre
Dernière intervention
10 août 2009
-
Pour moi la meilleur application sur Pythagore reste http://www.egrunenberger.com/pythagore/

Au lieu de de faire 2 formulaires différent pour obtenir l'hypoténuse ou un autre côté, tu peux ne faire qu'une seule forme comme sur http://www.egrunenberger.com/pythagore/ avec les 3 côtés, et tu calcules le côté qui est égale a rien cad qui n'a pas été rempli par l'utilisateur.