Matrice_somme
Résolu
abir.1
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
-
abir.1 Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
abir.1 Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un problemes tres tres tres difficile,
et je ne trouve pas la solution,
SVP aidez moi...
et voici mon probleme:
on veut ecrire un algorithme qui permet de déterminer et d'afficher la somme des elements de chaque
ligne d'une matrice d'entiers M comportant n lignes et m colonnes.
exemple:
soit la matrice suivant:
1 2 3 4
5 6 7 8
9 10 11 12
la somme de la primiere ligne est 10
la somme de la 2eme ligne est 26
la somme de la 3eme ligne est 42
merci d'avance....
j'ai un problemes tres tres tres difficile,
et je ne trouve pas la solution,
SVP aidez moi...
et voici mon probleme:
on veut ecrire un algorithme qui permet de déterminer et d'afficher la somme des elements de chaque
ligne d'une matrice d'entiers M comportant n lignes et m colonnes.
exemple:
soit la matrice suivant:
1 2 3 4
5 6 7 8
9 10 11 12
la somme de la primiere ligne est 10
la somme de la 2eme ligne est 26
la somme de la 3eme ligne est 42
merci d'avance....
14 réponses
Vu que tu n'as pas précisé le langage, en pseudo code :
Bonne chance
M = matrice(nb_ligne,nb_colonne) Pour i = 1 à nb_ligne Ecrire "Somme de la ligne " i " = " s = 0 Pour j = 1 à nb_colonne s = s + M(i,j) FinPour Ecrire s Fin pour
Bonne chance
Bonjour,
Sans présumer du langage on peut imaginer une séquence comme celle-ci :
DEBUT-ROUTINE
initialisation de ind-lignes = 0 (ou à = 1 suivant le langage ==> 1er élément adressable par 0 ou 1)
Faire TRAIT-LIGNES n-lignes fois (jusqu'à la dernière ligne voir**)
FIN-ROUTINE
TRAIT-LIGNES
initialisation de tot-ligne = 0
initialisation de ind-colonnes = 0 (ou = à 1 suivant le langage ==> 1er élément adressable par 0 ou 1)
Faire SOMME-ELEMTS-LIGNE m-colonnes fois (jusqu'au dernier élélment de la ligne voir** )
Affichage du total : tot-ligne de la ind-lignes eme ligne.
ind-lignes = ind-lignes + 1
FIN-TRAIT-LIGNES
SOMME-ELEMTS-LIGNE
tot-ligne = tot-ligne + elemt [ind-lignes] [ind-colonnes]
ind-colonnes = ind-colonnes + 1
FIN-SOMME-ELEMTS-LIGNE
** 1) Au chargement de la matrice il sera vraisemblablement nécessaire de "borner" chaque ligne avec une valeur particulière (valeur négative peut-être si on est certain que toutes les valeurs présentes dans la matrice sont toujours positives). De même la fin de la matrice sera "bornée" avec une valeur paticulière également par exemple - 32768).
**2) Où bien il faut, lors du chargement dre la matrice, conserver le nombre d'éléments de chaque ligne qui sera par convention le 1er de chacune des lignes. Ce 1er élément devra par conséquent être ignoré lors du calcul de la somme. Le nombre de lignes pourra être une variable numérique indépendante ou pourquoi pas être la valeur du 1er élément de la 1ère ligne de la matrice. Ligne qu'il faudra également ignorer.
La seconde solution semble préférable.
NB. les solutions (1 ou 2) ne sont pas détaillées dans le code précédent.
Sans présumer du langage on peut imaginer une séquence comme celle-ci :
DEBUT-ROUTINE
initialisation de ind-lignes = 0 (ou à = 1 suivant le langage ==> 1er élément adressable par 0 ou 1)
Faire TRAIT-LIGNES n-lignes fois (jusqu'à la dernière ligne voir**)
FIN-ROUTINE
TRAIT-LIGNES
initialisation de tot-ligne = 0
initialisation de ind-colonnes = 0 (ou = à 1 suivant le langage ==> 1er élément adressable par 0 ou 1)
Faire SOMME-ELEMTS-LIGNE m-colonnes fois (jusqu'au dernier élélment de la ligne voir** )
Affichage du total : tot-ligne de la ind-lignes eme ligne.
ind-lignes = ind-lignes + 1
FIN-TRAIT-LIGNES
SOMME-ELEMTS-LIGNE
tot-ligne = tot-ligne + elemt [ind-lignes] [ind-colonnes]
ind-colonnes = ind-colonnes + 1
FIN-SOMME-ELEMTS-LIGNE
** 1) Au chargement de la matrice il sera vraisemblablement nécessaire de "borner" chaque ligne avec une valeur particulière (valeur négative peut-être si on est certain que toutes les valeurs présentes dans la matrice sont toujours positives). De même la fin de la matrice sera "bornée" avec une valeur paticulière également par exemple - 32768).
**2) Où bien il faut, lors du chargement dre la matrice, conserver le nombre d'éléments de chaque ligne qui sera par convention le 1er de chacune des lignes. Ce 1er élément devra par conséquent être ignoré lors du calcul de la somme. Le nombre de lignes pourra être une variable numérique indépendante ou pourquoi pas être la valeur du 1er élément de la 1ère ligne de la matrice. Ligne qu'il faudra également ignorer.
La seconde solution semble préférable.
NB. les solutions (1 ou 2) ne sont pas détaillées dans le code précédent.
en fait l'algorithme donné par mamiemando te dit tout ce qu'il faut faire tout en sachant qu'une matrice est un tableau à deux entrées dont il te suffit de le definir en fixant le nombre de lignes et le nombre de colonnes, puis crées 2 procedures dont la premiere te permettra d'entrer si nécéssaires les valeurs de ton tableau une seconde qui te permettra d'afficher.Pour cela une bonne maitrise de la boucle for te suffit.je suis desolé je ne peux pas te l'écrire ca fait un bout moment que je n'ai pas du pascal.
bon courage te bonne chance
bon courage te bonne chance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
/**************************************************
**finalement j'ai décidé d'écrire le code en pascal j'espere que j'ai la bonne memoire et que j'ai pas fait qu'écrire des bétises.
voila bon courage bonne chance.s'il y a des erreurs j'espere aussi que tu peux les corriger.
program matrice(input,output);
var m,n:integer;
var matrix:array[1..m,1..n]of integer;
i,j,som,k,l:integer;
begin
write('nb lignes de la matrice ?');
readln(m);
write('nb colonnes de la matrice ?');
readln(l);
(* entrée des éléments de la matrice *)
for i:=1 to m do
for j:=1 to n do
begin
writeln('row',i,', column',j,'?');
readln(matrix[i,j])
end;
end;
(* calcul du produit *)
for k:=1 to m do
begin
som:=0;
for l:=1 to n do
som:=som + matrix[k,l];
end;
write(som);
end;
writeln();
end.
**finalement j'ai décidé d'écrire le code en pascal j'espere que j'ai la bonne memoire et que j'ai pas fait qu'écrire des bétises.
voila bon courage bonne chance.s'il y a des erreurs j'espere aussi que tu peux les corriger.
program matrice(input,output);
var m,n:integer;
var matrix:array[1..m,1..n]of integer;
i,j,som,k,l:integer;
begin
write('nb lignes de la matrice ?');
readln(m);
write('nb colonnes de la matrice ?');
readln(l);
(* entrée des éléments de la matrice *)
for i:=1 to m do
for j:=1 to n do
begin
writeln('row',i,', column',j,'?');
readln(matrix[i,j])
end;
end;
(* calcul du produit *)
for k:=1 to m do
begin
som:=0;
for l:=1 to n do
som:=som + matrix[k,l];
end;
write(som);
end;
writeln();
end.
Bonjour,
C'est pas bien, il t'aide donc tu dois être un peu gentil (surtout qui te pond le code).
C'est marrant, mais dans mes souvenirs (très frais encore), je ne me souviens pas qu'un tableau à deux entrée s'appellait une matrice.
De même, l'addition se faisait entre deux matrices.
Toi tu veux juste faire des additions à la suite!!
Alors soit un peu gentil, ton problème n'est grave ni compliqué!!
C'est pas bien, il t'aide donc tu dois être un peu gentil (surtout qui te pond le code).
C'est marrant, mais dans mes souvenirs (très frais encore), je ne me souviens pas qu'un tableau à deux entrée s'appellait une matrice.
De même, l'addition se faisait entre deux matrices.
Toi tu veux juste faire des additions à la suite!!
Alors soit un peu gentil, ton problème n'est grave ni compliqué!!
Sans vouloir être méchante avec le pseudo code que je t'ai donné, il te reste juste à faire une traduction directe. Autant dire que c'est pas super dur. Le but à mon avis c'est quand même que tu apprennes un peu à faire du pascal par toi même et pour ça, il n'y a pas de secret, il faut mettre les mains dedans. Accessoirement CCM n'a pas pour vocation de faire les exercices des étudiants, mais les débloquer oui.
A mon humble avis tu as tout ce qu'il te faut :
- le pseudo code dans <2> pour construire ton programme
- des exemples écrits (en pascal je suppose ?) pour voir les instructions utiles
Bref, à toi de jouer maintenant, et bon courage pour ton exercice ;-)
A mon humble avis tu as tout ce qu'il te faut :
- le pseudo code dans <2> pour construire ton programme
- des exemples écrits (en pascal je suppose ?) pour voir les instructions utiles
Bref, à toi de jouer maintenant, et bon courage pour ton exercice ;-)
Et plus vite que ça, je dois rendre mon exercice demain et j'ai envie de rien faire ce soir, il y a la star academy à la télé :-)
merci a tous j'ai deja connu la solution:
program matrice;
uses wincrt;
type
mat=array[1..10,1..10] of integer;
var
i,j,l,c,s:integer;
t:mat;
begin
writeln ('donner l');
readln (l);
writeln ('donner c');
readln (c);
for i:=1 to l do
for j:=1 to c do
begin
write ('t[',i,',',j,']=');
readln (t[i,j]);
end;
for i:=1 to l do
begin
s:=0;
begin
for j:=1 to c do
s:=s+t[i,j];
end;
writeln (s);
end;
end.
program matrice;
uses wincrt;
type
mat=array[1..10,1..10] of integer;
var
i,j,l,c,s:integer;
t:mat;
begin
writeln ('donner l');
readln (l);
writeln ('donner c');
readln (c);
for i:=1 to l do
for j:=1 to c do
begin
write ('t[',i,',',j,']=');
readln (t[i,j]);
end;
for i:=1 to l do
begin
s:=0;
begin
for j:=1 to c do
s:=s+t[i,j];
end;
writeln (s);
end;
end.