hg S’enregistrer Bac Tunisie Algorithmique et programmation : BAC INFORMATIQUE En Tunisie forum informatique Tunisie

Bac Tunisie Algorithmique et programmation : BAC INFORMATIQUE En Tunisie  forum informatique Tunisie Index du Forum

hg Bac Tunisie Algorithmique et programmation TIC réseaux php javascript sql access activités programmation c
hg
FAQ FAQ Rechercher Rechercher Membres Membres Groupes Groupes Profil Profil Se connecter pour vérifier ses messages privés Messages Privés Connexion Connexion


 Forum de l'excellence et l'excellence en innovation 
Pour participer à notre Forum, vous devez
 
inscrire sur notre forum a partir d'ici
 
  NB :
Les membres ''zéro messages'' seront supprimés automatiquement après un nombre de jours donné !!!!
             
   
 
  
forum d'aide informatique : internet, réseau, programmation informatique ...
Calcul du PGCD
 
 
Poster un nouveau sujet   Répondre au sujet    Bac Tunisie Algorithmique et programmation : BAC INFORMATIQUE En Tunisie forum informatique Tunisie Index du Forum -> Algorithmique & programmation -> Algorithmes d'arithmétiques
hg Sujet précédent :: Sujet suivant   hd
Auteur Message
KARIMOS
Administrateur

Hors ligne

Inscrit le: 02 Nov 2008
Messages: 1 710
Masculin
Point(s): 5 479
Moyenne de points: 0

Posté le: Ven 19 Fév - 22:30 (2010)    Sujet du message: Calcul du PGCD Répondre en citant

PublicitéSupprimer les publicités ?
Ecrire une fonction qui renvoie PGCD(a,b) en utilsant l'algorithme d'Euclide (méthode par division). Commentaire
  • PGCD : Plus Grand Diviseur Commun
  • Algorithme d'Euclide (Division) : PGCD (a,b) = PGCD (b,r) avec r = a mod b
On répétera ceci jusqu'à ce que b = 0, dans ce cas le PGCD est égal à a
Exemple :
  • Entrée : a=18, b=24
  • Sortie : PGCD(18,24)=6
correction

Code:
VAR a,b:LONGINT;

BEGIN
WRITE('Introduisez le 1er nombre: ');READLN(a);
WRITE('Introduisez le 2ème nombre: ');READLN(b);
WHILE NOT (a*b=0) DO
  BEGIN
  IF a>b THEN a:=a-b
  ELSE b:=b-a;
  END;
IF a=0 THEN WRITELN ('PGCD=',b)
ELSE WRITELN ('PGCD=',a);
END.




 
Revenir en haut
salwitta


Hors ligne

Inscrit le: 05 Fév 2010
Messages: 4
Point(s): 4
Moyenne de points: 0

Posté le: Mer 24 Mar - 20:44 (2010)    Sujet du message: Calcul du PGCD Répondre en citant

oui mais la methode que vous avez utilise est la methode de differences,
voici une fonction qui utilise la methode d'euclide pour calculer le PGCD de deux entiers a et b:


Function PGCD (a,b:integer):integer;
var r :integer;
begin
while b<>0 do
begin
r:=a mod b;
a:=b;
b:=r;
end;
PGCD:=a;
end;


 
Revenir en haut
salwitta


Hors ligne

Inscrit le: 05 Fév 2010
Messages: 4
Point(s): 4
Moyenne de points: 0

Posté le: Mer 24 Mar - 20:56 (2010)    Sujet du message: Calcul du PGCD Répondre en citant

et il ya encore une troixieme methode de crible d'Eratosthène dont le principe est le suivant:
L'algorithme procède par élimination : il s'agit de supprimer d'une table des entiers de 2 à N tous les multiples d'un entier. En supprimant tous les multiples, à la fin il ne restera que les entiers qui ne sont multiples d'aucun entier, et qui sont donc les nombres premiers.
On commence par rayer les multiples de 2, puis à chaque fois on raye les multiples du plus petit entier restant.
À la fin du processus, tous les entiers qui n'ont pas été rayés sont les nombres premiers inférieurs à N.
L'animation que vous trouverez sous ce lien illustre le crible d'Eratosthène pour N=120 :
http://www.sendspace.com/file/jjkd5r
et voici le code en Pascal:
program Crible_Eratosthene;
uses wincrt;

Type
  TAB = array[1..1000] of integer;

Procedure Saisie(var n: integer);
begin

  repeat
     write('Saisir N: ');
     readln(n);
  until (n in [2..100])
end;

Procedure Affichage(n: integer; T: TAB);
var
  i: integer;
begin
  for i:=1 to n do
  begin
     if (T[i]>0) then
        writeln(T[i]);
  end; 
end;

Procedure Premiers(n: integer; var T: TAB);
var
  i,j: integer;
begin
  for i:=1 to n do
      T[i] := i;

  for i:=2 to n-1 do
      for j:=i+1 to n do
          if ((T[i]>0) and (T[j]>0) and (T[j] mod T[i]=0)) then
             T[j] := -1;
end;

var
  N: integer;
  T: TAB;

Begin

  Saisie(N);
  Premiers(N,T);
  Affichage(N,T)

end.









 


 
Revenir en haut
KARIMOS
Administrateur

Hors ligne

Inscrit le: 02 Nov 2008
Messages: 1 710
Masculin
Point(s): 5 479
Moyenne de points: 0

Posté le: Jeu 25 Mar - 11:55 (2010)    Sujet du message: Calcul du PGCD Répondre en citant

merci  Okay  

 
Revenir en haut
Contenu Sponsorisé






Posté le: Aujourd’hui à 03:24 (2016)    Sujet du message: Calcul du PGCD

 
Revenir en haut
Montrer les messages depuis:   
bg bd
Poster un nouveau sujet   Répondre au sujet    Bac Tunisie Algorithmique et programmation : BAC INFORMATIQUE En Tunisie forum informatique Tunisie Index du Forum -> Algorithmique & programmation -> Algorithmes d'arithmétiques Toutes les heures sont au format GMT + 1 Heure
 
Page 1 sur 1

 
Sauter vers:  
Index | créer forum gratuit | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation