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.