Occurrence

Fermé
oook - 26 févr. 2017 à 14:41
Bonjour,

Je suis débutante avec le pointeur, j'ai lu le cours mais j'arrive pas à le comprendre comme il faut, c'est pourquoi j'essaie de comprendre les solutions des exercices.
Voici un exercice extrait d'un site avec son corrigé :

Ecrire un programme qui lit un entier X et un tableau A du type Entier au clavier et élimine toutes les occurrences de X dans A en tassant les éléments restants. Le programme utilisera les pointeurs P1 et P2 pour parcourir le tableau.


Algorithme EliminerXdeA
Types:
Tab: Tableau[1..100] de Entiers
Pointeur:^Entier
variables
A : Tab
N : Entier
X : Entier
P1, P2: Pointeurs
Début
/*Saisie des données*/
Ecrire ("Dimension du tableau A(max.100):")
Lire(N)
Pour P1 de A à A+N faire
Ecrire ("Elément", P1-A, ":")
Lire (P1^)
Fin pour
Ecrire ("Valeur à supprimer du tableau")
Lire(X)
/* Affichage des tableaux*/
Ecrire("Tableau donné A:")
Pour P1 de A à A+N faire
Ecrire((P1)^)
Fin pour
/*Effacer toutes les occurrences de X et comprimer:*/
/*Copier tous les éléments de P1 vers P2 et augmenter*/
/*P2 pour tous les éléments différents de X */
P2 <-- A
Pour P1 de A à A+N faire
P2^ <-- P1^
si (P2 # X ) alors
P2 <--P2+1
fIN SI
fin pour
/*Nouvelle dimension de A */
N<-- P2-A
/* Edition du résultat */
Pour P1 de A à A+N Faire
Ecrire ((P1)^)
Fin pour
Fin


La seule chose que j'ai pas compris c'est : au niveau de quelle instruction il a supprimé X ?

C'est vrai que P2 va déterminer la nouvelle taille du tableau mais lors du dernier parcours

pour afficher le résultat qui peut nous garantir qu'il n'y a pas des X. Qui a une idée SVP.