Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Program to print Sine-Wave Pattern

  • Last Updated : 27 May, 2021

Give the Height and Width of a Wave to print the Sine wave pattern 

Examples:  

Attention reader! All those who say programming isn't for kids, just haven't met the right mentors yet. Join the  Demo Class for First Step to Coding Coursespecifically designed for students of class 8 to 12. 

The students will get to learn more about the world of programming in these free classes which will definitely help them in making a wise career choice in the future.

Input :  wave_height=5
         wave_length=10
Output :

  0 0     0 0     0 0     0 0     0 0     0 0     0 0     0 0     0 0     0 0   
 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0  
 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0  
 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0  
0     0 0     0 0     0 0     0 0     0 0     0 0     0 0     0 0     0 0     0 

Approach: 
First, check the row and column where the elements are needed to be printed. Then, use nested for loops to print the elements in the corresponding order. Separate loops are kept to keep track of the wave_height and wave_length.  



C++




// C++ program to print sign wave pattern.
#include <bits/stdc++.h>
using namespace std;
 
void printSinWave(int wave_height,
                  int wave_length)
{
    // inner space and outer space.
    int is = 1, os = 2;
 
    // for loop for height of wave
    for (int i = 1; i <= wave_height; i++)
    {
 
        // for loop for wave length
        for (int j = 1; j <= wave_length; j++)
        {
 
            // intermediate spaces
            for (int k = 1; k <= os; k++)
            {
                cout << " ";
            }
 
            // put any symbol
            cout << "0";
 
            for (int k = 1; k <= is; k++)
                cout << " ";    
 
            // put any symbol
            cout << "0";
 
            for (int k = 1; k <= os; k++)
                cout << " ";
             
            cout << " ";
        }
 
        // set a value of os to 1 if i+1 is not
        // equal to wave height or 0 otherwise
        os = (i + 1 != wave_height);
 
        // set value of is to 3 if i+1 is not equal
        // to wave height or 5 otherwise
        is = (i + 1 != wave_height) ? 3 : 5;
 
        cout << "\n";
    }
}
 
// Driver code
int main()
{
    int wave_height = 5, wave_length = 10;
    printSinWave(wave_height, wave_length);
    return 0;
}
 
// This code is contributed by shivanisinghss2110

C




// C program to print sign wave pattern.
#include <stdio.h>
 
void printSinWave(int wave_height, int wave_length)
{
    // inner space and outer space.
    int is = 1, os = 2;
 
    // for loop for height of wave
    for (int i = 1; i <= wave_height; i++) {
 
        // for loop for wave length
        for (int j = 1; j <= wave_length; j++) {
 
            // intermediate spaces
            for (int k = 1; k <= os; k++) {
                printf(" ");
            }
 
            // put any symbol
            printf("0");
 
            for (int k = 1; k <= is; k++)
                printf(" ");           
 
            // put any symbol
            printf("0");
 
            for (int k = 1; k <= os; k++)
                printf(" ");
             
            printf(" ");
        }
 
        // set a value of os to 1 if i+1 is not
        // equal to wave height or 0 otherwise
        os = (i + 1 != wave_height);
 
        // set value of is to 3 if i+1 is not equal
        // to wave height or 5 otherwise
        is = (i + 1 != wave_height) ? 3 : 5;
 
        printf("\n");
    }
}
 
// Driver code
int main()
{
    int wave_height = 5, wave_length = 10;
    printSinWave(wave_height, wave_length);
    return 0;
}

Java




// Java program to print
// sign wave pattern.
class GFG
{
static void printSinWave(int wave_height,
                         int wave_length)
{
    // inner space and outer space.
    int is = 1, os = 2;
 
    // for loop for height of wave
    for (int i = 1;
             i <= wave_height; i++)
    {
 
        // for loop for wave length
        for (int j = 1;
                 j <= wave_length; j++)
        {
 
            // intermediate spaces
            for (int k = 1; k <= os; k++)
            {
                System.out.printf(" ");
            }
 
            // put any symbol
            System.out.printf("0");
 
            for (int k = 1; k <= is; k++)
                System.out.printf(" ");    
 
            // put any symbol
            System.out.printf("0");
 
            for (int k = 1; k <= os; k++)
                System.out.printf(" ");
             
            System.out.printf(" ");
        }
 
        // set a value of os to 1 if i+1 
        // is not equal to wave height
        // or 0 otherwise
        os = (i + 1 != wave_height) ? 1 : 0;
 
        // set value of is to 3 if i+1 is not 
        // equal to wave height or 5 otherwise
        is = (i + 1 != wave_height) ? 3 : 5;
 
        System.out.printf("\n");
    }
}
 
// Driver code
public static void main(String []args)
{
    int wave_height = 5, wave_length = 10;
    printSinWave(wave_height, wave_length);
}
}
 
// This code is contributed by Smitha

Python3




# Python3 program to print sign wave pattern.
 
def printSinWave(wave_height, wave_length):
 
    # inner space and outer space.
    Is = 1
    os = 2
 
    # for loop for height of wave
    for i in range(1, wave_height + 1):
 
        # for loop for wave length
        for j in range(1, wave_length + 1):
 
            # intermediate spaces
            for k in range(1, os + 1):
                print(end = " ")
             
            # put any symbol
            print("0", end = "")
 
            for k in range(1, Is + 1):
                print(end = " ")        
 
            # put any symbol
            print("0", end = "")
 
            for k in range(1, os + 1):
                print(end = " ")
             
            print(end = " ")
         
        # set a value of os to 1 if i+1 Is not
        # equal to wave height or 0 otherwise
        if (i + 1 != wave_height):
            os = 1
        else:
            os = 0
             
        # set value of Is to 3 if i+1 Is not
        # equal to wave height or 5 otherwise
        if (i + 1 != wave_height):
            Is = 3
        else:
            Is = 5
        print()
 
# Driver code
wave_height, wave_length = 5, 10
printSinWave(wave_height, wave_length)
 
# This code is contributed by
# Mohit kumar 29

C#




// C# program to print
// sign wave pattern.
using System;
 
class GFG
{
static void printSinWave(int wave_height,
                         int wave_length)
{
    // inner space and outer space.
    int Is = 1, os = 2;
 
    // for loop for height of wave
    for (int i = 1;
            i <= wave_height; i++)
    {
 
        // for loop for wave length
        for (int j = 1;
                 j <= wave_length; j++)
        {
 
            // intermediate spaces
            for (int k = 1; k <= os; k++)
            {
                Console.Write(" ");
            }
 
            // put any symbol
            Console.Write("0");
 
            for (int k = 1; k <= Is; k++)
                Console.Write(" ");
 
            // put any symbol
            Console.Write("0");
 
            for (int k = 1; k <= os; k++)
                Console.Write(" ");
             
            Console.Write(" ");
        }
 
        // set a value of os to 1 if i+1
        // is not equal to wave height
        // or 0 otherwise
        os = (i + 1 != wave_height) ? 1 : 0;
 
        // set value of is to 3 if i+1 is not
        // equal to wave height or 5 otherwise
        Is = (i + 1 != wave_height) ? 3 : 5;
 
        Console.Write("\n");
    }
}
 
// Driver code
public static void Main()
{
    int wave_height = 5, wave_length = 10;
    printSinWave(wave_height, wave_length);
}
}
 
// This code is contributed
// by Akanksha Rai(Abby_akku)

Javascript




<script>
    // JavaScript program to print
    // sign wave pattern.
    function printSinWave(wave_height, wave_length)
    {
        // inner space and outer space.
        var is = 1,
        os = 2;
 
        // for loop for height of wave
        for (var i = 1; i <= wave_height; i++)
        {
          // for loop for wave length
          for (var j = 1; j <= wave_length; j++)
          {
            // intermediate spaces
            for (var k = 1; k <= os; k++)
            {
              document.write("  ");
            }
 
            // put any symbol
            document.write("0");
 
            for (var k = 1; k <= is; k++)
            document.write("  ");
 
            // put any symbol
            document.write("0");
 
            for (var k = 1; k <= os; k++)
            document.write("  ");
 
            document.write("  ");
          }
 
          // set a value of os to 1 if i+1 is not
          // equal to wave height or 0 otherwise
          os = i + 1 != wave_height;
 
          // set value of is to 3 if i+1 is not equal
          // to wave height or 5 otherwise
          is = i + 1 != wave_height ? 3 : 5;
 
          document.write("<br>");
        }
     }
 
      // Driver code
      var wave_height = 5,
      wave_length = 10;
      printSinWave(wave_height, wave_length);
</script>
Output: 
  0 0     0 0     0 0     0 0     0 0     0 0     0 0     0 0     0 0     0 0   
 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0  
 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0  
 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0  
0     0 0     0 0     0 0     0 0     0 0     0 0     0 0     0 0     0 0     0

 

How to print a sin wave of letters?  

Input :  wave_height=5
         wave_length=10
Output :

  E F     O P     Y Z     I J     S T     C D     M N     W X     G H     Q R
 D   G   N   Q   X   A   H   K   R   U   B   E   L   O   V   Y   F   I   P   S
 C   H   M   R   W   B   G   L   Q   V   A   F   K   P   U   Z   E   J   O   T
 B   I   L   S   V   C   F   M   P   W   Z   G   J   Q   T   A   D   K   N   U
A     J K     T U     D E     N O     X Y     H I     R S     B C     L M     V 

The approach is the same as above, now instead of using a single element, we use all of the 26 English alphabets in Upper_Case. 

C++




// C++ program to print sign wave pattern.
#include <stdio.h>
 
void printSinWave(int wave_height, int wave_length)
{
 
    // inner space and outer space.
    int is = 1, os = 2;
 
    int inc = 1;
    int jump = (wave_height * 3) - (wave_height + 1);
    int ch = 'A' + wave_height - 1;
 
    // for loop for height of wave
    for (int i = 1; i <= wave_height; i++) {
 
        // for loop for wave length
        for (int j = 1; j <= wave_length; j++) {
 
            // intermediate spaces
            for (int k = 1; k <= os; k++)
                printf(" ");           
            printf("%c", ch);
 
            for (k = 1; k <= is; k++)
                printf(" ");          
  
            ch += inc;
 
            if (ch > 'Z')
                ch = ch - 26;           
            printf("%c", ch);
 
            for (k = 1; k <= os; k++)
                printf(" ");
 
            printf(" ");
            ch += jump;
            if (ch > 'Z')
                ch = ch - 26;           
        }
 
        // set value of os to 1 if i+1 is not
        // equal to wave height or 0 otherwise
        os = (i + 1 != wave_height);
 
        // set value of is to 3 if i+1 is not
        // equal to wave height or 5 otherwise
        is = (i + 1 != wave_height) ? 3 : 5;
 
        ch = 'A' + wave_height - i - 1;
        inc = inc + 2;
        jump -= 2;
 
        printf("\n");
    }
}
 
// Driver code
int main()
{
    int wave_height = 5, wave_length = 10;
    printSinWave(wave_height, wave_length);
    return 0;
}

Java




// Java program to print sign wave pattern.
class GFG
{
static void printSinWave(int wave_height,
                         int wave_length)
{
 
    // inner space and outer space.
    int is = 1, os = 2;
 
    int inc = 1;
    int jump = (wave_height * 3) -
               (wave_height + 1);
    int ch = 'A' + wave_height - 1;
 
    // for loop for height of wave
    for (int i = 1; i <= wave_height; i++)
    {
 
        // for loop for wave length
        for (int j = 1; j <= wave_length; j++)
        {
 
            // intermediate spaces
            for (int k = 1; k <= os; k++)
                System.out.printf(" ");        
            System.out.printf("%c", ch);
 
            for (int k = 1; k <= is; k++)
                System.out.printf(" ");        
 
            ch += inc;
 
            if (ch > 'Z')
                ch = ch - 26;        
            System.out.printf("%c", ch);
 
            for (int k = 1; k <= os; k++)
                System.out.printf(" ");
 
            System.out.printf(" ");
            ch += jump;
            if (ch > 'Z')
                ch = ch - 26;        
        }
 
        // set value of os to 1 if i+1 is not
        // equal to wave height or 0 otherwise
        os = (i + 1 != wave_height) ? 1 : 0;
 
        // set value of is to 3 if i+1 is not
        // equal to wave height or 5 otherwise
        is = (i + 1 != wave_height) ? 3 : 5;
 
        ch = 'A' + wave_height - i - 1;
        inc = inc + 2;
        jump -= 2;
 
        System.out.printf("\n");
    }
}
 
// Driver code
public static void main(String[] args)
{
    int wave_height = 5, wave_length = 10;
    printSinWave(wave_height, wave_length);
}
}
 
// This code is contributed by PrinciRaj1992

Python3




# Python program to print sign wave pattern.
def printSinWave(wave_height, wave_length):
     
    # inner space and outer space.
    Is = 1
    os = 2
    inc = 1
    jump = (wave_height * 3) -(wave_height + 1)
    ch = ord('A') + wave_height - 1
 
    # for loop for height of wave
    for i in range(1, wave_height + 1):
         
        # for loop for wave length
        for j in range(1, wave_length + 1):
             
            # intermediate space
            for k in range(1, os + 1):
                print(end = " ")
            print(chr(ch), end = "")
            for k in range(1, Is + 1):
                print(end = " ")
            ch += inc
 
            if(ch > ord('Z')):
                ch = ch - 26
            print(chr(ch), end = "")
            for k in range(1, os + 1):
                print(end = " ")
            print(end = " ")
            ch += jump
            if(ch > ord('Z')):
                ch = ch - 26
                 
        # set value of os to 1 if i+1 is not 
        # equal to wave height or 0 otherwise
        if(i + 1 != wave_height):
            os = 1
        else:
            os = 0
 
        # set value of is to 3 if i+1 is not 
        # equal to wave height or 5 otherwise
        if(i + 1 != wave_height):
            Is = 3
        else:
            Is = 5
 
        ch = ord('A') + wave_height - i - 1
        inc = inc + 2
        jump -= 2
        print()
 
# Driver code
wave_height = 5
wave_length = 10
printSinWave(wave_height, wave_length)
 
# This code is contributed by avanitrachhadiya2155

C#




// C# program to print sign wave pattern.
using System;
     
class GFG
{
static void printSinWave(int wave_height,
                         int wave_length)
{
 
    // inner space and outer space.
    int iS = 1, os = 2;
 
    int inc = 1;
    int jump = (wave_height * 3) -
               (wave_height + 1);
    int ch = 'A' + wave_height - 1;
 
    // for loop for height of wave
    for (int i = 1; i <= wave_height; i++)
    {
 
        // for loop for wave length
        for (int j = 1; j <= wave_length; j++)
        {
 
            // intermediate spaces
            for (int k = 1; k <= os; k++)
                Console.Write(" ");        
            Console.Write("{0}", (char)ch);
 
            for (int k = 1; k <= iS; k++)
                Console.Write(" ");        
 
            ch += inc;
 
            if (ch > 'Z')
                ch = ch - 26;        
            Console.Write("{0}", (char)ch);
 
            for (int k = 1; k <= os; k++)
                Console.Write(" ");
 
            Console.Write(" ");
            ch += jump;
            if (ch > 'Z')
                ch = ch - 26;        
        }
 
        // set value of os to 1 if i+1 iS not
        // equal to wave height or 0 otherwise
        os = (i + 1 != wave_height) ? 1 : 0;
 
        // set value of iS to 3 if i+1 iS not
        // equal to wave height or 5 otherwise
        iS = (i + 1 != wave_height) ? 3 : 5;
 
        ch = 'A' + wave_height - i - 1;
        inc = inc + 2;
        jump -= 2;
 
        Console.Write("\n");
    }
}
 
// Driver code
public static void Main(String[] args)
{
    int wave_height = 5, wave_length = 10;
    printSinWave(wave_height, wave_length);
}
}
 
// This code is contributed by Princi Singh

Javascript




<script>
// Javascript program to print sign wave pattern.
     
function printSinWave(wave_height,wave_length)   
{
    // inner space and outer space.
    let is = 1, os = 2;
  
    let inc = 1;
    let jump = (wave_height * 3) -
               (wave_height + 1);
    let ch = 'A'.charCodeAt(0) + wave_height - 1;
  
    // for loop for height of wave
    for (let i = 1; i <= wave_height; i++)
    {
  
        // for loop for wave length
        for (let j = 1; j <= wave_length; j++)
        {
  
            // intermediate spaces
            for (let k = 1; k <= os; k++)
                document.write("  ");       
            document.write(String.fromCharCode(ch));
  
            for (let k = 1; k <= is; k++)
                document.write("  ");       
  
            ch += inc;
  
            if (ch > 'Z'.charCodeAt(0))
                ch = ch - 26;       
            document.write(String.fromCharCode(ch));
  
            for (let k = 1; k <= os; k++)
                document.write("  ");
  
            document.write("  ");
            ch += jump;
            if (ch > 'Z'.charCodeAt(0))
                ch = ch - 26;       
        }
  
        // set value of os to 1 if i+1 is not
        // equal to wave height or 0 otherwise
        os = (i + 1 != wave_height) ? 1 : 0;
  
        // set value of is to 3 if i+1 is not
        // equal to wave height or 5 otherwise
        is = (i + 1 != wave_height) ? 3 : 5;
  
        ch = 'A'.charCodeAt(0) + wave_height - i - 1;
        inc = inc + 2;
        jump -= 2;
  
        document.write("<br>");
    }
}
 
// Driver code
let wave_height = 5, wave_length = 10;
printSinWave(wave_height, wave_length);
 
 
// This code is contributed by patel2127
</script>
Output: 
E F     O P     Y Z     I J     S T     C D     M N     W X     G H     Q R   
 D   G   N   Q   X   A   H   K   R   U   B   E   L   O   V   Y   F   I   P   S  
 C   H   M   R   W   B   G   L   Q   V   A   F   K   P   U   Z   E   J   O   T  
 B   I   L   S   V   C   F   M   P   W   Z   G   J   Q   T   A   D   K   N   U  
A     J K     T U     D E     N O     X Y     H I     R S     B C     L M     V

 




My Personal Notes arrow_drop_up
Recommended Articles
Page :