1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
tab1 : Tableau d'entiers
i : Entier
taille: Entier
echange : Entier
nbrOccurence : Entier
nbrMaxOccurrence : Entier
indexOfMaxElement : Entier
elementCourrant : Entier
inverstion : Booleen
//On initialise les variables
tab1 := { 21, 15, 15, 15, 23, 23, 18, 21, 21, 21, 21 };
taille := 11;
i :=0;
inversion := false;
echange := 0;
nbrOccurence := 1;
nbrMaxOccurrence := 0;
indexOfMaxElement := 0;
//Trie (à bulle) du tableau (ordre croissant)
Faire
inversion := false
Pour i de 0 à taille - 1
Si (tab1[i] > tab1[i + 1]) ALORS
Debut
echange := tab1[i];
tab1[i] := tab1[i + 1];
tab1[i + 1] := echange;
inversion := true;
Fin Si
Fin Pour
Fin
Tant que (inversion);
//On cherche combien de fois est present chaque element
Pour i de 0 à taille - 1
elementCourrant := tab1[i];
//Tant que l'element courrant est egale à l'element suivant
//On incremente le nombre d'occurence de celui
Si (elementCourrant = tab1[i+1]) Alors
nbrOccurence := nbrOccurence+1;
Sinon
//On a trouve un nouvelle element
//Si le nombre d'occurence de l'element courrant est superieur au nombre maximum d'occurence
// de l'element indeOfMaxElement
// alors l'element courrant devient celui qui a le plus d'occurences
Si (nbrOccurence>nbrMaxOccurrence) Alors
nbrMaxOccurrence := nbrOccurence;
indexOfMaxElement := i;
Fin Si
//On affiche le nombre d'occurence de l'element courrant
Afficher "le nombre " + elementCourrant + " est present " + nbrOccurence +" fois";
//On reinitialise le nombre d'occurence, pour compter le nombre d'occurence de l'element suivant l'element courrant
nbrOccurence := 1;
Fin Si
Fin Pour
//on traite le derniere element
Afficher "le nombre " + tab1[i] +" est present " + nbrOccurence +" fois";
//on affiche le maximum
Afficher "le nombre " + tab1[indexOfMaxElement]+ " est repeter le plus de fois : " + max; |
Partager