Bonsoir
dans ce cas l'initialisation des variables d'itération avant la boucle ne sert à rien.
Mais il y a des cas ou c'est utile, par exemple si tu fais une recherche, tu vas parcourir le tableau (dans l'ordre, par dichotomie ou autre peut importe) et au moment ou tu trouves ce que tu cherches tu sors de la boucle.
L'index est conservé, puisqu'il a été initialisé avant.
Quand à la 3eme condition, tu constatera que l'algorithme ne fait pas la même chose que pour >0, le 0 est un cas particulier qui justifie un traitement différentié
Juste, j'ai pas compris la différence dans le traitement du cas de zéro, au moment ou on peut l'ajouter au 2 premières conditions ( puisque 0 peut être négatif et positif à la fois) et ça devient: Si (T[i] >= 0) Alors TP[j] <- T[i]
Si (T[i] >= 0) Alors TP[k] <- T[i]
Après les traitement en 3 fois vient peut être introduire l'opérateur ou la fonction signe, qui retourne en general 1 pour un nombre positif, -1 pour un négatif et 0 pour 0
D'une part, si j'adopte la ère correction avec les 3 conditions, le nombre de zéro va être dupliqué, autrement dit, à chaque fois qu' on trouve un zéro on va le mettre dans TP[j] et dans TN[k] à la fois, de ce fait, le nombre d'éléments par rapport au tableau initial va être augmenté.
D'autre part, si je garde ma proposition ( éviter la 3ème condition ) tous les zéros vont être stockés dans le premier tableau TP puisque la condition est vérifié, après ça, le compteur s'incrémente.
Pensez-vous qu'il y a un manque d'indice au niveau de l'énoncé d'exercice ? à votre avis quelle est la meilleure solution ?
de même
Dans les 2 cas la somme des nombres d'enregistrement dans les tableaux résultats sera plus grande que le nombre d'enregistrements d'origine dès l'ors qu'il y a des zéros
Par contre