Exercie sur les etoiles [Résolu/Fermé]

Vio Laine - 5 oct. 2013 à 18:13 - Dernière réponse : Whismeril 12058 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 4 octobre 2018 Dernière intervention
- 8 mars 2018 à 19:49
Bonjour,
Dans le cadre de ma spé ISN je dois réaliser un exercice à base d'étoiles:
a)Ecrire un algorithme qui affiche à l'écran une ligne d'étoiles de longueur L.
b) Modifier l'algorithme ci dessus pour faire afficher un rectangle d'étoiles de longueur L et de largeur l.
c) Faire afficher un triangle d'étoiles comme ci dessous : On saisira le nombre N. Par exemple, pour N=4 :
*
* *
* * *
* * * *

J'ai déjà réussi le a) et j'ai commencé le b) mais, je n'arrive pas à un résultat optimal, mon algorithme ressemble à ça:

colonne=demande("combien?")
ligne=demande("sur combien ?")
i=1
j=1
while j<=ligne+1:
j=j+1
while i<=colonne+1:
print("*",end="")
print((j+1)*"*")
i=i+1

Pour colonne=4 et ligne=6, j'ai ce résultat:
****
****
****
****
****

comment dois-je faire?
Afficher la suite 

9 réponses

jordane45 22696 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 6 octobre 2018 Dernière intervention - 6 oct. 2013 à 04:11
0
Merci
Bonjour,

comment dois-je faire?

Pourriez-vous être un petit peu plus précise ?
En quoi pouvons-nous vous aider ?

Il semble que ce TD soit régulièrement posé (dans différents langages..) mais la logique reste la même.
Vous devriez pouvoir trouver des exemples sur le net.

PS : Merci d'utiliser la coloration Syntaxique lorsque vous postez du code
exemple :
Ceci est du code...



PS²: Au cas où, vous pouvez aussi jetter un oeil à ce lien concernant la demande d'aide pour les devoirs (pour les demandes ...sans explication d'un souci technique PRECIS bien entendu.)
Bonjour,
Par "comment dois-je faire", je voulais dire, comment dois-je modifier ce code pour arriver à un résultat correct, je suis dessus depuis 1semaine et je ne trouve pas. J'ai cherché sur le net, mais je ne trouve des réponses que pour la question c), celle du triangle, du coup je ne comprends toujours pas comment faire la question b) et ce qui ne va pas dans mon code.
jee pee 23086 Messages postés mercredi 2 mai 2007Date d'inscriptionModérateurStatut 5 octobre 2018 Dernière intervention - Modifié par jee pee le 6/10/2013 à 18:05
0
Merci
Bonjour,

La bonne question devrait être "pourquoi avec 4 X 6 j'obtiens 4 X 5 lignes" ;-)

Ton code est un peu brouillon. Il va falloir que tu bosses l'algo.

Il y a, au départ au moins 2/3 choses qui me chagrinent dans ta solution :
- tester la fin de boucle avec un <= max +1 , pour faire simple le <= max devrait être la règle.
- le J+1 juste derrière la boucle est mal placé
- et les 2 print à la suite, ceinture et bretelles ?
- le i=1 devrait être à l'intérieur de la boucle j

L'exercice b étant basé sur le a, peux tu nous donner ta solution du a pour que l'on t'aide dans la démarche ?

Je n'avais jamais fait de python, mais ayant un petit peu d'expérience
;-)
en programmation j'ai recherché la syntaxe et pour tester j'ai même installé l'interpréteur python sur ma machine.

Cdlt

        Un étranger, c'est un ami qu'on n'a pas encore rencontré.
0
Merci
En fait, je viens de trouver, j'ai tout recommencé à partir d'une traduction de c++. Maintenant, il ressemble à ça:
b=demande("entrez la longueur")
a=demande("entrez la largeur")
i=0
y=0
while i<a:
    i=i+1
    while y<b:
        y=y+1
        print("*"*a)
       

Merci beaucoup à vous deux de m'avoir aidée :)
jee pee 23086 Messages postés mercredi 2 mai 2007Date d'inscriptionModérateurStatut 5 octobre 2018 Dernière intervention - 6 oct. 2013 à 18:23
Si tu mets print("*"*a) c'est à dire 4 * si tu as demandé 4 de largeur, la boucle i est totalement inutile.
firefrog 2 Messages postés mercredi 7 mars 2018Date d'inscription 8 mars 2018 Dernière intervention - 7 mars 2018 à 22:42
0
Merci
Salut ce code peut répondre à ta question .'(n correspond au nombre des lignes)

def triangle_motif(n,motif) :
for i in range (1,n+1):
s=''
for j in range(1,i+1):
s+=motif
print(s)
Whismeril 12058 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 4 octobre 2018 Dernière intervention - 8 mars 2018 à 06:22
Bonjour, cette question a été marquée résolue il y à 5 ans.
Qu’y a t il de tellement révolutionnaire dans tes 6 lignes de code qui justifie que tu l’hexumes?
firefrog 2 Messages postés mercredi 7 mars 2018Date d'inscription 8 mars 2018 Dernière intervention - 8 mars 2018 à 19:17
Salut , pourquoi pas donner une solution pour à un nouveau visiteur qui va trouver cette question sur GOOGLE.
NB: C'est une honte pour un membre plus réputé comme vous d'écrire hexumer pas exhumer .

Je vais ajouter (moins de complexité)

n=int(input('donner n'))
for x in range(0,n):
print (x*"*")
# inverse
n=int(input('donner n'))
for x in range(n,0,-1):
print (x*"*")
Whismeril 12058 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 4 octobre 2018 Dernière intervention - 8 mars 2018 à 19:49
NB: C'est une honte pour un membre plus réputé comme vous d'écrire hexumer pas exhumer .

Il vaut mieux éviter tout commentaire sur la rédaction quand on a écrit 2 lignes au dessus
pour à un nouveau visiteur


Donc tu trouves que donner un code tout fait pour une question aussi simple est plus pédagogique que de faire réfléchir celui (ou celle) qui doit faire cette exercice, pour s'exercer?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.