프로그래밍 보고서 작성법 순천향대학교 컴퓨터공학과 2015. 9. 16 하 상 호
문제 해결 방법(프로그래밍 보고서 작성 방법) 문제 요구사항을 정확히 기술 문제를 완벽하고 모호함없이 기술 문제가 무엇을 요구하는지 기술 문제를 분석한다 문제의 입력과 출력을 식별 입출력변수 정의 및 관계식 도출 문제해결 제약사항 및 추가 요구사항 고려 알고리즘을 작성한다 문제 해결 과정을 단계적으로 기술 알고리즘 생성(데이터를 읽어들이고, 데이터를 처리하고, 그 결과를 출력) 프로그램을 작성한다 코딩 프로그램을 테스트하고 검증한다 다양한 입력 데이터에 대해서 테스트 입력 및 출력 데이터에 기준하여 프로그램 검증 의견 과제 수행중 특이 사항이나 문제점을 기술
문제 해결 도구 분석 도구 알고리즘 기술 문제 분석도(PAC: problem analysis chart) 구조도(structure chart) 알고리즘 기술 순서도 알고리즘 기술 언어(ADL: Algorithm Description Language)
문제 분석도: PAC - IOPE 입력 데이터 출력 데이터 처리사항: 입출력관계 예제 입력 데이터 식별 각 데이터에 대한 변수명, 타입 정의 출력 데이터 출력 데이터 식별 각 데이터에 대한 변수명, 타입 결정 처리사항: 입출력관계 출력 데이터가 입력 데이터로 어떻게 도출 되는지 고려 입출력 데이터간의 관계식 도출 입출력 데이터 관계 도출을 위한 예제 생성 예제 입력에 대한 출력의 예제 제시
구조도: 모듈 또는 함수들간의 호출 관계를 표현 프로그램이 main, fun1, fun2, fun3, fun4로 구성되어 있고, main이 fun1, fun2, fun3를 호출하고, fun3가 fun4를 호출하면 main fun1 fun2 fun3 fun4
알고리즘 기술 언어: SPARKS While 문 For 문 Do-while 문 배정문 조건문 Case 문 변수 <- 식 if (조건식) then S1 else S2 endif if (조건 식) then S Case 문 case { : cond1: S1 : cond2: S2 … : condn: Sn : else: Sn+1 endcase While 문 while cond do S repeat For 문 for variable <- start to finish by increment do Do-while 문 loop until cond repeat
알고리즘 기술 언어: SPARKS 함수 변수 선언 타입 입출력문 기타 procedure 함수이름 (매개변수리스트) declarations S return 식 end 함수이름 입출력문 read(매개변수 리스트) print(매개변수리스트) 변수 선언 Integer a, b 타입 Integer, real, character, boolean Integer a[0..size-1] type term = record a: real b: integer end real a(1:n) 기타 부울 값은 true/false 사용 논리연산자: and, or, not 관계연산자: <, =, ≠, >, <=, >= 한 줄에 2개 이상 문장 나열시 세미콜론으로 구분
알고리즘 기술 언어: SPARKS procedure MAX(a, n) global real xmax parameters integer n; real a(1:n) local integer i xmax <- a(1) for i <- 2 to n do if a(i) > xmax then xmax <- a(i) endif repeat end MAX start integer xmax call readData(a, n) call MAX(a, n) print(xmax) end
알고리즘 기술 언어: SPARKS start integer n, res read (n) res <- f(10) print(res) end procedure f(n) integer i if n <= 1 then return (n) else return (f(n-1) + f(n-2)) endif end f
알고리즘 작성 기본적으로 3단계로 구성
문제 분석과 알고리즘 관계 기본적으로 다음 3단계로 구성 알고리즘 분석 입력 데이터 출력 데이터 처리사항
문제 #1 다음 문제를 IOPE에 의해서 분석하라. 사용자로부터 2개의 값을 입력받고, 이들의 평균 값을 구하여 출력하라.
문제 #2 다음 문제를 IOPE에 의해서 분석하라. 시간을 초단위의 값으로 읽어들여서, 시, 분, 초의 표현으로 출력하라. You entered x seconds p Hours q Minutes r Seconds
문제 #3 출력 차트를 작성하라. 분석하라. 알고리즘을 작성하라.
문제 #4 한 은행 구좌에 1,000만원이 입금되어 있을 때, 년 이율이 6%라고 할 때 10년 후에 구좌에 들어 있는 금액을 계산하여 출력하라. 이율은 복리로 계산된다고 가정한다. 분석하라. 알고리즘을 작성하라.