Rows: display a pattern that increments in each row

Discussion in 'C++' started by Nicolla MacPherson, Aug 12, 2003.

  1. Hi
    I'm a newbie and want to display a pattern that will increment with each
    line of display.
    I thought i might be able to count the rows and use that info to increment
    my display.
    I've got my starting point using setw and don't want to use cout for every
    line of display. What should i be looking for to use.
    Thanks
     
    Nicolla MacPherson, Aug 12, 2003
    #1
    1. Advertising

  2. Nicolla MacPherson wrote:
    >
    > Hi
    > I'm a newbie and want to display a pattern that will increment with each
    > line of display.


    what pattern?

    > I thought i might be able to count the rows and use that info to increment
    > my display.


    You might. It depends on the pattern.

    > I've got my starting point using setw and don't want to use cout for every
    > line of display. What should i be looking for to use.


    Using cout for every single line is the easiest thing you could do, *if*
    your pattern is that way. It all depends on what the pattern looks like.
    If your pattern is such that you can derive some formula from the line count,
    then things are going the easy way.

    Example: You have to produce this pattern:

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

    So what do you recognize? Every line consists of spaces followed
    by '*' characters. How many are in each line? Lets make a table:

    line # | # of spaces # of asteriks
    ---------+-----------------------------
    0 | 5 1
    1 | 4 3
    2 | 3 5
    3 | 2 7
    4 | 1 9

    Now can you come up with some formulas that emit the
    number of spaces when given the line number? What about
    the number of asteriks?

    #_of_spaces = 5 - line_#
    #_of_asteriks = 2 * line_# + 1

    So your output loop basically looks like this

    for( line = 0; line < 5; ++line )
    {
    compute NrOfSpaces as 5 - line
    compute NrOfAsteriks as 2 * line + 1

    output NrOfSpaces ' '
    output NrOfAsteriks '*'

    output '\n'
    }

    And thats it for this specific pattern.

    --
    Karl Heinz Buchegger
     
    Karl Heinz Buchegger, Aug 12, 2003
    #2
    1. Advertising

  3. Nicolla MacPherson

    Pete Guest

    Nicolla

    If you could draw some of the pattern or just post the homework question...
    :) .... that would help.

    Pete

    "Karl Heinz Buchegger" <> wrote in message
    news:...
    >
    >
    > Nicolla MacPherson wrote:
    > >
    > > Hi
    > > I'm a newbie and want to display a pattern that will increment with each
    > > line of display.

    >
    > what pattern?
    >
    > > I thought i might be able to count the rows and use that info to

    increment
    > > my display.

    >
    > You might. It depends on the pattern.
    >
    > > I've got my starting point using setw and don't want to use cout for

    every
    > > line of display. What should i be looking for to use.

    >
    > Using cout for every single line is the easiest thing you could do, *if*
    > your pattern is that way. It all depends on what the pattern looks like.
    > If your pattern is such that you can derive some formula from the line

    count,
    > then things are going the easy way.
    >
    > Example: You have to produce this pattern:
    >
    > *
    > ***
    > *****
    > *******
    > *********
    >
    > So what do you recognize? Every line consists of spaces followed
    > by '*' characters. How many are in each line? Lets make a table:
    >
    > line # | # of spaces # of asteriks
    > ---------+-----------------------------
    > 0 | 5 1
    > 1 | 4 3
    > 2 | 3 5
    > 3 | 2 7
    > 4 | 1 9
    >
    > Now can you come up with some formulas that emit the
    > number of spaces when given the line number? What about
    > the number of asteriks?
    >
    > #_of_spaces = 5 - line_#
    > #_of_asteriks = 2 * line_# + 1
    >
    > So your output loop basically looks like this
    >
    > for( line = 0; line < 5; ++line )
    > {
    > compute NrOfSpaces as 5 - line
    > compute NrOfAsteriks as 2 * line + 1
    >
    > output NrOfSpaces ' '
    > output NrOfAsteriks '*'
    >
    > output '\n'
    > }
    >
    > And thats it for this specific pattern.
    >
    > --
    > Karl Heinz Buchegger
    >
     
    Pete, Aug 12, 2003
    #3
  4. Nicolla MacPherson

    Nicolla Guest

    Hi Pete
    this is my code so far what i'm having trouble with is that the pyramid code
    has to include 2 for loops. But i just can't display the lines individually
    with out using cout all the time. If you can just give me some pointers as
    to what i'm doing wrong as I can't copy anyones code.
    Cheers

    Nicolla

    #include <iostream> //For cin, cout

    #include <iomanip> //For setw()

    using namespace std;

    const maxLines = 20;
    const maxColumns = 1;


    void main (void)
    {


    int line=0;
    int numCarats =0;
    char carat ='^';



    cout <<"\n\n\n"; //Move down the screen 3 lines
    cout <<setw(40) <<carat <<endl; //Define where to start with the display

    // while (numCarats <= 19) numCarats !=19; numCarats++)
    // {
    // cout <<'^';
    // }




    for (line = 4;line < 16; ++line) //number of lines to be displayed
    {

    //width for column

    cout.width (40);


    //position left side characters within the column

    cout <<setw(39) <<carat <<resetiosflags(ios::left)<< setw(1) <<carat;

    //Fill the left side, allows blank space to be entered before the carat
    amount entered
    //This allows for the carats to be right justified

    cout.fill (' ');
    cout <<carat <<endl;
    cout <<setw(38) <<carat <<resetiosflags(ios::left)<< setw(1) <<carat ;
    cout.fill (' ');
    cout <<carat <<endl;
    }






    }

    "Pete" <> wrote in message
    news:bhaqee$jui$...
    > Nicolla
    >
    > If you could draw some of the pattern or just post the homework

    question...
    > :) .... that would help.
    >
    > Pete
    >
    > "Karl Heinz Buchegger" <> wrote in message
    > news:...
    > >
    > >
    > > Nicolla MacPherson wrote:
    > > >
    > > > Hi
    > > > I'm a newbie and want to display a pattern that will increment with

    each
    > > > line of display.

    > >
    > > what pattern?
    > >
    > > > I thought i might be able to count the rows and use that info to

    > increment
    > > > my display.

    > >
    > > You might. It depends on the pattern.
    > >
    > > > I've got my starting point using setw and don't want to use cout for

    > every
    > > > line of display. What should i be looking for to use.

    > >
    > > Using cout for every single line is the easiest thing you could do, *if*
    > > your pattern is that way. It all depends on what the pattern looks like.
    > > If your pattern is such that you can derive some formula from the line

    > count,
    > > then things are going the easy way.
    > >
    > > Example: You have to produce this pattern:
    > >
    > > *
    > > ***
    > > *****
    > > *******
    > > *********
    > >
    > > So what do you recognize? Every line consists of spaces followed
    > > by '*' characters. How many are in each line? Lets make a table:
    > >
    > > line # | # of spaces # of asteriks
    > > ---------+-----------------------------
    > > 0 | 5 1
    > > 1 | 4 3
    > > 2 | 3 5
    > > 3 | 2 7
    > > 4 | 1 9
    > >
    > > Now can you come up with some formulas that emit the
    > > number of spaces when given the line number? What about
    > > the number of asteriks?
    > >
    > > #_of_spaces = 5 - line_#
    > > #_of_asteriks = 2 * line_# + 1
    > >
    > > So your output loop basically looks like this
    > >
    > > for( line = 0; line < 5; ++line )
    > > {
    > > compute NrOfSpaces as 5 - line
    > > compute NrOfAsteriks as 2 * line + 1
    > >
    > > output NrOfSpaces ' '
    > > output NrOfAsteriks '*'
    > >
    > > output '\n'
    > > }
    > >
    > > And thats it for this specific pattern.
    > >
    > > --
    > > Karl Heinz Buchegger
    > >

    >
    >
     
    Nicolla, Aug 13, 2003
    #4
  5. Nicolla wrote:
    >
    > Hi Pete
    > this is my code so far what i'm having trouble with is that the pyramid code
    > has to include 2 for loops.


    Well. If you need 2 loops, you need 2 loops.
    BTW: I don't see 2 loops in the posted code, only 1

    > But i just can't display the lines individually
    > with out using cout all the time.


    Indeed. You do a lot of things with cout in your loop.
    I haven't analyzed it completely, but just by looking
    at it it seems to much. Try to simplify it.

    > If you can just give me some pointers as
    > to what i'm doing wrong as I can't copy anyones code.


    Well. For this to know, we would need to know your goal.
    That is: what does the pattern look like you have to produce.

    --
    Karl Heinz Buchegger
     
    Karl Heinz Buchegger, Aug 13, 2003
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. John Blair
    Replies:
    1
    Views:
    412
    Eliyahu Goldin
    Aug 3, 2005
  2. Replies:
    10
    Views:
    513
    Dennis Lee Bieber
    Jun 26, 2005
  3. Evert Wiesenekker
    Replies:
    1
    Views:
    96
    Eliyahu Goldin
    Jun 1, 2004
  4. Ralph Hartman
    Replies:
    1
    Views:
    208
    Raghavendra T V
    Aug 25, 2004
  5. D
    Replies:
    0
    Views:
    221
Loading...

Share This Page