hg S’enregistrer Forum révision Tunisie - Bac Tunisie Algorithmique et programmation , cours, devoir, exercice,edunet

Forum révision Tunisie - Bac Tunisie Algorithmique et programmation , cours, devoir, exercice,edunet Index du Forum

hg Revision tunisie scolaire 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 révision tunisie , 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    Forum révision Tunisie - Bac Tunisie Algorithmique et programmation , cours, devoir, exercice,edunet 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 715
Masculin
Point(s): 5 484
Moyenne de points: 0

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

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
Publicité






Posté le: Ven 19 Fév - 22:30 (2010)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
 
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 715
Masculin
Point(s): 5 484
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 à 05:29 (2017)    Sujet du message: Calcul du PGCD

 
Revenir en haut
Montrer les messages depuis:   
bg bd
Poster un nouveau sujet   Répondre au sujet    Forum révision Tunisie - Bac Tunisie Algorithmique et programmation , cours, devoir, exercice,edunet 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