Algo additionner ligne tableau

Fermé
spinaroony Messages postés 42 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 13 janvier 2020 - 31 janv. 2011 à 10:59
spinaroony Messages postés 42 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 13 janvier 2020 - 1 févr. 2011 à 09:32
Bonjour,

Je me demande simplement comme additionner les lignes dans un tableau 2 dimensions, je dois faire le total de chaque ligne ainsi que le total de chaque colonne.
L'utilisateur donne la taille du tableau ainsi que les valeurs des cellules, maintenant comment faire pour qu'il me calcul le total de chaque ligne et de chaque colonne ?
S'il vous plaît ?

A voir également:

6 réponses

JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 31/01/2011 à 12:32
Algo Adition            
Variables totalL, totalC : reel;             
          mat:Tableau[20][20] reel;             
          i,j,L,C : Entier;             

Debut             

totalL=0; totalC=0; //Initialisation des variables             

//Infos et messages pour l'utilisateur             
  Ecrire("Donnez le nombre de ligne ainsi que le nombre de colonne");             
  Lire(L,C);             
  Ecrire("Veuillez entrer les", C*L ,"nombre(s) à insérer dans le tableau : ");             


//Créer le tableau             
  Pour i <- 1 à L Faire             
    Pour j <- 1 à C Faire             
      Lire(mat[i][j]);             
    Fait             
  Fait             

//Afficher le tableau             
  Pour i <- 1 à L Faire             
    Pour j <- 1 à C Faire             
      Ecrire(mat[i][j]);             
    Fait             
  Fait             

//Additionner les cases selon les lignes             
  Pour i <- 1 à L Faire             
    Pour j <- 1 à C Faire             
      totalL <- totalL + mat[i][j];             
    Fait             
    Ecrire("Total de la ligne ", i ," est ",totalL);             
    totalL=0;             
  Fait             

//Additionner les cases selon les colonnes             
  Pour j <- 1 à C Faire             
    Pour i <- 1 à L Faire             
      totalC <- totalC + mat[i][j];             
    Fait             
    Ecrire("Total de la colonne ", j ," est ",totalC);             
    totalC=0;             
  Fait             

Fin
1
spinaroony Messages postés 42 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 13 janvier 2020
Modifié par spinaroony le 31/01/2011 à 14:43
Merci.
Mais j'ai du mal à comprendre, la taille du tableau (N) est un seul chiffre, le tableau semble donc être un carré.
Le total des lignes est appelé N+1.
Les cellules sont appelés N², si je marque pour les lignes mon tab[10][10] :

pour i de 1 à n faire

N+1 <- N² + i++
//donc le N² c'est la cellule de gauche (mais es-ce qu'il prend la bonne??) + le i++ veut dire qu'il prend la suivant jusqu'à 10, de toute façon si la personne met 5 au départ, ça fera +0 jusqu'à 10.



j++
//pour lui dire de passer en-dessous



fin pour

J'ai compris ce qu'il fallait faire mais je n'arrive pas sortir une formule, c'est clairement mon problème.

Tu peux encore prendre de ton temps pour m'expliquer si c'est faux, s'il te plaît ?
0
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 31/01/2011 à 15:40
Pour commencer, ou est ce que t'as appris tout ce que t'as dis??

Bon j'explique du mieux que je peut, mais je crois pas que tu comprendra... :) mais bref...

La taille du tableau?, ça depend de ce que tu veut faire, si tu declare une varibale ainsi Tableau[10], alors il va crée un tableau unidimensionnel de 10 cellules, soit, il y aura qu'une seule ligne, et 10 colonnes), mais toi, t'as citer "lignes et colonnes", donc une matrice, alors tu doit la declarer ainsi Tableau[10][20] ou Tableau[10,20], alors il va créer un tableau de 10 lignes et de 20 colonnes...soit 200 cellules...
Exemple, Si tu veut créer un tableau a 3 dimensions, tu n'as qu'a faire Tableau[10][20][10],

Je comprend pas ce que tu veut dire par N+1, ou N², je vois pas le rapport...

Tu peut pas écrire N² pour designer une cellule, ça veut rien dire...

Il ne va pas forcement jusqu'à 10, il va jusqu'à la valeur de n, exemple, si t'as taper 5, il partira de 1 jusqu'à 5...

Ré-explication...

Etape 1 : Nom de l'algorithme.
Etape 2 : Déclaration des variables.
Etape 2.1 : totalL et totalC sont des variables a valeurs réelles.
Etape 2.2 : mat est un tableau a 2 dimensions(ligne, colonne ou longeur, largeur), et a valeurs réelles.
Etape 2.3 : i,j,C,L sont des variables a valeurs entières

Etape 3 : Début de l'algorithme.
Etape 4 : Initialisation des variables...
Etape 5 : Infos et messages pour l'utilisateurs...
Etape 6 : Lire les valeurs entrer par l'utilisateurs, ....L,C sont les deux variables qui representerons la valeurs de la taille du tableau que l'utilisateurs aura choisis, si il a tape 5 4, alors 5 sera stocké dans L, et 4 dans C, soi, ce tableau aura 5 lignes et 4 colonnes...

Etape 7 : Aprés que l'utilisateurs ait entré 2 nombres L et C, on lui affichera un autre message pour entrer les valeurs dans le tableau, soi, si l'utilisateur avait entrer 2 2, alors le tableau aura 2 lignes et 2 colonnes, soi, 4 cellules (C*L=2*2=4), alors il devra entrer 4 nombres pour pouvoir continuer...

Etape 8 : Créer le tableau
Etape 8.1 : On crée une boucle qui se chargera de créer les lignes du tableau en fonction du nombre L entré par l'utilisateur.
Etape 8.2 : On crée une deuxième boucle qui est imbriqué dans la première et qui se chargera de créer les colonnes du tableau en fonction du nombre C entré par l'utilisateur.
Etape 8.3 : Exemple, quand la boucle commence, i=1 et j=1, si l'utilisateur avait entré 2 3, alors i<L soi (1<2) VRAI, alors il entre dans la boucle, il trouve une deuxième boucle, alors il teste la condition j<C soi (1<3) VRAI, alors il entre dans la boucle, il trouve ainsi la fonction lire, alors il attend que vous entrer un nombre quelconque, et il le stockera dans la première cellule, en fonction de i et j qui sont ici égale a... i=1 et j=1 (qui signifie la première cellule), puis il remonte dans la même boucle, il incrémente le j de 1, (j était 1 donc il deviens 2) et il reteste la condition, elle sera toujours vrai car 2<3 VRAI, alors il relit la boucle une nouvelle fois, il trouve la fonction lire, alors il attend que vous entrer un nombre, et il stockera ce nombre dans la (deuxième)cellule 1 2 (i=1, j=2).......etc

Etape 9 : Afficher le tableau
Il refera la même chose que dans l'étape 8, sauf qu'au lieu de créer les cellules et stockés les nombres que vous auriez entrer, il ne fera que les afficher(écrire =montrer) et afficher les nombres que vous avez entrer...

Etape 10 : Additionner les cases selon les lignes...
Encore une boucle, alors il se positionne en premier dans la première cellule(i=1, j=1), il lit la valeur se trouvant dans cette cellule puis l'additionne a la valeur de totalL(qui est égale a 0 au début), puis remonte la boucle, il incrémente j, il entre de nouveau dans la meme boucle en testant la condition(si i < L=2) VRAI, alors il entre et additionne la valeur de la deuxième cellule(i=1, j=2) a la valeur de totalL(qui cette fois est egale a la valeur de la première cellule), puis il remonte la boucle, et refait la meme chose(il additionne la cellule suivante a totalL ) jusqu'a que la condition devient FAUSSE, alors il ecrit la valeur final de totalL, qui représente a la fin de la boucle le total de la premiere ligne, et remonte a nouveau a la première boucle, puis refait la même chose sauf que dans ce cas, il le fait dans la deuxième ligne, et ainsi de suite...

Etape 11 : Additionner les cases selon les colonnes
Même chose que dans l'Etape 10, sauf que dans ce cas c'est pas des lignes qu'il s'occupera mais des colonnes.

//étape 1      
Algo Adition         
        
//--------------------------------------------------------       

//etape 2     
                    
Variables totalL, totalC : reel;    //Etape 2.1                    
          mat:Tableau[20][20] reel;   //Etape 2.2                  
          i,j,L,C : Entier;  //Etape 2.3                   

//---------------------------------------------------------       

//Etape 3       
Debut                     

//Etape 4       
totalL=0; totalC=0;                     

//Etape 5                 
  Ecrire("Donnez le nombre de ligne ainsi que le nombre de colonne");                     
         
//Etape 6       
Lire(L,C);       

 //Etape 7                  
  Ecrire("Veuillez entrer les", C*L ,"nombre(s) à insérer dans le tableau : ");                     

//----------------------------------------------------------       

//Etape 8                     
  Pour i <- 1 à L Faire       //Etape 8.1              
    Pour j <- 1 à C Faire     //Etape 8.2                
      Lire(mat[i][j]);        //Etape 8.3       
    Fait                     
  Fait                     

//----------------------------------------------------------       

//Etape 9                     
  Pour i <- 1 à L Faire                     
    Pour j <- 1 à C Faire                     
      Ecrire(mat[i][j]);                     
    Fait                     
  Fait                     

//-----------------------------------------------------------       

//Etape 10                     
  Pour i <- 1 à L Faire                     
    Pour j <- 1 à C Faire                     
      totalL <- totalL + mat[i][j];                     
    Fait                     
    Ecrire("Total de la ligne ", i ," est ",totalL);                     
    totalL=0;                     
  Fait                     

//-----------------------------------------------------------       

//Etape 11                     
  Pour j <- 1 à C Faire                     
    Pour i <- 1 à L Faire                     
      totalC <- totalC + mat[i][j];                     
    Fait                     
    Ecrire("Total de la colonne ", j ," est ",totalC);                     
    totalC=0;                     
  Fait                     

Fin
0
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
31 janv. 2011 à 15:43
Tiens, voici le code traduit en langage C, t'aura peut etre une meilleur idée en le testant...

#include <stdio.h>
void main() {

float totalL=0,totalC=0,mat[20][20];
int i,j,L,C;

printf("Entrer le nombre de lignes et de colonnes : ");
scanf("%d%d",&L,&C);
printf("Veuillez entrer les %d nombre(s) à inserer dans le tableau : ",L*C);

for(i=1;i<=L;i++) {
  for(j=1;j<=C;j++) {
    scanf("%f",&mat[i][j]);
    }
  }

printf("\n");//-----------------------------------------------------

for(i=1;i<=L;i++) {
  for(j=1;j<=C;j++) {
    printf("%.2f\t",mat[i][j]);
    }
  printf("\n");
  }

printf("\n");//-----------------------------------------------------

for(i=1;i<=L;i++) {
  for(j=1;j<=C;j++) {
    totalL=totalL+mat[i][j];
    }
  printf("Total de la ligne %d est %f",i,totalL);
  totalL=0;
  printf("\n");
  }

printf("\n");//-----------------------------------------------------

for(j=1;j<=C;j++) {
  for(i=1;i<=L;i++) {
    totalC=totalC+mat[i][j];
    }
  printf("Total de la Colonne %d est %f",j,totalC);
  totalC=0;
  printf("\n");
  }

scanf("\n");
}
0
spinaroony Messages postés 42 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 13 janvier 2020
Modifié par spinaroony le 1/02/2011 à 09:30
<ital>Pour le N ou N² (...) c'était l'énoncé, j'ai simplement repris ce qui était marqué, pour ta question, j'essaye d'apprendre sur le net mais bon, c'est dur...

Je vais me pencher la-dessus ce soir, merci beaucoup.
0
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 31/01/2011 à 18:25
Est ce que l'énoncé se trouve sur le net...!!

Sinon, d'après moi...

N représente le nombre de lignes et le nombres de colonnes en même temps, donc si on peut dire ça, tu aura un carré a la fin... exemple, 5 lignes sur 5 colonnes...

Pour le N², je saisi pas son utilité...!!??

Pour le N+1, ben si t'as crée un tableau 5 sur 5, alors N+1 veut dire la cellule N°6, l'après dernière cellule d'une ligne quoi...

Même chose pour les colonnes, puisque le nombres de lignes est égale aux nombres de colonnes, alors N+1 voudrai dire l'après dernière cellules d'une colonne...

Pour le reste, ben c'est comme je t'ai montrer...

Bon courage...

PS: Pour bien comprendre l'algorithmique, il vaut mieux que tu l'associe a un langage quelconque, pour bien comprendre..., alors pour ma part je te conseille le C, va voir ici, y a des cours complet avec des exos corrigés, t'apprendra bien plus vite en pratiquant, et pour les tableaux, rend toi aux chapitre 7...
0
spinaroony Messages postés 42 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 13 janvier 2020
31 janv. 2011 à 22:35
Il semblerait que ton code en C ne marche pas, j'ai testé avec visual studio, bon après je m'y connais pas des masses.

Merci pour toutes tes infos !
0
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
Modifié par JooS le 31/01/2011 à 23:50
Ben c'est normal, je l'exécute sous Borland moi...donc ajoute quelque details et normalement ça y irai mieux...

Essaye ça...

// help.cpp : définit le point d'entrée pour l'application console. 
// 

#include "stdafx.h" 
#include <stdio.h> 

int _tmain(int argc, _TCHAR* argv[]) { 

float totalL=0,totalC=0,mat[20][20]; 
int i,j,L,C; 

printf("Entrer le nombre de lignes et de colonnes : "); 
scanf("%d%d",&L,&C); 
printf("Veuillez entrer les %d nombre(s) à inserer dans le tableau : ",L*C); 

for(i=1;i<=L;i++) { 
  for(j=1;j<=C;j++) { 
    scanf("%f",&mat[i][j]); 
    } 
  } 

printf("\n");//----------------------------------------------------- 

for(i=1;i<=L;i++) { 
  for(j=1;j<=C;j++) { 
    printf("%.2f\t",mat[i][j]); 
    } 
  printf("\n"); 
  } 

printf("\n");//----------------------------------------------------- 

for(i=1;i<=L;i++) { 
  for(j=1;j<=C;j++) { 
    totalL=totalL+mat[i][j]; 
    } 
  printf("Total de la ligne %d est %f",i,totalL); 
  totalL=0; 
  printf("\n"); 
  } 

printf("\n");//----------------------------------------------------- 

for(j=1;j<=C;j++) { 
  for(i=1;i<=L;i++) { 
    totalC=totalC+mat[i][j]; 
    } 
  printf("Total de la Colonne %d est %f",j,totalC); 
  totalC=0; 
  printf("\n"); 
  } 

scanf("\n"); 

 return 0; 
} 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
spinaroony Messages postés 42 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 13 janvier 2020
1 févr. 2011 à 00:00
1>exo.cpp(7): error C2061: erreur de syntaxe : identificateur '_TCHAR'

Il me met ça ? Mis bon ne te tracasse pas avec ça, c'est un peu du chinois quand je lis ça, je commencerais ton tuto et je vadrouillerais sur celui du siteduzero =)
0
JooS Messages postés 2468 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 228
1 févr. 2011 à 00:19
hmmm, enlève ce qu'il y a entre les parenthèses de tmain...

int argc, _TCHAR* argv[]
0
spinaroony Messages postés 42 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 13 janvier 2020
1 févr. 2011 à 09:32
Idem =P

Mais laisse je finirais bien par trouver^^
0