Cliquez sur le code d'un exemple pour l'inscrire dans la fenêtre en bas de page
Cliquez sur le bouton [Exécute le code].
Modifiez le code ou composez votre propre code pour vous exercer.
Classes
Les classes en Javascript ne permettent pas l'héritage ni la création de sous-classes. Elles sont souvent appelées objets.
La déclaration d'une classe commence par le mot clé function suivi du nom de la
classe et d'une liste de paramètres (arguments). Les affectations, instructions et les définitions de méthodes sont ensuite placées entre deux accolades
function syracuse(n) {...} Le nom de la classe est 'syracuse', le seul paramètre est n.
function syracuse(n) {
this.debut=n;
this.sommet=n;
this.haut=0;
this.altitude=0;
var x=n;
for(var i=0;x>1;i++) {
if(x%2==0){
x /=2;
if(this.altitude==0 && xthis.sommet) this.sommet = x;
}
}
this.delai = i;
}
var k= prompt("valeur du paramètre n = ","27");
var z = new syracuse(k);
alert("premier terme : "+z.debut+"\nsommet : "+z.sommet+"\ndurée du vol : "+
z.delai+"\nvol en altitude : "+z.altitude+"\nmontées : "+z.haut+"\n");
En écrivant var z = new syracuse(k); on crée une instance z de la classe syracuse, le mot-clé new permet d'allouer un emplacement en mémoire pour cet objet.
Les propriétés sont
z.debut : l'entier de départ,
z.sommet : la valeur la plus élevée obtenue,
z.haut : nbre de montées,
z.altitude : durée du vol en altitude,
z.delai : durée.
Applet java permettant de voir les trajectoires.
Page de liens sur le problème de Syracuse-Collatz-Kakutani
propriétés
a, b, c
méthode
perimetre() calcule le périmètre du triangle.
function triangle(a, b, c) {
if(a+b < c || a+c < b || b+c < a || a < 0 || b < 0 || c < 0) {
this.ok=false;
} else {
this.ok=true;
this.a = a;
this.b = b;
this.c = c;
}
function perimetre() {
return this.a+this.b+this.c;
}
this.perimetre = perimetre;
}
var a= prompt("côté a = ","10");
var b= prompt("côté b = ","7");
var c= prompt("côté c = ","5");
var z = new triangle(a, b, c);
var p = z.perimetre();
alert("Périmètre : " + p + "\n");
Propriété
n : l'entier
Méthodes associées au nombre entier
pgcd() : n.pgcd(a) détermine le pgcd de n et de a
ppdiv() : le plus petit diviseur (autre que 1, lorsque n >1)
estpremier() : premier ou non.
function nbre(n) {
this.n=n;
// pgcd du nombre et de b
function pgcd(b) {
var u=this.n,v=b, w;
u=Math.abs(u);v=Math.abs(v);
if(u<v) {w = u;u=v;v=w;}
while(v != 0) {w=u%v;u=v;v=w;}
return u;
}
this.pgcd = pgcd;
// plus petit diviseur autre que 1
function ppdiv() {
if(this.n%2==0) return 2;
for(var i=3;i*i<=this.n;i += 2)
if(this.n% i ==0) return i;
return this.n;
}
this.ppdiv = ppdiv;
function estpremier() {
return(this.ppdiv() == this)
}
this.estpremier = estpremier;
}
var a = prompt("Un entier n",""),
n= new nbre(a),
b = prompt("Deuxième entier b","");
var z = n.pgcd(b);
alert("Le pgcd de "+n+" et de "+ b +" est " + z);
var u = n.ppdiv();
alert("Le plus petit diviseur de "+n+" autre que 1 est "+ u);
Pour un premier contact, écrivez-moi en utilisant ce formulaire.
Les correspondances suivantes pourront se faire par messagerie électronique. Important : Si votre question a un quelconque rapport avec un travail personnel (Devoir TIPE Master...) , vous devez absolument me le préciser dès maintenant et m'indiquer très précisément les limites des informations demandées. Vous devez aussi avertir la personne qui dirige votre travail ou le corrige de cette communication et lui montrer les documents fournis.