Program to print Sine-Wave Pattern

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

Examples:

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. Seperate loops are kept to keep track of the wave_height and wave_length.

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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 oterwise
        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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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 oterwise
        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

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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 oterwIse
        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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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 oterwise
        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)

chevron_right


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 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

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

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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 

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


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

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.