Creating Patterns and Pyramids In C++

Exercise:

Write C++ programs to create different patterns and pyramids.

Example 1: Printing half pyramid of steric.

Click Here to View the Solution:
#include <iostream>
using namespace std;
int main()
{
    int Row;
    cout << "Insert the number of Rows of triangle: ";
    cin >> Row;
    for(int x = 1; x <= Row; ++x)
    {
        for(int y = 1; y <= x; ++y)
        {
            cout << "* ";
        }
        cout << "\n";
    }
    return 0;
}
Click Here to View the Output:
Insert the number of Rows of triangle: 5
 *
 * *
 * * *
 * * * *
 * * * * * 

Click Here to View the Explanation:
  • The user is requested to enter the required number of rows of the half pyramid. The entered number is stored as Row.
  • The value of x = 1, and for loop begins. This is a nested for loop i.e. for loop within for loop.
  • Another for loop is added to print the number of steric required for each row. As x increases by 1 through every iteration, the value of y = 1 is set for the second for loop. It also is incremented by 1 through every iteration. The condition is set to y <= x.
  • The second loop is exited and a new line is added. The first loop is iterated again until the value of x <= Row.
  • A pyramid is printed.

Example 2: Printing half pyramid of numbers.

Click Here to View the Solution:
#include <iostream>
using namespace std;
int main()
{
    int Row;
    cout << "Insert the number of rows of triangle: ";
    cin >> Row;
    for(int x = 1; x <= Row; ++x)
    {
        for(int y = 1; y <= x; ++y)
        {
            cout << y ;
        }
        cout << "\n";
    }
    return 0;
}
Click Here to View the Output:
Insert the number of rows of triangle: 5
 1
 12
 123
 1234
 12345
Click Here to View the Explanation:
  • This code is similar to Example but instead of printing steric, the value of y is printed.

Example 3: Printing pyramid of alphabets.

Click Here to View the Solution:
#include <iostream>
using namespace std;
int main()
{
    char c, letter = 'a';
    cout << "Enter the letter which will be the last row: ";
    cin >> c;
    for(int x = 1; x <= (c-'a'+1); ++x)
    {
        for(int y = 1; y <= x; ++y)
        {
            cout << letter << " ";
        }
        ++letter;
        cout << endl;
    }
    return 0;
}
Click Here to View the Output:
Enter the letter which will be the last row: f
 a
 b b
 c c c
 d d d d
 e e e e e
 f f f f f f
Click Here to View the Explanation:
  • This code is also similar to Example 1.
  • User is requested for a letter that should be printed in the last row.
  • a variable letter is declared as char type. Through every second for loop, it is incremented by 1, moving on to the next letter.
  • c- 'a' + 1 is used to control the iteration of the first for loop.

Example 4: Printing inverted pyramid of steric.

Click Here to View the Solution:
#include <iostream>
using namespace std;
int main()
{
    int Row;
    cout << "Insert the number of Rows of triangle: ";
    cin >> Row;
    for(int x = Row; x >= 1; --x)
    {
        for(int y = 1; y <= x; ++y)
        {
            cout << "* ";
        }
        cout << "\n";
    }
    return 0;
}
Click Here to View the Output:
Insert the number of Rows of triangle: 4
* * * *
* * *
* *
* 
Click Here to View the Explanation:
  • This code is again similar to the previous one. This code requires the number of rows to be printed Row from the user.
  • x is assigned the value of Row and decremented by 1 through every iteration.
  • It uses the second for loop to control the number of steric to be printed per row.

Example 5: Printing inverted pyramid of numbers.

Click Here to View the Solution:
#include <iostream>
using namespace std;
int main()
{
    int Row;
    cout << "Insert the number of rows of triangle: ";
    cin >> Row;
    for(int x = Row; x >= 1; --x)
    {
        for(int y = 1; y <= x; ++y)
        {
            cout << y ;
        }
        cout << "\n";
    }
    return 0;
}
Click Here to View the Output:
Insert the number of rows of triangle: 7
 1234567
 123456
 12345
 1234
 123
 12
 1
Click Here to View the Explanation:
  • This code uses works in the similar way as the previous code.
  • Instead of printing steric, y is printed through every iteration. y is incremented through every iteration, x is decremented through every iteration.
  • A pyramid is printed.

Example 6: Printing full pyramid of steric.

Click Here to View the Solution:
#include <iostream>
using namespace std;
int main()
{
    int gap, Row;
    cout <<"Enter the number of rows of triangle: ";
    cin >> Row;
    for(int x = 1, j = 0; x <= Row; ++x, j = 0)
    {
        for(gap = 1; gap <= Row-x; ++gap)
        {
            cout <<"  ";
        }
        while(j != 2*x-1)         
        {             
            cout << "* ";
            ++j;
        }
        cout << endl;
    }    
    return 0;
}
Click Here to View the Output:
Enter the number of rows of triangle: 5
         *
       * * *
     * * * * *
   * * * * * * *
 * * * * * * * * *
Click Here to View the Explanation:
  • This code requires the user to enter the number of rows.
  • The first for loop controls the number of rows, the second for loop is to print spaces before the steric start printing.
  • The while loop is added to control the number of steric that should be printed in a row.
  • The output is a full pyramid of steric.

Example 7: Printing full pyramid of numbers.

Click Here to View the Solution:
#include <iostream>
using namespace std;
int main()
{
    int Row, length = 0, length1 = 0, y = 0;
    cout << "Enter the number of Rows of triangle: ";
    cin >> Row;
    for(int x = 1; x <= Row; ++x)
    {
        for(int gap = 1; gap <= Row-x; ++gap)
        {
            cout << "  ";
            ++length;
        }
        while(y != 2*x-1)         
       {             
           if (length <= Row-1)             
           {                
           cout << x+y << " "; 
           ++length;
           }
           else 
           {
               ++length1;
               cout << x+y-2*length1 << " ";
           }
           ++y;
       }
       length1 = length = y = 0;
       cout << endl;
    }
    return 0;
}
Click Here to View the Output:
Enter the number of Rows of triangle: 3
     1
   2 3 2
 3 4 5 4 3
Click Here to View the Explanation:
  • This code uses different loops to control the printing of the gap before the numbers, the numbers, and the amount of numbers to be printed.
  • First for loop is to control the number of rows to be printed.
  • The second for loop controls the spaces/gaps before the steric should be printed.
  • while loop is entered and it starts printing the steric until y ! = 2x-1.

Example 8: Printing inverted full pyramid of steric.

Click Here to View the Solution:
#include <iostream>
using namespace std;
int main()
{
    int Row;
    cout << "Enter the number of Rows of triangle: ";
    cin >> Row;
    for(int x = Row; x >= 1; --x)
    {
        for(int gap = 0; gap < Row-x; ++gap)
            cout << "  ";
        for(int y = x; y <= 2*x-1; ++y)
            cout << "* ";
        for(int y = 0; y < x-1; ++y)
            cout << "* ";
        cout << endl;
    }
    return 0;
}
Click Here to View the Output:
Enter the number of Rows of triangle: 4
* * * * * * *
  * * * * * 
    * * *
      *

Click Here to View the Explanation:
  • This code works in a similar manner to the previous one.
  • Instead of incrementing the value of x, x is assigned the value of Row and then decremented by 1 through every iteration.
  • The result is then printed.

Example 9: Printing Pascal’s triangle.

Click Here to View the Solution:
#include <iostream>
using namespace std;
int main()
{
    int Row, Val= 1;
    cout << "Enter the number of rows: ";
    cin >> Row;
    for(int x = 0; x < Row; x++)
    {
        for(int gap = 1; gap <= Row-x; gap++)
            cout <<"  ";
        for(int y = 0; y <= x; y++)
        {
            if (y == 0 || x == 0)
                Val = 1;
            else
                Val = Val*(x-y+1)/y;
            cout << Val << "   ";
        }
        cout << endl;
    }
    return 0;
}
Click Here to View the Output:
Enter the number of rows: 5
           1
         1   1
       1   2   1
     1   3   3   1
   1   4   6   4   1
Click Here to View the Explanation:
  • First for loop controls the number of rows of the pascal’s triangle.
  • Second for loop controls the number of spaces before the numbers have to be printed.
  • The third for loop controls the number that is printed.
  • In case of first row, 1 has to be printed. An if... else statement is used to print 1 if x == 0 or y == 0.

Example 10: Printing Floyd’s triangle.

Click Here to View the Solution:
#include <iostream>
using namespace std;
int main()
{
    int Row, num = 1;
    cout << "Enter the number of Rows of triangle: ";
    cin >> Row;
    for(int x = 1; x <= Row; x++)
    {
        for(int y = 1; y <= x; ++y)
        {
            cout << num << " ";
            ++num;
        }
        cout << endl;
    }
    return 0;
}
Click Here to View the Output:
Enter the number of Rows of triangle: 4
 1
 2 3
 4 5 6
 7 8 9 10
Click Here to View the Explanation:
  • This code requires two for loops. First for loop controls the number of rows.
  • num is set equal to 1. It is incremented after every iteration of second for loop.
  • The second for loop prints the value of num.