Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/01/2014, à 16:48

Curiosity

[résolu] les varibles avec pyton

bonjour à tous les programmeurs  et programmeuses,
voila se suis sur le forum de ce site :
http://www.france-ioi.org/forum/thread. … hread=3255

j'ai du mal avec ce problème vos conseilles sont les très bien venus


C'est la dernière semaine de cours et l'école organise une grande kermesse
. L'un des stands, "La Foire aux bonbons", propose un jeu permettant de gagner des bonbons
. Le jeu est simple : il faut atteindre le plus grand nombre de fois possible une cible sans jamais la rater.
 On peut gagner gros, car plus on touche la cible, et plus on gagne de bonbons 
à chaque fois qu'on touche la cible ! 
Les élèves aimeraient connaître le nombre de bonbons qu'ils peuvent gagner en fonction du nombre
 de tirs consécutifs réussis.
Ce que doit faire votre programme :

Toucher la cible au premier tir rapporte un bonbon, 
toucher la cible au deuxième tir rapporte deux bonbons de plus, 
la toucher au troisième tir rapporte encore trois bonbons de plus, etc... 
Écrivez un programme qui affiche sur la première ligne le nombre total de bonbons obtenus 
si l'on ne réussit que 1 tir, puis qui affiche sur la deuxième ligne le nombre de bonbons récupérés 
si l'on réussit 2 tirs de suite, puis sur la troisième ligne le nombre de bonbons récupérés si l'on 
réussit 3 tirs de suite, etc... jusqu'à la valeur que l'on peut récupérer si l'on réussit 50 tirs de suite.

Par exemple, si votre programme s'arrêtait à 5 et non à 50, il devrait afficher ceci :
↳
1
3
6
10
15
  

Dernière modification par Curiosity (Le 15/01/2014, à 17:13)


Le savoir c'est la supériorité ! rien ne doit le gêner faute de quoi, on se condamne à une éternelle infériorité.
Toujours un grand merci  pour  vos réponses. 
Xubuntu 14.04.02

Hors ligne

#2 Le 07/01/2014, à 17:17

jplemoine

Re : [résolu] les varibles avec pyton

je ne comprends pas comment dans l'exemple, on peut avoir 4 : il faudrait savoir le nombre de tir réussis...
    Ensuite, le nombre de bonbons est le résultat de 1 + 2 + 3 + ... + n (avec n étant le nombre de tirs réussis).

    On écrit la suite une fois à l'endroit et une fois à l'envers :
    1 + 2 + 3 + ... + n
    n + ... + 3 + 2 + 1

    on a n (n+1) --> le résultat de la suite (et donc le nombre de bonbons) est n(n+1) / 2 avec n = nombre de tir réussis.

    La solution consiste donc :
    - a demander le nombre de tirs réussis
    - calculer le nombre de bonbons correspondant et l'afficher
    - faire une boucle de 1 à 50
    - pour chaque occurrence, calculer le nombre de bonbons et l'afficher

Dernière modification par jplemoine (Le 07/01/2014, à 17:19)


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#3 Le 07/01/2014, à 17:30

pingouinux

Re : [résolu] les varibles avec pyton

Bonjour,
Ce problème a déjà été traité dans cette discussion : Voir le message #17
@jplemoine : Ce n'est pas un 4, mais (DOWNWARDS ARROW WITH TIP RIGHTWARDS). C'est effectivement écrit petit…

Hors ligne

#4 Le 07/01/2014, à 17:35

Curiosity

Re : [résolu] les varibles avec pyton

Cependant le problème n'a pas été résolu. ou je me trompe ?


Le savoir c'est la supériorité ! rien ne doit le gêner faute de quoi, on se condamne à une éternelle infériorité.
Toujours un grand merci  pour  vos réponses. 
Xubuntu 14.04.02

Hors ligne

#5 Le 07/01/2014, à 17:44

Curiosity

Re : [résolu] les varibles avec pyton

pour ordonner au robot de faire un boucle paire, pas de problème 2, 4, 6, etc........;
ordonner au robot de faire une boucle impair aussi  1, 3 , 5, etc.......
alors pour luis ordonner de mélanger les deux, là je ne sais avec quelle langue je doit la parler


Le savoir c'est la supériorité ! rien ne doit le gêner faute de quoi, on se condamne à une éternelle infériorité.
Toujours un grand merci  pour  vos réponses. 
Xubuntu 14.04.02

Hors ligne

#6 Le 07/01/2014, à 17:56

pingouinux

Re : [résolu] les varibles avec pyton

Curiosity #4 a écrit :

Cependant le problème n'a pas été résolu. ou je me trompe ?

Il y a une solution en python dans le message #26 du lien que je t'ai donné (dans mon message #3 ci-dessus).
Je ne comprends pas ton histoire de boucles paire ou impaire. Peux-tu préciser ?

Dernière modification par pingouinux (Le 07/01/2014, à 17:57)

Hors ligne

#7 Le 07/01/2014, à 18:05

Curiosity

Re : [résolu] les varibles avec pyton

par exomple ce code donne une boucle paire qui augemante de 2 à chaque tour 2, 4, 6, etc

x = 1
for loop in range(5):
   print(x)
   x=x+2
print()

le robot ragoute 2 à chaque tour.
PS oblie l'histoire de paire et  impaire je me suis mal exprimé wink


Le savoir c'est la supériorité ! rien ne doit le gêner faute de quoi, on se condamne à une éternelle infériorité.
Toujours un grand merci  pour  vos réponses. 
Xubuntu 14.04.02

Hors ligne

#8 Le 07/01/2014, à 18:09

pingouinux

Re : [résolu] les varibles avec pyton

Ceci fait la même chose

for loop in range(1,10,2):
   print(loop)

Modifié : Correction

Dernière modification par pingouinux (Le 07/01/2014, à 18:11)

Hors ligne

#9 Le 07/01/2014, à 18:17

jplemoine

Re : [résolu] les varibles avec pyton

Sauf que dans le cas présent, il n'y en a pas besoin...

Il faut aller de 1 en 1 l'index étant le nombre de tirs réussis et
- soit on calcule le nombre de bonbons avec la formule que j'ai donné
- soit on somme les index pour faire 1 + 2 + 3...
Un truc du genre
somme = 0
pour idx = 1 à 50
    somme = somme + idx
    ecrire somme
fin pour

Ce qui donne
index       résultat
1         --> 1
2         --> 3
3         --> 6
4         --> 10

C'est pas ce qui est demandé ?


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#10 Le 07/01/2014, à 18:18

jplemoine

Re : [résolu] les varibles avec pyton

Le but n'étant d'aider et pas de faire complètement l'exercice demandé, je ne traduit pas le pseudo-code en python.


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#11 Le 07/01/2014, à 18:21

Curiosity

Re : [résolu] les varibles avec pyton

pingouinux a écrit :

Ceci fait la même chose

for loop in range(1,10,2):
   print(loop)

tu peux me dire ce qui fait ton programme exactement ?


Le savoir c'est la supériorité ! rien ne doit le gêner faute de quoi, on se condamne à une éternelle infériorité.
Toujours un grand merci  pour  vos réponses. 
Xubuntu 14.04.02

Hors ligne

#12 Le 07/01/2014, à 18:24

jplemoine

Re : [résolu] les varibles avec pyton

Ça écrit de 1 à 10 par pas de 2 soit
1
3
5
7
9

Dernière modification par jplemoine (Le 07/01/2014, à 18:26)


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#13 Le 07/01/2014, à 18:27

Curiosity

Re : [résolu] les varibles avec pyton

jplemoine a écrit :

soit on calcule le nombre de bonbons avec la formule que j'ai donné

tu sais, j'ai une très petite tête  lol donc il faut me parler le plus simple possible.
cepandant je vais analyser ton poste #9


Le savoir c'est la supériorité ! rien ne doit le gêner faute de quoi, on se condamne à une éternelle infériorité.
Toujours un grand merci  pour  vos réponses. 
Xubuntu 14.04.02

Hors ligne

#14 Le 07/01/2014, à 18:30

Curiosity

Re : [résolu] les varibles avec pyton

jplemoine a écrit :

C'est pas ce qui est demandé ?

exactement ! peux-tu être plus claire s'il te plais ?


Le savoir c'est la supériorité ! rien ne doit le gêner faute de quoi, on se condamne à une éternelle infériorité.
Toujours un grand merci  pour  vos réponses. 
Xubuntu 14.04.02

Hors ligne

#15 Le 07/01/2014, à 18:38

pingouinux

Re : [résolu] les varibles avec pyton

range(1,10,2) est une liste, dont les éléments vont de 1 (inclus), à 10 (exclu), par pas de 2.

Hors ligne

#16 Le 07/01/2014, à 18:41

jplemoine

Re : [résolu] les varibles avec pyton

1 tir réussi = 1 bonbons
2 tir           = 2 bonbons de plus (soit 1 + 2)
3 tirs         = 3 bonbons de plus (soit 1 + 2 + 3)

Donc, tu as 2 solutions

solution 1
------------

Faire une boucle qui va cumuler le nombre de bonbons, c'est le pseudo-code suivant :
somme = 0
pour idx = 1 à 50
    somme = somme + idx
    ecrire somme
fin pour

solution 2
------------

faire une fonction qui calcule le nombre de bonbons en fonction du no du tir

pour info : 1+2+3+...+n = n(n+1)/2 (voir démonstration post #2)


fonction nb_bonbons(nb_tirs)
   renvoie nb_tirs * (nb_tirs + 1) / 2
fin fonction
pour idx = 1 à 50
    ecrire nb_bonbons(idx)
fin pour

J'ai un faible pour la solution2 car on apprends plus de choses.
La solution 1 allant plus vite au résultat mais c'est une simple boucle...

C'est plus clair ou pas ? si non, précises ce que tu ne comprends pas.

Dernière modification par jplemoine (Le 07/01/2014, à 18:42)


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#17 Le 07/01/2014, à 18:53

Curiosity

Re : [résolu] les varibles avec pyton

On va prendre la solution 1,

somme = 0

tu veux dire inisialiser la valeur OK ?

pour idx = 1 à 50

tu veux dire d'buter une boucle comme ça:  for loop in range(5): ?

 somme = somme + idx

là je comprends rien !

  ecrire somme

là aussi je comprends rien !

fin pour

tu veux dire print ?


Le savoir c'est la supériorité ! rien ne doit le gêner faute de quoi, on se condamne à une éternelle infériorité.
Toujours un grand merci  pour  vos réponses. 
Xubuntu 14.04.02

Hors ligne

#18 Le 07/01/2014, à 19:02

jplemoine

Re : [résolu] les varibles avec pyton

C'est du pseudo-code...
c'est à dire que c'est du français et non pas un langage quelconque.
Comme je l'ai précisé au post #10, le but est de t'aider pas de faire l'exercice que tu n'auras plus qu'à recopier sans rien comprendre...

Essaies de comprendre ce que l'on te demande....et les solutions proposées.
que va faire le code ? (for loop in range(5): ?)


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#19 Le 07/01/2014, à 19:10

Curiosity

Re : [résolu] les varibles avec pyton

jplemoine a écrit :

que va faire le code ? (for loop in range(5): ?)

répète une instruction 5 fois tout simplement. Mais ça je le sais bien-sur

Dernière modification par Curiosity (Le 07/01/2014, à 19:11)


Le savoir c'est la supériorité ! rien ne doit le gêner faute de quoi, on se condamne à une éternelle infériorité.
Toujours un grand merci  pour  vos réponses. 
Xubuntu 14.04.02

Hors ligne

#20 Le 07/01/2014, à 19:14

Curiosity

Re : [résolu] les varibles avec pyton

en me parlant en pseudo-code, tu me complique la vie encore plus.
essais de trouver une autre solution pédagogique plus claire. s'il te plait


Le savoir c'est la supériorité ! rien ne doit le gêner faute de quoi, on se condamne à une éternelle infériorité.
Toujours un grand merci  pour  vos réponses. 
Xubuntu 14.04.02

Hors ligne

#21 Le 07/01/2014, à 19:24

jplemoine

Re : [résolu] les varibles avec pyton

je ne sais pas faire autrement : je ne suis pas pédagogue de métier mais developpeur.
Quelqu'un d'autre, peut-il l'aider ?


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#22 Le 07/01/2014, à 19:30

Curiosity

Re : [résolu] les varibles avec pyton

jplemoine a écrit :

je ne sais pas faire autrement : je ne suis pas pédagogue de métier mais developpeur.

Là, j'ai exagéré un peut wink je plaisante ne me laisse pas tomber s'il te plait il faut que je comprenne les variables conjugué avec
les boucles. sinon j'avancerais jamais
tu peux pas parler en python c'est pourtant simple comme langage


Le savoir c'est la supériorité ! rien ne doit le gêner faute de quoi, on se condamne à une éternelle infériorité.
Toujours un grand merci  pour  vos réponses. 
Xubuntu 14.04.02

Hors ligne

#23 Le 07/01/2014, à 19:43

pingouinux

Re : [résolu] les varibles avec pyton

Comme je te l'ai indiqué en #6, tu as une solution ici (message #26).

Hors ligne

#24 Le 07/01/2014, à 19:48

jplemoine

Re : [résolu] les varibles avec pyton

Si j'écris en python, je te fais l'exercice... Et donc, ou est l'apprentissage ?
Si on prend la solution 1

Il faut que tu fasses la somme des bonbons sachant que chaque tir réussi fait augmenter le nombre de bonbons du nombres de tirs.

1 tir réussi     --> 1 bonbon
2 tirs réussis  --> + 2 bonbons (soit 3 en tout (1+2))
3 tirs réussis --> +3 bonbons (soit 6 en tout (3+3))
4 tirs réussis --> + 4 bonbons (soit 10 en tout 6 + 4)

la solution est donc d'ajouter le no du tir au nombres de bonbons que l'on avait avant.

on déclare une variable qui va contenir le nombre de bonbons et on l'initialise à 0 (au départ, on n'a aucun bonbon).
on fait une boucle qui va de 1 à 50 par pas de 1 (1,2,3,4,...,49,50)
pour chaque occurrence (chaque tour), on ajoute l'index (la variable qui se modifie) au nombre de bonbons que l'on a déjà.

nb_bonbons = 0
---
entrée dans la boucle (no_tir = 1)
nb_bonbons = nb_bonbons + no_tir (et donc nb_bonbons= 1)
ecrire nb_bonbons
sortie de la boucle
---
entrée dans la boucle (no_tir = 2)
nb_bonbons = nb_bonbons + no_tir (et donc nb_bonbons= 3 (1+2))
ecrire nb_bonbons
sortie de la boucle
---
entrée dans la boucle (no_tir = 3)
nb_bonbons = nb_bonbons + no_tir (et donc nb_bonbons= 6 (3+3))
ecrire nb_bonbons
sortie de la boucle
---
entrée dans la boucle (no_tir = 4)
nb_bonbons = nb_bonbons + no_tir (et donc nb_bonbons= 10 (6+4))
ecrire nb_bonbons
sortie de la boucle
---
entrée dans la boucle (no_tir = 5)
nb_bonbons = nb_bonbons + no_tir (et donc nb_bonbons= 15 (10+5))
ecrire nb_bonbons
sortie de la boucle
----
...
----
entrée dans la boucle (no_tir = 50)
nb_bonbons = nb_bonbons + no_tir (et donc nb_bonbons= 1275 (1225+50))
ecrire nb_bonbons
sortie de la boucle

Est-ce plus clair ?


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#25 Le 07/01/2014, à 19:48

Curiosity

Re : [résolu] les varibles avec pyton

je te remercie pingouinux, je suis désolé mais je doit quiter l'ordi d'où je suis connecté.
Car je suis dans un médiathèque et sa va fermé à 18h.
Demain j' esserais tout ça.
A+


Le savoir c'est la supériorité ! rien ne doit le gêner faute de quoi, on se condamne à une éternelle infériorité.
Toujours un grand merci  pour  vos réponses. 
Xubuntu 14.04.02

Hors ligne