대림대학교 2017년도 1학기 강의 왕보현 bhwang99@hanmail.net 010-8340-3779 순서도와 스크래치 2주차 대림대학교 2017년도 1학기 강의 왕보현 bhwang99@hanmail.net 010-8340-3779
강의 소개 ■ 강의내용 1. 수업에 대한 오리엔테이션 2. 스크래치 사용방법, 순서도와 기본 논리 3. 순차 프로그래밍 논리 및 실습 4. 판단 프로그래밍 논리 및 실습 (1) 5. 판단 프로그래밍 논리 및 실습 (2) 6. 반복 프로그래밍 논리 및 실습 (1) 7. 반복 프로그래밍 논리 및 실습 (2) 8. 중간고사
강의 소개 ■ 강의내용 9. 반복 명령문 및 실습 10. 배열을 이용한 프로그래밍 논리 및 실습 (1) 11. 배열을 이용한 프로그래밍 논리 및 실습 (2) 12. 배열의 응용 13. 구조체를 이용한 프로그래밍 논리 및 실습 (1) 14. 구조체를 이용한 프로그래밍 논리 및 실습(2) 15. 기말고사
알고리즘이란 ■ 알고리즘이란? 바구니에 사과 세 알이 있다. 사과 A는 250g, 사과 B는 260g, 사과 C는 240g 이다. 사과의 무게를 모른다고 가정하고 양팔 저울만 사용해서 가벼운 것부터 무거운 순으로 사과를 나열 해 보자.
프로그래밍 절차 ■ 문제의 이해 ■ 문제 해결 논리의 설계 ㆍ 문제 분석 ㆍ 입출력 설계 ㆍ 순서도 작성 ■ 프로그램 코딩 ■ 프로그램 번역 – 컴파일 또는 인터프리터 ■ 모의 실행 – 테스트 ■ 실제 활용
순서도란? ■ 약속된 기호를 이용하여 해결하고자 하는 문제의 논리적 흐름을 약속된 도형으로 나타낸 것 ■ 순서도의 기호는 ISO에서 정의한 표준 기호를 사용 ■ 순서도는 시스템 순서도와 프로그램의 논리 전개 과정을 표현하기 위한 프로그램 순서도로 구분
순서도 기호 – 공통기호. 시스템 프로그램에서 모두 사용 의미 내용 처리(process) 모든 처리를 나타냄 입출력(input/output) 일반적인 입력과 출력을 나타내기 위한 기호 흐름선(flow-line) 작업의 흐름 방향을 나타냄 설명(comment) 순서도의 내용을 구체적으로 설명 연결자(connector) 흐름이 다른 곳으로 연결됨을 표시 페이지 연결자 (page connector) 흐름이 다른 페이지로 연결됨을 표시
순서도 기호 – 프로그램 관련 기호 기호 의미 내용 단말(terminal) 순서도의 시작과 끝을 나타냄 판단(decision) 비교 판단을 나타냄 준비(preperation) 프로그램에서 필요한 초기값 설정 정의된 처리 (predefined process) 미리 정의된 부프로그램을 호출 서류(document) 출력장치를 통한 출력을 위한 기호 수조작 입력 (manual input) 수동적인 방법을 통해 입력하는 기능 을 표시
순서도 기호 – 프로그램 관련 기호 기호 의미 내용 디스플레이(display) 화면 출력 기호 온라인 기억장치 (on-line storage) 온라인 장치를 통한 입출력 표시 자기테이프 또는 순차적 액세스 저장소 자기 테이프 매체에 입출력 자기 디스크 (magnetic disk) 자기 디스크 매체에 입출력 자기 드럼 (magnetic drum) 자기 드럼 매체에 입출력 자기 코어 (magnetic core) 자기 코어 매체에 입출력
순서도 기호 – 프로그램 관련 기호 기호 의미 내용 오프라인 기억장치 오프라인 상태의 기억 매체 (off-line storage) 오프라인 상태의 기억 매체 수동조작(manual operation) 수작업을 통한 처리 병합(merge) 2개 이상의 파일을 하나로 합침 정렬(sort) 크기 순서대로 자료를 재정렬 추출(extract) 하나의 파일로 필요한 부분만 분리 2개 이상의 파일을 합쳐서 2개 이상의 파일을 만듦 대조(collate) 병렬처리(parallel mode) 2개 이상의 작업을 동시 처리 통신회선을 통한 연결 통신연결(communication link)
순서도 기호 – 사용예 단말 준비 . c=10 a=10 입출력 read A, B write A, B 처리 b=20 START START START . A(100), c=10 A(100) END c=10 a=10 입출력 read A, B write A, B 처리 b=20 c = a + b
순서도 기호 – 사용예 판단 밥을 먹는다 빵을 먹는다 서류 밥을 먹을까? 평균계산 학번,평균 Yes No 어떤 종류의 빵도 좋다. 서류 평균계산 학번,평균
순서도 작성 요령 ① 순서도 기호는 약속된 기호로 작성하고 기호의 처리 내용을 간결하게 표현한다. 부가적인 설명이 필요하면 주석 기호를 사용한다. ② 처리되는 과정은 통일된 기호를 사용하여 간단명료하게 작성한다. ③ 순서도의 진행 흐름을 위에서 아래로, 좌에서 우로 나타내며 화살표의 흐름의 방향을 반드시 나타낸다. ④ 판단조건에 의해 흐름이 분기될 때는 판단기호를 이용하여 표현하고 명확한 판단 기준을 나타낸다. ⑤ 과정이 길거나 복잡해지면 부분별로 나누어 작성하고 연결자로 연결하여 전체 흐름을 명확히 나타낸다.
순서도 종류 순서도 시스템 순서도 프로그램 순서도 개략 순서도(general flowchart) 상세 순서도(detail flowchart)
순서도 종류 – 시스템 순서도 수강신청 시스템 순서도 START ID,PW입력 과목 수강신청 수강 학생 수강내역 로그아웃 END
순서도 종류 – 프로그램 순서도 반 평균 계산 개략 순서도 START 변수초기화 EOF 평균계산 반평균 계산 및 출력 END 중간,기말성적 읽기 EOF 평균계산 반평균 계산 및 출력 학번,평균 END 평균계산
순서도 종류 – 프로그램 순서도 반 평균 상세 개략 순서도 START EOF END N=0,SUM=0 read NO, MIN, FIN EOF AV=(MIN+FIN)/2 TAV=SUM/N NO, AV END SUM=SUM+AV
프로그래밍의 기본 논리 순차논리 판단논리(if then else) 반복논리 (while,for) START 변수초기화 EOF 중간,기말성적 한명씩 읽기 판단논리(if then else) Yes EOF No 반복논리 (while,for) 평균계산 반평균 계산 및 출력 학번,평균 END 평균계산
변수와 상수 ■ 변수 : 하나의 값(또는 객체)을 나타내기 위한 이름. 값을 저장하는 그릇과 같은 개념 ■ 변수의 유형 : 실수, 정수, 문자, Boolean등등 ■ 상수 : 하나의 고정된 값. 문자 상수와 숫자 상수 ■ 치환문 : 변수에 어떤 값이나 또는 다른 변수의 값을 기억시키기 위한 문장 변수 = 수식 변수 = 값 변수1 = 변수2 b c int b c=10 10 c=10
예제 1. 두 수의 차 구하기 ■ 큰 수에서 작은 수를 빼는 방법 ■ 절대값 이용방법 ① 변수 a와 b 각각에 임의의 수를 입력 ② 만약 a가 b보다 크면 a에서 b를 뺀 값을 변수 diff에 저장하고, 그렇지 않으면 b에서 a를 뺀 값을 diff에 저장한다. ③ a와 b의 차인 diff값을 출력하고 종료한다. ■ 절대값 이용방법
예제 1. 두 수의 차 구하기 ■ 순서도 START a, b, diff 생성 a = rand() b = rand() diff = a - b diff = b - a diff 출력하기 END
예제 1. 두 수의 차 구하기 ■ scratch 데이터 – a, b, diff 만들기 이벤트 – 클릭했을 때 선택 이벤트 – 클릭했을 때 선택 데이터, 연산 제어 형태, 연산 데이터
예제 1. 두 수의 차 구하기 ■ 큰 수에서 작은 수를 빼는 방법 ① 변수 a와 b 각각에 임의의 수를 입력 ② 만약 a가 b보다 크면 a에서 b를 뺀 값을 변수 diff에 저장하고, 그렇지 않으면 b에서 a를 뺀 값을 diff에 저장한다. ③ a와 b의 차인 diff값을 출력하고 종료한다.
예제 2. 사각형의 넓이를 출력 ■ 사각형 넓이 구하기 ① 변수 a와 b를 사용자로부터 입력 받는다. ② a 와 b를 곱하여 sq 변수에 저장한다. ③ sq를 출력하고 저장한다.
예제 2. 사각형의 넓이를 출력 ■ 순서도 START a, b, sq 생성 a, b 입력받기 sq = a x b sq 출력 END
예제 2. 사각형의 넓이를 출력 ■ scratch 데이터 – a, b, diff 만들기 이벤트 – 클릭했을 때 선택 관찰 이벤트 – 클릭했을 때 선택 관찰 관찰, 데이터