A voir également:
- Exercice algorithme
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
- Logiciel algorithme gratuit - Télécharger - Édition & Programmation
- Exercice algorithme bts cg ✓ - Forum Programmation
- Code ascii algorithme - Guide
- Traitement d'exercice - Forum Bureautique
8 réponses
plorytriass
Messages postés
17
Date d'inscription
samedi 5 janvier 2008
Statut
Membre
Dernière intervention
21 décembre 2008
10
24 mars 2008 à 09:03
24 mars 2008 à 09:03
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 .
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 .
djsk90
Messages postés
3
Date d'inscription
lundi 1 décembre 2008
Statut
Membre
Dernière intervention
9 février 2009
3
19 janv. 2009 à 15:30
19 janv. 2009 à 15:30
(*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.
(*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.
plorytriass
Messages postés
17
Date d'inscription
samedi 5 janvier 2008
Statut
Membre
Dernière intervention
21 décembre 2008
10
28 mars 2008 à 16:08
28 mars 2008 à 16:08
de rien .
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
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
hamza zag
Messages postés
2
Date d'inscription
vendredi 16 mai 2008
Statut
Membre
Dernière intervention
17 mai 2008
2
17 mai 2008 à 17:39
17 mai 2008 à 17:39
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
svp aidez moi concernant ce sujet "tri à bulles" concernant l'algorithme j'ai besoin d'une solution de programme vrai
écrive la solution
écrive la solution
salut
je vx s'avoire sur les methode de tri et leure desfintion
merci
je vx s'avoire sur les methode de tri et leure desfintion
merci
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
<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
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.
et mercie.
25 mars 2008 à 11:39
11 avril 2008 à 13:07
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
5 févr. 2009 à 17:32
16 févr. 2009 à 22:31
debut
ecrire('donner A :');
lire(A);
ecrire('donner B :');
lire(B);
Si A<B alors Ecrire(A)
sinon Ecrire(B);
fin si;
fin.