Besoin d'un code de programme en c

Fermé
justelefils Messages postés 26 Date d'inscription mercredi 29 avril 2009 Statut Membre Dernière intervention 22 décembre 2014 - 29 avril 2009 à 01:12
justelefils Messages postés 26 Date d'inscription mercredi 29 avril 2009 Statut Membre Dernière intervention 22 décembre 2014 - 29 avril 2009 à 18:02
Bonjour,
salut en faite suis à la recherche d'un programme en c qui permet de:
-Saisir et d'afficher les éléments de A et de B(A et B etant deux matrices).
-Faire une fonction pour calculer leur déterminant <-----
-Faire les fonctions qui permettent de faire le produit et la somme de A et B.
-Faire une fonction qui calcul l'inverse d'une matrice <------
-Faire une fonction qui calcule la transposée d'une matrice <------

les plus urgents sont ceux munis de <-----
merci..
A voir également:

4 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
29 avril 2009 à 09:46
Salut,

suis à la recherche d'un
Ben, tu nous montreras où t'en est avec la recherche, et on t'aidera pour la suite.
1
feadin91 Messages postés 257 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 28 avril 2010 89
29 avril 2009 à 09:33
Je sens qu'il s'agit d'un exercice qu'on t'a demandé de faire... ;)
Je vais pas te donner la réponse directement, mais plutôt une aide...

As-tu pensé à utiliser des tableaux à deux dimensions? (int **tab)
Pour écrire ou lire dans la case i-j : tab[i][j]

Je suis pas un pro du C, donc prends mes indications avec des pincettes.

J'avoue que en C ça doit être assez chiant... En C++ tu l'aurais déjà terminé les doigts dans le nez et les yeux bandés...
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836
29 avril 2009 à 10:46
Salut
J'avoue que en C ça doit être assez chiant... En C++ tu l'aurais déjà terminé les doigts dans le nez et
les yeux bandés...

En quoi le faire en C++ serait "beaucoup" plus simple qu'en C ?
0
feadin91 Messages postés 257 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 28 avril 2010 89 > fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022
29 avril 2009 à 10:56
La déclaration et l'utilisation d'un tableau en 2D en C est beaucoup plus hasardeuse et "chiante" (excusez moi du mot) qu'en C++...

Du moins c'est mon avis tout à fait personnel.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567 > feadin91 Messages postés 257 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 28 avril 2010
29 avril 2009 à 11:09
Salut,

On veut voir des exemples.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836 > feadin91 Messages postés 257 Date d'inscription lundi 20 avril 2009 Statut Membre Dernière intervention 28 avril 2010
29 avril 2009 à 11:22
hasardeuse
Il n'y a pas de place au hasard dans la déclaration de tableaux en 2D ^^. Soit tu le fais bien, soit tu le fais mal, tout comme en C++.

"chiante"
J'imagine que tu parles de tableaux "dynamiques" :
La syntaxe est légèrement moins lourde en C++ :
En C      : scanf("%d",&taille); int *tab = malloc( sizeof(*tab) * taille); .... free(tab);
En C++ : std::cin >> taille; int *tab = new int [taille]; .... delete []tab;


Mais bon, de là à dire que c'est beaucoup plus pénible, faut pas abuser ^^.
De plus, en C, tu peux utiliser le VLA apparu avec la norme C99 (en C++, ce n'est pas standard), et utiliser :
scanf("%d",&taille); int tab[taille];
0
justelefils Messages postés 26 Date d'inscription mercredi 29 avril 2009 Statut Membre Dernière intervention 22 décembre 2014
29 avril 2009 à 11:43
en faite c'est pas un exercice d'ecole mais un exercice personnel.jai commencé et je n'arrive pas à faire les 3 parties ennoncées..la preuve voici ce que jai fait:

#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
void saisie_somme(int *A,int *B,int *C,int n)
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
printf("A[%d,%d] \n",i,j);
scanf(" \n %d" , &A[i*n+j]);
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
printf("B[%d,%d] \n",i,j);
scanf(" \n %d" , &B[i*n+j]);
}
}
void affichage(int *C,int n)
{
int i,j;
printf("Affichage du tableau \n");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(j==0)
{
printf("\n %d \t",C[i*n+j]);
}
else
{
printf("\n %d \t",C[i*n+j]);
}
}
main()
{
int n;
int *A,*B,*C;
printf("Donner n \n");
scanf("\n %d",&n);
A=(int*)malloc(n*n*sizeof(int));
B=(int*)malloc(n*n*sizeof(int));
C=(int*)malloc(n*n*sizeof(int));
saisie_somme(A,B,C,n);
affichage(C,n);
}
#include<stdlib.h>
#include<stdio.h>
#define NC 3
#define NL 3
void main()
{
int i,j,mat1[NL][NC],mat2[NL][NC];
int mat3[NL][NC],m,l,k,n;
for(i=0;i<NL;i++)
{
for(j=0;j<NC;j++)
{
printf("valeur de la ligne %d et de la colonne %d",i,j);
scanf("\n %d",&mat1[i][j]);
}
}
for(i=0;i<NL;i++)
{
for(j=0;j<NC;j++)
{
printf("la ligne %d et la colonne %d",i,j);
scanf("\n %d",&mat2[i][j]);
}
}
l=m=n=k=0;
for(i=0;i<NL;i++)
{
for(j=0;j<NC;j++)
{
mat3[n][m]=mat1[i][j]+mat2[k][l];
k++;
m++;
}
l++;
n++;
}
for(n=0;n<NL;n++)
{
for(m=0;m<NC;m++)
{
printf("\n %d",&mat3[m][n]);
}
}
}

voila ce que j'ai fait.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836
29 avril 2009 à 15:00
Salut,
Créer deux fichiers comme tu as fait, c'est bien. Mais par contre, il ne faut qu'un main, et créer des fichiers headers contenant le prototype des fonctions.
Le prototype de main sans arguments c'est : int main(void);. N'oublie pas le return 0;

scanf("\n %d",&n);
Ne mets pas de \n dans le scanf. Tout simplement : scanf("%d",&n);

printf("\n %d",&mat3[m][n]);
Là, tu affiches l'adresse. Pour afficher le contenu : printf("\n %d",mat3[m][n])

l=m=n=k=0;
for(i=0;i<NL;i++)
{
for(j=0;j<NC;j++)
{
mat3[n][m]=mat1[i][j]+mat2[k][l];
k++;
m++;
}
l++;
n++;
}

Tu souhaites réaliser quelle opération matricielle avec ça ?

Cdlt
0
justelefils Messages postés 26 Date d'inscription mercredi 29 avril 2009 Statut Membre Dernière intervention 22 décembre 2014
29 avril 2009 à 18:02
merci pou la modif..
en faite ces deux programmes differents..jai fait de deux manieres..le premier programme est la saisie et laffichage du reslutat et le deuxieme programme ces la somme..maintenant jai besoin dun programme(fonction qui me permet de calculer la transposée, l'inverse et le determinant d'une matrice...
merci
0