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

Messages postés
3
Date d'inscription
mercredi 12 décembre 2012
Dernière intervention
23 juillet 2013
- - Dernière réponse : yann_lo_san
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Dernière intervention
23 janvier 2016
- 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 

Votre réponse

3 réponses

Meilleure réponse
3
Merci
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...

Merci Utilisateur anonyme 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Dernière intervention
23 janvier 2016
3
Merci
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...

Merci yann_lo_san 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de yann_lo_san
Messages postés
3
Date d'inscription
mercredi 12 décembre 2012
Dernière intervention
23 juillet 2013
0
Merci
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.