pattern program
pattern program

Hi Guys, Welcome to Proto Coders Point, In this dart tutorial(article) we will learn how to print different design pattern in dart programming language.

Dart pattern program, improve your coding skillm the logic used in dart program & build logical technique used in looping concept. With my experience, pattern program are always asked in most of interview technique round.

By using loops we can print pattern in dart with different design patterns. To easily understand pattern programs in dart, we must have deep knowledge on how dart loop works such as for loop, do-while loop.

In this tutorial we will learn how to print star pattern, number pattern, character pattern in dart programming language.

Learn basic of how to print pattern in dart loop works

Before we go to dart program to print pattern design, let’s learn basic of pattern printing.

Suppose you want ot draw a pattern using dart program, directly don’t start writng program.

First draw the pattern in a table block using row & column, so that you can understand the logic flow, which block to fill and which block to keep empty.

As we have shown in below star pattern image.

To build/draw a pattern in console a program must use atleast two loop, if the program is complex to print pattern we must use more looping techniques.

then, if you observed above pattern image, the first row print only 1 star, the second row print 2 stars & the third row prints 3 stars and so on.

Understanding the logic behind printing pattern in dart

Let’s understand the logic behind how the loop will iterate through loop to print stars patterns as shown in above pattern image.

Snippet code

 for(int i = 0 ; i< 5; i++)
    {
        for(int j = 0; j<=i;j++)
        {
            stdout.write('*');
        }
        stdout.writeln();
    }

Here the first for loop is for row (i) & second for loop is column (j).

let’s go, execution of code step by step in iteration wise.

iteration 1:

for i = 0 ; i < 4 (true)
for k = 0;  j <= i (true)

In first iteration only 1 star get printed because J loop runs for 1 time & then comes out of loop & jumps out of j loop & goes to next line.

*

now, the value of i is incremented by +1 & j is rest to 0.


iteration 2:

for i = 1 ; i < 4 (true)
for k = 0;  j <= i (true)

In second iteration, j loop runs for 2 times, so two stars get prined & jump out of loop & goes to next line.

*
* *

now, the value of i is incremented by +1 & j is rest to 0.


iteration 3:

for i = 2 ; i < 4 (true)
for k = 0;  j <= i (true)

In third iteration, j loop runs for 3 times, i.e. j = 0 to j = 2 (0 – 1 -2). so stars get printed 3 times.

*
* *
* * *

now, the value of i is incremented by +1 & j is rest to 0.


iteration 4:

for i = 3 ; i < 4 (true)
for k = 0;  j <= i (true)

In fourth iteration, j loop runs for 4 times, i.e. j = 0 to j = 3 (0 – 1 -2 – 3). so stars get printed 4 times.

*
* *
* * *
* * * * 

now, the value of i is incremented by +1 & j is rest to 0.


iteration 5 will not work

for i = 4 ; i < 4 (false)

Here, the execution of loop stops, as i < 4. i.e. 4 < 4 which is false. therefore the loop stops.



Star pattern in dart

1. Right triangle star pattern

import 'dart:io';
void main(){
    int rows = 6;
    for(int i = 0 ; i< rows; i++)
    {
        for(int j = 0; j<=i;j++)
        {
            stdout.write('* ');
        }
        stdout.writeln();
    }
}
right triangle star pattern in dart

2. Left triangle star pattern

import 'dart:io';
void main(){
    int rows = 6;
    for(int i = 0 ; i< rows; i++)
    {
        for(int j=2*(rows-i);j>=0;j--){
            stdout.write(" ");
        }
        for(int j = 0;j<=i;j++)
        {
            stdout.write("* ");
        }
        stdout.writeln();
    }
}
left triangle star pattern in dart

3. Pyramid star pattern

import 'dart:io';
void main(){
    int rows = 6;
    for(int i = 0 ; i< rows; i++)
    {
        for(int j=(rows-i);j>1;j--){
            stdout.write(" ");
        }
        for(int j = 0;j<=i;j++)
        {
            stdout.write("* ");
        }
        stdout.writeln();
    }
}

4. Reverse Pyramid star pattern

import 'dart:io';
void main(){
    int rows = 6;
    for(int i = 0 ; i< rows; i++)
    {
        for(int j = 0;j<=i;j++)
        {
             stdout.write(" ");
        }

        for(int k=0;k<=rows-1-i;k++){
           stdout.write("* ");
        }
        
        stdout.writeln();
    }
}

5. Sandglass star pattern

import 'dart:io';

void main() {
  int i, j, k, n = 10;

  for (i = 0; i <= n - 1; i++) {
    for (j = 0; j < i; j++) {
      stdout.write(" ");
    }
    for (k = i; k <= n - 1; k++) {
      stdout.write("*" + " ");
    }
    stdout.writeln("");
  }
  for (i = n - 1; i >= 0; i--) {
    for (j = 0; j < i; j++) {
      stdout.write(" ");
    }
    for (k = i; k <= n - 1; k++) {
      stdout.write("*" + " ");
    }
    stdout.writeln("");
  }
}
sandglass star pattern design in dart


Number Pattern in dart

1. Right triangle Number patterns

import 'dart:io';

void main() {
  int i, j, numbers, n = 10;

  for(i=0;i<n;i++){
    numbers = 1;
    for(j = 0; j<=i;j++)
    {
      stdout.write('$numbers ');
      numbers++;
    }
    stdout.writeln();
  }

}
numbers patterns in dart

2. Number Increment pattern

import 'dart:io';

void main() {
  int i, j, numbers=1, n = 10;

  for(i=1;i<=n;i++){
    
    for(j = 1; j<i+1;j++)
    {
      stdout.write('${numbers++} ');
     
    }
    stdout.writeln();
  }

}
number increment pattern in dart

3. Sandglass Number patterns

import 'dart:io';

void main() {
  int n = 9, i, j;

  for (int i = 1; i <= n; i++) {
    for (int j = 1; j < i; j++) {
       stdout.write(" ");
    }
    for (int k = i; k <= n; k++) {
      stdout.write("$k ");
    }
    stdout.writeln();
  }
  for (int i = n - 1; i >= 1; i--) {
    for (int j = 1; j < i; j++) {
      stdout.write(" ");
    }
    for (int k = i; k <= n; k++) {
      stdout.write("$k ");
    }
    stdout.writeln();
  }
}
sand glass number patterns

4. Rotated pyramid number pattern

import 'dart:io';

void main() {
  int rows = 8;
//Prints upper half pattern
  for (int i = 1; i <= rows; i++) {
    for (int j = 1; j <= i; j++) {
      stdout.write("$j ");
    }
    stdout.writeln();
  }
//prints lower half pattern
  for (int i = rows - 1; i >= 1; i--) {
    for (int j = 1; j <= i; j++) {
      stdout.write("$j ");
    }
    stdout.writeln();
  }
}
pyramid number pattern in dart


Character Pattern in dart

Converting string in ascii code in dart

1. Right Triangle Alphabetic Pattern in dart

import 'dart:io';

void main() {
  int alphabet = 65;

  for (int i = 0; i <= 8; i++) {
    for(int j = 0;j<=i;j++)
    {
       stdout.write('${String.fromCharCode(alphabet+j)} ');
    }
    stdout.writeln();
  }
}
character alphabet printing pattern in dart

2. Repeating Alphabet Pattern

import 'dart:io';

void main() {
  int alphabet = 65;

  for (int i = 0; i <= 8; i++) {
    for(int j = 0;j<=i;j++)
    {
       stdout.write('${String.fromCharCode(alphabet)} ');
    }
    alphabet++;
    stdout.writeln();
  }
}
Repeating Alphabet Pattern

 3. K-shape Alphabet Pattern

import 'dart:io';

void main() {
  

  for (int i = 8; i >= 0; i--) {
    int alphabet = 65;
    for(int j = 0;j<=i;j++)
    {
       stdout.write('${String.fromCharCode(alphabet+j)} ');
    }
    stdout.writeln();
  }
  for (int i = 0; i <= 8; i++) {
    int alphabet = 65;
    for(int j = 0;j<=i;j++)
    {
       stdout.write('${String.fromCharCode(alphabet+j)} ');
    }
    stdout.writeln();
  }
}
k shape alphabet pattern dart