Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
Discussion fermée
#1 21-12-2014 14:01:48
- aminemoi
- Membre
- Inscription : 25-11-2014
- Messages : 17
ppcm de 2 nombres entiers
Salut à tous
j'espère que vous me corrigiez cette algorithme s'il y en a des fautes
l'énoncé : Ecrire un algorithme qui permet de calculer et d'afficher le PPCM de 2 nombres entiers
algorithme PPCM
var a , b ,c ,d : entier
debut
"Ecrire " entrez a, b
lire a,b
a <- c
b <- d
tant que a <> b
si a > b alors
b+d <- b
sinon
a+c <- c
fin tant que
a ," :Ecrire " le PPCM est
fin
Merci
Hors ligne
#2 21-12-2014 20:39:37
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 948
Re : ppcm de 2 nombres entiers
Salut,
Programmation avec quel langage ?
En écrivant :
a <-- c tu veux dire ranger a dans c ?
Avec une calculette programmable Texas, on écrit c <- a
Bon, la traduction de ton code en Python ne fonctionne pas : j'obtiens une boucle infinie dont on ne sort pas...
J'ai trouvé l'erreur :
var a , b ,c ,d : entier
debut
"Ecrire entrez a, b"
lire a,b
c=a
d=b
Tant que a <> b
si a > b alors
b=b+d
sinon si a<b
a=a+c <--- Là tu as écrit : a+c <- c
Fin tant que
Ecrire " le PPCM est"
Ecrire a
fin
Tu dois modifier les valeurs de a et b, pas celles de c et b...
En fait la méthode est celle du calcul des multiples consécutifs de a et b, par ajouts de c et d, jusqu'à ce qu'on obtienne deux multiples de c et d égaux.
Attention aussi que le sinon tout court est "techniquement" incorrect, même, si cela fonctionne quand même : si on n'a pas a > b, c'est que a < b, certes mais aussi a = b, non (a>b) c'est a<=b
Traduction Python :
b = 160
c,d=a,b
while a!=b:
if a > b:
b+=d
elif a < b:
a+=c
print (a,b)
print ()
print ("Le PPCM de", c,"et",d,"est :",a)
Sortie :
280 160
280 320
420 320
420 480
560 480
560 640
700 640
700 800
840 800
840 960
980 960
980 1120
1120 1120Le PPCM de 140 et 160 est : 1120
Je me suis abstenu de demander l'entrée des nombres a et b, je les ai fournis directement : gain de temps pour le débogage...
On peut aussi utiliser le fait que : ppcm(a,b)*pgcd(a,b) = a*b
On calcule pgcd(a,b) par l'algorithme d'Euclide et on divise le produit de a et b par ce PGCD...
@+
Dernière modification par yoshi (22-12-2014 13:39:41)
Arx Tarpeia Capitoli proxima...
Hors ligne
#3 22-12-2014 13:33:33
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 948
Re : ppcm de 2 nombres entiers
Bonjour,
Le même avec AlgoBox (langage particulièrement "verbeux") :
a EST_DU_TYPE NOMBRE
b EST_DU_TYPE NOMBRE
c EST_DU_TYPE NOMBRE
d EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
AFFICHER " Entrez les nombres a et b : "
LIRE a
LIRE b
c PREND_LA_VALEUR a
d PREND_LA_VALEUR b
TANT_QUE ( a ! = b) FAIRE
DEBUT_TANT_QUE
SI ( a>b) ALORS
DEBUT_ SI
b PREND_LA_VALEUR b+d
FIN_SI
SINON
DEBUT_SINON
a PREND_LA_VALEUR a+c
FIN_SINON
AFFICHER a
AFFICHER " "
AFFICHER b
FIN_TANT_QUE
AFFICHER " "
AFFICHER " Le PPCM de "
AFFICHER c
AFFICHER " e t "
AFFICHER d
AFFICHER " e s t "
AFFICHER a
FIN_ALGORITHME
Sortie :
***Algorithme lancé***
Entrez les nombres a et b :
Entrer a : 140
Entrer b : 180
280 180
280 360
420 360
420 540
560 540
560 720
700 720
840 720
840 900
980 900
980 1080
1120 1080
1120 1260
1260 1260Le PPCM de 140 et 180 est 1260
***Algorithme terminé***
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#4 16-12-2017 11:58:39
- Ahlem MDH
- Invité
Re : ppcm de 2 nombres entiers
Merci
#5 21-01-2018 11:57:54
- Boris Love
- Invité
Re : ppcm de 2 nombres entiers
Je ne suis pas d'accord avec ce algo sauf ci c'est un language que je ne metrise pas.
Fait un peu le PPCM (9,6).je vais resté la solution!!!
#6 21-01-2018 13:21:33
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 948
Re : ppcm de 2 nombres entiers
Bonjour,
Avec Python :
9 12
18 12
18 18Le PPCM de 9 et 6 est : 18
Avec AlgoBox :
***Algorithme lancé***
Entrer les nombres a et b :
9 12
18 12
18 18
Le PPCM de 9 et 6 est 18
***Algorithme terminé***
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#7 09-04-2018 12:38:44
- PROGRAMING
- Invité
Re : ppcm de 2 nombres entiers
PPCM EN LANGAGE C#
---------------------------------------------------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EXERCICE22
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Veuillez saise le premier nombre:\n");
int a = int.Parse(Console.ReadLine());
Console.WriteLine("Veuillez saise le Deuxieme nombre:\n");
int b = int.Parse(Console.ReadLine());
int c = a;
int d = b;
while (a != b)
{
if (a > b)
b += d;
else if (a < b)
a += c;
Console.WriteLine(+a+ ","+ b);
}
Console.WriteLine("Le PPCM de " + c + " et " + d + " est : " + a);
Console.ReadKey();
}
}
}
--------------------------------------------------------------------------------------------------------------------
#8 08-01-2019 19:26:36
- maz
- Invité
Re : ppcm de 2 nombres entiers
Program PPCM;
var
max,min,a,b:Integer ;
Begin
WriteLn(' Donner la valeur de a puis b ');
Readln(a,b);
if (a>b) Then
Begin
max:=a ;
min:=b ;
end
Else
Begin
max:=b;
min:=a;
end;
while (max mod min <>0) do
begin
max:= max +a+b-min ;
end;
WriteLn(' Le PPCM est ');
WriteLn(max);
end.
Pages : 1
Discussion fermée