AI정보영재교육원 로고이미지

공지사항

RSS 페이스북 공유하기 트위터 공유하기 카카오톡 공유하기 카카오스토리 공유하기 네이버밴드 공유하기 프린트하기
합계와 평균 구하는 알고리즘을 시각화 C언어 프로그래밍으로 쉽게 이해하는 법
작성자 정보영재 등록일 15.09.08 조회수 409
합계와 평균 구하는 알고리즘을 시각화 C언어 프로그래밍으로 쉽게 이해하는 법
 
 
배열에 저장한 숫자의 합계와 평균을 구하는 알고리즘을 C언어와, 시각화 설계 방법인 쏙(SOC: Structured Object Component)과 쏙을 지원하는 자동화 도구인 새틀(SETL: Structured Efficiency TooL)을 이용하여 표현하면 다음과 같습니다.

1. 합계와 평균 구하기 
예를 들어, 배열 num에 35, 22, 75, 10, 67, 36, 88, 95, 53, 48이라는 10개의 값을 저장한 경우에 합계와 평균을 구하는 것을 그림으로 나타내면 아래와 같습니다.
           
 
배열에 저장한 숫자의 합계를 구할 때는 for문을 사용하면 저장한 숫자의 갯수와 상관없이 쉽게 구할 수 있습니다.
           
 
제어 변수 i를 0으로 초기화하고, 값을 1씩 증가시켜 i가 N보다 작을 동안 반복 실행하면서 순서대로 더해 갑니다.
 
            
 
합계를 구하고 나서, 합을 요소의 개수로 나누면 평균을 구할 수 있습니다.
합계와 평균을 구하는 알고리즘은 다음과 같습니다.

2. 합계와 평균 구하는 알고리즘 사례
 
 쏙(SOC)
       
 
 프로그램 

#include
 
#define N 10 
 
 main() { 
      int num[N] = { 35, 22, 75, 10, 67, 36, 88, 95, 53, 48 };
      int i; 
      int sum = 0; 
      float mean = 0.0; 
 
 //.합계와 평균 계산 처리를 한다. 
 { 
 
      //.합계와 평균을 계산한다. 
     { 
 
          //.일정 범위의 수의 합계를 구한다. 
          for (i=0; i 
                  printf("%d\n", num[i]); 
                  sum = sum + num[i]; 
         } 
       printf("\n"); 
       mean = (float)sum / N; 
       }
  printf("합계 = %d\n", sum); 
  printf("평균 = %-5.2f\n", mean); 
  } 
 }

 실행화면
       

3. 합계와 평균 구하는 알고리즘의 추상화 수준별 처리 흐름 
배열 num에 35, 22, 75, 10, 67, 36, 88, 95, 53, 48이라는 10개의 값을 저장한 경우에 합계와 평균을 구하는 알고리즘의 추상화 수준별 처리흐름을 알아보면 다음과 같습니다.

       
 
위의 쏙으로 표현한 합계와 평균 알고리즘에서 맨 왼쪽의 절차는 추상화 수준 0으로 가장 개념화한 것을 의미하며, 오른쪽의 절차는 추상화 수준 3로 구체화한 것을 의미합니다. 즉, 4단계의 추상화가 이루어진 것입니다. 
합계와 평균 알고리즘 전체의 흐름을 목표-수단 계열의 논리 흐름으로 나타내면 다음과 같습니다.
 
(1) 추상화 수준 0과 1을 목표-수단 계열로 파악하는 경우의 논리 흐름
" 합계와 평균 계산 처리를 한다."는 목표를 확인하고 나서, 목표를 달성하기 위한 수단으로 아래와 같은 절차를 거칩니다.
       합계와 평균을 계산한다. 
       printf("합계 = %d\n", sum);
       printf("평균 = %-5.2f\n", mean);
 
        

(2) 추상화 수준1과 2를 목표-수단 계열로 파악하는 경우의 논리 흐름
" 합계와 평균을 계산한다. ”는 목표를 확인하고 나서, 목표 달성을 위한 수단으로 아래와 같은 절차를 거칩니다.
       일정 범위의 수의 합계를 구한다.
        printf("\n");
        mean = (float)sum / N;
 
                 

(3) 추상화 수준2와 3를 목표-수단 계열로 파악하는 경우의 논리 흐름
" 일정 범위의 수의 합계를 구한다.”는 목표를 확인하고 나서, 목표 달성을 위한 수단으로 아래와 같은 절차를 거칩니다.
 
① 되풀이 조건이 true 일 경우
(i=0; i      printf("%d\n", num[i]);
      sum = sum + num[i];
      
        
 
위 처리흐름에서 N의 값이 10으로 정의되어 있으므로 제어 변수 i를 0으로 초기화하고, i 값을 1씩 증가시켜 i 값이 10일 될때까지 배열 num의 값을 순서대로 더해가며 되풀이 합니다.
 
② 되풀이 조건이 false 일 경우
(i=0; i
      

출처:http://goo.gl/50L9Fw
이전글 C# 프로그래밍 기본 요소 1
다음글 '뇌로 쏙 알고리즘' 발표자료(나는 어떻게 알고리즘 공부를 했을까?)