Bonjour
il y a une étape tout aussi importante que coder, c'est déboguer.
Concevoir l'algorithme, il est évident que c'est essentiel au codage
Mais si on se trompe, comprendre ce que fait réellement notre algo par rapport à ce qu'il devrait faire et tout aussi crucial.
J'ai modifié ton algo pour qu'il t'affiche ce qui se passe dans ta boucle pour la somme.
VARIABLES NP EST_DU_TYPE LISTE S EST_DU_TYPE NOMBRE P EST_DU_TYPE NOMBRE i EST_DU_TYPE NOMBRE DEBUT_ALGORITHME NP[1] PREND_LA_VALEUR 2 NP[2] PREND_LA_VALEUR 3 NP[3] PREND_LA_VALEUR 5 NP[4] PREND_LA_VALEUR 7 NP[5] PREND_LA_VALEUR 11 NP[6] PREND_LA_VALEUR 13 NP[7] PREND_LA_VALEUR 17 NP[8] PREND_LA_VALEUR 19 POUR i ALLANT_DE 1 A 7 DEBUT_POUR S PREND_LA_VALEUR NP[1]+NP[i+1] AFFICHER "Pour i vallant : " AFFICHER* i AFFICHER "NP[1] vaut : " AFFICHER* NP[1] AFFICHER "NP[i+1] vaut : " AFFICHER* NP[i + 1] AFFICHER "S vaut : " AFFICHER* S AFFICHER " ; " P PREND_LA_VALEUR NP[1]*NP[i+1] FIN_POUR AFFICHER "La somme des nombres premiers <20 est de : " AFFICHER* S AFFICHER "Le produit des nombres premiers <20 est de :" FIN_ALGORITHME
Lance-le, et étudie tout ce qui est affiché.
Demande toi si le calcul de chaque itération va dans le sens d'une somme globale.
N'hésite pas à revenir expliquer ce que tu a compris et ce que tu n'as pas compris si tu ne trouves pas ce qu'il faut modifier par toi même
Très bien comme correction.
Et surtout c'est la tienne, celle qui vient de ta réflexion. C'est ça qu'il faut acquérir en algorithmique.
Alors oui, on peut optimiser un peu.
Ta boucle allant de 1 à 7, tu calcules 2 fois i + 1 par itération.
Optimisation 1, tu stockes i + 1 dans une autre variable (j par exemple) et tu l'utilises comme indice de liste => un seul calcul, mais une variable de plus
Optimisation 2, ta boucle va de 2 à 8 et tu utilises i directement, plus de calcul
5 oct. 2023 à 09:40
Rebonjour,
je vous remercie j'ai pu modifier mon code qui maintenant est sous cette forme
mon code fonctionne maintenant.
Est-ce de forme qu'il est le plus optimisé ?