Séance PGCD (SCILAB) Objectifs : Prise en main du logiciel par les élèves, écrire l’algorithme qui permet de déterminer le PGCD de deux nombres, exécuter l’algorithme et effectuer des changement (texte par exemple). Instructions données par le professeur : - Ouverture de la console et de l’éditeur Scinotes - L’instruction input et texte entre guillemets. - Définir le reste r de la division euclidienne de a par b ou alors construire le reste à partir du quotient q de a par b : a = entier(a,b)*b + r. (Fonction int(a/b) - Instruction « tant que » : « while » avec « end » boucle qui réitère les opérations suivantes, tant que r est non nul, a prend la valeur b, b prend la valeur r et redéfinir r = reste(a,b) - L’instruction afficher en précisant la fonction du + et de string. Remarques : Avant l’exécution du programme, sauvegarder dans mes documents. Fiche élève : On souhaite déterminer le pgcd de deux nombres a et b. 1) Rappeler l’algorithme d’Euclide qui permet de déterminer le pgcd de a et b. 2) Ecrire (en français) un algorithme permettant de déterminer pgcd(a,b). 3) Ouvrir la console Scilab et l’éditeur Scinotes. 4) Ecrire dans Scinotes l’algorithme. Indications : a) Vous devez faire en sorte que Scilab vous demande des valeurs de a et b. L’instruction w=input(« w =») permet de mettre une valeur dans w et d’afficher dans la console w= . b) r=reste(a,b) permet de mettre la valeur reste(a,b) (qui est le reste de la division euclidienne de a par b) dans r. c) while r<>0… end permet de réitérer des opérations à effectuer tant que r est non nul. d) afficher(« pgcd »+string(b)) permet d’afficher le résultat sous la forme : pgcd 15 par exemple. d) Demander de l’aide au professeur. 5) Exécuter le programme dans la console. Pour cela il faut d’abord la sauvegarder le programme de Scinotes dans « mes documents » puis passer dans la console. 6) Questions : a) Pourquoi faut-il écrire deux fois r=reste(a,b) dans l’algorithme ? b) Qu’obtient-on pour a = 225 et b = 45 ? c) Qu’obtient-on pour a = 45 et b = 225 ? a=input("a"); b=input("b"); r=reste(a,b); while r<>0 a=b; b=r; r=reste(a,b) end afficher("pgcd = "+string(b)) 1 VARIABLES 2 a EST_DU_TYPE NOMBRE 3 b EST_DU_TYPE NOMBRE 4 r EST_DU_TYPE NOMBRE 5 DEBUT_ALGORITHME 6 LIRE a 7 LIRE b 8 r PREND_LA_VALEUR a%b 9 TANT_QUE (r!=0) FAIRE 10 DEBUT_TANT_QUE 11 a PREND_LA_VALEUR b 12 b PREND_LA_VALEUR r 13 r PREND_LA_VALEUR a%b 14 FIN_TANT_QUE 15 AFFICHER "pgcd =" 16 AFFICHER b 17 FIN_ALGORITHME