A voir également:
- Programme en Ada sur les nombres premiers !
- Programme demarrage windows 10 - Guide
- Programme démarrage windows 10 - Guide
- Rémi et safia ont découvert le code binaire des nombres en cours d'informatique. ils l'utilisent pour se donner des rendez-vous secrets. ils ont décidé que : un message comporte 5 bits et donne le jour puis le moment les jours et les moments sont traduits par les nombres comme ci-dessous - Forum Programmation
- Fichier ouvert dans un autre programme - Guide
- Desinstaller un programme - Guide
2 réponses
nicocorico
Messages postés
799
Date d'inscription
dimanche 19 juin 2011
Statut
Membre
Dernière intervention
3 juillet 2018
138
28 sept. 2011 à 05:59
28 sept. 2011 à 05:59
Je connais pas le ada, donc ça aide pas, mais voici quelques conseils :
Je crois que le mauvais fonctionnement est dû à un problème de précision :
Il faut supprimer tous les Float et les passer en integer, ce qui, par ailleurs, allègera nettement le programme qui passe tout son temps sur cette conversion,
et puis d'après ce que j'ai trouvé sur les opérateurs, tu pourrais remplaçer 'Rem' par 'Mod', ce qui supprimera peut-être le problème sur 9 et les multiples de 5...
Quant à l'affichage de la réponse, tu pourrais ajouter un test de ce genre, en dehors de la boucle :
Et pense à conditionner l'entrée dans la boucle au fait que le nombre à tester est impair, et diviser que par les nombres impairs via un équivalent de 'Step 2' dans le For...
Je crois que le mauvais fonctionnement est dû à un problème de précision :
Il faut supprimer tous les Float et les passer en integer, ce qui, par ailleurs, allègera nettement le programme qui passe tout son temps sur cette conversion,
et puis d'après ce que j'ai trouvé sur les opérateurs, tu pourrais remplaçer 'Rem' par 'Mod', ce qui supprimera peut-être le problème sur 9 et les multiples de 5...
Quant à l'affichage de la réponse, tu pourrais ajouter un test de ce genre, en dehors de la boucle :
si reste = 0 alors put(" : non ce nombre n'est pas premier"); sinon put(" : oui ce nombre est bien un nombre premier");
Et pense à conditionner l'entrée dans la boucle au fait que le nombre à tester est impair, et diviser que par les nombres impairs via un équivalent de 'Step 2' dans le For...
Le chêne aussi était un gland, avant d'être un chêne
Oui je sais que ça allègerai le programme sauf que ce n'est pas possible de tout passer en integer. Il y aura une incompatibilité dans les calculs. Mais ça au pire c'est pas troP le souci. Pour les problèmes de multiples c'est une faute dans l'algorithme et je vais essayer de faire ce que tu mas dit et je verrai. Merci :)