Récupérer les données d'un tableau [Résolu]

prog93 3 Messages postés mercredi 12 décembre 2012Date d'inscription 23 juillet 2013 Dernière intervention - 23 juil. 2013 à 07:53 - Dernière réponse : yann_lo_san 1137 Messages postés lundi 17 novembre 2003Date d'inscription 23 janvier 2016 Dernière intervention
- 23 juil. 2013 à 21:17
Salut tout le monde, j'ai posé cette question auparavant et j'ai été conseillé d'aller lire un document sur les pointeurs dont cela ne m'a pas trop aidé. D'abord, la contrainte, que j'ai dans mon programme, est que je n'arrive pas à récupérer les données d'un tableau dans une fonction pour l'utiliser dans une autre. Mon code:

#include <iostream>

using namespace std;

void menu(); // fonction qui affiche un menu d'options.

void initialiser(); // Avec la fonction initialise je mets des données manuellement.
void totalventes(); // sensée de me calculer le total des valeurs du tableau.

// Le case est peut-être pas intéressant pour le moment.

int main()
{
menu();
char choix;
cin >> choix;
switch(choix){

case '1':
initialiser(); // Appel de ma fonction initialiser.
break;

case '2':
totatventes(); // Appel de ma fonction totalVentes.
break;

case '3':
break;

case '4':
break;

case '5':
break;

case '6':
break;

default:
cout << " choix invalide " << endl;
}
return 0;
}


void menu(){

cout << endl;
cout << "Menu" << endl;
cout << " 1_ Initialisation " << endl;
cout << " 2_ Total ventes " << endl;
cout << " 3_ Moyenne ventes " << endl;
cout << " 4_ Meilleure vente " << endl;
cout << " 5_ Pire vente " << endl;
cout << " 6_ Quitter " << endl;
cout << " ===> Voulez-vous choisir une option:" ;
}


void initialiser(){

int lignes = 2;
int colonnes = 4;
int tableau[lignes][colonnes];

tableau [0][0] = 25000;
tableau [0][1] = 10000;
tableau [0][2] = 50000;
tableau [0][3] = 30000;
tableau [1][0] = 11000;
tableau [1][1] = 20000;
tableau [1][2] = 12500;
tableau [1][3] = 40000;

for(int i = 0; i < lignes; i++ )
{
cout << endl;
cout << endl;
for(int j = 0; j < colonnes; j++)
{
cout << tableau[i][j] << " " ;
}
}
}

void totalventes()
{
Dans le corps de cette fonction, je veux calculer le total et de l'afficher sans refaire un autre tableau et faire la même chose.

}

Merci pour toutes vos réponses.

Prog93.
Afficher la suite 

3 réponses

Répondre au sujet
Utilisateur anonyme - 23 juil. 2013 à 09:34
+3
Utile
Hello,
Tu ne peux pas le faire comme cela. Etant donné que ton tableau est local à ta méthode initialiser(), il est normal que tu ne le vois pas dans totalventes(). Il faut voir ta méthode comme une "boite noire" ou un sac: tout ce qui est dedans reste dedans.

Dans le main(), si tu connais la taille de ton tableau, tu peux le créer de manière statique. Sinon, il va falloir passer par les pointeurs...


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Utilisateur anonyme
yann_lo_san 1137 Messages postés lundi 17 novembre 2003Date d'inscription 23 janvier 2016 Dernière intervention - 23 juil. 2013 à 21:17
+3
Utile
Salut,

tu peux masquer les pointeurs avec un typedef,
Il suffit ensuite de passer le nom du tableau en paramètre, sans pointeur, comme on passerait un "int",

exemple pour un tableau dont la taille est connue :

const int LIGNES = 2; 
const int COLONNES = 4; 
typedef int TABLEAU2X4[LIGNES][COLONNES];

int totalventes(TABLEAU2X4 tab) 
{ 
int total=0;
for(int i=0; i<LIGNES; i++)  
for(int j=0; j<COLONNES; j++)  
total += tab[i][j]; 
return total;
}

int main(void)
{
TABLEAU2X4 monTableau = { {1,2,3,4}, {5,6,7,8} };

std::cout << "total = " << totalventes(monTableau) << std::endl;

return 0;
}



bye...
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de yann_lo_san
prog93 3 Messages postés mercredi 12 décembre 2012Date d'inscription 23 juillet 2013 Dernière intervention - 23 juil. 2013 à 20:08
0
Utile
Merci Buno. Dans ce cas, je vais aller relire 4 fois le chapitre des pointeurs afin de saisir le concept qui me semble très flou pour le moment.
Commenter la réponse de prog93

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.