wiz 스프링-1강
2017.08.20 일- Java 2일차
2017.08.20 - Java 2일차 공부 정리
★ 1. 하이패스 정보처리기사 실기
01 알고리즘의 개념
1) 어플리케이션 설계 및 개발 과정
문제 분석 → 알고리즘 설계 → 구현(코딩) → 유지보수
☞ (문제 분석 → 알고리즘 설계) 에서 보통 프로세스 흐름을 세우고 순서도 등을 작성한다.
☞ 구현단계에 와서 이전 사항들이 제대로 정의가 되지 않았다면 다시 문제 분석 단계로 돌아간다
2) 알고리즘(Algorithm)의 정의
- 주어진 문제를 해결하기 위한 여러 동작들의 유한한 집합.
- 어떠한 문제가 주어졌을 때 그 문제를 해결하기 위한 논리적인 절차.
3) 알고리즘 예
ex1> 횡단보도 건너기
① 횡단보도 뒤에 선다.
② 보행신호등을 본다.
③ 빨간색 등이면 기다리고 ②로 간다.
④ 초록색 등이면 횡단보도를 건넌다.
ex2> 사다리꼴 넓이 구하기
① 윗변을 구한다.
② 아랫변을 구한다.
③ 높이를 구한다.
④ 윗변과 아랫변을 더한다.
⑤ ④의 결과에 높이를 곱한다.
⑥ ⑤의 결과를 2로 나눈다.
4) 순서도(Flowchart)
☞ 처리 기호에서 A = B가 있을 때 : 대입연산자의 기능을 함. B변수 저장값을 A변수에도 저장해라.
비교/판단 기호에서 A = B가 있을 때 : 관계연산자의 기능을 함. A = B 값 같냐?
5) 순서도 예
[순서도 1] 횡단보도 건너기
[순서도 2] 사다리꼴의 넓이 구하기
*순서도 그려주는 프로그램 있나 찾아보기.
순서도 프로그램>
- 크롬 브라우저로 플로우 차트 그리기
--------------
1) 변수(Variable)
- 프로그램이 실행될 때 필요한 데이터를 저장하기 위한 기억장소
A = 1;
A = A + 4;
2) 상수(Constant)
- 프로그램이 실행되는 동안 변하지 않는 값.
- 상수에는 숫자, 문자, 문자열 등이 있다.
A = 1;
SCORE = "A";
RESULT = "합격";
3) 연산자(Operation)
산술연산자 : +, -, *, /
관계연산자 : =, >, >=, <, <=, <>
A = B 값 같냐?
대입연산자 : =
A = B A에 B를 대입
4) 배열(Array)
1차원 배열 : A(1) A배열의 1번지 공간
2차원 배열 : A(1,1)
5) 함수(Function)
: 특정 기능을 수행하도록 미리 정의된 수식.
ex> INT(A), MOD(A,B), ABS(A), SQRT(A), POW(A,B)
MOD(5, 2) = 5 MOD 2 = 5 % 2 → 1
--------------
03 디버깅
1) 디버깅(Debugging)의 개념
- 디버깅은 컴퓨터 프로그램에서 발생한 오류를 찾기 위해 소스 프로그램을 한 줄씩 따라가면서
변수 값의 변화를 검사하는 과정.
- 디버깅은 일반적으로 디버깅 프로그램으로 실행하지만, 정보처리기사 실기 시험은 필답형이므로
직접 디버깅을 함.
- 순서도의 빈 곳을 채운 뒤에 디버깅을 거쳐야 정답인지 아닌지 확인할 수 있다.
2) 디버깅의 예
순서도
디버깅 과정
*이클립스로 디버깅하는 방법 찾기
--------------
04 1부터 100까지의 합계
Q1> 1부터 100까지의 합계
[순서도 3] 1부터 100까지 합계
1) 알고리즘 이해하기
☞ 순서도 작성해보기
2) 선증가, 후증가 개념 이해
선증가 방식의 경우 초기값은 '조건'에 아무런 영향 안줌!
3) 추가문제
Q1-1> 2+4+6+...+96+98+100을 구하는 순서도 작성 후 책에 순서도와 비교해볼것!
- 두 순서도 그림의 차이
MOD(i,2)=0 으로 되있는 순서도가 비효율적임.
i=0,1,2,3,4,... 로 흘러가면서 짝수가 아닌 경우 처리가 되지 않으므로..,
Q1-2> 배열에 입력된 10개의 정수 중에서 홀수의 개수와 짝수의 개수를 구하는 순서도 작성 후
책과 비교
① 순서도 작성 후 (o)
② 코딩해보구,
③ 디버깅도 해보기 (o)
[순서도 4] 홀수의 개수와 짝수의 개수 구하기
Q1-3> 1+3+5+...+95+95+99를 구하는 순서도를 작성
선증가 방식, 후증가 방식, MOD(i,2) 방식
① 순서도 작성 후 (o)
② 코딩해보구,
③ 디버깅도 해보기 (o)
[순서도 5] 1+3+5+...+95+97+99 선증가
[순서도 6] 1+3+5+...+95+97+99 후증가 1
[순서도 7] 1+3+5+...+95+97+99 후증가 2
* 미완
1. 디버깅 개념 추가
2. 코딩 추가
3. 자바 2장
4. 추가 자료 (api?)