프로그램 개요
사인파(sine wave), 즉 정현파(sinusoid)는 매끄러운 주기적 진동을 나타내는 수학적 곡선입니다. 사인파는 연속적인 파형으로, 그래프가 사인(sine) 함수이기 때문에 이런 이름이 붙었습니다. 사인파는 순수 수학과 응용 수학은 물론 물리학, 공학, 신호 처리 등 수많은 분야에서 폭넓게 활용됩니다.
이 글에서는 사용자로부터 파고(wave height)와 파장(wave length)을 입력받아, 콘솔 화면에 사인파 패턴의 거울상(mirror image)을 출력하는 C 프로그램을 살펴봅니다.
알고리즘
프로그램의 동작 흐름은 다음과 같습니다.
- 사용자에게 파도의 높이(wave height)를 입력받습니다.
- 사용자에게 파도의 길이(wave length)를 입력받습니다.
- 중첩 반복문을 사용하여 파고와 파장에 해당하는 만큼 파도 모양 기호(^)를 출력합니다.
예제 코드
/* 사인파의 거울상을 출력하는 프로그램 */
#include<stdio.h>
int main(){
int wave_height;
int wave_length;
int i,j,k;
clrscr(); /*화면 지우기*/
printf("Please enter the wave height of Sign Wave: ");
scanf("%d", &wave_height);
printf("\n");
printf("Please enter the wave length of Sign Wave: ");
scanf("%d", &wave_length);
printf("\n");
for(i = 1; i <= wave_height; i++) {
for(j = 1; j <= wave_length; j++){
for(k = 1; k <= wave_height; k++) {
if(i == k || i + k == wave_height + 1) {
printf("^^");
}
else {
printf(" "" ");
}
}
}
printf("\n");
}
getch();
return 0;
}코드 설명
핵심 로직은 세 겹의 중첩 반복문에 있습니다.
- 바깥쪽 반복문(i): 파도의 높이만큼 행(row)을 생성합니다.
- 가운데 반복문(j): 파도의 길이만큼 같은 패턴을 가로로 반복합니다.
- 안쪽 반복문(k): 각 열(column)에서 조건식
i == k || i + k == wave_height + 1을 검사하여, 대각선 위치에 해당하는 좌표에만^^기호를 출력하고 나머지는 공백으로 채웁니다.
이 조건식 덕분에 두 개의 대각선 교차 형태, 즉 사인파가 뒤집힌 거울상 모양이 화면에 나타나게 됩니다.
실행 결과
파고와 파장 값을 입력하면 아래와 같이 사인파 패턴의 거울상이 콘솔에 출력됩니다.

