CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[HELP] aide C#

B-312
B-312
Niveau 7
20 novembre 2011 à 18:05:30

Bonjour,
voila je dois écrire une procédure en c# mais lors de la compilation on m’envoie l'erreur suivante :
"(4,14)the variable tri is assigned but its value is never used"
j'ai essayé de corriger mais rien y fais le programme ne fonctionne pas :(
voici la procédure en question :

public static void trier(int[] t, int lgr)
{
int i;
bool tri;
int temp; // valeur tampo
for(i=0, tri=false; i<lgr; i++)
{
if(t[i-1]>t[i])
{
temp=t[i];
t[i]=t[i-1];
t[i-1]=temp;
}
else
{
tri=true;
}
}
}

si quelqu'un pourrait me dire où est mon erreur ce serait sympa :)

Pocolo
Pocolo
Niveau 10
20 novembre 2011 à 18:08:25

C'est plutôt un avertissement non? Ton programme marche ou pas?

Pocolo
Pocolo
Niveau 10
20 novembre 2011 à 18:09:28

" le programme ne fonctionne pas :( "

Ah mince.

Mais sinon il se compile ou pas?

B-312
B-312
Niveau 7
20 novembre 2011 à 18:12:34

non erreur à la compilation
je précise que l'algo est correct puisque mon prof la corrigé
c'est juste cette variable tri qui coince :hap:

Pocolo
Pocolo
Niveau 10
20 novembre 2011 à 18:14:42

Bon j'ai regardé ton code et le problème est surement que tu sors des limites du tableau vu que tu fais i-1 et que i commence à 0, il faut plutôt comparer i et i+1.

Quant au "(4,14)the variable tri is assigned but its value is never used ", je persiste à penser que c'est juste un avertissement (pas la même chose qu'une erreur) pour te dire que la variable tri ne sert à rien dans ton code actuel.

" je précise que l'algo est correct puisque mon prof la corrigé "

Sérieusement? :(

Pocolo
Pocolo
Niveau 10
20 novembre 2011 à 18:21:02

Ah et si tu fais i+1 il faut mettre i<(lgr-1) au lieu de i<lgr comme condition. (je suppose ici que lgr représente le nombre d'éléments et pas l'index maximal)

B-312
B-312
Niveau 7
20 novembre 2011 à 18:26:01

bah je suis en IUT info 1ere année mais je débute en prog encore...
et oui ta raison c'est bien un avertissement, pas une erreur

Pocolo
Pocolo
Niveau 10
20 novembre 2011 à 18:26:51

" bah je suis en IUT info 1ere année mais je débute en prog encore... "

Oui mais pas ton prof, supposément. :peur:

B-312
B-312
Niveau 7
20 novembre 2011 à 18:28:53

et le but de la procédure est d'employé la méthode " tri à bulle " sur un tableau de longueur lgr

Pocolo
Pocolo
Niveau 10
20 novembre 2011 à 18:28:56

A noter que lorsque tu as un avertissement ton programme se compile quand-même, tu avais l'air de penser qu'il ne se compilait pas parce qu'il plantait mais déjà si tu peux le lancer cela veut dire qu'il s'est compilé.

Pocolo
Pocolo
Niveau 10
20 novembre 2011 à 18:29:34

" et le but de la procédure est d'employé la méthode " tri à bulle " sur un tableau de longueur lgr "

Oui j'ai vu ça, a noter qu'en général on fait des appels récursifs de la fonction pour ça.

B-312
B-312
Niveau 7
20 novembre 2011 à 18:32:39

mais d’après toi la déclaration de la variable tri est correcte ?

Pocolo
Pocolo
Niveau 10
20 novembre 2011 à 18:35:37

Disons que l'IDE ne se trompe pas en disant qu'elle ne sert à rien vu que tu ne teste jamais sa valeur (tu nef ais que lui assigné la valeur true ou false), si tu mets quelque part dans ton code un truc comme "if(tri) faire un truc;" l'avertissement devrais disparaitre.

Mais autrement tu considères que ta fonction est complète là ou tu avais l'intention de rajouter des trucs?

B-312
B-312
Niveau 7
20 novembre 2011 à 18:40:30

elle est complete
mais mon programme fais appel à d'autres fonctions
comma l'affichage du tableau son remplissage et le prog principal
enfin je verrai avec mon prof pour voir où est l'erreur

Pocolo
Pocolo
Niveau 10
20 novembre 2011 à 18:42:21

" elle est complete "

Ah, je me demandais car pour moi elle ne l'est pas. Avec ça tu vas trier certains éléments mais au final ton tableau d'entiers ne sera pas entièrement trier.

B-312
B-312
Niveau 7
20 novembre 2011 à 18:48:14

théoriquement la boucle est censé trier les éléments un par un en mettant les nombres dans l'ordre croissant
elle doit balayer le tableau tant que tout les nombres ne sont pas trié
si 2 éléments sont déjà en place c'est à dire triés elle passe au suivant

Pocolo
Pocolo
Niveau 10
20 novembre 2011 à 18:56:00

Oui mais là ça ne marche pas car tu ne parcours qu'une seule fois le tableau. En faisant ça tous les éléments ne seront pas triés, en revanche tu peux être sûr que l'élément le plus grand du tableau se retrouvera forcément tout à la fin du tableau.

A partir de là l'idée est simplement de recommencer le processus sur ce même tableau mais en excluant le dernier élément (vu que celui-ci est déjà à la bonne place).

Pour ce faire je t'invite à te documenter sur la récursion, même si ce n'est pas le seul moyen de le faire.

Pocolo
Pocolo
Niveau 10
20 novembre 2011 à 18:58:03

" A partir de là l'idée est simplement de recommencer le processus sur ce même tableau mais en excluant le dernier élément (vu que celui-ci est déjà à la bonne place). "

PS : Et de refaire ça jusqu'à ce qu'il ne reste plus que 1 seul élément (vu que si il n'y en a qu'un il va de soi qu'il n'y a rien à trier).

B-312
B-312
Niveau 7
20 novembre 2011 à 19:10:41

merci pour ton aide
je vais essayer essayer d'arranger sa :)

Pocolo
Pocolo
Niveau 10
20 novembre 2011 à 19:14:54

Ah, dernière chose, je me permets de te laisser ce gif animé qui illustre bien le processus :

http://upload.wikimedia.org/wikipedia/commons/c/c8/Bubble-sort-example-300px.gif

Tu remarqueras qu'à chaque fois qu'on à parcouru tout le tableau on exclut l'élément le plus à droite, qui se trouve être le plus grand de tous les éléments parcourus (entouré d'un carré noir sur le gif).

Le tri bulle fait remonter le plus grand élément telle une bulle dans un verre qui remonte à la surface de l'eau.

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment