TEST d'Algo avril.
Soit l'algorithme suivant en Python 2.7:
from random import*
def date():
print "Soit j le numero du mois de naissance. "
print "Soit m le numero du jour dans le mois de naissance. "
k=input("Caluler et donner le nombre obtenu en considérant k = 12j+ 31m ")
a=input("Donner l'annee de naissance avec quatre chiffres ")
L=["janvier","fevrier","mars","avril","mai","juin","juillet","aout","septembre","octobre","novembre","decembre"]
for m in range(1,13):
for j in range(1,32):
z=12*j+31*m
if z==k:
print "Votre date de naissance est: ",j,L[m-1],a
En le faisant tourner on a obtenu:
>>> date()
Soit j le numero du mois de naissance.
Soit m le numero du jour dans le mois de naissance.
Caluler et donner le nombre obtenu en considérant k = 12j+ 31m 503
Donner l'annee de naissance avec quatre chiffres 2017
Votre date de naissance est: 29 mai 2017
>>>
QUESTIONS:
1. Qu'est-ce que le numero du mois de naissance?
2. Si l'on saisit pour k l'entier 364 que va donner l'algorithme ?
3. Quand on voit : for m in range(1,13):
Que peut-on dire des valeurs de m ?
4.Qu'est-ce que L[m-1] quand m= 6 ?
5. Quel est la plus grand entier j ?
6. Que vaut k pour quelqu'un né le 7 septembre 2018 ?
7. Modifier l'algorithme pour qu'il donne l'âge par excès de la
personne, à un mois près.
8. Modifier l'algorithme pour utiliser deux while au lieu de deux for.
9. Que se passe-t-il quand z est différent de k ?
10. Justifier que z et 7 m sont congrus modulo 12.
---------------------------------------------