Exercice algorithme

sousou -  
 14041988M -
Bonjour,
jai un exercice d'algorithm à resolu :
ecrire un programme qui permet saisir un entier de l'intervalle[10000,20000]et d'afficher cet entier en ordonnant ces différents chiffres
exemples: 12942sera affiché 12249.
Configuration: Windows XP
Firefox 2.0.0.12

8 réponses

  1. plorytriass Messages postés 17 Statut Membre 10
     
    Tu peut le fais comme sa :

    1) Début Pro
    2) répéter
    lire(N) {Entrée de chifre}
    jusqu'à (N dans [10000..20000]
    3) A<-- N Mod 10
    4) B<-- (N Mod 100) Div 10
    5) C<-- (N Mod 1000) Div 100
    6) D<-- (N Mod 10000) Div 1000
    7) E<-- (N Mod 100000) Div 10000

    {N s'écrit comme sa N<-- E*10000+D*1000+C*100+B*10+A Maintenant on va juste changer quelque ordre }

    8) N<-- E*10000+D*1000+A*100+B*10+C
    9) Fin Pro

    Ok , j'espert que je t'aide .
    5
    1. Royal88 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
       
      merci bcp pour ton aide
      0
    2. fatma
       
      Bonjour
      mais cette solution est valable que pour cet exemple, donc il faut généraliser
      je pense de convertir ce nombre en chaine ou en tableau et d'appliquer l'une de méthodes du tri connues
      0
    3. jihad
       
      un algorithme qui permet de Lire 2 nombres et affiche le plus grand des deux
      0
      1. bouhzama > jihad
         
        variable A,B : numerique;
        debut
        ecrire('donner A :');
        lire(A);
        ecrire('donner B :');
        lire(B);
        Si A<B alors Ecrire(A)
        sinon Ecrire(B);
        fin si;
        fin.
        0
  2. djsk90 Messages postés 4 Statut Membre 3
     
    (*tri batcher*)
    (*Pour accélérer la vitesse d'un tri par échange, il est nécessaire de comparer des éléments qui ne sont plus adjacents et c'est ce que proposa K.E. Batcher en 1968. En voici une description appliquée à un tableau T de N éléments numérotés de 1 à N.

    Soit t, la plus petite valeur telle que 2t>=N.
    Soit p la valeur 2t-1, c'est le plus grand écart exprimé sous forme de puissance de 2 qui existe entre des numéros de position d'éléments de T.
    *)
    PROGRAM Batcher;

    USES CRT;

    VAR N, i, j, p, p2, q, r, t, d : WORD;
    A : ARRAY[1..10000] OF BYTE;
    Fin : BOOLEAN;
    echange, comparaisons : longint;

    PROCEDURE Affiche;
    VAR i:WORD;
    BEGIN

    FOR i:=1 TO N DO
    WRITE (A[i]:4);
    WRITELN
    END;

    PROCEDURE SWAP(VAR a,b:BYTE);
    VAR Tmp:BYTE;
    BEGIN
    Tmp:=a;
    a:=b;
    b:=Tmp ;
    echange:=echange+1;
    END;

    BEGIN
    CLRSCR;
    N:=10;

    RANDOMIZE;
    echange :=0;
    comparaisons:=0;
    FOR i:=1 TO N DO
    begin
    A[i]:=RANDOM(50);
    A[i]:=N-i;
    end;

    WRITELN('Avant le tri:');
    Affiche;

    p:=1;
    WHILE p<N DO p:=p SHL 1;
    p2:=p SHR 1;

    WHILE p>=2 DO
    BEGIN
    p:=p SHR 1;
    q:=p2;
    r:=0;
    d:=p;
    Fin:=FALSE;
    WHILE NOT Fin do
    BEGIN
    FOR i:=0 TO N-d-1 DO
    begin

    IF (i AND p) =r THEN
    begin
    comparaisons:=comparaisons+1;
    IF A[i+1]>A[i+d+1] THEN SWAP(A[i+1],A[i+d+1]);
    end;
    end;
    IF q<>p THEN BEGIN
    d:=q-p;
    q:=q SHR 1;
    r:=p;
    Fin:=FALSE
    END
    ELSE Fin:=TRUE;
    END;
    END;
    WRITELN('Apres le tri:');
    Affiche;
    Writeln('Echange = ',echange);
    Writeln('Comparaisons = ',comparaisons);
    END.
    3
  3. plorytriass Messages postés 17 Statut Membre 10
     
    de rien .
    2
    1. Royal88
       
      pouvez_vous m'aider à resoudre ce probleme svp et merci d'avance:

      soit le tableau T1 contenant n lettre majuscule (de A à Z), n étant un entier compris entre 5 et 20
      * on désire trier en ordre croissant les éléments de T1 et les ranger dans un tableau T2, 1- chercher la lettre qui a le petit cod ASCII dans T1,et ranger cette lettre dans T2, ensuite remplacer cette lettre par '*' dans T1:
      ecrire un prgramme qui permet de : *saisir les éléments T1
      *trier les éléments deT1 et les ranger dans T2
      *afficher les éléments de T2
      0
  4. hamza zag Messages postés 2 Statut Membre 2
     
    algo tab min
    var
    tab:tableau[100]de entier
    i,n,min:entier
    debut
    repeter
    ecrire("donner un entier positive"),lire(n)
    jusqu'a (n >0)
    pour i de 1 à n faire
    lire ( tab [i])
    fin pour
    min=0
    pour i de 1 à n faire
    si ( min>=tab[i])
    min=tab[i]
    ecrire(" ",min)
    fin pour

    (=) c'est un fléche
    2
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. fatou
     
    svp aidez moi concernant ce sujet "tri à bulles" concernant l'algorithme j'ai besoin d'une solution de programme vrai
    écrive la solution
    2
  7. boujie87
     
    salut
    je vx s'avoire sur les methode de tri et leure desfintion
    merci
    1
    1. fatma
       
      Bonjour tu peux voir mon cours :

      <gras>LES METHODES DE TRI D’UN TABLEAU


      Le mot TRI en informatique désigne l’action d’ordonner des objets selon un critère (croissant/décroissant). Un tableau est trié (ordonné) lorsqu'il existe une relation entre ses différents éléments. On parle de :
      - Tri croissant : l'élément n° i <= l'élément n° i+1.
      - Tri décroissant : l'élément n° i >= l'élément n° i+1.
      Dans ce cours on va voir trois méthodes de TRI connues sous les noms de Tri par sélection, tri à bulles et tri par insertion.

      I/ Tri par Sélection :
      Principe :
      1- Comparer tout les éléments du tableau pour sélectionner le plus petit/grand.
      2- Permuter le plus petit/grand élément trouvé avec le premier élément du tableau.
      3- Refaire les étapes 1 et 2 : chercher le plus petit/grand élément du tableau sauf le premier puis l’échanger avec le second élément et ainsi de suite.
      Ce processus est répété (N-1) fois sachant que N = nombre d’élément du tableau qu’on veut trier.

      Program TriSelect;
      Uses wincrt;
      Const nmax=100;
      Type tab=array[1..nmax]of integer;
      var t:tab;
      n:integer;

      Procedure saisie (Var V : TAB ; Var TAILLE : integer) ;
      var i:integer;
      begin
      repeat
      write('Donner la taille du tableau : ');readln(taille);
      until taille in [1..Nmax];
      for i:=1 to taille do
      begin
      write('V[',i,']= ');readln(v[i]);
      end;
      end;

      Procedure select(Var V : TAB ; TAILLE : integer);
      var i, j, aux, posmin:integer;
      begin
      for i:=1 to (TAILLE-1) do
      begin
      posmin := i;
      for j :=i+1 to TAILLE do
      if V[j]<V[posmin] then
      posmin:= j;
      if posmin <>i then
      begin
      Aux := V[i] ;
      V[i]:= V[posmin];
      V[posmin] := Aux ;
      end;
      end;
      end;

      Procedure affichage(v:tab;taille:integer);
      var i:integer;
      begin
      writeln('Après le tri croissant le contenu du tableau est : ');
      for i:=1 to n do
      writeln('v[',i,']= ',v[i]);
      end;

      BEGIN
      saisie(T,n);
      select(T,n);
      affichage(T,n);
      END.

      II/ Tri à bulles :
      Principe :
      C’est une méthode de tri qui consiste à comparer les éléments du tableau par paires adjacentes.
      On peut la traduire par l’algorithme formel suivant :
      1- Comparer la première paire d’éléments,
      2- Si T[1]>T[2] alors permuter T[1] et T[2],
      3- Aller à la paire suivante et répéter les étapes 1 et 2 jusqu’à comparer la dernière paire,
      4- Si une permutation a été effectuée (ou plusieurs) alors répéter ce qu’on vient de faire, sinon les éléments du tableau sont triés.


      procedure bulle(var v:tab;taille:integer);
      var i, aux:integer;
      trouve:boolean;
      begin
      repeat
      trouve:=false;
      for i:=1 to (taille-1) do
      begin
      if v[i]>v[i+1] then
      begin
      Aux := V[i];
      V[i] := V[i+1];
      V[i+1] := Aux;
      trouve:=true;
      end;
      end;
      until (trouve=false);
      end;


      III/ Tri par Insertion :
      Principe :
      C’est une méthode de tri qui consiste à prendre les éléments de la liste un par un puis insérer chacun dans sa bonne place de façon que les éléments traités forment une sous liste triée.
      Cette méthode peut se traduire par l’algorithme formel suivant :
      1- On commence par le deuxième élément.
      2- Comparer l’élément choisi avec tous ses précédents dans la liste et l’insérer dans sa bonne place.
      3- Répéter l’étape 2 pour l’élément suivant jusqu'à arriver au dernier.

      Pour i De 2 A TAILLE Faire
      Trouve <-- Faux
      Pose <-- i
      j <-- i-1
      TantQue (j>=1) ET (Trouve = Faux) Faire
      Si V[Pose]<V[j]Alors
      Aux <-- V[j]
      V[j] <-- V[Pose]
      V[Pose] <-- Aux
      Pose <-- Pose-1
      j <-- j-1
      Sinon
      Trouve <-- Vrai
      FinSi
      Fin TantQue
      FinPour
      FIN INSERTION
      0
  8. klooooood
     
    j'ai un cable de reseaux mais n'est pas droit et je veux le changer un cable croisee q'est e que je peut le faire.

    et mercie.
    1
    1. ahmed
       
      on se propose de convertir en heures,minuteset secondes, un temps donnéen secondes
      0
  9. 14041988M
     
    permuter les valeur de A ET B. les valeurs initiales de A ET B SONT LUCS
    0