©
J.-H. Kang, CNU[제2주 실습]
©
J.-H. Kang, CNU 실습 [프로그램 2-1]
이차방정식의 해 구하기
앞에서 설명된 프로그램 사용
계수를 바꾸어가면서 다음의 경우에 대해 실행해본다.
두 개의 서로 다른 실근이 존재하는 경우
두 개가 동일한 실근, 즉 중근이 존재하는 경우
실근이 존재하지 않는 경우
특별히, 이 경우에 프로그램을 수행했을 경우 어떤 현상이 발 생하는지, 경험한 그대로를 기록할 것.
위의 세가지 경우에 대해 서로 다른 계수 2 가지씩 정해 서 프로그램을 변경하여 실행할 것실습: 데이터의 표현
43
©
J.-H. Kang, CNU 실습 [프로그램 2-2]
[문제] 1부터 5까지의 합을 다음과 같이 출력한다.
실습: 데이터의 표현
44
1부터 1까지의 합은 1입니다.
1부터 2까지의 합은 3 입니다.
1부터 3까지의 합은 6 입니다.
1부터 4까지의 합은 10 입니다.
1부터 5까지의 합은 15 입니다.
©
J.-H. Kang, CNU 생각할 점 [1]
알고리즘은?
1
1+2
1+2+3
1+2+3+4
1+2+3+4+5 쉽게 처리하는 방법?
매번 출력하기 전에 1부터 해당 숫자까지의 합을 계산 한다.
그 합을 출력한다.실습: 데이터의 표현
45
©
J.-H. Kang, CNU 필요한 변수는?
매 출력 단계에서 합을 계산한 값을 저장하려면?
변수 sumsum = 1 ;
System.out.println(……);
sum = 1 + 2 ;
System.out.println(……);
sum = 1 + 2 + 3 ;
System.out.println(……);
……
이들은 정수형인가 실수형인가?
실습: 데이터의 표현
46
©
J.-H. Kang, CNU 생각할 점 [2]
좀더 효과적인 방법은?
첫번째 출력 단계에서 1까지의 합을 계산했다.
그 다음 두번째 출력을 위해서는, 앞 단계에서 계산한 합에 2를 더하면 그 합을 계산할 수 있다.
그러면, 세번째 출력을 위해서는, 어떻게?실습: 데이터의 표현
47
©
J.-H. Kang, CNU 생각할 점 [3]
좀더 효과적인 방법은?
첫번째 출력 단계에서 1까지의 합을 계산했다.
그 다음 두번째 출력을 위해서는, 앞 단계에서 계산한 합에 2를 더하면 그 합을 계산할 수 있다.
그러면, 세번째 출력을 위해서는, 어떻게? 이렇게?
sum = 0;
sum = sum+1; 그리고 sum 값을 출력;
sum = sum+2; 그리고 sum 값을 출력;
sum = sum+3; 그리고 sum 값을 출력;
sum = sum+4; 그리고 sum 값을 출력;
sum = sum+5; 그리고 sum 값을 출력;
실습: 데이터의 표현
48
©
J.-H. Kang, CNU 효과적이란?
각 프로그램은 계산을 얼마나 했나?
덧셈(+)과 저장(=)을 각 1회로 세어보자.
예:
sum = 1 + 2+ 3+ 4 ;
덧셈 3번, 저장 1번, 모두 4번의 연산
sum = sum + 1;
덧셈 1번, 저장 1번, 모두 2번의 연산 어느 프로그램이 계산 회수가 적은가?
실습: 데이터의 표현
49
©
J.-H. Kang, CNU 실습 [프로그램 2-3]
[문제] 1부터 10까지의 제곱의 합을 다음과 같이 출력한다.
실습: 데이터의 표현
50
1부터 1까지의 제곱의 합은 1입니다.
1부터 2까지의 제곱의 합은 5 입니다.
1부터 3까지의 제곱의 합은 14 입니다.
1부터 4까지의 제곱의 합은 30 입니다.
1부터 5까지의 제곱의 합은 55 입니다.
1부터 6까지의 제곱의 합은 91 입니다.
1부터 7까지의 제곱의 합은 140 입니다.
1부터 8까지의 제곱의 합은 204 입니다.
1부터 9까지의 제곱의 합은 285 입니다.
1부터 10까지의 제곱의 합은 385 입니다.
©
J.-H. Kang, CNU 생각할 점
필요한 변수는?
변수의 자료형은?
알고리즘은?
1*1
1*1+2*2
1*1+2*2+3*3
1*1+2*2+3*3+4*4
1*1+2*2+3*3+4*4+5*5
1*1+2*2+3*3+4*4+5*5+6*6
……실습: 데이터의 표현