Rows: display a pattern that increments in each row

N

Nicolla MacPherson

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
 
K

Karl Heinz Buchegger

Nicolla said:
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.
 
P

Pete

Nicolla

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

Pete
 
N

Nicolla

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 said:
Nicolla

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

Pete
 
K

Karl Heinz Buchegger

Nicolla said:
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.
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,754
Messages
2,569,528
Members
45,000
Latest member
MurrayKeync

Latest Threads

Top