Tableau
Résolu
Anna
-
Anna -
Anna -
Bonjour,
J'ai trouvé une correction pour l'exercice suivant;
Ecrire une procédure permettant d’éclater un tableau T d’entiers en deux tableaux :
Correction:
Procédure Eclater(T : Tab ; Var TP, TN : Tab)
Var
i, j, k : Entier
Début
i <- 1 j <- 1 k <- 1
Pour i de 1 à n Faire
Si (T[i] > 0) Alors
TP[j] <- T[i]
j <- j + 1
FinSi
Si(T[i] < 0) Alors
TN[k] <- T[i]
k <- k + 1
FinSi
Si(T[i] = 0) Alors
TP[j] <- T[i]
j <- j + 1
TN[k] <- T[i]
k <- k + 1
FinSi
FinPour
Fin
La question qui se pose : pourquoi on a initialiser le compteur "i" au moment ou l'initialisation et l'avancement du compteur dans la boucle "pour" se fait automatiquement ?
en plus, au niveau de 3ème condition ( Si(T[i] = 0) Alors) pourquoi, on ne l'a traité pas avec la 1ère comme ça : ( Si (T[i] >= 0) Alors) ?
Qui peut m'expliquer ça svp. Merci
J'ai trouvé une correction pour l'exercice suivant;
Ecrire une procédure permettant d’éclater un tableau T d’entiers en deux tableaux :
- TP qui contiendra les éléments positifs de T.
- TN qui contiendra les éléments négatifs de T.
Correction:
Procédure Eclater(T : Tab ; Var TP, TN : Tab)
Var
i, j, k : Entier
Début
i <- 1 j <- 1 k <- 1
Pour i de 1 à n Faire
Si (T[i] > 0) Alors
TP[j] <- T[i]
j <- j + 1
FinSi
Si(T[i] < 0) Alors
TN[k] <- T[i]
k <- k + 1
FinSi
Si(T[i] = 0) Alors
TP[j] <- T[i]
j <- j + 1
TN[k] <- T[i]
k <- k + 1
FinSi
FinPour
Fin
La question qui se pose : pourquoi on a initialiser le compteur "i" au moment ou l'initialisation et l'avancement du compteur dans la boucle "pour" se fait automatiquement ?
en plus, au niveau de 3ème condition ( Si(T[i] = 0) Alors) pourquoi, on ne l'a traité pas avec la 1ère comme ça : ( Si (T[i] >= 0) Alors) ?
Qui peut m'expliquer ça svp. Merci
A voir également:
- Tableau
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Imprimer tableau excel sur une page - Guide
2 réponses
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é
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é
Bonjour
si ça te convient, tu peux passer le sujet résolu, avec le lien dédié sous le titre de la discussion
si ça te convient, tu peux passer le sujet résolu, avec le lien dédié sous le titre de la discussion
Il y a un lien "Marquer comme résolu" sous le titre de la discussion. Tu y a accès tant que le site te reconnais.
Évidemment comme tu est une utilisatrice non inscrite, il est possible qu'au bout d'un moment le site ne te reconnaisse plus.
Alors, il faut demander à la modération, par un signalement, de passer tes questions résolues.
Évidemment comme tu est une utilisatrice non inscrite, il est possible qu'au bout d'un moment le site ne te reconnaisse plus.
Alors, il faut demander à la modération, par un signalement, de passer tes questions résolues.
Pour les discussions existante, t'inscrire ne permettra pas de les marquer résolues.
Le site (comme beaucoup d'autres) utilise des cookies pour te reconnaitre, mais cela n'est pas parfait, tu peux venir depuis plusieurs ordinateurs / téléphones / tablettes, tu peux aussi nettoyer les cookies, ou encore celui-ci peut devenir obsolète.
Seul la personne reconnue comme le posteur initial (ou un modérateur) peut marquer un sujet résolu.
Voilà une capture sur une de mes discussions (non résolue)

Pour s'inscrire, il faut trouver un pseudo qui n'existe pas déjà, là ça se complique, on est plusieurs millions d'inscrits.
Pour le signalement c'est là

Le site (comme beaucoup d'autres) utilise des cookies pour te reconnaitre, mais cela n'est pas parfait, tu peux venir depuis plusieurs ordinateurs / téléphones / tablettes, tu peux aussi nettoyer les cookies, ou encore celui-ci peut devenir obsolète.
Seul la personne reconnue comme le posteur initial (ou un modérateur) peut marquer un sujet résolu.
Voilà une capture sur une de mes discussions (non résolue)

Pour s'inscrire, il faut trouver un pseudo qui n'existe pas déjà, là ça se complique, on est plusieurs millions d'inscrits.
Pour le signalement c'est là

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