Séance PGCD (SCILAB)

publicité
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
Téléchargement