Program to print Sine-Wave Pattern
Last Updated :
13 Mar, 2023
Give the 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. Separate loops are kept to keep track of the wave_height and wave_length.
C++
#include <bits/stdc++.h>
using namespace std;
void printSinWave( int wave_height,
int wave_length)
{
int is = 1, os = 2;
for ( int i = 1; i <= wave_height; i++)
{
for ( int j = 1; j <= wave_length; j++)
{
for ( int k = 1; k <= os; k++)
{
cout << " " ;
}
cout << "0" ;
for ( int k = 1; k <= is; k++)
cout << " " ;
cout << "0" ;
for ( int k = 1; k <= os; k++)
cout << " " ;
cout << " " ;
}
os = (i + 1 != wave_height);
is = (i + 1 != wave_height) ? 3 : 5;
cout << "\n" ;
}
}
int main()
{
int wave_height = 5, wave_length = 10;
printSinWave(wave_height, wave_length);
return 0;
}
|
C
#include <stdio.h>
void printSinWave( int wave_height, int wave_length)
{
int is = 1, os = 2;
for ( int i = 1; i <= wave_height; i++) {
for ( int j = 1; j <= wave_length; j++) {
for ( int k = 1; k <= os; k++) {
printf ( " " );
}
printf ( "0" );
for ( int k = 1; k <= is; k++)
printf ( " " );
printf ( "0" );
for ( int k = 1; k <= os; k++)
printf ( " " );
printf ( " " );
}
os = (i + 1 != wave_height);
is = (i + 1 != wave_height) ? 3 : 5;
printf ( "\n" );
}
}
int main()
{
int wave_height = 5, wave_length = 10;
printSinWave(wave_height, wave_length);
return 0;
}
|
Java
class GFG
{
static void printSinWave( int wave_height,
int wave_length)
{
int is = 1 , os = 2 ;
for ( int i = 1 ;
i <= wave_height; i++)
{
for ( int j = 1 ;
j <= wave_length; j++)
{
for ( int k = 1 ; k <= os; k++)
{
System.out.printf( " " );
}
System.out.printf( "0" );
for ( int k = 1 ; k <= is; k++)
System.out.printf( " " );
System.out.printf( "0" );
for ( int k = 1 ; k <= os; k++)
System.out.printf( " " );
System.out.printf( " " );
}
os = (i + 1 != wave_height) ? 1 : 0 ;
is = (i + 1 != wave_height) ? 3 : 5 ;
System.out.printf( "\n" );
}
}
public static void main(String []args)
{
int wave_height = 5 , wave_length = 10 ;
printSinWave(wave_height, wave_length);
}
}
|
Python3
def printSinWave(wave_height, wave_length):
Is = 1
os = 2
for i in range ( 1 , wave_height + 1 ):
for j in range ( 1 , wave_length + 1 ):
for k in range ( 1 , os + 1 ):
print (end = " " )
print ( "0" , end = "")
for k in range ( 1 , Is + 1 ):
print (end = " " )
print ( "0" , end = "")
for k in range ( 1 , os + 1 ):
print (end = " " )
print (end = " " )
if (i + 1 ! = wave_height):
os = 1
else :
os = 0
if (i + 1 ! = wave_height):
Is = 3
else :
Is = 5
print ()
wave_height, wave_length = 5 , 10
printSinWave(wave_height, wave_length)
|
C#
using System;
class GFG
{
static void printSinWave( int wave_height,
int wave_length)
{
int Is = 1, os = 2;
for ( int i = 1;
i <= wave_height; i++)
{
for ( int j = 1;
j <= wave_length; j++)
{
for ( int k = 1; k <= os; k++)
{
Console.Write( " " );
}
Console.Write( "0" );
for ( int k = 1; k <= Is; k++)
Console.Write( " " );
Console.Write( "0" );
for ( int k = 1; k <= os; k++)
Console.Write( " " );
Console.Write( " " );
}
os = (i + 1 != wave_height) ? 1 : 0;
Is = (i + 1 != wave_height) ? 3 : 5;
Console.Write( "\n" );
}
}
public static void Main()
{
int wave_height = 5, wave_length = 10;
printSinWave(wave_height, wave_length);
}
}
|
Javascript
<script>
function printSinWave(wave_height, wave_length)
{
var is = 1,
os = 2;
for ( var i = 1; i <= wave_height; i++)
{
for ( var j = 1; j <= wave_length; j++)
{
for ( var k = 1; k <= os; k++)
{
document.write( " " );
}
document.write( "0" );
for ( var k = 1; k <= is; k++)
document.write( " " );
document.write( "0" );
for ( var k = 1; k <= os; k++)
document.write( " " );
document.write( " " );
}
os = i + 1 != wave_height;
is = i + 1 != wave_height ? 3 : 5;
document.write( "<br>" );
}
}
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
Time complexity: O(h*l), Here h and l are wave height and wave length respectively.
Auxiliary space: O(1), As constant extra space is used.
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++
#include <stdio.h>
void printSinWave( int wave_height, int wave_length)
{
int is = 1, os = 2;
int inc = 1;
int jump = (wave_height * 3) - (wave_height + 1);
int ch = 'A' + wave_height - 1;
for ( int i = 1; i <= wave_height; i++) {
for ( int j = 1; j <= wave_length; j++) {
for ( int k = 1; k <= os; k++)
printf ( " " );
printf ( "%c" , ch);
for ( int k = 1; k <= is; k++)
printf ( " " );
ch += inc;
if (ch > 'Z' )
ch = ch - 26;
printf ( "%c" , ch);
for ( int k = 1; k <= os; k++)
printf ( " " );
printf ( " " );
ch += jump;
if (ch > 'Z' )
ch = ch - 26;
}
os = (i + 1 != wave_height);
is = (i + 1 != wave_height) ? 3 : 5;
ch = 'A' + wave_height - i - 1;
inc = inc + 2;
jump -= 2;
printf ( "\n" );
}
}
int main()
{
int wave_height = 5, wave_length = 10;
printSinWave(wave_height, wave_length);
return 0;
}
|
Java
class GFG
{
static void printSinWave( int wave_height,
int wave_length)
{
int is = 1 , os = 2 ;
int inc = 1 ;
int jump = (wave_height * 3 ) -
(wave_height + 1 );
int ch = 'A' + wave_height - 1 ;
for ( int i = 1 ; i <= wave_height; i++)
{
for ( int j = 1 ; j <= wave_length; j++)
{
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 ;
}
os = (i + 1 != wave_height) ? 1 : 0 ;
is = (i + 1 != wave_height) ? 3 : 5 ;
ch = 'A' + wave_height - i - 1 ;
inc = inc + 2 ;
jump -= 2 ;
System.out.printf( "\n" );
}
}
public static void main(String[] args)
{
int wave_height = 5 , wave_length = 10 ;
printSinWave(wave_height, wave_length);
}
}
|
Python3
def printSinWave(wave_height, wave_length):
Is = 1
os = 2
inc = 1
jump = (wave_height * 3 ) - (wave_height + 1 )
ch = ord ( 'A' ) + wave_height - 1
for i in range ( 1 , wave_height + 1 ):
for j in range ( 1 , wave_length + 1 ):
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
if (i + 1 ! = wave_height):
os = 1
else :
os = 0
if (i + 1 ! = wave_height):
Is = 3
else :
Is = 5
ch = ord ( 'A' ) + wave_height - i - 1
inc = inc + 2
jump - = 2
print ()
wave_height = 5
wave_length = 10
printSinWave(wave_height, wave_length)
|
C#
using System;
class GFG
{
static void printSinWave( int wave_height,
int wave_length)
{
int iS = 1, os = 2;
int inc = 1;
int jump = (wave_height * 3) -
(wave_height + 1);
int ch = 'A' + wave_height - 1;
for ( int i = 1; i <= wave_height; i++)
{
for ( int j = 1; j <= wave_length; j++)
{
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;
}
os = (i + 1 != wave_height) ? 1 : 0;
iS = (i + 1 != wave_height) ? 3 : 5;
ch = 'A' + wave_height - i - 1;
inc = inc + 2;
jump -= 2;
Console.Write( "\n" );
}
}
public static void Main(String[] args)
{
int wave_height = 5, wave_length = 10;
printSinWave(wave_height, wave_length);
}
}
|
Javascript
<script>
function printSinWave(wave_height,wave_length)
{
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 (let i = 1; i <= wave_height; i++)
{
for (let j = 1; j <= wave_length; j++)
{
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;
}
os = (i + 1 != wave_height) ? 1 : 0;
is = (i + 1 != wave_height) ? 3 : 5;
ch = 'A' .charCodeAt(0) + wave_height - i - 1;
inc = inc + 2;
jump -= 2;
document.write( "<br>" );
}
}
let wave_height = 5, wave_length = 10;
printSinWave(wave_height, wave_length);
</script>
|
Time complexity: O(h*w) where h and w are wave height and wave width respectively
Auxiliary space: O(1) as it is using constant space for variables
Share your thoughts in the comments
Please Login to comment...