정보1 59페이지 Ⅲ. 문제 해결 방법과 절차

Download Report

Transcript 정보1 59페이지 Ⅲ. 문제 해결 방법과 절차

Ⅲ. 문제 해결
방법과 절차
정보1
59페이지
Ⅲ. 문제 해결 방법과 절차
(정보1 59페이지)
1. 문제와 문제 해결 과정
2. 프로그래밍의 기초
학습 목표
1. 여러 가지 문제를 다양한 방법을 통해 분석하고,
이를 구체적인 형태로 표현할 수 있다.
2. 문제를 분석할 때는 해결을 위해 초기상태와 목
표상태를 분명히 제시하여 가능한 여러 측면에
서 가능성을 분석할 수 있다.
3. 문제 해결을 위해 분석된 문제를 표현할 때는
다양한 방법으로 표현하여 창의적인 접근을 시
도할 수 있다.
1. 문제 분석과 표현
문제
•
문제 : 위 상황과 같이 현재 상황이나 조건 등
이 원래 의도했던 것과는 다르게 진행되어 해
결하기 어렵거나 난처한 상태
1. 문제 분석과 표현
문제의 분석
•
문제를 제대로 해결하려면 문제의 ‘초기 상태’
와 ‘목표 상태’에 대한 올바른 이해가 필요
• 초기 상태 : 현재 주어진 상황
• 목표 상태 : 자신이 얻고자 하는 결과나 상태
• 이를 통하여 올바르게 문제를 분석 가능
• 문제의 분석을 올바르게 하지 않으면 잘못된
결과를 얻을 수 있고, 시간과 노력이 많이 소
모됨.
1. 문제 분석과 표현
문제의 분석 예시
1. 문제 분석과 표현
문제의 표현
•
문제의 분석이 끝나면 문제를 문제를 보다 알
아보기 쉽고 이해하기 편하게 구체적인 형태로
표현하여야 함
• 그림
• 글
• 표
2. 알고리즘의 표현
순서도
•
순서도는 국제 표준화 기구에서 정한 것으로, 다음
과 같은 기호를 사용한다.
단말기
처리의 시작과 끝에 사용한다.
입출력
자료의 입출력을 나타낸다.
판단
조건을 비교, 판단하여 흐름을 분기한다.
처리
자료의 연산, 이동 등 처리 내용을 나타낸다.
출력
각종 문서 및 서류를 출력한다.
준비
선언 및 초기 값을 설정한다.
흐름선
실행 순서를 나타내며, 기호를 연결할 때 사용한다.
2. 문제 해결 과정
문
제
해
결
과
정
2. 문제 해결 과정
문제 해결 예시 - 1
2. 문제 해결 과정
문제 해결 예시 - 2
2. 문제 해결 과정
다양한 문제 해결 방법 - 1
“어떻게 하면 강우량을 재는 기계를 만들 수 있을까?”
“흐음...이번 것도 약간 이상하군...다른 방법으로 시도해 봐야 겠어.”
“옳거니! 바로 이거야! 역시 계속 하다 보니 되는구나!”
2. 문제 해결 과정
다양한 문제 해결 방법 - 2
계모 : “팥쥐와 나는 잔칫집에 갈 터이니, 집안일을 다 하기 전까진 따라올 생각
일랑 하질 마라!”
콩쥐 : “이 많은 일을 어떻게 다 하지..?”
소 : “우리가 네 일을 나누어서 도와줄게. 나는 잡초를 대신 뽑아줄게.”
참새 : “우리는 벼를 대신 까줄게.”
콩쥐 : “정말 고마워, 역시 아무리 힘든 일이라도 나누어서 하니 금방 하는구나.”
2. 문제 해결 과정
다양한 문제 해결 방법 - 3
“어떻게 하면 저 선녀와 결혼을 할 수 있을까? 거 참 힘든 문제네...”
“에라 모르겠다, 일단 옷이 없으면 다시 못 돌아갈 테니, 옷이나 숨겨보자.”
“하하, 역시 복잡하게 생각할 거 없이 눈앞에 직면한 문제를
먼저 해결하니 잘 풀리는구나.”
2. 문제 해결 과정
다양한 문제 해결 방법 - 4
알리바바 : “끙...이 속에 분명 엄청난 보물이 있을 텐데, 어떻게 들어가지?
도통 문이 안 열리네...앗, 도적들이잖아? 숨자!”
도적들 : “음...아무도 없지? 열려라 참깨!”
알리바바 : “응? 저게 문을 여는 규칙인가? 도적들이 가면 한 번 해 봐야겠군.”
알리바바 : “어디 한 번...열려라 참깨! 하하 진짜 열리잖아?
이게 바로 문을 여는 규칙이었구나!”
2. 문제 해결 과정
반성과 평가
•
•
결정된 해결 방법을 실행하고 난 후에는 반드
시‘반성 및 평가’의 시간을 가져야 한다.
이것은 잘못된 부분을 찾는다는 의미보다는 더
나은 해결 방법은 없었는지, 또는 다른 문제 상
황에 적용할 수는 없는지 등을 살펴보기 위한
것이다.
Ⅲ. 문제 해결 방법과 절차
1. 문제와 문제 해결 과정
2. 프로그래밍의 기초
정보1
71페이지
학습 목표
1. 문제 해결 방법을 해결 단계에 따라 구분하여
제시함으로써 해결 과정을 자세히 살펴볼 수 있
다.
2. 문제 상황에 따라 다양한 해결 방법을 활용하여
문제를 해결할 수 있다.
3. 다양한 해결 방법에 대해 비교 분석하여 평가할
수 있다.
1. 프로그램과 변수의 관계
프로그램의 의미
① 프로그램 : 컴퓨터에게 어떤 작업을 어떻게 수
행하라고 알려 주는 명령어들의 집합
② 프로그래밍 : 프로그램을 작성하는 작업
③ 프로그래머 : 프로그래밍을 하는 사람
1. 프로그램과 변수의 관계
프로그램의 의미
?
사람은 컴퓨터에게 일을 시키고 싶지만, 컴퓨터는
사람의 언어를 이해할 수 없음
1. 프로그램과 변수의 관계
프로그램의 의미
프로그래밍
언어
프로그래밍 언어를 중간 매개체로 사용하면 컴퓨
터에게 원하는 명령을 내리는 것이 가능
1. 프로그램과 변수의 관계
프로그래밍 언어
① 프로그래밍 언어는 프로그래밍에 사용되는 언어
로, 표현이 분명해야 하며, 단순하면서 체계적이
고 어떤 문제 해결에도 적용할 수 있어야 한다.
② 이러한 프로그래밍 언어를 통하여 작성된 프로그
램은 컴파일러와 인터프리터라는 언어 번역 프로
그램의 도움을 받아 컴퓨터상에서 실행된다.
① 컴파일러 : 모든 코드를 한꺼번에 번역하는 방식
② 인터프리터 : 한 줄 한 줄 씩 번역하면서 실행
저급언어 – 기계어, 어셈블리어
고급언어 – C언어, 포트란, 코볼,
베이직등등
알고리즘 – 어떤 문제를 해결하
기 위한 절차, 방법
프로그램 작성시 고려할 점
1.오류가 없어야 함
2.누구나 쉽게 이해
3.작성 기간이 짧아야 함
4.수정 작업이 쉬워야 함
5.호환성이 좋아야 함
6.효율적으로 수행되어야 함
프로그램 만드는 절차
1.과제 분석
2.프로그램 설계
3. 프로그램 작성
4.프로그램 실행
5.오류 수정
6.프로그램 완성
1. 프로그램과 변수의 관계
문프
제로
푸그
는램
의
방
법관
과계
1. 프로그램과 변수의 관계
변수와 상수
① 변수 : 프로그램이 실행되는 동안 처리할 자료
를 저장하는 기억 장소에 대한 이름으로, 프로
그램 실행 중에 값이 변경될 수 있다.
② 상수 : 변수의 반대 개념. 고정된 값을 의미
-
문자 상수 : ‘A’, ‘a’
수치 상수 : 512, -6
1. 프로그램과 변수의 관계
변수의 사용
① 컴퓨터 내에서 필요한 공간을 미리 할당하기 위
하여 변수 선언은 가장 먼저 선행되어야 한다.
② 동일한 이름의 변수가 여러 개 있으면 프로그램
이 모호해질 수 있으므로, 같지 않도록 유의한다.
1. 프로그램과 변수의 관계
변수와 자료형 예제
int num1, num2;
int(정수)형 변수
num1 = 1;
int(정수)형 상수, 변수에 값 대입
num2 = num1 + 2;
int(정수)형 연산, 연산 결과 변수에 대입
num1 = 2;
num2 = num1 + 2;
• 산술 연산자
덧셈 : +, 뺄셈 : -, 곱셈 : *, 나눗셈 : /, 제곱 : ^
나머지 : %, 1씩 증가 : ++, 1씩 감소 : --, 대입 : =
2. 자료의 입력과 출력
입력과 출력 형식
입력
• scanf( “%d”, &변수명 );
• scanf( “%d %d %d”, &변수1, &변수2, &변
수3 );
출력
• printf(“%d”, 변수명 );
• printf(“%d %d %d”, 변수1, 변수2, 변수3 );
• printf(“출력 문장”);
• 서식 형태(입출력 동일)
%d – 정수, %f - 실수
%c – 문자, %s – 문자열
입력시엔 변수명 앞에
‘&’를 붙이나, 출력시
엔 붙지 않음에 유의
2. 자료의 입력과 출력
입력과 출력 예제
int num1, num2, total;
문장 출력
printf(“첫 번째 수를 입력하세요: ”);
정수형 변수 입력
scanf(“%d”, &num1);
줄바꿈
printf(“ \n”);
printf(“ 두 번째 수를 입력하세요: ”);
scanf(“ %d”, &num2);
printf(“ \n”);
문장과 변수 출력
total = num1 + num2;
printf(“ 총합은 %d입니다. \n”, total);
3. 제어문의 이해
제어문
① 프로그램의 흐름을 조건에 따라 다르게 해 주
는 것이다.
② 프로그램은 순차적으로 진행되는 경우도 있지
만, 어떤 조건에 따라 다른 처리를 하거나 같은
동작을 반복해서 처리하는 경우도 있기에, 이
러한 제어문이 필요하다.
③ 종류에는 조건문과 반복문이 있다.
3. 제어문의 이해
조건문
• 주어진 조건에 따라 다르게 진행
if문
If~
else문
3. 제어문의 이해
조건문
• 주어진 조건에 따라 다르게 진행
If~
else if~
else문
3. 제어문의 이해
조건문 예제
• if-else if-else문
if(gacdo<90){
printf(“예각입니다.\n”);
}
else if(gacdo==90){
printf(“직각입니다.\n”);
}
else{
printf(“둔각입니다.\n”);
}
3. 제어문의 이해
반복문
• 주어진 조건에 따라 주어진 내용을 반복
for문
while문
•
조건을 잘못 지정하여 무한히 반복되지 않도록 유의
3. 제어문의 이해
반복문 예제
• for문
int i, j;
for(i=2; i<=9; i++){
for(j=1; j<=9; j++){
printf(“%d*%d = %d\n”, i, j, i*j);
}
printf(“\n\n”);
}
3. 제어문의 이해
조건문과 제어문
•
•
조건문과 제어문 모두 프로그램의 유연한 동작
을 가능케 한다.
하지만, 조건을 조금만 잘못 설정해도 프로그
램이 크게 오작동 할 수 있고, 반복문의 경우
최악의 경우에는 무한 반복이 일어나서 프로그
램이 종료되지 않을 수도 있으므로, 올바른 이
해가 필요하다.