Polynomes du 2eme degré, réponse sous forme de fraction !

Description

Au début, j'ai commencé par faire un script tout simple de calcul d'un polynome du second degré. Mais parfois la réponse était 1.3874927834, alors c est pas vraiment très pratique. Le but de mon code était de donner la réponse comme on devrait la donner en maths, c'est a dire, pas de 0.5, mais 1/2; pas de 0.654701 mais:
-3+4rac(3)
---------
6
Pour cela, j'ai procédé comme suit: je calcule la réponse et si elle n'est pas entière, il reprend la formule en ayant le numérateur et le dénominateur. Le hic c est la racine! J'ai donc du gérer toutes ces valeurs séparement (coefficients, dénominateur, mise en évidence,...) Et tester les simplifications. Donc si je tombe sur racine de 25, c est simple: je calcule mon numérateur, mon dénominateur et je teste si c est simplifiable, mais dans le cas ou ce serait racine de 24, je simplifie la racine, c est a dire que je teste si ce qu il y a sous la racine est divisible par un nombre premier au carré, si c est le cas, ce nombre vient multiplier le coefficient de la racine (qui vaut 1 a la base). Dans ce cas-là, racine de 24 deviendrait 2rac(8) car rac(8*4).

Pour appliquer toutes ces méthodes j'ai eu besoin de:
- une fonction "est un entier", qui vérifie si une valeur soumise est entiere (simple comparaison entre la valeur float ou double et elle-même convertie en int)
- un tableau contenant "tous" les nombres premiers, pour pouvoir faire les tests, car si la fraction n'est plus simplifiable par 2, elle ne le sera pas par 4, donc il ne teste qu avec les nombres premiers. Une fonction rempli ce tableau en fond de script.

Voilà, maintenant que je vous ai expliqué comment j ai procédé, je peux vous donner un petit plan de mon script:

1)Libraires, commentaires
2)main(), mon programme est dans une fonction prog(), pour pouvoir recommencer.
3)prog(), le programme a proprement parler, il demande a,b,c et fait tous les calcus, gestion des cas,...
4)fonction is_int(), est un entier
5)fonction calcul_nb_prem(), remplit le tableau nb_prem[] (exécutée en début de main()

Source / Exemple :


--------- ZIP ---------

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (zut69)