begin process at 2012 02 15 20:48:49
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > ALGORITHME D'EUCLIDE OU DIVISIONS SUCCÈSSIVES : CALCULE DU PGCD EN BONNE FORME !

ALGORITHME D'EUCLIDE OU DIVISIONS SUCCÈSSIVES : CALCULE DU PGCD EN BONNE FORME !


 Information sur la source

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Maths & Algorithmes Classé sous :algorithme, euclide, pgcd Niveau :Débutant Date de création :07/02/2007 Date de mise à jour :07/02/2007 15:47:41 Vu / téléchargé :11 704 / 195

Auteur : canibale

Ecrire un message privé
Site perso
Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

 Description

Salutations ! Je vous présente ce code (qui est ma première contribution pour phpcs).

je l'ai codé suite à un cours sur le PGCD (Plus Grand Commun Diviseur) en classe de 3ème.

J'ai regardé les sources sur la question et je me suis aperçu qu'aucune ne rédigeait comme notre professeur nous l'a demandée...

Voici donc ma source basée sur mes connaissances !

Source

  • <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  • <html xmlns="http://www.w3.org/1999/xhtml">
  • <head>
  • <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  • <title>Algorithme d'Euclide</title>
  • </head>
  • <body>
  • <fieldset>
  • <legend><b>Données</b></legend>
  • <form method="get"> <!--début du formulaire méthode get On affiche les nombres déjà entrés au cas ou il y a une faute de frappe que l'utilisateur veille modifier! -->
  • Nombre n°1 :
  • <input type="text" name="nbr1" id="nbr1" value="<?php if(isset($_GET['nbr1'])) echo $_GET['nbr1']; ?>" />
  • <br />
  • Nombre n°2 :
  • <input type="text" name="nbr2" id="nbr2" value="<?php if(isset($_GET['nbr2'])) echo $_GET['nbr2']; ?>" />
  • <br />
  • <input type="submit" value="Calculer !" />
  • </form>
  • </fieldset>
  • <?php
  • ##Euclide nous dit qu'il faut diviser le nombre le plus grand par le plus petit donc c'est chose faite !##
  • if(isset($_GET['nbr1']) && isset($_GET['nbr2'])) //pour ne pas exécuter le script pour rien ;)
  • {
  • if($_GET['nbr1'] >= $_GET['nbr2'])
  • {
  • $nbr1 = $_GET['nbr1'];
  • $nbr2 = $_GET['nbr2'];
  • }
  • else
  • {
  • $nbr1 = $_GET['nbr2'];
  • $nbr2 = $_GET['nbr1'];
  • }
  • ?>
  • <fieldset>
  • <legend><b>Résultat</b></legend>
  • <!--Affichage de la rédaction-->
  • PGCD(
  • <?=$nbr1?>
  • ;
  • <?=$nbr2?>
  • )<br />
  • On utilise l'algorithme d'Euclide<br />
  • Et on regroupe les résultats dans un tableau.
  • <center>
  • <table>
  • <thead>
  • <!-- En-tête du tableau -->
  • <tr>
  • <th>Dividende</th>
  • <th>Diviseur</th>
  • <th>Reste</th>
  • </tr>
  • </thead>
  • <tfoot>
  • <!-- Pied de tableau -->
  • <tr>
  • <th>Dividende</th>
  • <th>Diviseur</th>
  • <th>Reste</th>
  • </tr>
  • </tfoot>
  • <tbody>
  • <!-- Corps du tableau -->
  • <?php
  • $dividende = $nbr1; // le dividende est le premier nombre (nbr1/nbr2 = résultat entier +reste)
  • $diviseur = $nbr2; //le diviseur est donc le second nombre
  • $reste = $nbr1%$nbr2; //Opération de modulo pour obtenir le reste !
  • echo "<tr>
  • <td>$dividende</td>
  • <td>$diviseur</td>
  • <td>$reste</td>
  • </tr>"; //Affichage
  • while($reste != 0) // On fait l'opération qui suit dans une boucle
  • {
  • /*On décale : le reste devient le diviseur et le diviseur devient le dividende */
  • $dividende = $diviseur;
  • $diviseur = $reste;
  • echo "<tr>
  • <td>$dividende</td>
  • <td>$diviseur</td>"; //affichage
  • $reste = $dividende%$diviseur; //Modulo
  • echo "<td>$reste</td>
  • </tr>"; //affichage
  • }
  • ?>
  • </tbody>
  • </table>
  • </center>
  • <!--Fin de la rédaction-->
  • Or, dans l'algorithme d'Euclide le PGCD est le dernier reste non nul.<br />
  • PGCD(
  • <?=$nbr1?>
  • ;
  • <?=$nbr2?>
  • )
  • = <?=$diviseur?>
  • </fieldset>
  • <?
  • }
  • ?>
  • </body>
  • </html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Algorithme d'Euclide</title>
</head>
<body>
<fieldset>
<legend><b>Données</b></legend>
<form method="get"> <!--début du formulaire méthode get On affiche les nombres déjà entrés au cas ou il y a une faute de frappe que l'utilisateur veille modifier! -->
  Nombre n°1 :
  <input type="text" name="nbr1" id="nbr1" value="<?php if(isset($_GET['nbr1'])) echo $_GET['nbr1']; ?>" />
  <br />
  Nombre n°2 :
  <input type="text" name="nbr2" id="nbr2" value="<?php if(isset($_GET['nbr2'])) echo $_GET['nbr2']; ?>" />
  <br />
  <input type="submit" value="Calculer !" />
</form>
</fieldset>
<?php
##Euclide nous dit qu'il faut diviser le nombre le plus grand par le plus petit donc c'est chose faite !##
if(isset($_GET['nbr1']) && isset($_GET['nbr2'])) //pour ne pas exécuter le script pour rien ;)
{
	if($_GET['nbr1'] >= $_GET['nbr2'])
	{
	$nbr1 = $_GET['nbr1'];
	$nbr2 = $_GET['nbr2'];
	}
	else
	{
	$nbr1 = $_GET['nbr2'];
	$nbr2 = $_GET['nbr1'];
	}
?>
<fieldset>
<legend><b>Résultat</b></legend>
<!--Affichage de la rédaction-->
PGCD(
<?=$nbr1?>
;
<?=$nbr2?>
)<br />
   On utilise l'algorithme d'Euclide<br />
       Et on regroupe les résultats dans un tableau.
<center>
  <table>
    <thead>
      <!-- En-tête du tableau -->
      <tr>
        <th>Dividende</th>
        <th>Diviseur</th>
        <th>Reste</th>
      </tr>
    </thead>
    <tfoot>
      <!-- Pied de tableau -->
      <tr>
        <th>Dividende</th>
        <th>Diviseur</th>
        <th>Reste</th>
      </tr>
    </tfoot>
    <tbody>
      <!-- Corps du tableau -->
      <?php
   $dividende = $nbr1; // le dividende est le premier nombre (nbr1/nbr2 = résultat entier +reste)
   $diviseur = $nbr2; //le diviseur est donc le second nombre
   $reste = $nbr1%$nbr2; //Opération de modulo pour obtenir le reste !
   echo "<tr>
   			<td>$dividende</td>
			<td>$diviseur</td>
			<td>$reste</td>
		</tr>"; //Affichage
   while($reste != 0) // On fait l'opération qui suit dans une boucle
   {
   /*On décale : le reste devient le diviseur et le diviseur devient le dividende */
   $dividende = $diviseur;
   $diviseur = $reste;
   echo "<tr>
   			<td>$dividende</td>
			<td>$diviseur</td>"; //affichage
   $reste = $dividende%$diviseur; //Modulo
   echo "<td>$reste</td>
	</tr>"; //affichage
   }
   ?>
    </tbody>
  </table>
</center>
<!--Fin de la rédaction-->
Or, dans l'algorithme d'Euclide le PGCD est le dernier reste non nul.<br />
PGCD(
<?=$nbr1?>
;
<?=$nbr2?>
)
= <?=$diviseur?>
</fieldset>
<?
}
?>
</body>
</html>

 Conclusion

Ce script n'est pas optimisé mais le sera bientôt (?)
L'exemple en ligne ici : http://phenix-aventure.fr/euclide.php


Interce ptor alias Canibale

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

07 février 2007 15:47:43 :
Petites erreurs d'orthographes vu au moment de la validation...

 Sources de la même categorie

EXEMPLE D'APPLICATION DE L'ALGORITHME DE DIJKSTRA EN PHP par philtr8
CLEF POUR EAN 13 ET 14 par RaftY
FONCTION DE CALCUL DU NOMBRE DE DUEL UNIQUE POUR UN NOMBRE N... par mtrix000
Source avec Zip Source avec une capture TRIANGLE DE PASCAL ET SON ÉQUATION par vendeeHdLR89
Source avec Zip CONVERTISSEUR LAMBERT2 ÉTENDU EN COORDONNÉE GÉOGRAPHIQUE (LO... par varfendell

 Sources en rapport avec celle ci

EXEMPLE D'APPLICATION DE L'ALGORITHME DE DIJKSTRA EN PHP par philtr8
FONCTION DE CALCUL DU NOMBRE DE DUEL UNIQUE POUR UN NOMBRE N... par mtrix000
DECOMPOSITION D'UN NOMBRE EN PUISSANCES DE FACTEURS PREMIERS... par DarkTyranus
PGCD : ALGORITHME D'EUCLIDE PAR RECURSIVITÉ par iow4
Source avec Zip [FONCTION RÉCURSIVE] DETERMINER LE PGDC DE DEUX NOMBRES par Palleas_44

Commentaires et avis

Commentaire de iow4 le 07/02/2007 16:06:35

Salut,

Il existe pas mal de source traitant du PGCD, j'en avais moi même posté une ( conforme au recomandation de mon prof )
C'est dommage que ta source ne fasse pas intervenir la recursivité.

Commentaire de canibale le 07/02/2007 16:18:20

Surement les profs qui ne font pas faire la rédaction pareil...

Je pense que la récursivité monte un peu le niveau de la source voir la rend plus complexe pour les débutants... Une boucle étant plus simple !

Merci pour ton commentaire ;)

Commentaire de TheSin le 08/02/2007 10:35:25

sympa le code, ça faisait longtemps que j'avais plus vu de PGCD lol
optimisation:
<?=$nbr1?>            => Déconseillé
<?php echo $nbr1; ?>  => Mieux ;)

idem pour tous tes <? à remplacer par <?php  , car c'est aussi la balise ouvrante XML, voire d'autres encore
revoit aussi un peu xhtml, je suis certain qu'il ne passe pas à la validation (manque d'attributs principallement).
A par ça j'ai rien remarqué d'autres, j'ai  juste regardé en vitesse. ;-)

Commentaire de canibale le 08/02/2007 17:47:38

Ok merci (pourtant dans mon livre ou j'ai appris php ils disaient que <?=$variable?> était plus rapide que <?php echo $variable; ?>

Commentaire de iow4 le 10/02/2007 11:37:41

Oui peut être ici dans le cas ou tu ouvre une balise Php pour afficher chaque variable. Ca a beau être plus rapide si TheSin dit que c'est pas conseillé alors je pense que tu devrais oublier ça.
Le plus rapide pour afficher des chaines dynamiques c'est avec echo et les virgules sinon.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Algorithme de tri ... [ par LocalStone ] Salut à tous ! Il y a peut-être 1 mois et demi, j'ai lu un article - ou plutôt un tutorial - sur comment mettre en place un algorithme de tri automati Algorithmique ... [ par LocalStone ] Salut &#224; tous ...Alors voil&#224;, j'ai eu une id&#233;e et je cherche des personnes suc&#233;ptibles de pouvoir m'aider &#224; cr&#233;er une tel aide pour un algorithme ! [ par shaoling ] Bonjour, j'ai une &#233;nigme &#224; r&#233;soudre, et pour cela je compte bien m'aider du php ! Voici l'&#233;nigme :Pour la somme de 5 euros, on a a Combinaison, algorithme combinatoire, algo de boole [ par pssinjaune ] Bonjour a tous,je n'ai jamais étais une fleche en maths, je dois developper un algorithme qui permet d'afficher toute les combinaisons possible de N é Aide algorithme Ladder (situation industrielle) [ par JoeBlo25 ] Bonjour, j'ai une situation a réaliser en Ladder mais je ne sais pas par ou commencer (je suis débutant). J'ai 2 réservoirs allimentés par une décharg algorithme évolutionnaire [ par rafik077 ] bonjour, j'ai un projet sur létude comparative d'algorithme évolutionnaire(algorithme génétique).j'ai besoin de code c++ de méthodes drmoga et méthode Cherche algorithme de devinette [ par ycochard ] Bonjour,Je cherche l'algorithme qui se trouve derrière ce petit jeu :http://www.akinator.com/aki_fr/ (attention les yeux, ça flashe)Vous savez comment [PHP] Algorithme, Combinaison, Demande d'aide. [ par krochon75012 ] Bonjour à tous, J'ai pour projet de développer une application permettant à partir d'une liste de différents objet ayant tous différentes caractérist Algorithme de statistique [ par startech ] salut, je cherche comment faire les algorithme de statistique des sites webs nb: pas la paine les code source juste la méthode explicatif. merci de vo ALGORITHME DE DJIKSTRA [ par lyndamigri ] Bonjour j'ai un algorithme de djikstra suivent et je sait pas appliquer en php aide moi svp les données En entrée X : ensemble des sommets U : ensem


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,796 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales