Maths : le pgcd

Contenu du snippet

Salut all !

Voilà comme on à fais le PGCD en cours de Maths (je suis en 3ème) et qu'on devais essayer de faire des étapes pour le calculer ... (un mini mode demploi à partir de l'algo de base) j'ai mis mon petit grain de sel et je l'est fait en PHP :)

Bon me prenez pas trop pour un con parceque tout est expliqué : le prog est destiné à ma prof de maths qui ne connais rien donc évidament il a fallu broder !

Allez jarête de koser pour rien :

Source / Exemple :


// ####################################### \\
// #           PGCD par PoPo             # \\
// # 2003  -  http://popolinux.zapto.org # \\
// ####################################### \\

// Division Euclidiène (fonction)

function euclide($nombre, $diviseur){
        $entier = floor($nombre / $diviseur);         // entier (variable) est égale au quotient (sans les décimales) de la division de nombre (variable) par diviseur (variable)
        $reste = $nombre - $entier * $diviseur;       // reste (variable) est égale à nombre (variable) soustrait à entier (variable) multiplié par diviseur (variable)

        return $reste;                                // On renvoi la variable reste
}

// Calcul du PGCD (fonction)

function PGCD($val_a, $val_b){
        if($val_a < $val_b){                          // Si Valeur A est plus petite que Valeur B alors
                  $petit = $val_a;                    //   Petit est égal à Valeur A
                  $grand = $val_b;                    //   Grand est égal à Valeur B
        }else{                                        // Sinon
                  $petit = $val_b;                    //   Petit est égal à Valeur B
                  $grand = $val_a;                    //   Grand est égal à Valeur A
        }                                             // Fin de la condition

        $status = "ERR";                              // Définition du status (variable) à ERR

        while($status != "OK"){                       // Tant que status (variable) n'est pas OK (valeur) alors
                  $reste = euclide($grand, $petit);   //   reste (variable) est égale à la division euclidiène (fonction) de grand (variable) par petit (variable)
                  if($reste == 0){                    //   Si reste (variable) est égale à 0 (valeur) alors
                            $status = "OK";           //     status (variable) vaut OK (valeur)
                            $resultat = $petit;       //     resultat (variable) vaut petit (variable)
                  }else{                              //   Sinon
                            $status = "ERR";          //     status (variable) est égale à ERR (valeur)
                            $grand = $petit;          //     grand (variable) est égale à petit (variable)
                            $petit = $reste;          //     petit (variable) est égale à reste (variable)
                  }                                   //   Fin de la condition
        }                                             // Fin de la boucle conditionnelle

        return $resultat;                             // On renvoi la variable resultat
}

$a = 2622;                                            // La valeur A (variable) est égale à 2622 (valeur)
$b = 2530;                                            // La valeur B (variable) est égale à 2530 (valeur)

echo PGCD($a,$b);                                     // On affiche le résultat de la fonction PGCD ou a (valeur) est le premier paramètre et ou b (valeur) est le second

?>

Conclusion :


PoPo 2003
http://popolinux.zapto.org

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.