begin process at 2012 05 27 18:51:53
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

.Net

 > MULTIPLICATION DE DEUX MATRICES EN C

MULTIPLICATION DE DEUX MATRICES EN C


 Information sur la source

Note :
8,33 / 10 - par 3 personnes
8,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :.Net Niveau :Débutant Date de création :11/06/2003 Date de mise à jour :11/06/2003 09:00:22 Vu :27 253

Auteur : kelsey

Ecrire un message privé
Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note

 Description

Ce code en permet a l'utilisateur de remplir deux matrices de taille désirée et affiche le résultat. Simple mais ca marche!

Source

  • #include <conio.h>
  • #include <stdio.h>
  • void main()
  • {
  • int i,j,k;
  • int N,M,P;
  • int mat[30][30],mat1[30][30],mat2[30][30];
  • printf ("Donner le nombre de lignes de la premiere matrice : ");
  • flushall(); scanf ("%d",&N);
  • printf ("\nDonner la dimension commune aux 2 matrices : ");
  • scanf ("%d",&M);
  • printf ("\nDonner le nombre de colonnes de la deuxieme matrice : ");
  • scanf ("%d",&P);
  • //Remplissage de la premiere matrice--------------------------------------------
  • printf ("\nDonner les elements de la premiere matrice :\n");
  • for (i=0;i<N;i++)
  • {
  • for (j=0;j<M;j++)
  • {
  • printf ("ligne %d, colonne %d : ",i+1,j+1);
  • scanf ("%d",&mat1[i][j]);
  • }
  • }
  • //Remplissage de la seconde matrice---------------------------------------------
  • printf ("\nDonner les elements de la seconde matrice :\n");
  • for (i=0;i<M;i++)
  • {
  • for (j=0;j<P;j++)
  • {
  • printf ("ligne %d, colonne %d : ",i+1,j+1);
  • scanf ("%d",&mat2[i][j]);
  • }
  • }
  • //Initialisation de la matrice résultante---------------------------------------
  • for (i=0;i<N;i++)
  • {
  • for (j=0;j<P;j++)
  • {
  • mat[i][j]=0;
  • }
  • }
  • //Calcul de la matrice résultante-----------------------------------------------
  • for (i=0;i<N;i++)
  • {
  • for (j=0;j<P;j++)
  • {
  • for (k=0;k<M;k++)
  • {
  • mat[i][j]=mat1[i][k]*mat2[k][j]+mat[i][j];
  • }
  • }
  • }
  • //Affichage de la matrice résultante--------------------------------------------
  • printf ("\nProduit matriciel :\n");
  • for (i=0;i<N;i++)
  • {
  • for (j=0;j<P;j++)
  • {
  • printf ("ligne %d,colonne %d : ",i+1,j+1);
  • printf ("%d\n",mat[i][j]);
  • }
  • }
  • getch();
  • }

#include <conio.h>
#include <stdio.h>
void main()
{
	int i,j,k;
	int N,M,P;
	int mat[30][30],mat1[30][30],mat2[30][30];

	printf ("Donner le nombre de lignes de la premiere matrice : ");
        flushall(); scanf ("%d",&N);
	printf ("\nDonner la dimension commune aux 2 matrices : ");
	scanf ("%d",&M);
	printf ("\nDonner le nombre de colonnes de la deuxieme matrice : ");
	scanf ("%d",&P);

//Remplissage de la premiere matrice--------------------------------------------

	printf ("\nDonner les elements de la premiere matrice :\n");
	for (i=0;i<N;i++)
	{
		for (j=0;j<M;j++)
			{
			printf ("ligne %d, colonne %d : ",i+1,j+1);
			scanf ("%d",&mat1[i][j]);
			}
	}

//Remplissage de la seconde matrice---------------------------------------------

	printf ("\nDonner les elements de la seconde matrice :\n");
	for (i=0;i<M;i++)
	{
		for (j=0;j<P;j++)
			{
			printf ("ligne %d, colonne %d : ",i+1,j+1);
			scanf ("%d",&mat2[i][j]);
			}
	}

//Initialisation de la matrice résultante---------------------------------------

	for (i=0;i<N;i++)
	{
		for (j=0;j<P;j++)
			{
				mat[i][j]=0;
			}
	}
//Calcul de la matrice résultante-----------------------------------------------
	for (i=0;i<N;i++)
	{
		for (j=0;j<P;j++)
		{
			for (k=0;k<M;k++)
			{
				mat[i][j]=mat1[i][k]*mat2[k][j]+mat[i][j];
			}
		}
	}

//Affichage de la matrice résultante--------------------------------------------

	printf ("\nProduit matriciel :\n");
	for (i=0;i<N;i++)
	{
		for (j=0;j<P;j++)
			{
				printf ("ligne %d,colonne %d : ",i+1,j+1);
				printf ("%d\n",mat[i][j]);
			}
	}
	getch();
}





 Sources du même auteur

TRAITEMENT DE TABLEAU AVEC ALLOCATION & RESTITUTIONN DE MEMO...
RÉECRIT UN TEXTE A L'ENVERS
TRI A BULLE EN C
CAPTURE ET DESENCAPSULATION DE TRAMES SUR LE RÉSEAU

 Sources de la même categorie

Source avec Zip Source avec une capture ANALYSEUR LEXICAL par Donald180v
Source avec Zip Source avec une capture MAP_MAKER_JEU par seekplus
Source avec Zip Source avec une capture Source .NET (Dotnet) EMISSION D'UN OCTET SUR LE PORT SÉRIE - CLASSE SERIALPORT par jmchatelet01
Source avec Zip Source .NET (Dotnet) RESOLV EQU DE DEGRES N par darckangel731
Source avec Zip Source avec une capture Source .NET (Dotnet) INTEROP XCHAT / .NET : CHARGEUR DE PLUGINS MANAGÉS par TeBeCo

Commentaires et avis

Commentaire de JCDjcd le 11/06/2003 09:26:40

J'ai bien ton programme.
Mais tu pourait creer une fonction qui rentre les matrices,
cela t'eviterait de toujours faire les boucles 'for'.
Mais ici c'est pa grave, tu en as que deux !

Commentaire de Funto66 le 12/06/2003 09:13:05

Sympa ton programme, ça pourra peut-être me servir avec les matrices d'OpenGL.

Commentaire de kelsey le 12/06/2003 09:15:17

Merci!  ;)
moi j'y connais rien en OpenGL!

Commentaire de Kirua le 12/06/2003 11:01:23

et moi rien aux matrices. on m'explique l'usage? :-)

Commentaire de kelsey le 12/06/2003 11:07:07

Les matrices sont utiliseés comme methode de calcul ( en algébre linéaires par exemple pour les maths ou en mecanique pour les calculs vectoriels ou de torseurs..) c'est utiles et quand on a compris le truc simple voir même amusant!! ( faut aimer les maths aussi!)
;p

Commentaire de Funto66 le 12/06/2003 16:26:41

En OpenGL, les matrices servent à effectuer des transformations; de ce que j'ai compris, on multiplie des coordonnées 3D par une matrice de 4x4 float je crois; ces matrices sont particulières et portent un nom; matrice de rotation, matrice de translation, matrice d'homotétie.
Me demandez pas + de détails, c'est pas très clair dans ma tête non plus :)

Commentaire de Kirua le 12/06/2003 21:18:56

aimer les math? pas de problème :-) je passe en math 8h / semaine l'année prochaine. pr sur que ça me botte ;-)

ok, homotéti, translation et rotation ça fait partie de mon vocabulaire. Mais pr faire ça, j'utilise glTranslatef, glRotatef() etc... pq utiliser les matrices?

c'est en rapport avec pushmatrix et popmatrix c ça? (y a un rapport avec les piles LIFO ou je m'égare totalement??)

Commentaire de Funto66 le 12/06/2003 22:53:33

En fait, glTranslatef, glRotatef et glScalef multiplient des matrices.
Je sais pas quand est-ce qu'on s'en sert, mais je sais qu'il faut dans un vrai prog OpenGL s'en servir à un moment ou un autre.

Commentaire de Kirua le 13/06/2003 07:44:56

ben c même très important, ça permet de déplacer la vue (c une sorte de subdivision de gluLookAt() )

Commentaire de Funto66 le 13/06/2003 08:49:35

En fait, gluLookAt() utilise en interne des glRotatef et des glTranslatef, qui eux-mêmes utilisent des matrices, dont la matrice GL_MODELVIEW.

Commentaire de kelsey le 13/06/2003 08:58:26

tout à fait............!
;p

Commentaire de christmi le 07/01/2009 15:07:41

trooo coool tn program merci

Commentaire de lptm974 le 11/10/2010 23:22:15

Salut,
Merci pour ton programme !
Mais j'aurais peut-être une amélioration à partager.
Je sais très bien qu'il très vieux mais ca pourrait aider les futur utilisateur.
Tu pourrais donc "factoriser" ton programme en initialisant ta matrice résultante,
dans la partie "Calcul de la matrice résultante", juste avant le:
for (k=0;k<M;k++)
on ajoute:
mat[i][j]=0;

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales