C'est l'algoritme de base d'une saisie de 2 matrices, de leur multiplication, et leur affichage.
pour toute ligne i de la matrice 1 et pour toute colonne j de la matrice 2
valeur temporaire=0
{ pour toute colonne k de la matrice 1
valeur temporaire= valeur temporaire + valeur de la ligne i et de la colonne k de la matrice 1 * valeur de la ligne k et de la colonne j de la matrice 2 }
valeur de la ligne i et de la colonne j de la matrice résultante= valeur temporaire
Core Breaker 
-------------------------------
Réponse au message :
-------------------------------
>
L'analyste programmeur a 3 dimension> est ce que quelqu'un pourrait me faire l'algo de ce code
> merci d'avance :
> #pragma hdrstop
>
> #include <conio.h>
> #include <iomanip.h>
> #include <iostream.h>
> #include <stdlib.h>
>
> //---------------------------------------------------------------------------
>
> int **multiplieMatrice(int **matriceA, int colonnesA, int lignesA, int **matriceB, int colonnesB, int lignesB);
>
> #pragma argsused
> int main(int argc, char* argv[])
> {
> int lignes1;
> int colonnes1 ;
> int lignes2 ;
> int colonnes2 ;
> int **m1 ;
> int **m2 ;
> int **m3 ;
> int i, j ;
>
> do
> {
> cout << "1ere matrice : " << endl ;
> cout << "combien de lignes ? " ;
> cin >> lignes1 ;
>
> cout << endl << "combien de colonnes ? " ;
> cin >> colonnes1 ;
>
> cout << endl << "2eme matrice : " << endl ;
> cout << "combien de lignes ? " ;
> cin >> lignes2 ;
>
> cout << endl << "combien de colonnes ? " ;
> cin >> colonnes2 ;
>
> if (colonnes1!= lignes2)
> cout << "erreur, les matrices ne peuvent pas etre multipliees!!! " << endl ;
>
> }
> while (colonnes1 != lignes2) ;
>
> // si les matrices sont ok : colonnes1 == lignes2
>
> m1 = (int**)malloc(lignes1 * sizeof(int*)) ;
> m2 = (int**)malloc(lignes2 * sizeof(int*)) ;
>
> if (!m1)
> {
> free(m1) ;
> cout << endl << "erreur d'alloc 1ere matrice!!! " ;
> return NULL ;
> }
>
> for (i=0 ; i<lignes1 ; i++)
> {
> m1[i] = (int*)malloc(colonnes1 * sizeof(int)) ;
>
> if (!m1[i])
> {
> free(m1) ;
> cout << endl << "erreur d'alloc lignes!!! " ;
> return NULL ;
> }
> }
>
> if (!m2)
> {
> free(m2) ;
> cout << endl << "erreur d'alloc 1ere matrice!!! " ;
> return NULL ;
> }
>
> for (i=0 ; i<lignes2 ; i++)
> {
> m2[i] = (int*)malloc(colonnes2 * sizeof(int)) ;
>
> if (!m2[i])
> {
> free(m2) ;
> cout << endl << "erreur d'alloc lignes!!! " ;
> return NULL ;
> }
> }
>
>
> cout << endl << "1ere matrice : " << endl ;
>
> for (i=0 ; i<lignes1 ; i++)
> {
> for (j=0 ; j<colonnes1 ; j++)
> {
> cout << endl << "nombre en place " << i << " ; " << j << " ? " ;
> cin >> m1[i][j] ;
> }
> }
>
> cout << endl ;
>
> // affichage 1ere matrice
> for (i=0 ; i<lignes1 ; i++)
> {
> for (j=0 ; j<colonnes1 ; j++)
> {
> cout << setw(3) << m1[i][j] ;
> }
> cout << endl ;
> }
>
> cout << endl << "2eme matrice : " << endl ;
>
> for (i=0 ; i<lignes2 ; i++)
> {
> for (j=0 ; j<colonnes2 ; j++)
> {
> cout << "nombre en place " << i << " ; " << j << " ? " ;
> cin >> m2[i][j] ;
> }
> }
>
> cout << endl ;
>
> // affichage 2eme matrice
> for (i=0 ; i<lignes2 ; i++)
> {
> for (j=0 ; j<colonnes2 ; j++)
> cout << setw(3) << m2[i][j] ;
> cout << endl ;
> }
>
> // multiplication des matrices
>
> m3 = multiplieMatrice(m1, colonnes1, lignes1, m2, colonnes2, lignes2) ;
>
> cout << endl << "Multiplication des matrices......" << endl ;
> cout << endl << "Matrice Resultat : " << endl ;
>
> for (i=0 ; i<lignes1 ; i++)
> {
> for (j=0 ; j<colonnes2 ; j++)
> cout << setw(3) << m3[i][j] ;
> cout << endl ;
> }
>
> free(m1) ;
> free(m2) ;
> free(m3) ;
>
> cout << endl << endl << "appuyer sur une touche pour quitter..." ;
> getch () ;
> return 0 ;
>
> }
> //---------------------------------------------------------------------------
>
> // fonction multiplication des 2 matrices
>
> int **multiplieMatrice(int **matriceA, int colonnesA, int lignesA, int **matriceB, int colonnesB, int lignesB)
> {
> int **matriceR ;
> int i, j, k ;
>
> matriceR = (int**)malloc(lignesA * sizeof(int*)) ;
>
> if (!matriceR)
> {
> free(matriceR) ;
> cout << endl << "erreur d'alloc matrice reponse !!! " ;
> return NULL ;
> }
>
> for (i=0 ; i<lignesA ; i++)
> {
> matriceR[i] = (int*)malloc(colonnesB * sizeof(int)) ;
>
> if (!matriceR[i])
> {
> free(matriceR) ;
> cout << endl << "erreur d'alloc lignes!!! " ;
> return NULL ;
> }
> }
>
> for (i=0 ; i<lignesA; i++)
> for (j=0 ; j<colonnesB; j++)
> {
> matriceR[i][j] = 0 ;
>
> for (k=0 ; k<colonnesA ; k++)
> matriceR[i][j] += matriceA[i][k] * matriceB[k][j] ;
> }
> return matriceR ;
> }