Module : Planification des apprentissages
Réalisé par : EL KAMEL Amine, SOURADI Oualid, ABIOUI Achraf, LAFRAXO Mohammed Amine
Problème 1 :
Programme :
def pgcd(a,b): def phi(n):
while b!=0: if n == 0 : return 0
r=a%b else :
a=b result = 1
b=r for i in range(2, n):
return a if (pgcd(n, i) == 1):
result+=1
return result
x= int(input("Entrez n:"))
print("phi(",x,")=",phi(x))
Question 1 :
La solution proposé pour bien apprécier les difficultés qui vont confrontés l’élève est la
décomposition de l'algorithme sur plusieurs étapes (c'est t a dire, subdiviser à des petits
problème qui vont être capable à les résoudre).
Etape 1 : La découvert des plus grands diviseurs communs (pgdc) de n ;
Etape 2 : Trouver le nombre d’entiers qui sont inférieurs à n et premiers avec n ;
Etape 3 : Utiliser un langage de programmation simple pour faire des manipulations réelles
pour résoudre le problème.
Par la suite si les deux étapes étant plus difficile à réaliser par apport à la capacité et les
compétences des élèves, donc il va falloir aussi de les subdiviser aux autres sous étapes
(sous problèmes) qui sont plus simple à résoudre.
Dans la première et la deuxième étape, l’élève doit apprendre comment faire quelques
instructions à savoir : l'affection, comparaison, calcul, utilisation des boucles …etc.
Par la suite, dans la troisième étape (l’étape la plus importante pour aider l'apprenant à bien
construire son savoir faire, et aussi bien maîtriser le savoir être) à travers des manipulations
réelles sur des logiciels de programmation.
Question 2 :
/**L’heuristique est une méthode de résolution de problèmes, non fondée sur un modèle
formel et qui n’aboutit pas nécessairement à une solution. Elle procède par évaluations
successives et hypothèses provisoires.**/
- La conjecture (faire des hypothèses) ;
Aider L'apprenant à travailler avec les instructuctions de comparaison, d’affectation
et de l'exécution d’une séquence d’instruction (boucle). Dont l’objectif est de choisir
la méthode la plus adéquat pour résoudre le problème.
- La reformation du problème ;
La capacité de lire et de comprendre le problème avec son propre style (exemple de
schématisation).
- La subdivision du problème ;
la décomposition du problèmes aux plusieurs tâches :
Etape 1 : La découvert des plus grand diviseur commun (pgdc) de n ;
Etape 2 : Faire des tests avec des instructions de condition ;
Etape 3 : Trouver le nombre d’entiers qui sont inférieurs à n et premiers avec n ;
- La resolution du probleme.
Après la décomposition du grand problème aux sous tâches et la réalisation de ces
derniers, il fallait de les regrouper (mettre les deux fonctions dans un seul
programme) afin de produire une solution globale du problème.
****************************deuxième proposition **********************
Algorithme Calcule_nembre_Premier(n:entier):entier;
Variables
i,e(n):entier;
pgcd:entier;
Début
ecrire("Entrer une valeur pour n : ");
lire(n);
e(n)<--0;
pour i allons de 1 jusqu'a (n)
tantque (i*n<>0)
si a>b alors a<--b;
sinon b<--a;
finSi
si i=0 alors pgcd<--b;
sinon pgcd<--a;
finSi
finTantque
si pgcd=1 alors e(n) <-- e(n)+1;
finPour
returne e(n);
finAlgorithme;
***************Explication***********************
Pour calculer le PGCD de deux nembres A et B On va suivre la démarche suivante:
-on comparer les deux nombres A et B si sont différents de zéro
(si l'un des deux égale à 0 donc l'autre est le PGCD)
-on prendre le plus grand et on va soustraire les plus petit du plus grand
- et on compare à nouveau de la meme façon on refaire les calcule jusqu'a
-on obtient 0 donc le numero avant le zero c'est lui le PGCD
Exemple:
A=18 B=14
A>B donc
A=A-B= 4 B=14
A<B donc
A=4 B=14-4=10
A<B donc
A=4 B=14-4=6
A<B donc
A=4 B=6-4=2
A>B donc
A=4-2=2 B=2
A=B le rest =2 donc 2 est le pgcd
pour on testons si A et B sont premier entre eux
on fait si PGCD de A et B égale à 1 donc il sont premier entre eux.
pour le calcule des nombre premier avec n et sont inferieur à n
on fait le test précedent et si on trouve qu'un nembre satisfaire les condition
avec n on incémente on compteur et on fin le resultat est la valeur du compeur