Beruflich Dokumente
Kultur Dokumente
Cette feuille dexercice recense quelques algorithmes trouves aux detours dun probl`eme.
Ecrire
des algorithmes
Exercice 1 - Renversant ! - L1/Math Sup/Master Enseignement - ??
Ecrire
une fonction qui prend en entree un entier naturel a et retourne cet entier ecrit `
a
lenvers. Par exemple, si a = 1234, la fonction devra retourner a = 4321. On pourra utiliser les
fonctions quotient(n,p) et reste(n,p) qui donnent le quotient et le reste de la division de n par
p.
Exercice 3 - Equation
de Pell-Fermat - Master Enseignement - ?
1. Ecrire
21 en base 2.
2. Proposer un algorithme qui prend en entree un entier n et retourne son ecriture en base
2.
n
X
1 n1
1X
f (k/n) et Vn =
f (k/n).
n k=0
n k=1
R1
0
R1
0
f (x)dx Vn .
f (x)dx. Ecrire
un algorithme donnant une
Ecrire
un algorithme donnant tous les triplets pythagoriciens de sorte que a + b + c 10000.
Voici les reponses de quelques etudiants. Determiner les algorithmes qui donnent le bon resultat.
Expliquer.
Etudiant
1:
Pour k1 allant de 0 `
a 10000 faire
Pour k2 allant de 0 `
a 10000 faire
Pour k3 allant de 0 `
a 10000 faire
Si k12 + k22 = k32 et k1+k2+k3<=10000 alors afficher (k1,k2,k3)
Fin si
Fin pour
Fin pour
Fin pour.
Etudiant
2:
a=0, b=0,c=0
Pour b allant de 0 `
a 10000
a2 + b2 c.
Si a+b+sqrt(c)<10000 et sqrt(c) entier alors afficher (a,b,sqrt(c))
c=0;
a=a+1;
Fin Pour.
Etudiant
3:
a=0, b=0, c=0
Tant que a+b+c<=10000 faire
Tant que a+b+c<=10000 faire
afficher(a,b,c)
b=b+1
c=sqrt(a*a+b*b)
Fin tant que
a=a+1
http://www.bibmath.net
Etudiant
4:
Pour a allant de 0 `
a 10000 faire
Pour b allant de 0 `
a 10000-a faire
Pour c allant de 0 `
a 10000-a-b faire
Si a*a+b*b=c*c afficher (a,b,c) Fin si
Fin pour
Fin pour.
Fin pour.
Etudiant
5:
a=0, b=0
Tant que a+b+sqrt(a*a+b*b)<=10000 faire
b=0
Tant que a+b+sqrt(a*a+b*b)<=10000 faire
Si Ent(sqrt(a*a+b*b))=sqrt(a*a+b*b) alors afficher (a,b,sqrt(a*a+b*b))
Fin si
b=b+1
Fin tant que
a=a+1
Fin tant que.
Etudiant
6:
Pour a allant de 0 `
a 10000 faire
Pour b allant de 0 `
a 10000 faire
c=0
tant que a+b+c<=10000 faire
si a*a+b*b=c*c alors afficher (a,b,c)
sinon c=c+1
Fin tant que
Fin pour.
Fin pour.
http://www.bibmath.net