(Spoiler) Proposotion d'algo pour le tri bulle...
4 participants
Page 1 sur 1
(Spoiler) Proposotion d'algo pour le tri bulle...
ETAPE 1
Trier un tableau
Etape2
Type:
chaine tableau[n]caractère
n=80
finchar = "."
temp : entier
Etape3
tests
12354. ==> 12345
12/15/27/5. ==> 5/12/15/27
321. ==> 123
465.23 ==> 456
Etape 4
ProcedureTrier(entrée tableau:chaine, sortie tableau:chaine)
// La procedure va trier un tableau et le sauvegarder pour le rendre trié
//entrée: tableau
//sortie: tableau trié
Etape 5
Début
Ecrire("Donnez votre tableau a trier: ")
Lire tableau
ProcedureTrier(tableau, tableau)
Ecrire("voici le tableau trié: "+ tableau)
Fin
Etape 6
Début
i:=1
j:=2
temp:=0
Repeter
Si tableau[i]<tableau[j] et tableau[j]<>finchar alors
i:=i+1
j:=j+1
Sinon
temp:=tableau[i] tableau[i]:=tableau[j] et tableau[j]:=temp
i:=1
j:=2
Finsi
Jusqu'a tableau[i]<tableau[j] et tableau[j]=finchar
Fin
Trier un tableau
Etape2
Type:
chaine tableau[n]caractère
n=80
finchar = "."
temp : entier
Etape3
tests
12354. ==> 12345
12/15/27/5. ==> 5/12/15/27
321. ==> 123
465.23 ==> 456
Etape 4
ProcedureTrier(entrée tableau:chaine, sortie tableau:chaine)
// La procedure va trier un tableau et le sauvegarder pour le rendre trié
//entrée: tableau
//sortie: tableau trié
Etape 5
Début
Ecrire("Donnez votre tableau a trier: ")
Lire tableau
ProcedureTrier(tableau, tableau)
Ecrire("voici le tableau trié: "+ tableau)
Fin
Etape 6
Début
i:=1
j:=2
temp:=0
Repeter
Si tableau[i]<tableau[j] et tableau[j]<>finchar alors
i:=i+1
j:=j+1
Sinon
temp:=tableau[i] tableau[i]:=tableau[j] et tableau[j]:=temp
i:=1
j:=2
Finsi
Jusqu'a tableau[i]<tableau[j] et tableau[j]=finchar
Fin
Re: (Spoiler) Proposotion d'algo pour le tri bulle...
Je suis parti la dessus perso :
- Code:
1-
Entrée Sortie
Tableau----------------->TriRemonteedesBulles---->TableauTrie
NombreElementsTableau--->
2-
Définir Type Chaine
N=80
Chaine = Tableau[N] Entiers
3-
/ Tableau / NombreElementsTableau / Tableau Trié /
/ 5 1 4 2 8 / 5 / 1 2 4 5 8 /
/ ' ' / 0 / '' /
/ 9 9 9 9 / 4 / 9 9 9 9 /
/ 1 2 3 4 / 4 / 1 2 3 4 /
/ 4 3 2 1 / 4 / 1 2 3 4 /
4-
Outils
procédure TriRemonteedesBulles(entrée sortie Table:chaine,entée NombreElementsTableau:entier)
// Cette procédure permet d'effectuer un tri par remontée des bulles
// Tableau est le tableau d'origine
// NombreElementsTableau représente le nombre de valeurs contenues dans le tableau
procédure RemplirTableau(sortie NombreElementsTableau, sortie Table)
// Cette procédure permet de remplir un tableau
// NombreElementsTableau représente le nombre de valeurs contenues dans le tableau
// Table est le tableau rempli
procédure AfficherTableau(entrée Table)
// Cette procédure permet d'afficher le contenu d'un tableau
5-
Programme
Constantes
N=80 //Longeur max du tableau
Type
chaine=tableau[N]Entiers // Type des entiers traités
Variables
Table : chaine // Tableau d'entier à trier
NombreElementsTableau : entier // Nombre de valeurs utile du tableau
ValeursDejaEntrées : entier // Nombre de valeurs déja entrées dans le tableau
Outils
procédure TriRemonteedesBulles(entrée sortie Table:chaine,entée NombreElementsTableau:entier)
// Cette procédure permet d'effectuer un tri par remontée des bulles
// Tableau est le tableau d'origine
// NombreElementsTableau représente le nombre de valeurs contenues dans le tableau
procédure RemplirTableau(sortie NombreElementsTableau, sortie Table)
// Cette procédure permet de remplir un tableau
// NombreElementsTableau représente le nombre de valeurs contenues dans le tableau
// Table est le tableau rempli
procédure AfficherTableau(entrée Table)
// Cette procédure permet d'afficher le contenu d'un tableau
Debut
RemplirTableau(NombreElementsTableau,Table)
TriRemonteedesBulles(Table,NombreElementsTableau)
AfficherTableau(Table)
Fin
6-
procédure RemplirTableau(sortie NombreElementsTableau, sortie Table)
Debut
ValeursDejaEntrées=0
Repeter
ecrire("Nombre de valeurs : ")
lire(NombreElementsTableau)
Jusqu'a 0<NombreElementsTableau<N
Repeter
ecrire("Valeurs du tableau : ")
lire(Table[ValeursDejaEntrées])
ValeursDejaEntrées:=ValeursDejaEntrées+1
Jusqu'a NombreElementsTableau=ValeursDejaEntrées
Fin
procédure AfficherTableau(entrée Table)
Variables
i : entier //Indice de parcours de la phrase
Debut
i:=1
Repeter
ecrire("Valeur",i," du tableau : ")
ecrire(Table[i])
i:=i+1
Jusqu'a i=NombreElementsTableau
Fin
procédure TriRemonteedesBulles(entrée Tableau:chaine,entée NombreElementsTableau:entier, sortie TableauTrie:chaine)
Variables
i : entier //Indice de parcours de la phrase
Temporaire : entier // Valeur du tableau à garder en mémoire
Inversion : booleen // Indique si il y a eu une inversion lors du parcours
Debut
Repeter
i:=1
Inversion:=FAUX
Tantque i<NombreElementsTableau faire
Si Table[i]>Table[i+1] alors
Temporaire:=Table[i]
Table[i]:=Table[i+1]
Table[i+1]:=Temporaire
Inversion:=VRAI
FinSi
i:=i+1
FinTantque
Jusqu'a Inversion=FAUX
Fin
FAUX!
Donc apparemment j'ai faux, enfin c'est vrai que j'ai faux.
Pour le tri bulle il faut au moins 3 procédures....
My bad...
(dédicace a Marie)
Pour le tri bulle il faut au moins 3 procédures....
My bad...
(dédicace a Marie)
Re: (Spoiler) Proposotion d'algo pour le tri bulle...
le mien
TRIER UN TABLEAU METHODE DE REMONTEE DES BULLES
1
tableaudonnées -> Trier -> tableautrié
taille
2 Types des informations
N = 80
table = tableau [n] entier //nombre d'entier dans le tableau
3 jeu d'essai
1 2 3 4 5 | 5 | 1 2 3 4 5
5 4 3 2 1 | 5 | 1 2 3 4 5
3 4 5 1 2 | 5 | 1 2 3 4 5
1 23 5 4 | 4 | 1 4 5 23
1 | 1 | 1
_ | 0 | _
4
procédures
Entrer Valeurs (entrée tabent: table, entrée taille : entier)
//Entrer valeurs permet d'entrer le nombre de valeurs à saisir et les valeurs
Trier (entrée sortie tabent : table, entrée taille : entier)
//trier permet de trier un tableau dans l'ordre croissant
//tabent sont les données composant le tableau
//taille permet de connaitre le nb de données dans le tableau
//tabent est le tableau trié
5 programme Trier_un_tableau_en_ordre_croissant
constante
N = 80
type
table = tableau [n] entier
variable
tabent : table//tableau à trier
taille : entier //nb d'entier dans le tableau
début
Entrer valeurs (tabent, table)
Trier (tabent, taille)
Afficher (tabent, taille)
Fin
6
Procédure Entrer valeurs (entrée tableau : table, entrée taille : entier) //permet de connaître la taille du tableau et son contenu
Début
répéter
Ecrire ("Entrez le nombre de valeurs à saisir: ") //indique la taille du tableau
lire(taille)
jusqu'à taille <= N et taille >= 0
i = 0
tant que i <= taille faire
tabent[i] := tabent[i + 1]
Ecrire ("Entrez un nombre : ")
lire(tabent[i])
fin tant que
Fin
6
Procédure Entrer valeurs (sortie tableau : table, sortie taille : entier) //permet de connaître la taille du tableau et son contenu
Début
répéter
Ecrire ("Entrez le nombre de valeurs à saisir entre 1 et " + N + ": ") //indique la taille du tableau
lire(taille)
jusqu'à taille <= N et taille > 0
i = 0
tant que i <= taille faire
tabent[i] := tabent[i + 1]
Ecrire ("Entrez un nombre : ")
lire(tabent[i])
fin tant que
Fin
procédure trier (entrée sortie tabent : table, entrée taille : entier) //trie le tableau
variable
i : entier //premier indice de parcours
j : entier //deuxième indice de parcours
temp : entier //variable temporaire
inversion : booléen // condition de sortie de la boucle
Début
i := 1 //position sur le premier chiffre
taille := 0
inversion := faux
répéter
Tant que tableau[i] <> taille faire
si tableau[i] > tableau[j] alors //compare les valeurs du tableau
temp := i
i := j
j := temp
inversion := vrai
finsi
i := i+1
j := j+1
Fin tant que
jusqu'à non inversion
Fin
procédure afficher (entrée/sortie tabent : table)
variable
i : entier
Debut
i:=1
Repeter
ecrire(Table[i])
i:=i+1
Jusqu'a i = taille
Fin
TRIER UN TABLEAU METHODE DE REMONTEE DES BULLES
1
tableaudonnées -> Trier -> tableautrié
taille
2 Types des informations
N = 80
table = tableau [n] entier //nombre d'entier dans le tableau
3 jeu d'essai
1 2 3 4 5 | 5 | 1 2 3 4 5
5 4 3 2 1 | 5 | 1 2 3 4 5
3 4 5 1 2 | 5 | 1 2 3 4 5
1 23 5 4 | 4 | 1 4 5 23
1 | 1 | 1
_ | 0 | _
4
procédures
Entrer Valeurs (entrée tabent: table, entrée taille : entier)
//Entrer valeurs permet d'entrer le nombre de valeurs à saisir et les valeurs
Trier (entrée sortie tabent : table, entrée taille : entier)
//trier permet de trier un tableau dans l'ordre croissant
//tabent sont les données composant le tableau
//taille permet de connaitre le nb de données dans le tableau
//tabent est le tableau trié
5 programme Trier_un_tableau_en_ordre_croissant
constante
N = 80
type
table = tableau [n] entier
variable
tabent : table//tableau à trier
taille : entier //nb d'entier dans le tableau
début
Entrer valeurs (tabent, table)
Trier (tabent, taille)
Afficher (tabent, taille)
Fin
6
Procédure Entrer valeurs (entrée tableau : table, entrée taille : entier) //permet de connaître la taille du tableau et son contenu
Début
répéter
Ecrire ("Entrez le nombre de valeurs à saisir: ") //indique la taille du tableau
lire(taille)
jusqu'à taille <= N et taille >= 0
i = 0
tant que i <= taille faire
tabent[i] := tabent[i + 1]
Ecrire ("Entrez un nombre : ")
lire(tabent[i])
fin tant que
Fin
6
Procédure Entrer valeurs (sortie tableau : table, sortie taille : entier) //permet de connaître la taille du tableau et son contenu
Début
répéter
Ecrire ("Entrez le nombre de valeurs à saisir entre 1 et " + N + ": ") //indique la taille du tableau
lire(taille)
jusqu'à taille <= N et taille > 0
i = 0
tant que i <= taille faire
tabent[i] := tabent[i + 1]
Ecrire ("Entrez un nombre : ")
lire(tabent[i])
fin tant que
Fin
procédure trier (entrée sortie tabent : table, entrée taille : entier) //trie le tableau
variable
i : entier //premier indice de parcours
j : entier //deuxième indice de parcours
temp : entier //variable temporaire
inversion : booléen // condition de sortie de la boucle
Début
i := 1 //position sur le premier chiffre
taille := 0
inversion := faux
répéter
Tant que tableau[i] <> taille faire
si tableau[i] > tableau[j] alors //compare les valeurs du tableau
temp := i
i := j
j := temp
inversion := vrai
finsi
i := i+1
j := j+1
Fin tant que
jusqu'à non inversion
Fin
procédure afficher (entrée/sortie tabent : table)
variable
i : entier
Debut
i:=1
Repeter
ecrire(Table[i])
i:=i+1
Jusqu'a i = taille
Fin
pierC- Messages : 5
Karma : 0
Date d'inscription : 25/05/2016
Sujets similaires
» [SPOILER] Voici une proposition pour le palindrome
» [Spoiler] Dichotomie
» [Spoiler] Exercice 1 à 6
» [Spoiler] Exercice 7 à 10
» [Spoiler] Exercice 29
» [Spoiler] Dichotomie
» [Spoiler] Exercice 1 à 6
» [Spoiler] Exercice 7 à 10
» [Spoiler] Exercice 29
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|