Page 16 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 16

프로그램의 흐름은 검은 선               을 따라 위에서 아래로 향하고, 그 과정에서                     안에

                   작성한 처리 과정이 실행됩니다. 그리고                     를 지날 때는 그 안에 작성된 ‘조건’을 평가
                   한 결과에 따라 Yes, No 중 하나를 따라 갑니다. 다시 말해 조건 b > max , c > max가 성립하
                   면(식 b > max와 식 c > max를 평가한 값이 1이면) Yes로 이동하고, 그렇지 않으면 No로 이동합
                   니다.

                      if문, while문 등에서 조건 판정을 위해 (b > max)처럼 괄호 안에 넣는 식을 제어식이라 합니다.


                   프로그램의 흐름은 두 갈래 중 어느 한쪽을 지나는데,  if문에 의한 프로그램 흐름의 분기를
                   쌍기(양 갈래) 선택이라 합니다. 또한                 안의 화살표 →는 값의 대입을 가리키는데, 예를
                   들어 ‘a → max’는 아래와 같은 의미입니다.


                     변수 a의 값을 변수 max에 대입하세요.


                      다음에 배울 실습 1-2에 나오는 선언 ‘int max = a;’는 변수를 만드는 시점에 값을 넣는 ‘초기화’이고, 이 프로그램의
                   ‘max = a;’는 이미 만들어져 있는 변수에 값을 넣는 ‘대입’입니다. 초기화와 대입은 다르지만 이 책에서는 엄밀하게 구별할
                   필요가 없는 경우 ‘대입’이라고 표현합니다.


                   실습 1-2의 실행 결과와 같이 변수 a, b, c에 1, 3, 2를 입력하면 프로그램의 흐름은 순서도의
                   초록색 선            경로를 따라 갑니다. 이제 다른 값을 가지고 순서도를 따라가 보겠습니다.



                   변수 a, b, c의 값이 1, 2, 3 또는 3, 2, 1인 경우도 최댓값을 구할 수 있습니다. 또 세 값이 5, 5,
                   5로 모두 같거나 1, 3, 1로 2개만 같더라도 올바른 최댓값을 구할 수 있습니다.


                                           ■ a        b        c         d        e
                                           a = 1    a = 1     a = 3     a = 5    a = 1
                                           b = 3    b = 2     b = 2     b = 5    b = 3
                                           c = 2    c = 3     c = 1     c = 5    c = 1
                                           max       max       max      max       max
                    max = a;                1         1        3         5         1
                    if(b > max) max = b;    ↓         ↓        ↓         ↓         ↓
                    if(c > max) max = c;    3         2        3         5         3
                                            ↓         ↓        ↓         ↓         ↓
                                            3         3        3         5         3
                                  [그림 1-2] 세 값의 최댓값을 구하는 과정에서 변수 max 값의 변화


                   세 변수 a, b, c의 값이 6, 10, 7이나 –10, 100, 10인 경우도 순서도의 초록색 선을 따라 갑
                   니다.






                   16   C 알고리즘
   11   12   13   14   15   16   17   18   19   20   21