Aide programmation C++ (débutant qui galère inside)

sim41_
  • sim41_
  • Custom Cool utilisateur
  • #1
  • Publié par
    sim41_
    le 19 Mai 2004, 00:27
Hello!
Il y a certainement des gens qui connaissent les bases du langage C++ ici, non?
Car j'ai un programme à faire pour la semaine prochaine et je comprends pas grand chose à vrai dire...
J'ai plein de questions mais je vais essayer de ne vous demander que le principal.

En fait le truc qui me pose problème pour l'instant c'est d'indexer un tableau.
Plus clairement : j'ai 6 noms de villes à mettre dans un tableau, et je cherche à numéroter (de 0 à 5) ces données, pour que l'utilisateur puisse choisir une ville en saisissant le numéro correspondant. Je voudrais afficher ce tableau avec en 1ere ligne les indices (0,1,2,3,4,5) et en 2e ligne les noms de mes villes, en gros le rendu doit ressembler à ça :
:
________________________________________________                                             
|   0   |   1   |   2   |   3   |   4   |   5   |
_________________________________________________
|ville1 |ville2 |ville3 |ville4 |ville5 |ville6 |
________________________________________________

Or je ne sais pas comment faire pour mettre plusieurs types de données dans un tableau, si j'ai bien compris le seul moyen est d'utiliser une structure, aïe aïe aïe...
Je pensais déclarer ma structure comme ça (je ne sais pas si c'est correct) :
:
struct tableau_villes{int indice; char nom_ville;};

Mais après je ne sais absolument pas comment faire pour entrer les informations, j'ai tenté quelque chose mais ça ne fonctionne pas :
:
tableau_villes villes[NOMBRE_VILLES] = { {0,1,2,3,4,5} , {"ville1", "ville2", "ville3", "ville4", "ville5", "ville6"} };

sachant que "villes" est le nom que j'ai voulu donner au tableau et que NOMBRE_VILLES est une constante que j'ai définie préalablement.

Alors si quelqu'un peut m'éclairer et me dire quel code je dois taper pour afficher correctement mon tableau ça me tirerait une fière chandelle du pied...
merci d'avance!
Ed
  • Ed
  • Vintage Top utilisateur
  • #2
  • Publié par
    Ed
    le 19 Mai 2004, 00:32
Faut lire des bouquins avant de se lancer dans de la prog hasardeuse lol

Pour les structures voila comment ça marche :

struct [nom_structure]
{
type champ;
[type champ;
[...]]
};

Ex :

struct Ma_Struct
{
int num1;
int num2;
int num3;
}

Tableau pour stocker mes structures :

Ma_Struct Nom_du_tableau[Nombre d'éléments];
Maître des marionnettes, je tire les ficelles
http://www.whippingdancerz.com
Ed
  • Ed
  • Vintage Top utilisateur
  • #3
  • Publié par
    Ed
    le 19 Mai 2004, 00:34
Pour atttribuer des valeurs à tes structures :

Nom_Struct.num1 = valeur
Nom_Struct.num2 = valeur
etc...
Maître des marionnettes, je tire les ficelles
http://www.whippingdancerz.com
sim41_
  • sim41_
  • Custom Cool utilisateur
  • #4
  • Publié par
    sim41_
    le 19 Mai 2004, 01:11
Ouhlà, merci Ed mais je comprends pas tout!
D'abord, les Nom_Struct.num1 ça se met où? Dans le main?
En fait il me faudrait le code précis pour mon exemple, désolé d'abuser mais j'ai vraiment du mal, j'ai beau suivre des cours à la fac et avoir lu quelques trucs d'initiation sur le net je capte rien à la programmation...

Admettons que j'appelle ma structure tableau_villes, et villes le tableau.
Donc je déclare ma structure :
:
struct[tableau_villes]
{
int indice1;
int indice2;
/* (comme ça jusqu'à 6) */

char ville1;
char ville2;
/* (etc...) */
}

et après (à quel endroit???) j'attribue des valeurs à mes variables :
:
tableau_villes.indice1 = 0
tableau_villes.indice2 = 1
/* [...] */
tableau_villes.ville1 = "Caen"
tableau_villes.ville2 = "Paris"
/* [...] */


Enfin, dans le main, je demande d'afficher de cette manière là :
:
cout<<villes[NOMBRE_VILLES];


Et pour mettre sous forme de tableau je fais comment?
:
tableau_villes villes[NOMBRE_VILLES]
Mais ça détermine pas les lignes et colonnes...?!
je comprends rien...
Je hais le C++!
En, plus me paraît un peu compliqué juste pour avoir un tableau indéxé comportant des mots mais bon je fais confiance aux pros...
sim41_
  • sim41_
  • Custom Cool utilisateur
  • #5
  • Publié par
    sim41_
    le 19 Mai 2004, 01:46
Petit UP avant d'aller me coucher, je désespère et j'ai vraiment besoin de votre aide sur ce coup svp...
Ed
  • Ed
  • Vintage Top utilisateur
  • #6
  • Publié par
    Ed
    le 19 Mai 2004, 03:38
sim41_ a écrit :
Ouhlà, merci Ed mais je comprends pas tout!
D'abord, les Nom_Struct.num1 ça se met où? Dans le main?


C est pour attribuer des valeurs aux champs de la structure, tu le met ou t'en as besoins Surement dans le main chez toi oui.

sim41_ a écrit :

Admettons que j'appelle ma structure tableau_villes, et villes le tableau.
Donc je déclare ma structure :
:
struct[tableau_villes]
{
int indice1;
int indice2;
/* (comme ça jusqu'à 6) */

char ville1;
char ville2;
/* (etc...) */
}

et après (à quel endroit???) j'attribue des valeurs à mes variables :
:
tableau_villes.indice1 = 0
tableau_villes.indice2 = 1
/* [...] */
tableau_villes.ville1 = "Caen"
tableau_villes.ville2 = "Paris"
/* [...] */



Tu attribues comme j'ai dis plus haut, quand tu veux les valeurs

sim41_ a écrit :

Enfin, dans le main, je demande d'afficher de cette manière là :
:
cout<<villes[NOMBRE_VILLES];



Oula tu as vraiment de grosses lacunes en prog, je te conseille vivement de lire des bouqins faire des exos avant de te lancer dans des progs avec des strucures :/

si tu veux afficher un tableau en entier faut faire une boucle et à chaque tour afficher la structure de la position ou l'on se trouve, tu ne peux pas afficher un tableau de la manière ci dessus.

Ex :
:

for (i=0;i++;i<TAILLE_TABLEAU)
{
   cout << mon_tableau[i].ville1;
   cout << mon_tableau[i}.ville2;
   // etc....
}


sim41_ a écrit :

Et pour mettre sous forme de tableau je fais comment?
:
tableau_villes villes[NOMBRE_VILLES]
Mais ça détermine pas les lignes et colonnes...?!
je comprends rien...
Je hais le C++!


je comprends pas ton histoire de ligne et de colonne ? oO
Avec ce qu'on fait plus haut on a un tableau à 1 Dimension qui enregistre dans chaque case des structures déclarés ci dessus.
Peut etre que tu as besoins d'un tableau à 2 dimensions.

sim41_ a écrit :

En, plus me paraît un peu compliqué juste pour avoir un tableau indéxé comportant des mots mais bon je fais confiance aux pros...


un tableau est forcément indexé peut importe ce qu'il y a dedans puisquon y accede via un index qui determine quelle case on inspecte du tableau
Maître des marionnettes, je tire les ficelles
http://www.whippingdancerz.com
popogendarme
bon bah c juste un ch'ti probleme de structure, j'chuis en license MIAGE ( pour ceux qui connaisse) lol mai sj'ai déjà tout oublié niveau C++, moi ce que je te conseille c d'allez sur un forum du site developpez.com, c le mêm forum qu'ici sauf qu'il parle pas de guitare mais de programmation...

sinon ouais faut effectivement utilisé une structure pour ce genre de truc. Logiquement si t'as un cour ça doit être dedans.

la personne qui t'ai aidé plus haut à totalement raison

pour des exemple

tape
structure c++ dans google tu devrais en trouvé à la pelle
molodoi
  • #8
  • Publié par
    molodoi
    le 19 Mai 2004, 10:40
popogendarme a écrit :
bon bah c juste un ch'ti probleme de structure, j'chuis en license MIAGE ( pour ceux qui connaisse)


Où ça?
Nous ne sommes ni des mécaniques, ni des possédés, nous sommes pires: libres (Molodoï)
popogendarme
molodoi a écrit :
popogendarme a écrit :
bon bah c juste un ch'ti probleme de structure, j'chuis en license MIAGE ( pour ceux qui connaisse)


Où ça?


dans ton cul

à la miage de descarte à paris 5 ( avenue de versaille dans le 16eme)

t en miage aussi?
bedroom
:
string villes [6] = {"ville1","ville2","ville3","ville4","ville5","ville6"};

for (i=0;i<6;i++) {
    /*mise en forme etc*/
    cout << i;
    /*mise en forme etc*/
}

for (i=0;i<6;i++) {
    /*mise en forme etc*/
    cout << villes[i];
    /*mise en forme etc*/
}
Takumi
  • Takumi
  • Special Top utilisateur
  • #11
  • Publié par
    Takumi
    le 19 Mai 2004, 11:51
Il existe un type enum qui permet de faire ça :

enum VilleTableau {Paris, Bruxelles, Berlin}; // Paris=0, Bxl=1, etc ...

Donc tu associera des valeurs indice à chaque Ville donc tu pourra faire:

Tableau[Paris] par exemple.

Cherche dans un bouquin ou sur le net enum C++
"Nous ne voyons pas d'autres explications ...
Ed
  • Ed
  • Vintage Top utilisateur
  • #12
  • Publié par
    Ed
    le 19 Mai 2004, 13:49
popogendarme a écrit :
molodoi a écrit :
popogendarme a écrit :
bon bah c juste un ch'ti probleme de structure, j'chuis en license MIAGE ( pour ceux qui connaisse)


Où ça?


dans ton cul

à la miage de descarte à paris 5 ( avenue de versaille dans le 16eme)

t en miage aussi?


Nan lui c est un prof de Java perdus en Belgique
Maître des marionnettes, je tire les ficelles
http://www.whippingdancerz.com
sim41_
  • sim41_
  • Custom Cool utilisateur
  • #14
  • Publié par
    sim41_
    le 19 Mai 2004, 18:23
Ed a écrit :
Oula tu as vraiment de grosses lacunes en prog, je te conseille vivement de lire des bouqins faire des exos avant de te lancer dans des progs avec des strucures :/

Bah ouai je sais bien mais si ça peut te rassurer je fais pas ça pour le plaisir!
Je suis obligé de rendre un projet de prog C++ la semaine prochaine alors que j'y connais strictement rien, j'en ai fait juste 2 mois à la fac (et l'info dans mon deug c'est un peu comme la philo en terminale S...), j'ai pas vraiment le temps de me plonger dans des bouquins en ce moment à cause des partiels, je suis trop à l'arrache et ça me gave à mort ce truc!!!

Citation:

un tableau est forcément indexé peut importe ce qu'il y a dedans puisquon y accede via un index qui determine quelle case on inspecte du tableau

Oui ça je sais mais le truc c'est que je veux faire en sorte que sur l'écran de l'utilisateur s'affichent les indices (en une 1ère ligne) et en-dessous les villes (dans une 2e ligne), enfin bon jme comprends!

Donc voilà merci à tous pour votre aide je vais essayer de mettre ça en oeuvre et de limiter les dégâts sur ma note car j'ai vraiment pas besoin d'avoir des points de retard à cause de l'info...
Ed
  • Ed
  • Vintage Top utilisateur
  • #15
  • Publié par
    Ed
    le 20 Mai 2004, 00:12
Déja si tu n'orientes pas ton programme en Objet je ne vois pas l'utilité de le faire en C++, pourquoi ne pas le faire en C ?
Maître des marionnettes, je tire les ficelles
http://www.whippingdancerz.com

En ce moment sur backstage...