ISN – De ALGOBOX à PYTHON Voici trois algorithmes écrits pour ALGOBOX. Que font-ils ? 1 VARIABLES 2 X EST_DU_TYPE NOMBRE 3 Y EST_DU_TYPE NOMBRE 4 DEBUT_ALGORITHME 5 AFFICHER "Donner le nombre initial" 6 LIRE X 7 Y PREND_LA_VALEUR 2*X*X+3*X-5 8 AFFICHER "Le résultat est : " 9 AFFICHER Y 10 FIN_ALGORITHME Réponse 1 VARIABLES 2 AB EST_DU_TYPE NOMBRE 3 BC EST_DU_TYPE NOMBRE 4 AC EST_DU_TYPE NOMBRE 5 DEBUT_ALGORITHME 6 AFFICHER "Longueur du coté le plus grand?" 7 LIRE AB 8 AFFICHER "Longueur 2nd côté?" 9 LIRE BC 10 AFFICHER "Longueur dernier côté?" 11 LIRE AC 12 SI (pow(AB,2)==pow(BC,2)+pow(AC,2)) ALORS 13 DEBUT_SI 14 AFFICHER "Il est rectangle" 15 FIN_SI 16 SINON 17 DEBUT_SINON 18 AFFICHER "Il n'est pas rectangle" 19 FIN_SINON 20 FIN_ALGORITHME Réponse 1 VARIABLES 2 U EST_DU_TYPE NOMBRE 3 V EST_DU_TYPE NOMBRE 4 W EST_DU_TYPE NOMBRE 5 I EST_DU_TYPE NOMBRE 6 DEBUT_ALGORITHME 7 U PREND_LA_VALEUR 0 8 V PREND_LA_VALEUR U+1 9 W PREND_LA_VALEUR 0 10 POUR I ALLANT_DE 0 A 9 11 DEBUT_POUR 12 W PREND_LA_VALEUR U+V 13 U PREND_LA_VALEUR W 14 V PREND_LA_VALEUR U+1 15 AFFICHER "Boucle n :" 16 AFFICHER I 17 AFFICHER "le résultat est : " 18 AFFICHER W 19 FIN_POUR 20 AFFICHER "Le résultat FINAL est : " 21 AFFICHER W 22 FIN_ALGORITHME Réponse Algorithme 4 avec ALGOBOX: (Remplacer les ???? par le nom qui va bien…) VARIABLES A EST_DU_TYPE NOMBRE B EST_DU_TYPE NOMBRE R EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE A LIRE B AFFICHER " ?????????? de " AFFICHER A AFFICHER " et " AFFICHER B TANT_QUE (B!=0) FAIRE DEBUT_TANT_QUE R PREND_LA_VALEUR A%B // Toutes les lignes commençant par // ne sont que des commentaires. // L’opérateur % donne le reste de la division euclidienne A PREND_LA_VALEUR B B PREND_LA_VALEUR R AFFICHER " ?????????? de " AFFICHER A AFFICHER " et " AFFICHER B FIN_TANT_QUE AFFICHER "= " AFFICHER A FIN_ALGORITHME Réponse : Algorithme 5 avec ALGOBOX: VARIABLES n EST_DU_TYPE NOMBRE diviseur EST_DU_TYPE NOMBRE nbfacteurs EST_DU_TYPE NOMBRE a EST_DU_TYPE NOMBRE puissance EST_DU_TYPE NOMBRE DEBUT_ALGORITHME LIRE n AFFICHER n AFFICHER "=" a PREND_LA_VALEUR n nbfacteurs PREND_LA_VALEUR 0 POUR diviseur ALLANT_DE 2 A floor(n/2) // floor(x) : Partie entière de x DEBUT_POUR SI (a%diviseur==0) ALORS DEBUT_SI nbfacteurs PREND_LA_VALEUR nbfacteurs+1 puissance PREND_LA_VALEUR 1 a PREND_LA_VALEUR a/diviseur TANT_QUE (a%diviseur==0) FAIRE DEBUT_TANT_QUE puissance PREND_LA_VALEUR puissance+1 a PREND_LA_VALEUR a/diviseur FIN_TANT_QUE SI (nbfacteurs>1) ALORS DEBUT_SI AFFICHER " * " FIN_SI AFFICHER diviseur AFFICHER "^" AFFICHER puissance FIN_SI FIN_POUR SI (nbfacteurs==0) ALORS DEBUT_SI AFFICHER n FIN_SI FIN_ALGORITHME Réponse :