Partage
  • Partager sur Facebook
  • Partager sur Twitter

Aide tableau !

    4 mai 2008 à 13:46:59

    Salut à tous j'ai un petit prob je n'arrive pas a faire la moyenne des chiffre de mon tableau
    #include "stdafx.h"
    #include <stdio.h>
    #include <stdlib.h>
    
    double moyenneTableau(long tableau[4], long tailleTableau);
    
    
    int main(int argc, char *argv[])
    {
    	long tableau[4] = {1, 2, 3, 5 };
    
    	moyenneTableau = tableau / 2;
    }
    
    
    
    
    double moyenneTableau(long tableau[4], long tailleTableau)
    {
    
    	long tableau [4], tailleTableau = 0;
    	
    
    	for (tailleTableau = 0 ; tailleTableau < 4 ; tailleTableau++)
    	{
    		printf("la moyenne de la valeur des chiffre du tableau sont "%lf" ", moyenneTableau);
    	}
    }
    


    Il y a un problème oui mais je sais pas ou! :-° En espérant que quelqu'un poura m'aider
    • Partager sur Facebook
    • Partager sur Twitter
      4 mai 2008 à 14:01:12

      Ici c'est le forum C++, et là tu fais du C. C'est le forum d'a coté.

      Pour quand même apporter une réponse:

      1) Tu as créé une fonction que tu n'apelles pas.
      2) A quoi sert stdafx.h ?
      3) Comment calcules tu la mayenne à la main ? Une fois que tu as déterminé cela, traduis "mot pour mot" en C.
      • Partager sur Facebook
      • Partager sur Twitter
      Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
        4 mai 2008 à 14:03:25

        Salut,
        En fait ton programme il ne fait rien même pas la moyenne du tableau car :
        moyenneTableau = tableau/2;/*Ne marche pas*/
        moyenneTableau = (tableau[1] + tableau[2] + tableau[3] + tableau[4])/4 /*Marche*/
        

        Cela ne veut strictement rien dire.
        Je vais de donner un code qui marche dans le secret comme ça si tu veux pas le voir :)

        #include "stdafx.h"
        #include <stdio.h>
        #include <stdlib.h>
        
        double moyenneTableau(long tableau[], long tailleTableau);
        
        
        int main(int argc, char *argv[])
        {
        	long tableau[4] = {1, 2, 3, 5 };
        
        	moyenneDuTableau = moyenneTableau(tableau,4);
                printf("La moyenne du tableau est : %lf", moyenneDuTableau);
        }
        
        double moyenneTableau(long tableau[], long tailleTableau)
        {
         long i=0;/* Variables exploratrice de tableau*/
         moyenne = 0;
        	for (i = 0 ; i < tailleTableau ; i++)
        	{
        		moyenne += tableau[i];
        	}
        return moyenne;
        }
        


        • Partager sur Facebook
        • Partager sur Twitter
          4 mai 2008 à 14:19:22

          °Tu as créé une fonction que tu n'apelles pas. --> comment tu appelle une fonction XD

          °stdafx.h --> Ca c'est un truc directement placé sous Visual c++ donc aucune idée

          °
          moyenneTableau = (tableau[1] + tableau[2] + tableau[3] + tableau[4])/4
          


          oki pour calculer la moyenne de tous les nombre mais pour calculer la moyenne des nombre 1 à 1?

          (Tu a oublié le ; a la fin c'est fait exprés ou pas? )

          Et merci de vos réponse au fait :D


          edit: Ton code il marche pas il me met qu'il y a une erreur :



          1>------ Début de la génération : Projet : Exercice, Configuration : Debug Win32 ------
          1>Compilation en cours...
          1>Exercice.cpp
          1>f:\programmation\exercice et test\exercice\exercice\exercice.cpp(16) : error C2065: 'moyenneDuTableau' : identificateur non déclaré
          1>f:\programmation\exercice et test\exercice\exercice\exercice.cpp(17) : error C2065: 'moyenneDuTableau' : identificateur non déclaré
          1>f:\programmation\exercice et test\exercice\exercice\exercice.cpp(23) : error C2065: 'moyenne' : identificateur non déclaré
          1>f:\programmation\exercice et test\exercice\exercice\exercice.cpp(26) : error C2065: 'moyenne' : identificateur non déclaré
          1>f:\programmation\exercice et test\exercice\exercice\exercice.cpp(28) : error C2065: 'moyenne' : identificateur non déclaré
          1>Le journal de génération a été enregistré à l'emplacement "file://f:\Programmation\Exercice et test\Exercice\Exercice\Debug\BuildLog.htm"
          1>Exercice - 5 erreur(s), 0 avertissement(s)
          ========== Génération : 0 a réussi, 1 a échoué, 0 mis à jour, 0 a été ignoré ==========




          • Partager sur Facebook
          • Partager sur Twitter
            4 mai 2008 à 14:25:26

            Non, je n'ai pas fait exprès d'oublier le ; à la fin. En fait il le faut.

            Citation : BIOoO


            oki pour calculer la moyenne de tous les nombre mais pour calculer la moyenne des nombre 1 à 1?



            C'est le code du secret.

            et pour appelé une fonction rien de plus simple.
            fonction(parametre1, parametre2,...);
            


            Voilà en espérant avoir répondu à tes questions.
            • Partager sur Facebook
            • Partager sur Twitter
              4 mai 2008 à 14:29:31

              Eu au fait tu a mit ca
              moyenne += tableau[i];
              


              le += ca ve dire quoi il en parle pas dans le cours (Oui tu a répondu a ma question ;) )
              • Partager sur Facebook
              • Partager sur Twitter
                4 mai 2008 à 14:32:55

                Désolé pour le code qui ne marche pas, tiens je te l'ai refait :
                #include <stdio.h>
                #include <stdlib.h>
                
                double moyenneTableau(long tableau[], long tailleTableau);
                
                
                int main(int argc, char *argv[])
                 {
                	long tableau[4] = {1, 2, 3, 5 };
                	double moyenneDuTableau;
                
                	moyenneDuTableau = moyenneTableau(tableau,4);
                    printf("La moyenne du tableau est : %lf", moyenneDuTableau);
                 }
                
                double moyenneTableau(long tableau[], long tailleTableau)
                 {
                    long i=0;/* Variables exploratrice de tableau*/
                    double moyenne = 0;
                	for (i = 0 ; i < tailleTableau ; i++)
                	 {
                        moyenne += tableau[i];
                	 }
                    moyenne = moyenne/tailleTableau;
                    return moyenne;
                 }
                


                Et le += il en parle dans son cours ici
                • Partager sur Facebook
                • Partager sur Twitter
                  4 mai 2008 à 14:33:06

                  int main(int argc, char *argv[])
                  {
                          long tableau[4] = {1, 2, 3, 5 }; //déclare et remplie un tableau
                          moyenneTableau = tableau / 2; // divise l'adresse du pointeur tableau par 2  et plante car moyenne tableau n'est pas déclaré.
                  }
                  




                  double moyenneTableau(long tableau[4], long tailleTableau) 
                  //inutile  de passer taille tableau, ta fonction ne parche que pour les tableaux de taille 4
                  {
                  
                  	long tableau [4], tailleTableau = 0; // redefinie (et donc efface) les variables passées a la fonction
                  	for (tailleTableau = 0 ; tailleTableau < 4 ; tailleTableau++) // OK! Comme tu n'as que des tableaux de taille 4 : remplace taille tableau par 4
                  	{
                  		printf("la moyenne de la valeur des chiffre du tableau sont "%lf" ", moyenneTableau); // ??? t'as rien calculé
                  	}
                  }
                  






                  Voila un exemple de code un peu mieux (je l'ai pas testé)
                  //je déclare mes fonctions AVANT le main pour pouvoir les appeler
                  long Fmoyenne(long tableau[4]){
                      int i;
                      long somme = 0;
                      for(i=0;i<4;i++){ somme = somme + tableau[i];}
                      return somme/4;
                  }
                  
                  int main(int argc, char *argv[])
                  {
                          long tableau[4] = {1, 2, 3, 5 }; //déclare et remplie un tableau
                          long moyenneTableau = Fmoyenne(tableau); // pour appeler une fonction F : F() et non F
                          printf("la moyenne de la valeur des chiffre du tableau est "%lf" ", moyenneTableau);
                          return 0; // parce que quand ca marche main return 0
                  }
                  
                  • Partager sur Facebook
                  • Partager sur Twitter
                    4 mai 2008 à 14:46:47

                    Je galère a comprendre l'utilité de ce truc
                    moyenne += tableau[i]
                    
                    Dans le cours je comprend pour l'opération mais là ! Je vois pas

                    Edit :p : Ha mais si sa additionne tout les nombre du tableau? non?
                    • Partager sur Facebook
                    • Partager sur Twitter
                      4 mai 2008 à 14:53:17

                      En fait c'est un raccourci tu veux les programmeur c'est des grosses feignasses :p
                      Donc ils ont inventé des raccourcis.

                      En clair :
                      ça
                      moyenne += tableau[i]
                      

                      et ça
                      moyenne = moyenne + tableau[i]
                      

                      c'est absolument pareil.


                      • Partager sur Facebook
                      • Partager sur Twitter
                        4 mai 2008 à 14:56:10

                        Eu mais pourquoi tu a 2 moyenne là?

                        C'est super chaud la programmation quand même ^^
                        • Partager sur Facebook
                        • Partager sur Twitter
                          4 mai 2008 à 15:12:47

                          :'(

                          Tu massacres ton pc la... Serieux, la programmation n'a aucun lien historique avec la magie... on ecrit pas des formules magiques en esperant que ca fonctionnera...

                          Le C, c'est un langage assez Strict, j'ai pas lu le cours de mateo, je ne sais pas comment il introduit tout ca, mais faut pas te dire "si je fais ca, avec un peu de chance, l'ordi fera ca", faut commander directement ta memoire !

                          quand on voit ton code et tes interrogations ensuite, on s'appercoit que t'as parcourru rapidement le tuto de mateo et que t'as rien lu d'autre sur le sujet, on s'appercoit que tu ne maitrises pas la notion de variable, fonction et pointeur, alors pour la notion de tableau, on en parle meme pas... quand a ton for, c'est une grosse blague...

                          • Partager sur Facebook
                          • Partager sur Twitter
                            4 mai 2008 à 15:14:31

                            Mes deux moyenne c'est expliqué par M@teo dans son cours dans le même chapitre que +=.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              4 mai 2008 à 15:15:31

                              Bin il faut bien commencer quelque part non si je me trompe! Et c'est en cherchant et en se renseignant que l'on progresse donc pour l'instant je progresse!
                              • Partager sur Facebook
                              • Partager sur Twitter
                                4 mai 2008 à 15:20:27

                                progresser c'est pas apprendre a taper un hello world... lis des cours, et met toi a la place de ta machine... comprendre qu'on ne peut pas diviser une fonction par deux en C, c'est juste une question de bon sens...
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  4 mai 2008 à 18:44:05

                                  Aprés avoir relu le cours et les explication de Darth Sidious j'ai compris pal mal de truc ;) mais j'ai quelque nouvelles questions sur le sujet :)

                                  Si on ve que le programme lise le tableau et le garde en mémoire (pour une fonction)il sufit de mettre ca

                                  for (i = 0 ; i < tailleTableau ; i ++)
                                  
                                      {
                                  
                                      }
                                  



                                  Et aprés je sais pas trop dans quel ordre je doit mettre le if (j'ai mit des commentaire pour préciser ce que je veut dire)
                                  // Exercice 4 :
                                  
                                  //créer une fonction maximumTableau qui aura pour rôle de 
                                  //remettre à 0 toutes les cases du tableau ayant une valeur supérieure à un maximum. 
                                  //Cette fonction prendra en paramètre le tableau ainsi que le nombre maximum autorisé (valeurMax). 
                                  //Toutes les cases qui contiennent un nombre supérieur à valeurMax doivent être mises à 0.
                                  
                                  #include <stdio.h>
                                  #include <stdlib.h>
                                  
                                  void maximumTableau(long tableau[], long tailleTableau, long valeurMax);
                                  void affiche(long *tableau, long tailleTableau);
                                  
                                  
                                  
                                  int main(int argc, char *argv[])
                                  {
                                  
                                  	long tableau [4] = { 3, 5, 12, 4,};
                                  
                                  
                                  	maximunTableau ( tableau, 4, 4);	// fonction pour changer les valeur du tableau
                                  	affiche (tableau, 4);				// fonction pour afficher les valeurs du tableau
                                  
                                  
                                  	system("PAUSE");      
                                    return 0;
                                  
                                  	
                                  }
                                  
                                  
                                  
                                  void maximumTableau(long tableau[], long tailleTableau, long valeurMax)
                                  {
                                  	long i, valeurMax = 4;
                                  
                                  	for (i = 0 ; i < tailleTableau ; i ++)
                                  	{
                                  	}
                                  
                                  	if (valeurMax >= 4)		// La fonction if doit être dans for ou pas ? 
                                  	{
                                  		tableau[i] = 0;
                                  	}
                                  
                                  
                                  }
                                  
                                  void affiche(long *tableau, long tailleTableau)
                                  {
                                      long i;
                                   
                                      for (i = 0 ; i < tailleTableau ; i++)
                                      {
                                          printf("%ld\n", tableau[i]);
                                      }
                                  }
                                  


                                  Bon j'espère qu'il n'y a pas trop d'érreurs et merci à ceux qui pourons m'aider
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    4 mai 2008 à 19:05:46

                                    poulet ? stoi ?

                                    nan parce-que si c'est pas un fake, desole, mais achete toi un cerveau...
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      4 mai 2008 à 19:13:31

                                      Bon toi il faut que tu arrete de me les brisé ! ata je demande de l'aide car je bloque malgré mes recherches . Je sui désolé de pas avoir un niveau de taré en programmation comme certain qui soule (comme toi) alors si tu ve pas m'aider arrete de posté et va voir d'autres gens a emmerder !

                                      désolé si je suis vulgère mais la ca me soule!
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      Anonyme
                                        4 mai 2008 à 19:20:58

                                        je veux pas être méchant mais des fois, faut arrêter de poster pour prendre 2 minutes pour réfléchir un poil.

                                        Ton test, tu doit le faire pour toutes les cases tu tableau. Si tu le met en dehors, est ce ca va être le cas.
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          4 mai 2008 à 19:25:38

                                          je general, je reponds juste "ok" et je pars. Sur irc, on m'a fait une mauvaise blague, j'y ai lu que t'etais un type plutot doue qui posait des questions debiles pour faire chier les gens, ce qui explique mon agressivite... pardonne moi.

                                          Quand j'ai commence la programmation, (ca fait en gros 10 ans), j'avais pas internet, pas de livres, pas de tutos, j'avais comme unique aide, la touche F1 qui m'ammenait tout droit a l'aide de Qbasic, en anglais...

                                          Jusqu'a mes 4 ans de programmation, je me debrouillais comme ca. Ensuite, j'ai obtennu de l'aide en francais, beaucoup plus d'aide, j'etais passe de Qbasic 1.1 a Qb 4.5... Ensuite, javascript et html (toujours sans internet) avec un cours que mon pere m'avait trouve.

                                          Tout ca sans avoir de profs...

                                          Bref, tout ca pour dire que je me suis casse le cul pour en arriver la ou je suis, c'est pas vennu tout seul, et pourtant, j'ai jamais fait d'erreurs comme celles que tu fais la...

                                          Bref, ici, t'as apparement des explications claires sur ce que fait une boucle... ce qu'est une variable, ou une fonction, ou un tableau...

                                          Je n'accorde pas beaucoup d'interret aux tutos du site du zero, je les trouve souvent plein d'erreurs et incoherents, mais ca ne change pas le fait que tu devrais les comprendre...

                                          int i;
                                          for (i=0;i<42;i++){
                                          printf("i=%d\n", i);
                                          }

                                          tu vois ici, t'as une variable, i, et une boucle, a l'interieur de la boucle (donc entre les {} ), tu as des instructions qui s'executent, dont un appelle de la fonction printf.

                                          si t'as depasse la classe de troisieme, tu ne devrais pas avoir trop de problemes pour la notion de fonction.
                                          long maximumTableau(long tableau[], long tailleTableau){
                                          long i, max = tableau[0];
                                          for (i = 1 ; i < tailleTableau ; i ++)
                                          if (max < tableau[i] ) max=tableau[i];
                                          return max;
                                          }

                                          ta fonction ressemble a ca normalement. (elle renvoie la valeur maximum d'un tableau)
                                          attention, elle ne fonctionne pas pour un tableau de taille 0.
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            4 mai 2008 à 19:36:48

                                            euh ... ne nous énervons pas Blooo va lire les tutos de Matéo sérieusement ... prend ton temps la prog ça s'apprend pas en 10 min ... quand tu aura tout lu et fais les exos ... ben relis et refais les exos ... crée des petits programmes en console pour t'entrainer etc... ;)

                                            et coucou747 il existe les balises <code><code/> ... et les espaces aussi et les retours a la ligne :-°
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              4 mai 2008 à 19:38:58

                                              en general, on critique mon manque d'accents, je considere donc ca comme un compliement
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                4 mai 2008 à 21:10:41

                                                Merci de ton aide coucou malgrés cette petite "bagarre".

                                                J'ai fait exactement pareil que toi en 3D, avec un bouqin...(même si je n'en fait pas depuis 10 ans) Mais comme j'ai plus l'esprit artistique que mathématique ce qui pourait te sembler super simple c'est super compliqué pour moi. ^^ (sourtout que c'est le 1er language que j'apprend)
                                                • Partager sur Facebook
                                                • Partager sur Twitter

                                                Aide tableau !

                                                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                • Editeur
                                                • Markdown