me manque kelke lignes!!!!

me manque kelke lignes!!!! - C - Programmation

Marsh Posté le 02-02-2005 à 19:50:27    

Salut, alors j'essai en vais nde faire un petit probléme de programmation, mais ca merde à un endroit, mais je n'arrive pas du tout a trouver la solution a mon erreur (en fait les valeur semble étre décaler de un pour lesadditions, si kelk'un pouvais m'aider un ti peu....ca serais trés cool  :p  
voilà l'ennocé : faire un programme qui prend 2 matrice entrée et qui affiche le résulatat de l'addition des deux matrices.
et g fais :  
 

Code :
  1. int Tab [3][3];
  2. int Tab1 [3][3];
  3. int i=0;
  4. int j=0;
  5. int k=0;
  6. int l=0;
  7. int S;
  8. void main (){
  9.     while (i<3){
  10.         while (j<3){
  11.             printf ("entrez les valeurs du premier tableau [%d][%d]",i ,j);
  12.             scanf ("%d ",& Tab[i][j]);
  13.             j=j+1;
  14.             }
  15.         i=i+1;
  16.         j=0;
  17.     }
  18.     while (k<3){
  19.         while (l<3){
  20.             printf ("entrez les valeurs du deuxiéme tableau [%d][%d]",k,l);
  21.             scanf ("%d ",& Tab1[k][l]);
  22.             l=l+1;
  23.             }
  24.             k=k+1;
  25.             l=0;
  26.         }
  27.         k=0;
  28.         i=0;
  29.         j=0;
  30.         l=0;
  31.                 while (k<3){
  32.                     while(l<3){
  33.                         S=Tab[i][j]+Tab1[k][l];
  34.                         printf ("les sommes des deux matrices tab[%d][%d] et tab1[%d][%d]sont : %d \n ",i ,j, k, l,S);
  35.                         l=l+1;
  36.                         j=j+1;
  37.                     }       
  38.                     k=k+1;
  39.                     i=i+1;
  40.                     l=0;
  41.                     j=0;
  42.                 }       
  43.      
  44.     }


 
voilà j'vous remerci par avance si kelk'un peu m'aider... :sarcastic:


Message édité par whishy le 02-02-2005 à 20:17:49
Reply

Marsh Posté le 02-02-2005 à 19:50:27   

Reply

Marsh Posté le 02-02-2005 à 19:51:26    

utilise des balises code pour mettre en forme plz


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 02-02-2005 à 20:21:14    

T'aider a faire quoi, quel est ton pb?
 
Sinon tu fais un truc inutile:

Citation :

S=Tab[i][j]+Tab1[k][l];


 
Ce que tu additionnes en fait, c'est les membres pour des indices identiques,  
tu peux donc ecrire: S=Tab[k][l]+Tab1[k][l];
 
A+,


Message édité par gilou le 02-02-2005 à 20:24:11

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 02-02-2005 à 20:23:13    

il y a un truc qu'on appelle "for", c'est vachement pratique: ça incrémente automatiquement les index


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 02-02-2005 à 22:01:15    

Masklinn a écrit :

il y a un truc qu'on appelle "for", c'est vachement pratique: ça incrémente automatiquement les index


Eun non! Pas 'automatiquement'. (C != BASIC)
 
 
 
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 02-02-2005 à 22:13:22    

Emmanuel Delahaye a écrit :

Eun non! Pas 'automatiquement'. (C != BASIC)


tu pinailles là :(  
 
par rapport à un while, c'est automatique :o


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 02-02-2005 à 22:18:52    

whishy a écrit :

Salut, alors j'essai en vais nde faire un petit probléme de programmation, mais ca merde à un endroit, mais je n'arrive pas du tout a trouver la solution a mon erreur (en fait les valeur semble étre décaler de un pour lesadditions, si kelk'un pouvais m'aider un ti peu....ca serais trés cool  :p  
voilà l'ennocé : faire un programme qui prend 2 matrice entrée et qui affiche le résulatat de l'addition des deux matrices.
et g fais :  
<...>
voilà j'vous remerci par avance si kelk'un peu m'aider...


Une façon compliquée d'écrire


#include <stdio.h>
 
int main (void)
{
   int Tab[3][3];
   int Tab1[3][3];
 
   {
      int i;
      for (i = 0; i < 3; i++)
      {
         int j;
         for (j = 0; j < 3; j++)
         {
            printf ("entrez les valeurs du premier tableau [%d][%d] : ", i, j);
            fflush (stdout);
            scanf ("%d", &Tab[i][j]);
         }
      }
   }
 
   {
      int i;
      for (i = 0; i < 3; i++)
      {
         int j;
         for (j = 0; j < 3; j++)
         {
            printf ("entrez les valeurs du deuxieme tableau [%d][%d] : ", i, j);
            fflush (stdout);
            scanf ("%d", &Tab1[i][j]);
         }
      }
   }
 
 
   {
      int i;
      for (i = 0; i < 3; i++)
      {
         int j;
         for (j = 0; j < 3; j++)
         {
            int S = Tab[i][j] + Tab1[i][j];
            printf ("les sommes des deux matrices tab[%d][%d] et tab1[%d][%d]sont : %d \n ", i, j, i, j, S);
         }
      }
   }
 
   system("pause" );
   return 0;
}


Et encore, on doit pouvoir 'factoriser'...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 02-02-2005 à 22:19:07    

Mais c'est quoi une boucle 'for' c'est interpreté comment ? Comme une macro ou bien comme une boucle hardware en ASM ?  
EDIT: Je veux dire apres le parsage du for par exemple il se passe quoi ? ptet je confonds tout ...  :(


Message édité par Chronoklazm le 02-02-2005 à 22:22:49
Reply

Marsh Posté le 02-02-2005 à 22:21:22    

Masklinn a écrit :

tu pinailles là :(  
 
par rapport à un while, c'est automatique :o


Ben non. C'est organisé, bien présenté, structuré, mais pas automatique. En BASIC on met NEXT ou NEXT I et ça fait i++.
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 02-02-2005 à 22:21:41    

Emmanuel Delahaye a écrit :

Une façon compliquée d'écrire
Et encore, on doit pouvoir 'factoriser'...


On pourrait déclarer i et j en même temps que les tables déjà :o
 
ce qui permettrait d'enlever les {} du for(i)
 
(au fait, pourquoi pas ++i? [:cupra] )


Message édité par masklinn le 02-02-2005 à 22:24:16

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 02-02-2005 à 22:21:41   

Reply

Marsh Posté le 02-02-2005 à 22:28:54    

Chronoklazm a écrit :

Mais c'est quoi une boucle 'for' c'est interpreté comment ? Comme une macro ou bien comme une boucle hardware en ASM ?  
EDIT: Je veux dire apres le parsage du for par exemple il se passe quoi ? ptet je confonds tout ...  :(


Ben c'est traduit en langage machine comme n'importe quelle autre instruction. Rien de magique.


int i = 0;
while (i < 3)
{
   i++;
}


ca fait le même code que


int i;
for (i = 0; i < 3; i++)
{
   
}


soit un truc dans le genre (pseudo assembleur)


 MOV A, 0
 MOV B, 3
ENCORE:
 INC A
 DEC B
 JZ FIN
 
 
 JMP ENCORE
FIN:


Message édité par Emmanuel Delahaye le 02-02-2005 à 22:34:33

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 02-02-2005 à 22:32:26    

Masklinn a écrit :

On pourrait déclarer i et j en même temps que les tables déjà :o


Euh bof, je préfère limiter la portée. Ca prépare à la mise en fonction...

Citation :


ce qui permettrait d'enlever les {} du for(i)


Bof, personnellement, je mets toujours les {}. C'est plus clair et ça facilite la maintenance et l'évolution.

Citation :

(au fait, pourquoi pas ++i?)


Dans le contexte, pas de différence.
 
Je n'utilise pas le contexte où ça fait une différence. Trop dangereux.


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 02-02-2005 à 22:33:47    

Chronoklazm a écrit :

Mais c'est quoi une boucle 'for' c'est interpreté comment ? Comme une macro ou bien comme une boucle hardware en ASM ?  
EDIT: Je veux dire apres le parsage du for par exemple il se passe quoi ? ptet je confonds tout ...  :(


 
exemple de "for (int i=0; i<5; i++)" en asm :

Code :
  1. mov eax,5 // eax = i
  2. loop: (traitement) // le corps de la boucle for
  3.       dec eax // eax = eax-1
  4.       cmp eax,0 // eax = 0 ?
  5.       jnz loop  // si non, alors on boucle
  6.       (après le for)


Message édité par Harkonnen le 02-02-2005 à 22:35:29

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 02-02-2005 à 23:02:02    

Harkonnen a écrit :

exemple de "for (int i=0; i<5; i++)" en asm :

Code :
  1. mov eax,5 // eax = i
  2. loop: (traitement) // le corps de la boucle for
  3.       dec eax // eax = eax-1
  4.       cmp eax,0 // eax = 0 ?
  5.       jnz loop  // si non, alors on boucle
  6.       (après le for)



 
il fallait que tu mettes de l'assembleur hein :D


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 02-02-2005 à 23:19:31    

black_lord a écrit :

il fallait que tu mettes de l'assembleur hein :D


chuis toujours là pour aider les ames perdues dans ces langages d'assistés comme le C et autres Basic évolués :o


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 03-02-2005 à 10:53:51    

hohoho, ba euhh merci bien mais ca ma po beaucoup aider, en fait ce que vous m'avez dit à l'air pas mal du tout, le seul hic ce que je n'en suis pas encore a ce niveau là!!!
Pour l'histoire du for, je préfére vraimenet le while, je les bien mieux compris (et je le métrise mieux aussi)!!!
Le probléme c que mon addition différe d'une valeur...a partir de la toute premiére...
Merci encore

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed