FORUM Syndrome-OC - Jacky-PC


  Programmation


  Langage haut niveau(C, Pascal...)


  [c++] affichage de texte et nombre dans un meme tableau.

 




nicodache Tuning PC : gaugo Le salon de discussion : Dj_Gogo_2000, Endeavour WaterCooling & TEC (Peltiers) : flavius424, 1 utilisateur anonyme et 16 utilisateurs inconnus

 Mot :   Pseudo :  
 
 Page :  1  2
Page Précédente 
Auteur Sujet :

[c++] affichage de texte et nombre dans un meme tableau.

n°216
thorpheus
un mot
Posté le 01-12-2003 à 13:30:19  profilanswer
 

pour un projet de cours je doit utiliser un tableau avec un listing en première colonne le nom d'étudiant, et en première ligne le nom de matière afin d'en faire les moyennes par étudiant, par matière ..., je voulais savoir par quelle commande afficher en première colonne le nom des étudiant, pour les matière sa sera la meme manoeuvre, et aussi comment parcourir le tableau pour voir les résultats.
je débute un peu, donc je connais pas encore toute les comandes cpp.
merci


---------------
:hot: le formatage la seule solution pour nétoyer correctement son pc :hot:
mood
Google
Posté le 01-12-2003 à 13:30:19  profilanswer
 

n°217
Dr Lous
I see old password
Posté le 01-12-2003 à 17:23:42  profilanswer
 

tu as un tableau genre    
 
array('Matiere' => 'Note')
 
si oui fait un while avec un each (ca excite en c++ le foreach ?) et dans le while tu fait l'affichage...  
 
et si plusieurs eleves alors tu while encore audessus
 
vu keje connais pas trop le C++ g l'ekivalence en php ^^ c ce ke g de plus rapprochant...

n°218
Deadog
Dain Bramaged
Posté le 01-12-2003 à 18:08:26  profilanswer
 

à mon avis, nan :D
 
moi j'ai pas bien compris ce ke tu voulait faire thorpheus ...

n°219
thorpheus
un mot
Posté le 01-12-2003 à 18:45:08  profilanswer
 

Code :
  1. /***************************************************************************
  2.                           tp5exo3.cpp  -  description
  3.                              -------------------
  4.     begin                : jeu nov 27 2003
  5.     copyright            : (C) 2003 by thorpheus
  6.     email                : thorpheus@hotmail.com
  7. ***************************************************************************/
  8. /***************************************************************************
  9. *                                                                         *
  10. *   This program is free software; you can redistribute it and/or modify  *
  11. *   it under the terms of the GNU General Public License as published by  *
  12. *   the Free Software Foundation; either version 2 of the License, or     *
  13. *   (at your option) any later version.                                   *
  14. *                                                                         *
  15. ***************************************************************************/
  16. #include <iostream.h>
  17. #include <conio.h>
  18. #include <stdlib.h>
  19. const int lmax=101,cmax=11;
  20. void main ()
  21. {clrscr ();
  22.   float moyc,moyl,moyg;
  23.   int c,l,i,j;
  24.   char etudiant,matiere;
  25.   /*description du programme*/
  26.   cout<<"********************************************************************"
  27.   <<"\n Ce programme remplis un tableau avec en premire colone le nom "
  28.   <<"\n ou le numero de l'etudiant definis par l'utilisateur,"<<"\n puis dans les colonnes suivante "
  29.   <<"\n les note au matiere definis par l'utilisateur."
  30.   <<"\n En dernire colonne la moyenne des eleves. et en derniere"<<"\n ligne la moyenne generale"
  31.   <<"\n par matiere, et en derniere case la moyenne generale de la prmomotion."
  32.   <<"\n**********************************************************************";
  33.     /*demande du nombre d'etudiant et de matieres*/
  34.   retry:
  35.   cout<<"\nCombien y a t'il d'etudiants ? ( inferieur a 100 ) ";
  36.   cin>>l;
  37.   if (l>=100)
  38.   {goto retry;}
  39.   retry2:
  40.   cout<<"\nCombien y a t'il de matieres ? ( inferieur a 10 ) ";
  41.   cin>>c;
  42.   if (c>=10)
  43.   {goto retry2;}
  44.   clrscr ();
  45.   float t[lmax][cmax];
  46.     /*remplissage de la premiere colonne*/
  47.   for (i=1;i<l+1;i++)
  48. t[i][0]=i;
  49.   /*remplissage de la premiere ligne*/
  50.   for (i=1;i<c+1;i++)
  51. t[0][i]=i;
  52.   moyg=0;
  53.   /*remplissage du tableau*/
  54.   for (i=1;i<l+1;i++)
  55.     { cout<<"\n note de "<<i;
  56.       moyc=0;
  57.       for (j=1;j<c+1;j++)
  58.        { cout<<"\n en "<<j<<" ? ";
  59.  cin>>t[i][j];
  60.  moyc=moyc+t[i][j];
  61.        }
  62.       t[i][c+1]=moyc/(c);
  63.       moyg=moyg+t[i][c+1];
  64.     }
  65.   t[l+1][c+1]=moyg/(l);
  66.   for (i=1;i<c+1;i++)
  67.     {moyl=0;
  68.      for (j=1;j<l+1;j++)
  69. { moyl=moyl+t[i][j];
  70. }
  71.       t[l+1][i]=moyl/(l);
  72.     }
  73.   clrscr();
  74.   t[0][0]=0;
  75.   t[0][c+1]=0;
  76.   t[l+1][0]=0;
  77.   /*affichage du tableau*/
  78.   cout<<"\naffichage du tableau";
  79.   for (i=0;i<(l+2);i++)
  80.     { cout<<"\n";
  81.       for (j=0;j<(c+2);j++)
  82. { cout<<"\t"<<t[i][j];
  83. }
  84.     }
  85.   cout<<"\n\n";
  86.   system("pause" );
  87.   }


 
voila mon programme.
dans la première colone je voudrais le nom des étudiants.
et sur la première ligne le nom des matières pour lesquelles je doit rentrer les résultats.
sinon j'ai une solution faire trois tableaux, le premier en colone avec le nom des étudiants, en colone juste au dessus le nom des matières, et entre les deux les notes des étudiants. mais je voudrai le faire en un seul tableua. si c possible, mais si je ne me trompe un tableau ne peut se déclarer que d'un seul type entier, réel, ou chaine de caractère ...
 
:??:

n°220
Deadog
Dain Bramaged
Posté le 01-12-2003 à 18:48:53  profilanswer
 

fait une structure contenant tes 3 tableaux [:spamafote]
 
 
(et vérifie ton orthographe !!!)

n°221
thorpheus
un mot
Posté le 01-12-2003 à 18:51:49  profilanswer
 

oki merci je vais voir sur mon idée.

n°222
Dr Lous
I see old password
Posté le 01-12-2003 à 19:14:28  profilanswer
 

ca me rappelle les boukin... le cout<<"...";
 
:ange: :D

n°223
Trracer
Posté le 01-12-2003 à 19:31:21  profilanswer
 

C'est clair qu'un code aussi "porcio" ça peut qu'etre un exemple d'ecole :lol: ;)

n°224
Deadog
Dain Bramaged
Posté le 01-12-2003 à 19:32:22  profilanswer
 

clair, utilisation de label [:matleflou]

n°225
CryoGen
Powered by kitkat©
Posté le 01-12-2003 à 19:49:40  profilanswer
 

:lol: des label + goto je savaos meme pas que ca existait en c/c++ :lol:
 
Et puis la mise en page... :D

n°234
C4H8O3
Posté le 02-12-2003 à 00:06:35  profilanswer
 

Ben çà alors, nos profs doivent avoir les même sources :D
 
g fait un truc qui y ressemble en TP3 aussi
 
voilà la source, çà réponds par vraiment à ta question
mais bon peut-etre que ça pourrais t'aider
 
ps : c du c (pas ++)
 
edit : g viré le commentaire du binome désolé ils étaient à ....
 

Code :
  1. #include <stdio.h>
  2. float tabnote[100][100];             
  3. int nombre_d_eleves, nombre_de_notes;   //variable publiques
  4. void calcul_moyenne_eleves (void);              //declaration de fonction
  5. void saisie_de_donnee (void);
  6. //Programme principale
  7. void main(void)
  8. {
  9. printf ("entrez les dimensions de votre tableau (maximum 200):\n" );
  10. do
  11.   {
  12.    printf ("Nombre d'élèves :\n" );
  13.    scanf ("%d",&nombre_d_eleves);             
  14.   }
  15. while (nombre_d_eleves > 200 || nombre_d_eleves < 0);
  16. do
  17.   {
  18.    printf ("Nombre de notes :\n" );
  19.    scanf ("%d",&nombre_de_notes);                 }
  20. while (nombre_de_notes > 200 || nombre_de_notes < 0); 
  21. saisie_de_donnee();                             calcul_moyenne_eleves();                     
  22. }
  23. //FIN Programme principal
  24. //Sous programme de saisie de donnée
  25. void saisie_de_donnee(void)
  26. {
  27. int i, j;
  28. for (j=0;j<nombre_d_eleves;j++)                                            {
  29.    printf ("\n entrez les notes de l'étudiant %d \n",j+1);
  30.    for (i=0;i<nombre_de_notes;i++)                 {
  31.      printf ("\n note %d \n",i+1);
  32.      scanf ("%f",&tabnote[i][j]);
  33.     }
  34.   }
  35. }
  36. //FIN Sous programme de saisie de donnée
  37. //Sous programme de calcul moyen
  38. void calcul_moyenne_eleves(void)
  39. {
  40. int i, j;
  41. //calcul de la moyenne des eleves
  42. printf (" \n \n la moyenne des élèves \n" );
  43. for (j=0;j<nombre_d_eleves;j++)                   {
  44.    float moyenne_de_l_eleve=0;                     
  45. float moyenne_eleve_temp=0;                 
  46.    for (i=0;i<nombre_de_notes;i++)
  47.     {
  48.      moyenne_eleve_temp = moyenne_eleve_temp + tabnote[i][j];
  49.     }
  50.    moyenne_de_l_eleve = moyenne_eleve_temp/nombre_de_notes;
  51.    printf (" \n la moyenne de l'étudiant %d est "
  52.    " de %.1f \n",j+1,moyenne_de_l_eleve);
  53.   }
  54. printf (" \n \n la moyenne de la classe \n" );
  55. for (i=0;i<nombre_de_notes;i++)               
  56.   {
  57.    float moyenne_de_la_classe=0;               
  58.    float moyenne_classe_temp=0;                 
  59.    for (j=0;j<nombre_d_eleves;j++)
  60.     {
  61.      moyenne_classe_temp = moyenne_classe_temp + tabnote[i][j];
  62.     }
  63.    moyenne_de_la_classe = moyenne_classe_temp/nombre_d_eleves;
  64.    printf ("\n La moyenne de la classe pour la note"
  65.    " %d est de %.1f \n",i+1,moyenne_de_la_classe);
  66.   }
  67. }
  68. //FIN Sous programme de calcul moyen


Message édité par C4H8O3 le 02-12-2003 à 00:20:34

---------------
Aqua Paris
n°235
Deadog
Dain Bramaged
Posté le 02-12-2003 à 00:07:51  profilanswer
 

faite pt le sujet, j'vais voir si j'peux pas le faire simplement en C ;)

n°236
Deadog
Dain Bramaged
Posté le 02-12-2003 à 00:11:11  profilanswer
 

Code :
  1. float tabnote[100][100];                //declaration de tableau aussi grand
  2.                 //que l'on veut ou plutot que
  3.                                           //l'ordinateur veut bien accepter


 
 
ha bon ??? j'savais pas ke y avais une limitation aux tableaux !! :lol: à part la mémoire
m'enfin un tableau de 100 par 100 en float c pas la mort kan même ...


Message édité par Deadog le 02-12-2003 à 00:12:02
n°238
nicodache
marmotte en chocolat concept ©
Posté le 02-12-2003 à 00:13:31  profilanswer
 

bah tu peux toujours réalloc [:dslam]

n°239
C4H8O3
Posté le 02-12-2003 à 00:16:20  profilanswer
 

Deadog a écrit :

Code :
  1. float tabnote[100][100];                //declaration de tableau aussi grand
  2.                 //que l'on veut ou plutot que
  3.                                           //l'ordinateur veut bien accepter


 
 
ha bon ??? j'savais pas ke y avais une limitation aux tableaux !! :lol: à part la mémoire
m'enfin un tableau de 100 par 100 en float c pas la mort kan même ...


 
fait pas attention aux commentaires, c mon binome...
 
si on mets bcp trop de lignes et de colonnes le pc plante un certain moment non ? enfin çà depends des machines


---------------
Aqua Paris
n°240
Deadog
Dain Bramaged
Posté le 02-12-2003 à 00:20:17  profilanswer
 

kan t'arrivera à faire pt la mémoire, ouai, ça plantera, et encore, ça passera sur la swap
 
mais la, y'a pas de risque
un float ça fait 4 octet de mémoire
100*100*4 ça fait 40ko
c certe bcp, mais il va pas planté si tu lui met plus ;) (m'a jamais planté dans les doigts moi, mais c pê pke moi c nux [:spamafote] meilleurs gestion de la mémoire ke win :p)

n°241
Deadog
Dain Bramaged
Posté le 02-12-2003 à 00:21:50  profilanswer
 

nicodache a écrit :

bah tu peux toujours réalloc [:dslam]


 
 
allocation dynamique direct ouai !! :p
et si on est pas sur de son coup, débuggage à la libefence :)

n°242
nicodache
marmotte en chocolat concept ©
Posté le 02-12-2003 à 00:24:01  profilanswer
 

libenfence ?

n°243
C4H8O3
Posté le 02-12-2003 à 00:25:53  profilanswer
 

Deadog a écrit :

kan t'arrivera à faire pt la mémoire, ouai, ça plantera, et encore, ça passera sur la swap
 
mais la, y'a pas de risque
un float ça fait 4 octet de mémoire
100*100*4 ça fait 40ko
c certe bcp, mais il va pas planté si tu lui met plus ;) (m'a jamais planté dans les doigts moi, mais c pê pke moi c nux [:spamafote] meilleurs gestion de la mémoire ke win :p)


 
 
bah là g mis 100 parce que 100 notes c deja bcp
 
 
moi avec  
 

Code :
  1. float tab[22222222222222222222][22222222222222222222],i;


 
 
y me dit  
 
 
Warn :  tp4c.cpp(10,6):Constant is long
Warn :  tp4c.cpp(10,28):Constant is long
Error:  tp4c.cpp(10,50):Array size too large
Error:  tp4c.cpp(10,50):Array size too large

 
bref c limité
 
je v me coucher
 
+++


---------------
Aqua Paris
n°244
Deadog
Dain Bramaged
Posté le 02-12-2003 à 00:31:34  profilanswer
 

en fait oui, il y'a une limite maintenant ke j'y repense
 
cette limite est due à l'architecture IA-32 (celle des x86 en général)
les procs IA-32 ne peuvent adresser ke 4Go de mémoire max en fonctionnement virtuel du proc (cad le fonctionnement k'utilise tous les os)
donc la, tu dépasses ces fameux 4Go ;)
 
 
et plutôt ke de faire un tableau de 100 par 100 (soit tu laisse un gros trou, soit t'a pas assez) il vaut mieux faire de l'alloc dynamique
en plus avec calloc, faire des tableaux c assez simple :)
 
 
edit : m'enfin, c k'un sujet de TP, et kan on est encore ka faire  ce type d'exercice on a pas encore abordé tous ce ki est aspect de la mémoire :D


Message édité par Deadog le 02-12-2003 à 00:35:10
n°245
C4H8O3
Posté le 02-12-2003 à 07:21:56  profilanswer
 

alloc dynamanique ? kesako ?


---------------
Aqua Paris
n°247
Deadog
Dain Bramaged
Posté le 02-12-2003 à 15:07:03  profilanswer
 

bin tu utilise les fonction malloc, calloc, realloc et free
ça te permet d'obtenir autant de mémoire ke tu lui spécifie :)
 
style ça :

Code :
  1. char *dump_string (char *string) {
  2.   int len;
  3.   char *dump=NULL:
  4.   if(string == NULL) return NULL;
  5.   len = strlen(string) + 1;
  6.   if((dump = (char *) calloc(len, sizeof(char))) == NULL) return NULL;
  7.   strncpy(dump, string, len - 1);
  8.   dump[len] = 0;
  9.   return dump;
  10. }


 
ki permet de copié une string dans une autre (oui, je sais, y'a des fonctins toutes faites pour ça (strdup) mais ct pour l'expl ;)


Message édité par Deadog le 02-12-2003 à 18:03:54
n°248
C4H8O3
Posté le 02-12-2003 à 16:39:57  profilanswer
 

mici


---------------
Aqua Paris
n°267
Le Veilleu​r
.:. .:.
Posté le 02-12-2003 à 19:29:36  profilanswer
 

autant jouer avec des vectors, c'est plus simple et moins prise de tete que les alloc dynamique ;)


---------------
http://LeVeilleur.net
Hostipics.net : Hébergement gratuit de vos photos pour forums, ...
n°270
C4H8O3
Posté le 02-12-2003 à 20:21:20  profilanswer
 

Le Veilleur a écrit :

autant jouer avec des vectors, c'est plus simple et moins prise de tete que les alloc dynamique ;)


 
 
and kesako ?


---------------
Aqua Paris
n°271
Le Veilleu​r
.:. .:.
Posté le 02-12-2003 à 20:29:31  profilanswer
 

regarde la doc, ca peut s'utiliser comme un tableau, et ca ressemble à une liste.
 
Tu peux y acceder directement par intérateur, tu peux retirer le premier, le dernier, faire un swap, y a plein de fonction.
 
Tu as meme des fonctions toutes faites qui te retourne la taille. c'est vraiment chouette pour tout ce qui est dynamique ;)


---------------
http://LeVeilleur.net
Hostipics.net : Hébergement gratuit de vos photos pour forums, ...
n°272
Deadog
Dain Bramaged
Posté le 02-12-2003 à 20:39:03  profilanswer
 

fonctions d'assistées :o :D ;)

n°273
Le Veilleu​r
.:. .:.
Posté le 02-12-2003 à 20:53:39  profilanswer
 

le programmeur est un fade par nature :p


---------------
http://LeVeilleur.net
Hostipics.net : Hébergement gratuit de vos photos pour forums, ...
n°275
C4H8O3
Posté le 03-12-2003 à 08:33:35  profilanswer
 

mici
je v voir çà


---------------
Aqua Paris
n°276
thorpheus
un mot
Posté le 03-12-2003 à 09:52:58  profilanswer
 

moi aussi faut que je cherche.
et qu'elle est la différence entre un cout<< et un printf() ??
 
peut on utilisé des comande en C pour du C++ ??


Message édité par thorpheus le 03-12-2003 à 09:53:25
n°280
Deadog
Dain Bramaged
Posté le 03-12-2003 à 18:41:48  profilanswer
 

la diff c ke cout est une classe (ou un truc particulier au C++)
 
et oui, tu peux utiliser du C dans du C++
pour les trucs ki passe vraiment pas, genre les syntaxe authorisé en C et pas en C++, tu peux définir à un endroit du prog ke ce ke tu vas écrire est en C ;)

n°281
thorpheus
un mot
Posté le 04-12-2003 à 08:48:57  profilanswer
 

merci bcp.
et sinon pour parcourir le tableau on peux faire comment ??

n°282
Le Veilleu​r
.:. .:.
Posté le 04-12-2003 à 09:00:53  profilanswer
 

Code :
  1. for(i =0 ; i< tailleTab ; i++)
  2.    printf(" Element %d : %d",i,tab[i];


 
Tu dois déclarer i, connaitre la taille du tableau, et apres tu fais ce que tu veux avec ;)


---------------
http://LeVeilleur.net
Hostipics.net : Hébergement gratuit de vos photos pour forums, ...
n°283
Deadog
Dain Bramaged
Posté le 04-12-2003 à 12:27:01  profilanswer
 

for(int i=0 ; ...
 
 
en C99 ça passe ;)

n°284
thorpheus
un mot
Posté le 04-12-2003 à 12:57:09  profilanswer
 

mais là c'est pour l'affichage, ça c'est bon, mais un tableau de 100 ligne, je ne pourais jamais voir les 100. donc afficher le tableu entier, et ensuite avec une sorte de curseur se baladais dedant c'est possible ???
ou alors éditer un fichier .txt avec le tableau dedant ?
merci ;)

n°285
Deadog
Dain Bramaged
Posté le 04-12-2003 à 13:00:09  profilanswer
 

bah ton curseur c'est i [:spamafote]


Message édité par Deadog le 04-12-2003 à 13:00:21
n°286
thorpheus
un mot
Posté le 04-12-2003 à 16:23:18  profilanswer
 

oui j'ai bien compris mais il va les afficher pour chaque élément du tableau. ce que je veux faire c'est pouvoir avoir tout le tableau et me balader dessus.
à moin que c'est ce qu'elle permet j'ai pas encore tester. et pour renvoyer le tableau dans un fichier txt ??

n°287
Deadog
Dain Bramaged
Posté le 04-12-2003 à 16:48:22  profilanswer
 

atta, j'comprend pas trop la ...
la notion même de "curseur" et de "se balader dessus" c des notions graphiques et visuels ça !
 
pour renvoyer dans un fichier, utilise les fopen et autre fonctions ki va avec [:spamafote]


Message édité par Deadog le 04-12-2003 à 16:48:33
n°288
thorpheus
un mot
Posté le 04-12-2003 à 17:09:12  profilanswer
 

oki merci je vais chercher dans cette direction ;)
et oui la notion que je parler ct en visuel

n°289
Deadog
Dain Bramaged
Posté le 04-12-2003 à 18:40:22  profilanswer
 

faire du graphique en C++ c très compliqué !!! même pour la chose la plus simple

mood
Google
Posté le 04-12-2003 à 18:40:22  profilanswer
 

 Page :  1  2
Page Précédente 

Aller à :
Ajouter une réponse

  FORUM Syndrome-OC - Jacky-PC


  Programmation


  Langage haut niveau(C, Pascal...)


  [c++] affichage de texte et nombre dans un meme tableau.

 

Hit Parade