Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 24-12-2014 17:29:47

kenymi
Membre
Inscription : 24-12-2014
Messages : 1

Compléter un algorithme

Bonsoir,

                On considère le jeu de nombre suivant :
On choisit un nombre entier entre 1 et 99. À chaque étape, le remplace par la somme des carrés de ses chiffres.
Exemple: je choisis n = 7.
Étape 1: 49.
Étape 2: 97
...

1) Poursuivre la procédure pour n=7 [FAIT]
2) Recommencer avec n= 4. [FAIT]
3) Emettre une conjecture sur les suites de nombres obtenus.

Ma réponse : pour tout n entre 1 et 99, on finit toujours par tomber sur 1 ou 4, et donc sur une boucle

5) Voici un algorithme [BESOIN D'AIDE POUR CES QUESTIONS] :
Variables
q, r, n et s

Entrée
Saisir le nombre entier n

Traitement
Affecter 0 à s

Tant que n>0
q prend la partie entière de n/10
r prend la valeur n- 10q
s prend la valeur s + r^2
n prend la valeur q

Fin du Tant que

Sortie
Afficher s

a) Expliquer le rôle de cet algorithme
Ma réponse : l'algo permet de trouver s qui correspond à la somme des digits au carré de n

b) Compléter cet algorithme afin qu'il puisse valider la conjecture émise [aide svp]. Voici ce que j'ai commencé à faire, mais je coince :

A partir du traitement :

Affecter 0 à s

Tant que n>0
q prend la partie entière de n/10
r prend la valeur n- 10q
s prend la valeur s + r^2
n prend la valeur q

Fin du Tant que
n prend la valeur s
si 0<n<99

Sortie
Afficher

                                                                 Merci d'avance pour votre aide !!!

Dernière modification par kenymi (24-12-2014 17:33:31)

Hors ligne

#2 24-12-2014 18:47:46

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 945

Re : Compléter un algorithme

Bonsoir,

Je vais te proposer une solution qui ne me plaît qu'à moitié, je te dirais à la fin pourquoi.
Ta conjoncture est correcte, doublement.
On calcule bien la somme des digits d'un nombre compris entre 1 et 99, et on finit bien toujours par tomber sur 1  ou 4.
Il est clair aussi que si tu pars de 7, tu obtiens 49 et il faut relancer le programme avec 49 qui rend 97.
Il faut alors relancer le prog avec 97...
La solution est donc d'enchasser ta boucle Tant Que dans une autre boucle Tant Que et à chaque tour remplacer n par s, puis remettre s à 0.
Toute la difficulté est donc de trouver le test d'arrêt de cette boucle ajoutée.
C'est là que je grimace, parce que du point de vue programmatique, je trouve ce que je vais faire pas "propre", mais ça marche.

J'initialise s à 10.
le lis n
puis
TANT QUE s > 9  FAIRE
     s=0
     TANT QUE n>0 FAIRE
          q prend la partie entière de n/10
          r prend la valeur n- 10q
          s prend la valeur s + r^2
          n prend la valeur q
     FIN TANT QUE
     n=s
FIN TANT QUE

AFFICHER n

Ce qui ne me plaît pas est de devoir initialiser s à 10 pour pouvoir entrer dans la boucle et de le une fois entré de le mettre à 0.
Il est nécessaire de le remettre à 0 à chaque tour, puis à chaque tour on doit partir d'une somme des carrés des chiffres...
J'avais d'abord pensé au lieu de de tester si s > 9 (c'est à dire n'a qu'un chiffre) à boucler tant que s ne vaut pas 1 ou 4 : mais l'objection est que cette méthode est dépendante de de la justesse de ta conjoncture...
Ce que je propose permettrait d'établir la conjoncture en demandant d'afficher tous les résultats inférieurs à 10...

Je continue à chercher un autre test d'arrêt...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#3 24-12-2014 22:29:56

freddy
Membre chevronné
Lieu : Paris
Inscription : 27-03-2009
Messages : 7 457

Re : Compléter un algorithme

Salut,

il n'y a pas moyen d'appeler un sous-programme de manière itérative jusqu'à avoir 1 ou 4 ?


De la considération des obstacles vient l’échec, des moyens, la réussite.

Hors ligne

#4 24-12-2014 23:22:33

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 945

Re : Compléter un algorithme

B'soir,

Apparemment (il y a déjà eu deux autres personnes avec ce type de travail), c'est de l'Algorithmique de base, sans logiciel de programmation.
Donc je ne crois pas qu'il puisse utiliser une fonction.

A relire l'énoncé, je vois qu'il demande de valider la conjoncture...
Je propose alors l'autre idée que j'avais eue :

J'initialise s à 0.
le lis n
puis
TANT QUE s n'est pas égal à 1 ou 4  FAIRE
      s=0
     TANT QUE n>0 FAIRE
          q prend la partie entière de n/10
          r prend la valeur n- 10q
          s prend la valeur s + r^2
          n prend la valeur q
     FIN TANT QUE
     n=s
FIN TANT QUE

AFFICHER n

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#5 25-12-2014 08:48:03

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 945

Re : Compléter un algorithme

Re,,

Attention ma première version ne marche pas si on saisit n = 3

Je te propose ceci avec une variable v supplémentaire.
Variables
q, r, n, s et v

Affecter 0 à s et  1 à v

Entrée
Saisir le nombre entier n

TANT QUE v est égal à 1  FAIRE
     TANT QUE n>0 FAIRE
          q prend la partie entière de n/10
          r prend la valeur n- 10q
          s prend la valeur s + r^2
          n prend la valeur q
     FIN TANT QUE
     SI s vaut 1 ou 4
          Affecter 0 à v
     SINON
          Affecter s à n
          Affecter 0 à s
     FIN SI
FIN TANT QUE

AFFICHER s


Cela dit tester 1 par 1 tous les nombres de 1 à 99 exigerait d'effectuer 99 entrées pour n...
On peut encore raffiner, en modifiant très peu l'algo :

Variables
q, r, m, n, s et v

POUR m de 1 à 99 FAIRE
    n prend la valeur m
    v prend la valeur 1
    s prend la valeur 0
    TANT QUE v est égal à 1  FAIRE
         TANT QUE n>0 FAIRE
              q prend la partie entière de n/10
              r prend la valeur n- 10q
              s prend la valeur s + r^2
              n prend la valeur q
         FIN TANT QUE
         SI s vaut 1 ou 4
              v prend la  valeur 0
         SINON
              n prend la valeur s
              s prend la valeur 0
         FIN SI
    FIN TANT QUE

    AFFICHER m puis s sur la même ligne
FIN POUR


Ainsi dès que la valeur 1 ou 4 est atteinte par s, on met v à 0 et TAnt que v = 1 devient faux, on sort de cette boucle TANT QUE.
On rentre alors dans la  boucle POUR et on redonne à v la valeur 1 et à s la valeur 0.
Et n prend la valeur suivante de m...
Si la valeur 1 ou 4 n'est pas atteinte pour s, on laisse v à 1 (on n'y touche pas !), et on donne à n la valeur s et à s la  valeur 0...
A chaque itération de la boucle POUR, en fin d'itération, on affiche côte à côte les valeurs de m et s.
Ainsi, l'affichage prouvera que pour chacun des 99 nombres m de 1 à 99, la somme s finit par être toujours égale à 1 ou 4.
La preuve :

1 1
2 4
3 4
4 4
5 4
6 4
7 1
8 4
9 4
10 1
11 4
12 4
13 1
14 4
15 4
16 4
17 4
18 4
19 1
20 4
21 4
22 4
23 1
24 4
25 4
26 4
27 4
28 1
29 4
30 4
31 1
32 1
33 4
34 4
35 4
36 4
37 4
38 4
39 4
40 4
41 4
42 4
43 4
44 1
45 4
46 4
47 4
48 4
49 1
50 4
51 4
52 4
53 4
54 4
55 4
56 4
57 4
58 4
59 4
60 4
61 4
62 4
63 4
64 4
65 4
66 4
67 4
68 1
69 4
70 1
71 4
72 4
73 4
74 4
75 4
76 4
77 4
78 4
79 1
80 4
81 4
82 1
83 4
84 4
85 4
86 1
87 4
88 4
89 4
90 4
91 1
92 4
93 4
94 1
95 4
96 4
97 1
98 4
99 4

Pigé ?

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#6 04-01-2015 09:20:25

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 945

Re : Compléter un algorithme

Bonjour,

Pas de retour ???
C'est bien d'avoir dit merci d'avance, mieux aurait été de revenir dire si ce que j'ai proposé convenait, s'il fallait l'améliorer, etc.
Cher Kenimy, je saurai te le rappeler à ta prochaine demande...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#7 03-02-2019 15:53:18

LECLERCQ
Invité

Re : Compléter un algorithme

bonjour ,pouvez vous m'aider pour cet exercice qui demande  de trouver et de compléter un algorithme,je suis perdue,j'ai fait les calculs et le graphique.je vous remercie.
Une société de location de voiture propose 2 contrats:_contrat c1:un forfait de 23 euros et 0,40eurospar kilomètre parcouru
contratc2:0,60 euros par km parcouru.
écrivez un algorithme permettant de calculer et d'afficher le coût des 2 contrats suivant le nombre x de km

Pied de page des forums