본문 바로가기

Computer Engineering/나프잘

나프잘 파랑 / 9-3번 문제 풀이와 피드백

피드백과 공부 내용

1. 오랜 시간 공부 간격이 벌어지니, 디테일한 부분에 대해서 까먹게 된다. 지속적으로 계속 사용할 것.

2.  문제에서 의도한 사항을 왜곡하지 말 것. (이번 문제는 이중 반복이 사용 되었으나 캐치 못했음.)
문제에서 '합계'를 구하는 부분이 반복구조를 사용하여 1부터 더해가는 과정으로 구하길 요구하고 있으므로, 왜곡하지 않고 그대로 반복을 사용한 처리절차를 구현해야 했으나, 처음 작성 시에는 합계에 반복구조를 넣지 않았음.

반복구조를 생략하고도 원하는 값을 얻을 순 있었으나, 이는 문제에서 요구하는 내용을 그대로 이행한 것이 아니라 원하는 출력을 얻어내기위해 왜곡한 것임.

(약간 애매한 부분이 없잖아 있으니 이후에 좀 더 많은 예제를 풀면서 더 공부할 필요가 있음.)


나프잘 파랑 / 9-3번 문제 풀이와 피드백

1. 문제 이해


2. 분석


3. 설계




4. 검토





5. C 구현

//sumOfSums.c
/*
파일 명칭 : sumOfSums.c
함수 명칭 : main
기   능 : 수를 1부터 100까지 세며 합계와 합계의 합계를 구하여 출력하며, 
     마지막에 합계의 합계를 출력한다.
입   력 : 없음
출   력 : 합계
작성 일자 : 2019-09-22
*/

//매크로 부분
#include <stdio.h>
#define MAX 100

//함수 선의
int main(int argc, char* argv[]);

//함수 정의
int main(int argc, char* argv[]) {

 //자동 변수
 auto unsigned long int sumOfSums = 0;
 auto unsigned short int number;
 auto unsigned long int sum = 0;

 //1. 제목을 출력한다.
 printf("숫자\t\t\t합계\t\t\t합계의 합계\n");
 //2. 숫자가 최대숫자보다 작거나 같을 때 반복한다.
 for (number = 1; number <= MAX; number++) {
  //2.2. 합계를 구한다.
  sum += number;
  //2.3. 합계의 합계를 구한다.
  sumOfSums += sum;
  //2.4. 숫자, 합계, 합계의 합계를 출력한다.
  printf("%d\t\t\t%d\t\t\t%d\n", number, sum, sumOfSums);
  //2.1. 숫자를 센다.
 }
 //3. 합계의 합계를 출력한다.
 printf("합계의 합계 : %d", sumOfSums);
 //4. 끝낸다.
 return 0;
}

6. 디버깅











7. JAVA 구현
//Main.java
/*
파일 명칭 : Main.java
메소드 명칭 : main
기      능 : 수를 1부터 100까지 세며, 합계와 합계의 합계를 차례고 구하여 출력하며,
            마지막에 합계의 합계를 출력한다.
입      력 : 없음
출      력 : 합계
작성 일자 : 2019-09-22
*/

//패키지 선언
package sumOfSums;

//Main 클래스
public class Main{
    
    //Main 메소드 정의
    public static void main(String[] args){
        //상수 변수 선언
        final int MAX=100;
        
        //지역 변수 선언
        int sumOfSums=0;
        int number=1;
        int sum=0;
        
        //1. 제목을 출력한다.
        System.out.println("숫자\t\t\t합계\t\t\t합계의 합계");
        //2. 숫자가 최대숫자보다 작거나 같을 때 반복한다.
        for(number=1; number<=MAX; number++){
            //2.2. 합계를 구한다.
            sum+=number;
            //2.3. 합계의 합계를 구한다.
            sumOfSums+=sum;
            //2.4. 숫자, 합계, 합계의 합계를 출력한다.
            System.out.printf("%d\t\t\t%d\t\t\t%d\n", number, sum, sumOfSums);
            //2.1. 숫자를 센다.
        }
        //3. 합계의 합계를 출력한다.
        System.out.println("합계의 합계 : "+sumOfSums);
        //4. 끝낸다.        
    }
}

8. NS 차트