Resolution d'un syst equations lineaires en C

Fermé
tonguim - 18 juin 2004 à 12:35
souf46 Messages postés 1 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 6 février 2008 - 6 févr. 2008 à 19:14
Bonjour,
pouvez vous, s'il vous plait, m'aider a decouvrir ce qui fait que mon programme ne donne pas les resultats attendus?

Il s'agit d'un programme qui resoud un systeme d'equations lineaires.
Pour le test, prenez par exemple A11 = 3; A12 = 1; B1 = 7; A21 = 5; A22 = -2 et B2 = 8.

Merci

Mon code:


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

/* Programme qui resoud un systeme d'equations lineaires */*

main ()
{
//clrscr ();
float A11, A12, A21, A22, B1, B2, X1, X2, deltaX1 = 0, deltaX2 = 0, delta = 1;

printf("Resolution d'un syteme d'equations lineaires de la forme\n\n");
printf("|A11 X1 + A12 X2 = B1\n");
printf("|\n");
printf("|A21 X1 + A22 X2 = B2\n\n");

/* saisie des coefficients */
printf("Entrez les coefficients A11, A12, A21, A22, B1, B2 tel que: \n\n");
printf("A11 = "); scanf("%d", &A11);
printf("A12 = "); scanf("%d", &A12);
printf("B1 = "); scanf("%d", &B1);

printf("A21 = "); scanf("%d", &A21);
printf("A22 = "); scanf("%d", &A22);
printf("B2 = "); scanf("%d", &B2);

/* calcul des discriminants */
delta = (A11 * A22 - A21 * A22);
deltaX1 = (B1 * A22 - B2 * A12);
deltaX2 = (B2 * A11 - B1 * A21);

X1 = deltaX1/delta;
X2 = deltaX2/delta;

/* affichage du couple solution */
printf("\n\nL'ensemble des solutions de ce systeme d'equations est: \n\n{%f; %f}",X1, X2);

}

5 réponses

Il y'a une erreur à ce niveau effectivement: je l'ai corrigé.
Mais le problème ne vient pas de là, car je n'ai toujours pas le resultat attendu.

Merci Bzozo


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

/* Programme qui resoud un systeme d'equations lineaires */*

main ()
{
//clrscr ();
float A11, A12, A21, A22, B1, B2, X1, X2, deltaX1 = 0, deltaX2 = 0, delta = 1;

printf("Resolution d'un syteme d'equations lineaires de la forme\n\n");
printf("|A11 X1 + A12 X2 = B1\n");
printf("|\n");
printf("|A21 X1 + A22 X2 = B2\n\n");

/* saisie des coefficients */
printf("Entrez les coefficients A11, A12, A21, A22, B1, B2 tel que: \n\n");
printf("A11 = "); scanf("%d", &A11);
printf("A12 = "); scanf("%d", &A12);
printf("B1 = "); scanf("%d", &B1);

printf("A21 = "); scanf("%d", &A21);
printf("A22 = "); scanf("%d", &A22);
printf("B2 = "); scanf("%d", &B2);

/* calcul des discriminants */
delta = (A11 * A22 - A21 * A12);
deltaX1 = (B1 * A22 - B2 * A12);
deltaX2 = (B2 * A11 - B1 * A21);

X1 = deltaX1/delta;
X2 = deltaX2/delta;

/* affichage du couple solution */
printf("\n\nL'ensemble des solutions de ce systeme d'equations est: \n\n{%f; %f}",X1, X2);

}
1
marvinrouge
18 juin 2004 à 15:04
Salut Tonquim

1) n'utilses QUE des double et JAMAIS les float (ils sont buggués)

2) ne mélange pas %d et %f pour les float

3) n'utilises QUE %lf avec les double

4) bonne chance avec ça ça va marcher !
0
pom > marvinrouge
18 juin 2004 à 15:35
salut Marvinrouge,
que veut dire que les float sont buggés ?
Est-ce la mele chose pour le C++ ?

merci
pom
0
/* calcul des discriminants */
delta = (A11 * A22 - A21 * A22); // <<< Ici
deltaX1 = (B1 * A22 - B2 * A12);
deltaX2 = (B2 * A11 - B1 * A21);

J'ai pas étudié le problème (enfin si, mais y'a longtemps et j'ai la flemme), mais il me semble que ce doit être plutôt :
A11 * A22 - A21 * A12
non ?

Et avec ça tu ne résout que les systèmes d'équations qui admettent une seule solution :-\

A+
Bzozo
0
Canard007 Messages postés 5929 Date d'inscription mercredi 26 mai 2004 Statut Contributeur Dernière intervention 18 septembre 2009 215
18 juin 2004 à 15:24
Salut;

tu fait une daclaration:
float A11;

et apres dans ton scanf tu fait:
scanf("%d", &A11);

%d c est pour les int....
remplace par %f sur tout tes scanf et ca va marcher
0
Merci a tous.

Mon programme marche maintenant!
Il ne me donnait pas les résultats attendus car j'avais mis %d dans l'instruction de saisie scanf pour saisir des float !!! j'aurai dû mettre plutôt %f.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
souf46 Messages postés 1 Date d'inscription mercredi 6 février 2008 Statut Membre Dernière intervention 6 février 2008
6 févr. 2008 à 19:14
salut tt le monde j un programme en c ki permet de resoudre les systemes lineaires mai j trouvé des ereurs et j v1 po de les coriger kelk1 peut m aider
0