Determinant d'une matrice c++
absel1992
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
absel1992 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
absel1992 Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un tp a faire : celui du determinant d'une matrice ; on doit le realiser avec les threads donc j'ai fait une fonction reccursive qui fait l appel a une fonction matriceres mais le probleme se presente au niveau des threads je voulais faire l appel a la fonction du determinant (reccursive) mais elle doit etre void et avoir void comme parametre voici mon programme : help please
#include<stdio.h>
#include <pthread.h>
#define DIM 10
int d;
typedef struct{
int m[10][10];int dim;} param;
void matriceres(int msource[10][10],int mdest[10][10],int dim,int ligasup)
{
int l,c,ld=0;
for (l=0;l<dim;l++) if (l!=ligasup)
{
for (c=1;c<dim;c++) mdest[ld][c-1]=msource[l][c];
ld++;
}
}
void *determinant(void *parametre)
{
int sous_m[10][10];
int l,signe=1;
float det=0;
param *p = (param*) parametre;
if (p->dim==1)
d=p->m[0][0];
for(l=0;l<p->dim;l++)
{
matriceres(p->m,sous_m,p->dim,l);
det+=signe*p->m[l][0]*determinant(sous_m,p->dim-1);
signe=-signe;
}
}
int main(void)
{
int i,j,n,det;
int m[10][10];
pthread_t t[10];
param p[10];
printf("donner la dim de la matrice n");
scanf("%d", &n);
//lecture de la matrice m
for (i=0; i<n; i++)
for (j=0; j<n; j++)
{
printf("p->m(%d,%d) = ", i,j);
scanf("%d", &m[i][j]);
}
//création des thread
for (i = 0; i<n; i++)
{
pthread_create(&t[i], NULL, determinant, &p[i]);
}
for (i = 0; i<n; i++)
pthread_join(t[i], NULL);
printf(" determinant =%d",det);
}
j'ai un tp a faire : celui du determinant d'une matrice ; on doit le realiser avec les threads donc j'ai fait une fonction reccursive qui fait l appel a une fonction matriceres mais le probleme se presente au niveau des threads je voulais faire l appel a la fonction du determinant (reccursive) mais elle doit etre void et avoir void comme parametre voici mon programme : help please
#include<stdio.h>
#include <pthread.h>
#define DIM 10
int d;
typedef struct{
int m[10][10];int dim;} param;
void matriceres(int msource[10][10],int mdest[10][10],int dim,int ligasup)
{
int l,c,ld=0;
for (l=0;l<dim;l++) if (l!=ligasup)
{
for (c=1;c<dim;c++) mdest[ld][c-1]=msource[l][c];
ld++;
}
}
void *determinant(void *parametre)
{
int sous_m[10][10];
int l,signe=1;
float det=0;
param *p = (param*) parametre;
if (p->dim==1)
d=p->m[0][0];
for(l=0;l<p->dim;l++)
{
matriceres(p->m,sous_m,p->dim,l);
det+=signe*p->m[l][0]*determinant(sous_m,p->dim-1);
signe=-signe;
}
}
int main(void)
{
int i,j,n,det;
int m[10][10];
pthread_t t[10];
param p[10];
printf("donner la dim de la matrice n");
scanf("%d", &n);
//lecture de la matrice m
for (i=0; i<n; i++)
for (j=0; j<n; j++)
{
printf("p->m(%d,%d) = ", i,j);
scanf("%d", &m[i][j]);
}
//création des thread
for (i = 0; i<n; i++)
{
pthread_create(&t[i], NULL, determinant, &p[i]);
}
for (i = 0; i<n; i++)
pthread_join(t[i], NULL);
printf(" determinant =%d",det);
}
A voir également:
- Determinant d'une matrice c++
- Diagonale secondaire d'une matrice - Forum C
- Utiliser une formule pour déterminer pour quelles cellules le format sera appliqué - Guide
- Excel vous ne pouvez pas modifier une partie de matrice ✓ - Forum Excel
- Vous ne pouvez pas modifier une partie de matrice - Forum Excel
- Remplir une matrice 7 lettres ✓ - Forum C