Partage
  • Partager sur Facebook
  • Partager sur Twitter

Ajouter des espaces

    10 novembre 2018 à 18:54:25

    Bonsoir,

    j'essaye d'écrire un programme qui m'aidera a écrire W avec des étoiles sur l'écran sur un hauteur que l'utilisateur a saisi.

    exemple:

    Ecrivez un hauteur: 5

                                        ***                         ******                        ***

                                          ***                     ***    ***                   ***

                                             ***              ***           ***            ***

                                                 ***     ***                   ***     ***

                                                    ******                       ******

    j'ai pensé à déjà créer un premier V du w puis les écrire côte a côte mais je suis bloquée,

    je veux mettre des espaces entre les étoiles en fonction de la valeur saisie par l'utilisateur (si valeur=5, espace= 5 et en diminuant de 1 espace sur chaque ligne mais je n'y arrive pas,

    ou plutôt je ne sais pas comment faire.

    auriez-vous des idées sur ce problème?

    je voulais le faire avec do-while mais peut-être y aurait-il mieux?

    en vous remerciant de vos conseils.

    • Partager sur Facebook
    • Partager sur Twitter

    J'aimais Ophélia...

      11 novembre 2018 à 8:42:26

      Bonjour,

      Il dessiner précisément ton W, puis imaginer l'écriture d'une ligne. Il y aura des successions d'étoiles et d'espaces.
      Première ligne : a0 espaces, X=3 étoiles, b0 espaces, X=3 étoiles, c0=0 espaces, X étoiles, b0 espaces, X étoiles, fin de ligne.
      Combien valent a0 et b0 et csur ton dessin? Pour c0 c'est facile.

      Seconde ligne : a1 espaces, X étoiles, b1 espaces, X étoiles, c1 espaces, X étoiles, b1 espaces, X étoiles, fin de ligne.
      Combien valent a1 et b1 et c?

      Il faut trouver aussi combien de lignes à écrire N et les formules des a2b2c2 jusqu'à  aN-1bN-1cN-1. On voit déjà que bN-1= 0.
      Tu devrais trouver pour tous les aibi et ci une formule qui ne dépend que de i l'indice de la ligne tracée.
      Quelle formule trouves-tu pour aibi et c?

      Ensuite il ne reste qu'à écrire le code. Il y aura une boucle for (car on connait le nombre) sur toutes les lignes, et à l'intérieur la séquence de tracé de la ligne d'indice i. Pour chaque ligne tu as tout ce qu'il faut pour tracer cette séquence.
      • Partager sur Facebook
      • Partager sur Twitter

      En recherche d'emploi.

        11 novembre 2018 à 14:52:56

        Dalfab a écrit:

        Bonjour,

        Il dessiner précisément ton W, puis imaginer l'écriture d'une ligne. Il y aura des successions d'étoiles et d'espaces.
        Première ligne : a0 espaces, X=3 étoiles, b0 espaces, X=3 étoiles, c0=0 espaces, X étoiles, b0 espaces, X étoiles, fin de ligne.
        Combien valent a0 et b0 et csur ton dessin? Pour c0 c'est facile.

        Seconde ligne : a1 espaces, X étoiles, b1 espaces, X étoiles, c1 espaces, X étoiles, b1 espaces, X étoiles, fin de ligne.
        Combien valent a1 et b1 et c?

        Il faut trouver aussi combien de lignes à écrire N et les formules des a2b2c2 jusqu'à  aN-1bN-1cN-1. On voit déjà que bN-1= 0.
        Tu devrais trouver pour tous les aibi et ci une formule qui ne dépend que de i l'indice de la ligne tracée.
        Quelle formule trouves-tu pour aibi et c?

        Ensuite il ne reste qu'à écrire le code. Il y aura une boucle for (car on connait le nombre) sur toutes les lignes, et à l'intérieur la séquence de tracé de la ligne d'indice i. Pour chaque ligne tu as tout ce qu'il faut pour tracer cette séquence.


        Bonjour,

        je vous remercie de votre conseil.

        Cela m'a permis d'y voir un peu plus clairement le problème.

        J'ai un hauteur saisi par l'utilisateur que je nommerai hauteur,

        esp_debut (A0) commencera par0 espace et augmentera de 1 espace sur chaque ligne jusqu'a ce que esp_debut =  hauteur.

        puis j'ai les espaces entre les étoiles qui seront égale à esp_ent_etoiles= (hauteur + (hauteur-2))espaces jusqu'a ce que ce dernier soit égale à 2.

        (pour une hauteur de 3 lignes j'aurai 3+1 espaces entre les étoiles) et qui diminueront de 2 espaces sur chaque lignes.

        puis j'aurai l'espace entre les 2 v du w (qui correspond a C0) que je nommerai esp_milieu, ceci commencera de 0 et augmentera de 2 espaces sur chaque ligne jusqu'à ce que ce dernier soit égale à esp_ent_etoiles.

        puis j'ecrirai:

        esp_debut *** esp_ent_etoiles *** esp_milieu *** esp_ent_etoiles ***

        esp_debut *** esp_ent_etoiles***esp_milieu *** esp_ent_etoiles*** ... et ainsi de suite.

        est-ce correct?

        j'ai toujours le problème suivant:

        je n'arrive  pas à créer un variable qui fasse ce que je veux,

        esp_debut =" " mais je ne sais pas comment l'augmenter de 1 espace sur chaque ligne :(

        je veux bien faire esp_debut==esp_debut+esp_debut  mais je rencontre un problème sur la ligne suivante, car esp_debut égale toujours a sa première valeur :(

        sur la 1ère ligne esp_debut = 1 espace;

        sur le 2ème = 2 espaces;

        sur le 3ème = 3 espaces etc..

        mais je n'y arrive pas :(

        j'espère avoir été claire sur mes explications,

        et vous remercie de votre aide précieuse.

        -
        Edité par Byakurel 11 novembre 2018 à 18:52:17

        • Partager sur Facebook
        • Partager sur Twitter

        J'aimais Ophélia...

          12 novembre 2018 à 4:56:16

          Bonjour bonjour! Donc après m'être creusé les meninges a longueur de journée (:()), j'ai fini par coder ceci:

          include<iostream>

          include<conio.h>

          include<stdlib.h>

          include<string.h>

          include<iomanip>

          using namespace std; main() {

            int compteur, hauteur;
            string un_espace(" " ), esp_debut(" " );
            int esp_milieu = -2;
           
            printf("hauteur voulu:" );
             scanf("%d", &amp;hauteur);
             int espace = hauteur;
            for (compteur = 0; compteur&lt;hauteur compteur="" esp_debut="esp_debut" un_espace="" espace="espace-2;" esp_milieu="esp_milieu+2;" cout="" setw="" endl="" getch="" /&gt;&lt;/iomanip&gt;&lt;/string.h&gt;&lt;/stdlib.h&gt;&lt;/conio.h&gt;&lt;/iostream&gt;
          

          -
          Edité par Byakurel 12 novembre 2018 à 4:57:38

          • Partager sur Facebook
          • Partager sur Twitter

          J'aimais Ophélia...

            12 novembre 2018 à 11:29:36

            C'est du C, pas du C++, mauvais forum.
            • Partager sur Facebook
            • Partager sur Twitter
            Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
              12 novembre 2018 à 17:26:56

              bacelar a écrit: >

              Désolée :( je réouvre sur le bon forum, je me suis trompée :o .

              • Partager sur Facebook
              • Partager sur Twitter

              J'aimais Ophélia...

              Ajouter des espaces

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown