소프트웨어/C 언어

[C언어]12. [실습] 반복문을 이용한 프로그램 만들기. - 트리, 피라미드 모양 출력하기 -

리습 2013. 6. 5. 09:00



안녕하십니까. 리습입니다. 

 

 반복문은 매우 강력한 무기입니다. 사람이 하기 어렵고 컴퓨터가 가장 잘하는 반복을 시키는 명령문이기 때문이죠. 그렇다면 이런 반복문을 사용하는 간단한 프로그램을 만들어보도록 하겠습니다. 이번에 만들어볼 프로그램은 도스 콘솔화면에 트리, 피라미드를 출력하는 프로그램입니다.

 

 

1. 트리모양 출력하기 

 

 *

**

***

****

*****

******

 

 먼저 트리 모양 출력입니다. 화면에 ' * ' 을 이용하여 점을 찍어내는 것입니다. 자 그렇다면 이러한 점을 어떻게 찍어낼수 있을까요? 우선 우리는 첫째줄에선 한번 둘째줄에선 2번 셋째 줄에선 3번 이런식으로 증가시켜가면서 ' * ' 을 출력해야 할 것 입니다. 그리고 ' * ' 을 출력한 뒤에는 한줄을 띄어야만 하죠. 이 화면에 출력하는 동작은 여러번 하는 일이므로 반복문을 사용하는 것이 좋습니다. 그럼 한번 예를 보도록 하겠습니다

 

 코드

 

#include <stdio.h>

 

int main( void )

{

       for (int i = 1 ; i < 7 ; i = i + 1)//첫번째 for 반복문

       {

               for (int j = 0 ; j < i ; j = j+1)//두번째 for 반복문

               {

                     printf("*");

               }

               printf("\n");

        }

        return 0;

}

 

 결과

*

**

***

****

*****

******

 

  자 이제 화면에 트리모양이 출력되었습니다. 코드를 대략 분석해보면 맨 위에있는 for반복문은 몇줄을 출력할 것인지 결정하는 반복문입니다. 6번 반복하므로 6줄이 출력된것이죠. 두번째 for 반복문은 ' * ' 을 몇번 출력할 것인지결정하는 반복문 입니다. 첫째줄에는 한번 둘째줄에는 두번 출력할수 있도록 조건에 j < i 를 조건으로 걸어준것입니다. 숫자를 조작하면 몇줄을 출력할것인지 결정할수 있습니다. 많이 바꿔가면서 연습해보시기 바랍니다.

 

2. 피라미드 출력하기

 

 트리 모양은 정말 쉽게 만들수 있었습니다. 코드또한 단순하고 방식또한 단순합니다. 그렇다면 조금더 어려운 피라미드 모양을 만들어보도록 하겠습니다.

 

 

      *

    ***

   *****

  *******

 *********

***********

 

 트리에 비해서 피라미드 모양은 출력하기가 난감합니다. 우선 빈 공간도 필요하고 빈 공간후에 ' * ' 을 출력해야 하기 때문에 여러가지 동작이 필요합니다. 


 코드

#include <stdio.h>

 

int main( void )

{

 

    for(int i = 0 ; i < 6 ; i = i+1)

    {

            for (int j = 0 ; j < (5-i) ; j = j+1)

            {

                    printf(" ");

            }

            for(int k = 0 ; k < ((2*i) + 1) ; k = k + 1)

            {

                    printf("*");

            }

            printf("\n");

    }

 

        return 0;

}

 

 결과

 

      *

    ***

   *****

  *******

 *********

***********

 

 


 화면에 트리모양으로 출력했습니다. 워드 상으로는 한칸띄는 것이 모양 보다 공간을 적게 차지해서 재대로 안보이실수 있지만 실제 실행 시킨 도스 창 같은경우 한개의 문자와 한칸의 공백이 같기 때문에 정확하게 모양이 보이실 겁니다. 첫번째 for 반복문은 몇줄을 출력할건지 결정하는 조건이며, 두번째 for 반복문은 빈칸을, 세번째 for 반복문은 ' * ' 을 출력하기 위한 조건문입니다. 세번째 조건에 수학적으로 연산을 조금 하였는데 숫자를 계산해보시면 왜 저렇게 쓰였는지 이해하실 수 있으실겁니다. 

 반복문을 좀더 이해하기 위한 예제 프로그램을 만들어 보았습니다. 이렇게 반복문은 단순한 작업을 좀더손쉽게 표현하고 사용할수 있도록 해주는 좋은 도구 입니다. 잘 이해하여 유용하게 사용하시길 바랍니다.