Exercice pascal"trie"
Fermé
abdel2007
Messages postés
34
Date d'inscription
lundi 23 octobre 2006
Statut
Membre
Dernière intervention
18 avril 2009
-
20 nov. 2007 à 14:20
hayet - 14 janv. 2013 à 09:45
hayet - 14 janv. 2013 à 09:45
A voir également:
- Exercice pascal corrigé bac
- Turbo pascal download - Télécharger - Édition & Programmation
- My pascal - Télécharger - Édition & Programmation
- Bac a sable windows - Guide
- Bac vide ou ouvert hp ✓ - Forum Imprimante
- Transmath 3eme corrigé pdf ✓ - Forum Loisirs / Divertissements
38 réponses
king_taba
Messages postés
1
Date d'inscription
mardi 20 novembre 2007
Statut
Membre
Dernière intervention
20 novembre 2007
10
20 nov. 2007 à 15:47
20 nov. 2007 à 15:47
ona trois types d'algorithmes de trie par sélection ,par insertion ou a bull
procedure trie_par_selection(var t:tab ; n:integer);
var
i,j,y,m:integer;
begin
for i := 1 to n-1 do
begin
m:=i;
for j := i to n do
begin
if t[j]<t[m] then
begin
y:=t[i];
t[i]:=t[m];
t[m]:=y;
end;
end;
end;
end;
procedure trie_par_selection(var t:tab ; n:integer);
var
i,j,y,m:integer;
begin
for i := 1 to n-1 do
begin
m:=i;
for j := i to n do
begin
if t[j]<t[m] then
begin
y:=t[i];
t[i]:=t[m];
t[m]:=y;
end;
end;
end;
end;
AMOULA_info
Messages postés
3
Date d'inscription
lundi 19 novembre 2007
Statut
Membre
Dernière intervention
20 novembre 2007
9
20 nov. 2007 à 15:00
20 nov. 2007 à 15:00
bonjour abdel2007
il existe plusieurs methode pour le tri d'un tableau ( à bulle, par insertion par selection ....)
voila la methode de tri à bulle en pascal
procedure tri(var t: vecteur; n : integer);
var e: boolean;
i,z: integer;
begin
repeat
e:= false;
for i := 1 to n-1 do
if t[i]>t[i+1] then
begin
z:=t[i];
t[i]:=t[i+1];
t[i+1]:=t[i];
e:= true;
end;
until e = false;
end;
il existe plusieurs methode pour le tri d'un tableau ( à bulle, par insertion par selection ....)
voila la methode de tri à bulle en pascal
procedure tri(var t: vecteur; n : integer);
var e: boolean;
i,z: integer;
begin
repeat
e:= false;
for i := 1 to n-1 do
if t[i]>t[i+1] then
begin
z:=t[i];
t[i]:=t[i+1];
t[i+1]:=t[i];
e:= true;
end;
until e = false;
end;
salut merci pour l'exercice de tri.je suis un etudiant en premiere année de genie informatique à l'université de bangui.j'ai un exercice de programation en turbo pascal :ecrire un programe qui consiste à trier les voyelles d'un mot entré au clavier.pouvez vous m'envoyer la reponse à mon email? Laouletgerard@yahoo.fr
informatique4_taba
Messages postés
17
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
20 novembre 2007
45
20 nov. 2007 à 15:41
20 nov. 2007 à 15:41
on peut trier un tableau de 20 elements:par la methode de tri par selection.
algrithme suivant
program tri_selection;
uses wincrt;
type
tab=array [1..20]of integer;
var
{declararation des objets globeaux}
procedure saisie(t,n)
procedure tri(t:tab,n:integer);
var
i:integer;
for i:=2 to n do
if t[1]<t[i] then
t[1]:=t[i];
end;
procedure affichage(t,n);
algrithme suivant
program tri_selection;
uses wincrt;
type
tab=array [1..20]of integer;
var
{declararation des objets globeaux}
procedure saisie(t,n)
procedure tri(t:tab,n:integer);
var
i:integer;
for i:=2 to n do
if t[1]<t[i] then
t[1]:=t[i];
end;
procedure affichage(t,n);
informatique4_taba
Messages postés
17
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
20 novembre 2007
45
20 nov. 2007 à 15:21
20 nov. 2007 à 15:21
on utikise la methode de trie à bulle on compare le premier element avec le suivant et si le deuxieme est superieure au premier on affecte la permutation en fesant l'appel au fonction permuter.
Selmi Rochdi
Selmi Rochdi
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
hardouz
Messages postés
196
Date d'inscription
jeudi 22 février 2007
Statut
Membre
Dernière intervention
26 novembre 2009
2
20 nov. 2007 à 17:32
20 nov. 2007 à 17:32
Bonjour;
Pour tier un tableau de 20 entiers on a plusieurs methode de tries dont on peut cité le trie par insertion le trie a bulle le trie par selection , shell ...
Exemple ;
on va esseyer de faire un algorithme de trie croissant ensemble pour cela ehhh... on va chercher le plus petit element dans le tableau on le placent dans la premiére case et jetter la valeur de la premiére case du tableau dans celle dont on va permutter ... Mais il ya un probléme non ? si on met la valeur minimale dans la premiére cette derniére elle s'ecrase !!!! alors on doit la stocker dans une variable :)
alors on resume !
0/parcour du tableau de 1 a la case n
1/on cherche la valeur minimale ( le plus petit element dans le tableau ) {avec determination d'indice}
3/on le stoque dans une variable X
4/ on permute cette valeur avec la premiére case
{x<---T[min]
T[min]<---T[i]
T[min]<---x}
5/FIN
Pour un truc recursive il suffit de repeter la meme chose en cherchon le minumum a chaque foix il se stoque dans les registre du processeur virtuellement a la du trie la fonction reprend elle meme les valeur stoquer dans le registre et alors il suffit de réinitialiser les cases de ton tableau !
Exemple ;
soit le principe est que la fonction récursive scinde le tableau en 2 et pour chaque partie appelle de nouveau le tri récursif, la condition d'arrêt survient quand le dernier élément est < ou = au premier.
Dans un premier temps on range le tableau de telle sorte que tous les éléments inférieurs à l'élément d'indice pivot se trouvent placés à la gauche de celui-ci et donc tous les éléments supérieurs à sa droite.Ensuite on appelle à nouveau (récursivement) la procédure MahdyTrie pour chacun des deux sous-tableaux.
Et d'aprés les procedures precedentes je pense que c'est suffisant !
pour plus d'informations tu peut consulter les sites suivant
https://pascal.developpez.com/cours/cyberzoide/chap21.php3
http://lwh.free.fr/pages/prog/logo/logo.htm {conceillé}
vous pourrez trouver d'autres informations intéressantes à l'adresse http://Olivier.sc.free.fr/
et bonne programmation
Ciao Mahdy :)
Pour tier un tableau de 20 entiers on a plusieurs methode de tries dont on peut cité le trie par insertion le trie a bulle le trie par selection , shell ...
Exemple ;
on va esseyer de faire un algorithme de trie croissant ensemble pour cela ehhh... on va chercher le plus petit element dans le tableau on le placent dans la premiére case et jetter la valeur de la premiére case du tableau dans celle dont on va permutter ... Mais il ya un probléme non ? si on met la valeur minimale dans la premiére cette derniére elle s'ecrase !!!! alors on doit la stocker dans une variable :)
alors on resume !
0/parcour du tableau de 1 a la case n
1/on cherche la valeur minimale ( le plus petit element dans le tableau ) {avec determination d'indice}
3/on le stoque dans une variable X
4/ on permute cette valeur avec la premiére case
{x<---T[min]
T[min]<---T[i]
T[min]<---x}
5/FIN
Pour un truc recursive il suffit de repeter la meme chose en cherchon le minumum a chaque foix il se stoque dans les registre du processeur virtuellement a la du trie la fonction reprend elle meme les valeur stoquer dans le registre et alors il suffit de réinitialiser les cases de ton tableau !
Exemple ;
soit le principe est que la fonction récursive scinde le tableau en 2 et pour chaque partie appelle de nouveau le tri récursif, la condition d'arrêt survient quand le dernier élément est < ou = au premier.
Dans un premier temps on range le tableau de telle sorte que tous les éléments inférieurs à l'élément d'indice pivot se trouvent placés à la gauche de celui-ci et donc tous les éléments supérieurs à sa droite.Ensuite on appelle à nouveau (récursivement) la procédure MahdyTrie pour chacun des deux sous-tableaux.
Et d'aprés les procedures precedentes je pense que c'est suffisant !
pour plus d'informations tu peut consulter les sites suivant
https://pascal.developpez.com/cours/cyberzoide/chap21.php3
http://lwh.free.fr/pages/prog/logo/logo.htm {conceillé}
vous pourrez trouver d'autres informations intéressantes à l'adresse http://Olivier.sc.free.fr/
et bonne programmation
Ciao Mahdy :)
informatique4_taba
Messages postés
17
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
20 novembre 2007
45
20 nov. 2007 à 15:24
20 nov. 2007 à 15:24
procedure trie_par_selection(var t:tab ; n:integer);
var
i,j,y,m:integer;
begin
for i := 1 to n-1 do
begin
m:=i;
for j := i to n do
begin
if t[j]<t[m] then
begin
y:=t[i];
t[i]:=t[m];
t[m]:=y;
end;
end;
end;
end;
{Ahmed Saidi 4SI}
var
i,j,y,m:integer;
begin
for i := 1 to n-1 do
begin
m:=i;
for j := i to n do
begin
if t[j]<t[m] then
begin
y:=t[i];
t[i]:=t[m];
t[m]:=y;
end;
end;
end;
end;
{Ahmed Saidi 4SI}
informatique4_taba
Messages postés
17
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
20 novembre 2007
45
20 nov. 2007 à 15:39
20 nov. 2007 à 15:39
on utilise le methode trie abule on compare le premie par le deusime et on faire la permutation
abdel2007
Messages postés
34
Date d'inscription
lundi 23 octobre 2006
Statut
Membre
Dernière intervention
18 avril 2009
3
20 nov. 2007 à 16:50
20 nov. 2007 à 16:50
merci mais je cherche des solutions avancer on a depaser en cours les traitement iterative et en cherche des solution recursif des programme qui s'appelle elle meme.
informatique4_taba
Messages postés
17
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
20 novembre 2007
45
20 nov. 2007 à 17:26
20 nov. 2007 à 17:26
{saidi meryem :je souhaite que ma solution est correcte n'est ce pas?????????????, }
{ la solution:}
k:=t[1];
{ pour i de 1 a 20 faire
begin
if t[i]<k then
permut (k,t[i]);
}
{ mais non je sais que je ne trouve pas la solution maintenant et je veus chercher autre fois}
*****merci *****
***********merci ***************
{ la solution:}
k:=t[1];
{ pour i de 1 a 20 faire
begin
if t[i]<k then
permut (k,t[i]);
}
{ mais non je sais que je ne trouve pas la solution maintenant et je veus chercher autre fois}
*****merci *****
***********merci ***************
informatique4_taba
Messages postés
17
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
20 novembre 2007
45
20 nov. 2007 à 17:29
20 nov. 2007 à 17:29
program exercice;
uses wincrt;
type
tab=array[1..20]of integer;
var
t:tab;
n:integer;
procedure saisie(var n:integer);
begin
repeat
read(n)
until(n >20);
end;
procedure trie (var t;tab;n:integer)
var
i:integer;
begin
for i:=1 to n-1 do
begin
if t[i+1]>t[i] then
begin
permiter (t[i],t[i+1]);
end;
end;
begin
saisie(n);
trie(t,n);
permeter(t,n);
end.
uses wincrt;
type
tab=array[1..20]of integer;
var
t:tab;
n:integer;
procedure saisie(var n:integer);
begin
repeat
read(n)
until(n >20);
end;
procedure trie (var t;tab;n:integer)
var
i:integer;
begin
for i:=1 to n-1 do
begin
if t[i+1]>t[i] then
begin
permiter (t[i],t[i+1]);
end;
end;
begin
saisie(n);
trie(t,n);
permeter(t,n);
end.
pouvez_vous m'aider à resoudre ces problemes svp et merci d'avance:
ex1
ecrire un programme qui permet de trier par ordre décroissant les éléments d'un tableau Ade n entiers positifs dans un nouveau tableau Bde meme dimension :1-rchercher le maximum de A ,puis , placer ce maximum dans B, ensuite remplacer le maximum par -1
ex2
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
ex1
ecrire un programme qui permet de trier par ordre décroissant les éléments d'un tableau Ade n entiers positifs dans un nouveau tableau Bde meme dimension :1-rchercher le maximum de A ,puis , placer ce maximum dans B, ensuite remplacer le maximum par -1
ex2
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
'randa'_taba
Messages postés
1
Date d'inscription
mardi 20 novembre 2007
Statut
Membre
Dernière intervention
20 novembre 2007
1
20 nov. 2007 à 17:29
20 nov. 2007 à 17:29
on a plusiers type de tri tel que :tri a bille,insertion,selection...
par exemple on utilise le tri a bulle:
procedure bulle(var t:tab;n:integer);
var
i:integer;
repeat
k:=false;
for i:=1 to n-1 do ;
if t[i]>t[i+1] then
t[i]:=t[i+1];
t[i+1]:=t[i];
until(k=true) and(i>=n);
end;
par exemple on utilise le tri a bulle:
procedure bulle(var t:tab;n:integer);
var
i:integer;
repeat
k:=false;
for i:=1 to n-1 do ;
if t[i]>t[i+1] then
t[i]:=t[i+1];
t[i+1]:=t[i];
until(k=true) and(i>=n);
end;
ahm_taba
Messages postés
2
Date d'inscription
mardi 20 novembre 2007
Statut
Membre
Dernière intervention
20 novembre 2007
1
20 nov. 2007 à 17:32
20 nov. 2007 à 17:32
on peut trier le tableau du minimum au maximum ou inversement on utilison une methode de trie comme par exemple le trie a bulle explication de cette methode:
on doit comparer le premier element par le deuxième si le premier et inferieure au deuxième on appelle une procedure permuter les deux élément et répète ce traitement jusqu'a avoir un tableau trié.
procedure trie (var t:tab,n:integer);
var
i:integer;
begin
for i:=1 to n do
begin
repeat
k:=false;
if t[i]<t[i+1] then
begin
procedure permuter (t[i],t[i+1]);
until
k:=true;
end;
on doit comparer le premier element par le deuxième si le premier et inferieure au deuxième on appelle une procedure permuter les deux élément et répète ce traitement jusqu'a avoir un tableau trié.
procedure trie (var t:tab,n:integer);
var
i:integer;
begin
for i:=1 to n do
begin
repeat
k:=false;
if t[i]<t[i+1] then
begin
procedure permuter (t[i],t[i+1]);
until
k:=true;
end;
AMOULA_info
Messages postés
3
Date d'inscription
lundi 19 novembre 2007
Statut
Membre
Dernière intervention
20 novembre 2007
9
20 nov. 2007 à 20:21
20 nov. 2007 à 20:21
Salut
voila une methode recursive de tri par selection
procedure permuter( var x, y : integer);
var z : integer;
begin
z:=x;
x:=y;
y:=z;
end;
function posmin ( t: vect; d,f : integer): integer;
var pm : integer;
begin
if d= f then posmin := d
else
begin
pm := posmin(t,d+1,f);
if t[d]<t[pm] then posmin:= d
else posmin:=pm;
end;
end;
procedure trier ( var t : vect; d,f: integer);
var pm : integer;
begin
if d<>f then
begin
pm := posmin(t,d,f);
if d<>pm then permuter(t[d],t[pm]);
trier(t,d+1,f);
end;
end;
voila une methode recursive de tri par selection
procedure permuter( var x, y : integer);
var z : integer;
begin
z:=x;
x:=y;
y:=z;
end;
function posmin ( t: vect; d,f : integer): integer;
var pm : integer;
begin
if d= f then posmin := d
else
begin
pm := posmin(t,d+1,f);
if t[d]<t[pm] then posmin:= d
else posmin:=pm;
end;
end;
procedure trier ( var t : vect; d,f: integer);
var pm : integer;
begin
if d<>f then
begin
pm := posmin(t,d,f);
if d<>pm then permuter(t[d],t[pm]);
trier(t,d+1,f);
end;
end;
informatique4_taba
Messages postés
17
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
20 novembre 2007
45
20 nov. 2007 à 15:38
20 nov. 2007 à 15:38
on peut faire le trie d'un tableau selon plusieurs methode : trie par insertion , trie à bulle, trie par selection ,trie à shell
le plus simple c'est le trie à bulle
procedure bulle (var t:tab;n:integer);
var
k: boolean;
i,r:integer;
begin
repeat
r:=false;
for i:= 1 to n-1 do
begin
if t[i]>t[i+1] then
begin
k:=t[i];
t[i]:=t[i+1};
t[i+1]:=t[i];
k:=true;
end;
until(k=false);
end;
le plus simple c'est le trie à bulle
procedure bulle (var t:tab;n:integer);
var
k: boolean;
i,r:integer;
begin
repeat
r:=false;
for i:= 1 to n-1 do
begin
if t[i]>t[i+1] then
begin
k:=t[i];
t[i]:=t[i+1};
t[i+1]:=t[i];
k:=true;
end;
until(k=false);
end;
informatique4_taba
Messages postés
17
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
20 novembre 2007
45
20 nov. 2007 à 15:39
20 nov. 2007 à 15:39
on peut le trier par l'Analyse suivante:
pour i de 1 à n faire
si t[i+1]>t[i] alors
permuter(t[i],t[i+1]
fin si
fin pour
pour i de 1 à n faire
si t[i+1]>t[i] alors
permuter(t[i],t[i+1]
fin si
fin pour
abdel2007
Messages postés
34
Date d'inscription
lundi 23 octobre 2006
Statut
Membre
Dernière intervention
18 avril 2009
3
20 nov. 2007 à 15:40
20 nov. 2007 à 15:40
je veux avoir d'autre de tri avancer oui je connaus les solution iterative comme la selction ou bull tu peu m'aider à une solution recurssiev pour le tri par selection
informatique4_taba
Messages postés
17
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
20 novembre 2007
45
20 nov. 2007 à 15:46
20 nov. 2007 à 15:46
on peut realiser le tri d'un tableau par plusieurs méthodes citons le tri à bulle, le tri par selection, le tri par insertion, le tri à shell...
voici une simple methode: vous pouvez affecter la recherche du maximum de ce tableau , le stocker dans un nouveau tableau puis effacer cet élément du premier tableau et ainsi de suite.
{MK 4SI_taba}
voici une simple methode: vous pouvez affecter la recherche du maximum de ce tableau , le stocker dans un nouveau tableau puis effacer cet élément du premier tableau et ainsi de suite.
{MK 4SI_taba}
'rim'_taba
Messages postés
2
Date d'inscription
mardi 20 novembre 2007
Statut
Membre
Dernière intervention
20 novembre 2007
20 nov. 2007 à 17:19
20 nov. 2007 à 17:19
Hi;
sorry i don't know it .
sorry i don't know it .
ahm_taba
Messages postés
2
Date d'inscription
mardi 20 novembre 2007
Statut
Membre
Dernière intervention
20 novembre 2007
1
Modifié le 19 janv. 2022 à 15:16
Modifié le 19 janv. 2022 à 15:16
salu Ms Adel
bon pour les programme de tries qui utilisent des methodes recursives, je suis en cour de recherche une methode lorsque je la trouve j'vai l'ecrire mais pour le moment vous pouvez consultez www.developper.com
bon pour les programme de tries qui utilisent des methodes recursives, je suis en cour de recherche une methode lorsque je la trouve j'vai l'ecrire mais pour le moment vous pouvez consultez www.developper.com
hajersoumri_taba
Messages postés
1
Date d'inscription
mardi 20 novembre 2007
Statut
Membre
Dernière intervention
20 novembre 2007
20 nov. 2007 à 17:29
20 nov. 2007 à 17:29
procedure trie (t:tab;n:integer);
var
i:integer;
begin
for i := 1 to n-1 do
begin
if t[i] >t[i+1]then
begin
y:=t[i];
t[i]:=t[i+1];
t[i+1]:=y;
end;
end;
var
i:integer;
begin
for i := 1 to n-1 do
begin
if t[i] >t[i+1]then
begin
y:=t[i];
t[i]:=t[i+1];
t[i+1]:=y;
end;
end;
26 mai 2012 à 23:07
14 janv. 2013 à 09:45