Partage
  • Partager sur Facebook
  • Partager sur Twitter

Produit ou somme de deux matrices

De dimension n

Sujet résolu
25 juillet 2013 à 1:58:07

Salut tout le monde je veux calculer la somme et le produit de 2 matrices à "n" dimension j'ai travaillé sur la somme de 2 matrices de dim2 a partir de mon travaille dites moi qu'est ce je dois modifier pour réussir à traiter l'exo

cordialement

NB : les lignes 35 et 36 c'est ma petite touche perso:D

#include<stdlib.h>
#include<stdio.h>
#include<conio.h>

int main ()
{
	int Co1,Co2,Co3,Co4,Bo1,Bo2,Bo3,Bo4,s;
	printf ("\tEntrer les coefficents de la Matrice A\n");
	printf ("Entrer le coefficent mat[0][0]= ");
	scanf ("%d",&Co1);
	printf ("\nEntrer le coefficent mat[0][1]= ");
	scanf ("%d",&Co2);
	printf ("\nEntrer le coefficent mat[1][0]= ");
	scanf ("%d",&Co3);
	printf ("\nEntrer le coefficent mat[1][1]= ");
	scanf ("%d",&Co4);
	printf ("\nLa matrice A est\n ");
	printf ("\t\t%d\t%d\n",Co1,Co2);
	printf ("\tA=\n\t\t%d\t%d\n",Co3,Co4);
	printf ("\n\nEntrer les coefficents de la Matrice B ");
	printf ("\nEntrer le coefficent mat[0][0]= ");
	scanf ("%d",&Bo1);
	printf ("\nEntrer le coefficent mat[0][1]= ");
	scanf ("%d",&Bo2);
	printf ("\nEntrer le coefficent mat[1][0]= ");								
	scanf ("%d",&Bo3);											
	printf ("\nEntrer le coefficent mat[1][1]= ");						
	scanf ("%d",&Bo4);
	printf ("\nLa matrice B est \n");
	printf ("\t\t%d\t%d\n",Bo1,Bo2);
	printf ("\tB=\n\t\t%d\t%d\n",Bo3,Bo4);
	printf ("\nLa Matrice somme est\n");
	printf ("\t\t%d\t%d\n",Co1+Bo1,Co2+Bo2);
	printf ("\tC=\n\t\t%d\t%d\n",Co3+Bo3,Co4+Bo4);
	printf ("\n\nMerci d'avoir utiliser notre service a bientot\n");
	printf ("\t\t\t\t\t\tprogrammeur'Bladych BOTSEBE'");
	getch();
	return 0;
}



  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
25 juillet 2013 à 2:32:54

Oui, enfin une matrice c'est un tableau à deux dimensions, je ne vois pas un seul tableau dans ton code...

Pour faire la somme ou le produit d'une matrice il faut ... une matrice et une double-boucle pour la parcourir, ainsi qu'une variable qui contient le résultat.

Et tu n'as pas besoin de conio ici, pourquoi tout les débutants l'utilisent ? C'est à la mode ?:p

Un simple appel à getchar suffit à mettre ton pogramme en pause ici.;)

Tu part de la fin en commancant par rendre ton programme "interactif"...

-
Edité par Anonyme 25 juillet 2013 à 2:36:49

  • Partager sur Facebook
  • Partager sur Twitter
25 juillet 2013 à 5:02:58

salut moi62100 merci pour ta reponse, pour les tableau je l'ai compris bien avant comme je travaillais en dimension 2 je n'avais pas bésoins de tableau

Je vien de trouver sa sur le forum j'essai de modifier en supprimant la fonction "void" mais sa ne marche pas tu peu m'aider

#include <stdio.h>
#include <stdlib.h>
 
void somme(float A[][50],float B[][50],float C[][50],int n)
 
{int j,i;
 for(i=0;i<n;i++)
  for (j=0;j<n;j++)
  C[i][j]=A[i][j]+B[i][j];
  
}
 
int main(int argc, char *argv[])
{
    float a[50][50],b[50][50],c[50][50];
int i,j,nb;
printf ("donne nb\n");
  scanf ("%d",&nb);
   
printf ("remplisage da la matrice a\n");
 
for(i=0;i<nb;i++)
for (j=0;j<nb;j++)
scanf("%f",&a[i][j]);
 
printf("le renplisage de la matrice b\n");
for(i=0;i<nb;i++)
for (j=0;j<nb;j++)
scanf("%f",&b[i][j]);
 
somme(a,b,c,nb);
for(i=0;i<nb;i++)
for (j=0;j<nb;j++)
printf("la somme est %f\n",c[i][j]);
 
 
  system("PAUSE"); 
  return 0;



  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
25 juillet 2013 à 12:32:15

Ta fonction somme ne peux prendre que des matrices carrées, ce qui limite ses possibilitées. Tu pourrait lui passer sa taille en x et y. Pareil dans ta fonction main.;)

Après les boucles for sans au moins un bloc d'indentation ce n'est pas très lisible.

Tu n'as pas besoin de system("PAUSE") non plus, ni de argc et argv.

Tu peux expliquer un peu plus le problème ?

-
Edité par Anonyme 25 juillet 2013 à 12:47:48

  • Partager sur Facebook
  • Partager sur Twitter
25 juillet 2013 à 19:22:54

moi62100 a écrit:

Tu n'as pas besoin de system("PAUSE") non plus, ni de argc et argv.


Si il dev dans VS il en a besoin sinon la console se ferme toute seule à la fin ^^
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
25 juillet 2013 à 19:52:04

Il peut utiliser getchar, qui est une fonction standard.;)

Et encore, si l'utilisateur veut voir ce que ça affiche, il n'a qu'a ouvrir la console avant et lancer le programme avec. Comme ça pas besoin de rajouter des instructions inutiles à l'execution du programme.:-°

-
Edité par Anonyme 25 juillet 2013 à 19:58:30

  • Partager sur Facebook
  • Partager sur Twitter
25 juillet 2013 à 21:34:32

Merci  Mehfak pour ta contribution au fait "moi62100" jaimerai suprimer la premiere fonction "somme" faire le programme avec une seule fonction main

je ne sais pas si tu voie se que je veux dir

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
25 juillet 2013 à 21:35:48

bladych a écrit:

Merci  Mehfak pour ta contribution au fait "moi62100" jaimerai suprimer la premiere fonction "somme" faire le programme avec une seule fonction main

je ne sais pas si tu voie se que je veux dir

Mauvaise idée...^^

En général on découpe son programme en plusieurs fonctions afin qu'il soit plus facilement lisible.;)

-
Edité par Anonyme 25 juillet 2013 à 21:38:22

  • Partager sur Facebook
  • Partager sur Twitter
26 juillet 2013 à 8:32:24

Ce qu'il veut dire, c'est que comme ils n'ont pas encore vu les fonctions en cours, on va tout de suite voir qu'il n'a pas fait son exercice tout seul :-)

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
26 juillet 2013 à 13:54:50

Ah ouais d'accord.^^

Ce que tu peux faire au début, c'est de copier-coller le code de la fonction à l'endroit ou elle est appellée, et de remplacer les noms de variables par ceux qui correspondent et quelques autres adaptations si il y en a.

Et par contre, revois un peu ton indentation parce que ce n'est pas très agréable à lire la.:euh:

-
Edité par Anonyme 26 juillet 2013 à 13:57:30

  • Partager sur Facebook
  • Partager sur Twitter
26 juillet 2013 à 22:24:18

Merci les gars j'ai réussi a le faire
  • Partager sur Facebook
  • Partager sur Twitter
8 août 2013 à 12:40:48

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main(int argc, char *argv[])
{
   int i,j,dim,a[50][50],b[50][50],c[50][50];
   printf ("donne dim :");
   scanf ("%d",&dim);
   printf ("remplisage da la matrice a\n");
   for(i=0;i<dim;i++)
   {
	   for (j=0;j<dim;j++)
	   {
		   printf("Enter la valeur de A[%d][%d] ",i,j);
		   scanf("%d",&a[i][j]);
		   printf("\n");
	   }
   }
   printf("\n===> Matrice A <===\n");
   for(i=0;i<dim;i++)
   {
	   for (j=0;j<dim;j++)
		   printf("%7d",a[i][j]);
		   printf("\n");
   }
   printf("le renplisage de la matrice b\n");
   for(i=0;i<dim;i++)
   {
	   for (j=0;j<dim;j++)
	   {
		   printf("Enter la valeur de B[%d][%d] ",i,j);
		   scanf("%d",&b[i][j]);
		   printf("\n");
	   }
   }
	   printf("\n===> Matrice B <===\n");
    for(i=0;i<dim;i++)
	{
		for (j=0;j<dim;j++)
			printf("%7d",b[i][j]);
			printf("\n");
	}
	for(i=0;i<dim;i++)
	{
		for (j=0;j<dim;j++)
			c[i][j]=a[i][j]+b[i][j];
	}
	 printf("La somme des matrices A et B est la matrice C : \n");
    printf("\n===> Matrice c <===\n");
	for(i=0;i<dim;i++)
	{
		for (j=0;j<dim;j++)
			printf("%7d", c[i][j]);
			printf("\n");
	}
printf ("Merci d'avoir utiliser notre service a bientot\n");
	printf ("\t\t\t\t\t\tprogrammeur'Bladych BOTSEBE'");
    system("PAUSE");
  return 0;

}
j'avai oublier de mettre la resolution la voici
  • Partager sur Facebook
  • Partager sur Twitter
16 septembre 2021 à 15:20:50 - Message modéré pour le motif suivant : Merci de créer votre propre sujet


16 septembre 2021 à 15:37:57

@ÉlisabethPalaza Bonjour, merci de ne pas déterrer d'ancien sujet résolu. Créer le votre dans le respect des règles du forum à savoir qu'un message commence par des règles de politesses (Un bonjour ou des salutations à la communauté et ce termine par des remerciements par avance pour les futures réponses), la description de votre problématique et le code que vous avez écrit inséré sur le forum à l'aide de l'outil d'insertion de code soit le bouton code </>.

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

-
Edité par AbcAbc6 16 septembre 2021 à 15:39:21

  • Partager sur Facebook
  • Partager sur Twitter