Resolution d'un syst equations lineaires en C
tonguim
-
souf46 Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
souf46 Messages postés 1 Date d'inscription Statut Membre Dernière intervention -
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);
}
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);
}
A voir également:
- Resolution d'un syst equations lineaires en C
- Réduire résolution image - Guide
- Iu syst - Forum Samsung
- Cette resolution n'est pas prise en charge par cette tv modifiez la ✓ - Forum Format et connectique vidéo
- Erreur temporaire de résolution de « deb.debian.org » ✓ - Forum Debian
- Resolution changer pc - Télécharger - Divers Utilitaires
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);
}
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);
}
/* 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
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
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
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
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 !
que veut dire que les float sont buggés ?
Est-ce la mele chose pour le C++ ?
merci
pom