Montre ton code en entier qu'on voie en quoi c'est mieux que les autres solutions !
- Edité par michelbillaud il y a environ 1 heure
Je e dis pas que mon code serait meilleur, mais la conception du programme si, on ne m'ôtera jamais de l'esprit que l'affichage des résultats est une tâche à part de leur obtention.
Le crayon la gomme et le papier sont les meilleurs outils du programmeur !
Je e dis pas que mon code serait meilleur, mais la conception du programme si, on ne m'ôtera jamais de l'esprit que l'affichage des résultats est une tâche à part de leur obtention.
Exactement. Et une bonne conception fait apparaitre que ce qui est attendu du programme, c'est l'affichage d'une certaine suite de caractères.
Pas la construction d'un objet en mémoire qui contiendrait cette suite de caractères pour l'afficher ensuite. La suite de caractères, elle est expédiée au fur et à mesure sur stdout, qui contient un tampon pour la ligne. C'est son job.
- Edité par michelbillaud 3 décembre 2020 à 16:57:45
Et si on demandais l'avis du PO (auteur du sujet) ce qu'elle en pense. Elle a peut-être son mot à dire. J'aime la solution de joel76 si on passe au cas général. Mais je suis d'accord avec michelbillaud, on ne demande que d'afficher un sapin à la console, pas plus. Et si tinapow3 est débutante, pourquoi l'emmerder avec toute sorte de complication?
Le Tout est souvent plus grand que la somme de ses parties.
Et si tinapow3 est débutante, pourquoi l'emmerder avec toute sorte de complication?
Pour montrer qu'on sait plein de choses. Concours de bites.
A remarquer, dans son code d'origine, il y a déjà l'usage d'une fonction pour la lecture de la hauteur. Mais ça devait faire partie du corrigé d'un exercice précédent (sinon il y aurait eu l'idée de faire une fonction qui répète la question jusqu'à obtenir une réponse acceptable).
Mais bon, le coeur du sujet, c'est savoir faire des boucles avec compteur en marche avant et en marche arrière. Probablement que l'objectif, c'est l'entraînement aux usages idiomatiques de la boucle for
for (int i = 1; i <= n ; i ++) {
// de 1 à n
}
for (int i = n; i >= 1; i--) {
// de n à 1
}
Et la question d'origine montrait que la notion de boucle descendante n'était pas encore acquise.
- Edité par michelbillaud 13 décembre 2020 à 19:04:07
Pour être honnête je suis un peu confuse, je n'arrive pas à suivre toutes les conversations 🙈
Mes connaissances sont vraiment encore très limités ! Mais j'essaie de faire mon mieux pour comprendre 😁
@michelbillaud ta piste m'a l'air clair justement je n'arrivais pas à faire le schéma inverse commencer par un seul # et finir par n # et au contraire commencer par n # et finir par un seul #
Bon j'ai l'impression que plus l'on touche du bois l'objectif plus on le perd aussi vite 😂 la 5eme ligne est parfaite la 1ere par contre elle fonction pas comme je le souhaite regarde un peu :
int main(void)
{
int n;
do
{
n = get_int("Hauteur: ");
}
while (n < 1 || n > 8);
do
{
for (int i = n; i >= 1; i--)
{
printf(" ");
}
for (int i = 1; i <= n ; i ++)
{
printf("#");
}
printf("\n");
}
while ( n-- );
}
Et ça me donne :
Hauteur: 4
####
###
##
#
Soit de n " " à un seul " " et de n # à un seul # 🥺
Alors que je souhaite commencer par n " " à un seul " " et ensuite commencer par un seul # et continuer jusqu'à n #
@PierrotLeFou haha oui merci, la conversation n'avais pas trop de sens pour moi (littéralement) après le forum est aussi la pour les gens qui souhaite aller plus loin et justement débattre c'est cool ça veut dire le sujet vous anime 🥳
Il y a un problème dans ce que tu cherches à coder, robun te l'a indiqué
robun a écrit:
Je pense que tu ne devrais pas utiliser comme indice de boucle, dans le 'while', la variable 'n'. Cette variable représente la taille de la pyramide, elle ne devrait pas varier. En tout cas, la voir comme variable de boucle m'a embrouillé : je ne sais pas comment inverser le sens de parcours avec ce 'while'. J'ai l'impression qu'on mélange plusieurs choses.
Ce que j'aimerais c'est de respecter la structure de mon code et changer que le fond. Parce que au fond ce que je veux c'est garder mes variables et changer la disposition du programme.
Et dans le flot des propositions, la partie importante s'est perdue. Je l'ai mis en gars dans le texte de robun.
Quand on trace les diverses lignes, on voit bien qu'au moment de la dernière ligne on doit utiliser la valeur de n. Mais ton code la décrémente petit à petit et donc on a perdu sa valeur initiale. Ton code n'utilise que 2 variables i et n. La solution est simple mais il faut envisager 3 variables: - n qui ne changera jamais pendant la boucle - par exemple j qui correspond au tracé de chacune des lignes - par exemple i qui correspond à une boucle interne qui va tracer les j étoiles de la ligne
Je voudrais pas dire, mais ça fait 4 mois qu'on est dessus.
Donc peut être qu'il faudrait se décider à prendre un papier, un crayon, et réfléchir sérieusement 5 minutes pour régler le problème.
Ou décider de faire autre chose. Il y a plein d'autres choses plus intéressantes dans la vie (qui est beaucoup trop courte) que de tenter mollement pendant 4 mois d'écrire du code C pour dessiner un triangle avec des caractères.
- Edité par michelbillaud 14 décembre 2020 à 11:58:07
Je pense que tinapow3, ni personne d'autre d'ailleurs, n'a passé 4 mois à plein temps sur ce sujet. L'exercice en soi est stupide, c'est vrai. Mais la compréhension des boucles ascendantes ou descendantes et les variables associées ne l'est pas.
Le Tout est souvent plus grand que la somme de ses parties.
Ce qui serait bien, ça serait d'y passer 10 minutes à plein temps pour régler le problème.
Quand même pas besoin d'être Einstein pour faire la différence entre 12345 et 54321.
L'exercice en question est simple, et formateur sur ce point. Mais c'est inquiétant de ne pas arriver à le dépasser en quelques jours.
Je ne mets pas en doute les capacités mentales de la personne : au minimum il y a un problème de méthodologique de l'apprentissage. Pour apprendre le piano, on ne fait pas le do le lundi, le ré le mardi, et le mi quinze jours après.
- Edité par michelbillaud 14 décembre 2020 à 18:05:50
Le crayon la gomme et le papier sont les meilleurs outils du programmeur !
Le crayon la gomme et le papier sont les meilleurs outils du programmeur !
Le Tout est souvent plus grand que la somme de ses parties.
En recherche d'emploi.
Le Tout est souvent plus grand que la somme de ses parties.