aboutsummaryrefslogtreecommitdiff
path: root/semestre 2/informatique/tme/semaine3/20_calcul_racines_polynomes.c
diff options
context:
space:
mode:
Diffstat (limited to 'semestre 2/informatique/tme/semaine3/20_calcul_racines_polynomes.c')
-rw-r--r--semestre 2/informatique/tme/semaine3/20_calcul_racines_polynomes.c73
1 files changed, 73 insertions, 0 deletions
diff --git a/semestre 2/informatique/tme/semaine3/20_calcul_racines_polynomes.c b/semestre 2/informatique/tme/semaine3/20_calcul_racines_polynomes.c
new file mode 100644
index 0000000..08a9cdc
--- /dev/null
+++ b/semestre 2/informatique/tme/semaine3/20_calcul_racines_polynomes.c
@@ -0,0 +1,73 @@
+#include <stdio.h>
+#include <math.h>
+
+int nb_racines(int a, int b, int c){
+ float delta = b*b-4*a*c;
+ if (delta > 0) return 2;
+ else if (delta == 0) return 1;
+ return 0;
+}
+
+int nb_racines_delta(int a, int b, int c, float*delta){
+ *delta = b*b-4*a*c;
+ if (*delta > 0) return 2;
+ else if (*delta == 0) return 1;
+ return 0;
+}
+
+int racines(int a, int b, int c, float*r1, float*r2){
+ float delta;
+ int nb = nb_racines_delta(a, b, c, &delta);
+ *r1 = (-b-sqrt(delta))/(2*a);
+ *r2 = (-b+sqrt(delta))/(2*a);
+ return nb;
+}
+
+void affiche_polynome(int a, int b, int c){
+ printf("Polynome : ");
+ if (a == -1) printf("-");
+ else if (a != 1) printf("%d", a);
+ printf("x*x");
+
+ if (b != 0) {
+ printf(" ");
+ if (b == -1) printf("-");
+ else if (b != 1 && b > 0) printf("+%d", b);
+ else if (b != 1 && b < 0) printf("%d", b);
+ printf("x");
+ }
+
+ if (c != 0) {
+ printf(" ");
+ if (c > 0) printf("+%d", c);
+ else if (c < 0) printf("%d", c);
+ }
+ printf("\n");
+}
+
+void affiche_racine(int a, int b, int c){
+ float r1 = 1.0, r2 = 1.0;
+
+ int nb_r = racines(a, b, c, &r1, &r2);
+ if (nb_r == 2) printf("Le polynome a 2 racines : %.3f et %.3f\n", r1, r2);
+ else if (nb_r == 1) printf("Le polynome a une racine double : %.3f\n", r1);
+ else printf("Le polynome n'a pas de racine reelle.\n");
+}
+
+int main(){
+ printf("\n\n=========================================================\n\n");
+ int a = 4, b = 4, c = 1;
+ affiche_polynome(a, b, c);
+ affiche_racine(a, b, c);
+ printf("\n");
+
+ a = 4; b = 6; c = 1;
+ affiche_polynome(a, b, c);
+ affiche_racine(a, b, c);
+ printf("\n");
+
+ a = -7; b = -5; c = -1;
+ affiche_polynome(a, b, c);
+ affiche_racine(a, b, c);
+ return 0;
+}