프로젝트#2 설명 - Memory & Storage Architecture Lab.

Download Report

Transcript 프로젝트#2 설명 - Memory & Storage Architecture Lab.

Memory & Storage Architecture Lab.
@ Seoul National University
컴퓨터 개론 및 실습
2차 프로젝트
Byoungjun Kim ([email protected])
Ansu Na([email protected])
School of Computer Science and Engineering
Seoul National University
컴퓨터 개념 및 실습 2차 프로젝트
 1차 프로젝트의 과제를 C언어로 구현
 Palindrome Checker
 Newton/Raphson Method
 Calculator
 Web compile 환경에서 채점
 http://www.compileonline.com/compile_c_online.php
Memory & Storage Architecture Lab.
@ Seoul National University
2
Palindrome Checker
 Palindrome 이란?
 앞에서부터 읽으나 뒤에서부터 읽으나 동일한 구문
ex) “ASA”, “abba”, “12321”, “pop”, “LoL”,
Memory & Storage Architecture Lab.
@ Seoul National University
3
Palindrome Checker
 Palindrome Checker 만들기
 입력 형식
• 파일 입력 사용
- 파일이름 : input.txt
- 여러 입력 문자열이 line-by-line으로 나열됨
• 입력 문자열은 알파벳 대소문자와 숫자로 이루어짐
ex) “nurses run”, “abc
cba” 등의 입력 값은 주어지지 않는다고 가정
• 대문자와 소문자는 다른 문자로 취급
ex) “oOO” is not palindrome.
• 한 입력 문자열의 최대 길이는 255
Memory & Storage Architecture Lab.
@ Seoul National University
4
Palindrome Checker
 Palindrome Checker 만들기
 출력형식
• 표준 출력 사용
• Palindrome 여부를 입력 문자열과 함께 출력
- Palindrome일 경우
“[입력문자열]” is palindrome.
- Palindrome이 아닐 경우
“[입력문자열]” is not palindrome.
Memory & Storage Architecture Lab.
@ Seoul National University
5
입력/출력 예제
 입력 파일
 실행 결과
Memory & Storage Architecture Lab.
@ Seoul National University
6
파일 입력 코드 예제
Memory & Storage Architecture Lab.
@ Seoul National University
7
컴퓨터 개념 및 실습 2차 프로젝트
 Palindrome Checker
 Newton/Raphson Method
 Calculator
Memory & Storage Architecture Lab.
@ Seoul National University
8
Newton/Raphson Method
 Newton/Raphson Method 란?
 단일 변수 방정식의 근사 해를 구하는 해법
• 근을 구하고자 하는 함수를 f(x)라 한다.
• f(x)위의 임의의 한 점 (x1, f(x1))에서의 접선의 x절편 x2를 구한다.
• 위 과정을 반복하면 해의 근사값을 구할 수 있다.
 Newton/Raphson Method의 과정 예시
• http://blog.naver.com/sunrise2575?Redirect=Log&logNo=150133215450
Memory & Storage Architecture Lab.
@ Seoul National University
9
과정 예시
Memory & Storage Architecture Lab.
@ Seoul National University
10
과정 예시
임의의 점
Memory & Storage Architecture Lab.
@ Seoul National University
11
과정 예시
Memory & Storage Architecture Lab.
@ Seoul National University
12
Memory & Storage Architecture Lab.
@ Seoul National University
13
과정 예시
Memory & Storage Architecture Lab.
@ Seoul National University
14
과정 예시
Memory & Storage Architecture Lab.
@ Seoul National University
15
과정 예시
Memory & Storage Architecture Lab.
@ Seoul National University
16
과정 예시
Memory & Storage Architecture Lab.
@ Seoul National University
17
과정 예시
Memory & Storage Architecture Lab.
@ Seoul National University
18
과정 예시
Memory & Storage Architecture Lab.
@ Seoul National University
19
Newton/Raphson Method
 Newton/Raphson Method 구현하기
 입력 형식
• 파일 입력 사용
- 파일이름 : input.txt
- 여러 입력 문자열이 line-by-line으로 나열됨
• 입력 문자열은 소괄호로 묶인 정수 쌍을 대괄호로 묶은 형식
ex)[( 2, 3),( 4, 2),( -2.0, 1.0),( 2, 0)]
• 정수 쌍의 앞 인자는 미지의 x에 대해 계수, 뒤 인자는 지수를 의미
ex) (2, 3) ->
• 대괄호 안의 각 인자는 더하기로 연결
ex) [( 2, 3),( 4, 2),( -2, 1),( 2, 0)]
->
• 한 입력 문자열 내에는 공란이 없다고 가정
• 올바르지 않은 입력 값은 주어지지 않는다고 가정
• 한 입력 문자열의 최대 길이는 255
Memory & Storage Architecture Lab.
@ Seoul National University
20
Newton/Raphson Method
 Newton/Raphson Method 구현하기
 출력 형식
• 표준 출력 사용
• 구해진 근사해를 입력 문자열과 함께 출력
- 근사해 : | f(xn) | < 0.0001이 될 때의 Xn 값
ex) [(1,2),(-2,0)] => 1.414215
• 다항식의 해가 여러 개라면 그 중 하나만 구하면 됨
Memory & Storage Architecture Lab.
@ Seoul National University
21
구현 방법
 구현 방법
 여러 역할을 하는 함수를 조합한다.
• (예시)
- 입력 문자열에서 계수와 지수를 정수로 변환하여 저장하는 함수
- 입력을 미분해주는 함수
- 식의 값을 계산해주는 함수
- 접선의 x절편을 구해주는 함수
Memory & Storage Architecture Lab.
@ Seoul National University
22
컴퓨터 개념 및 실습 2차 프로젝트
 Palindrome Checker
 Newton/Raphson Method
 Calculator
Memory & Storage Architecture Lab.
@ Seoul National University
23
Calculator
 Calculator의 기능
 Sss
다섯 가지의 연산을 수행함
 다섯 개의 연산은 각각 아래와 같은 연산을 함
• “+”는 두 실수의 덧셈
• “-”는 두 실수의 뺄셈
• “/”는 두 실수의 나눗셈
•
는 두 실수의 곱셈
• “sqrt”는 한 수의 제곱근
Memory & Storage Architecture Lab.
@ Seoul National University
24
Calculator
 Calculator 구현하기
 입력 형식
• 파일 입력 사용
- 파일이름 : input.txt
- 여러 입력 문자열이 line-by-line으로 나열됨
• 피연산자는 정수와 실수 모두 허용
• 피연산자가 2개인 경우 피연산자 사이에 연산자가 위치
ex) “2+3”, “4.5-5.0”, “7.0*4”, “10.0/2”
• 피연산자가 1개인 경우 함수와 같은 형태로 입력 (단, 정수만 입력가능)
ex) “sqrt(4)”
• 피연산자는 괄호로 묶어 표현 가능
ex) “-2+3”, “4.5--5.0”, “7.0*-4”, “10.0/-2”
“(-2)+(3)”, “4.5-(-5.0)”, “7.0*(-4)”, “(-10.0)/(-2)”
• 한 입력 문자열 내에는 공란이 없다고 가정
• 한 입력 문자열의 최대 길이는 255
 sqrt 연산은 앞의 숙제인 Newton/Raphson Method를 이용
Memory & Storage Architecture Lab.
@ Seoul National University
25
Calculator
 Calculator 구현하기
 출력 형식
• 표준 출력 사용
• 입력 문자열과 결과 값을 등호로 연결하여 출력
• 피연산자가 실수로 변환되기 전 / 변환된 후의 형태 모두 허용
ex) 2+3 = 5.0
2.0 + 3.0 = 5.0
sqrt(4) = 2.0001
• 잘못된 입력이 입력될 경우 알맞은 error message를 반환
Memory & Storage Architecture Lab.
@ Seoul National University
26
Calculator
 잘못된 입력의 종류
 제시된 연산자 이외의 연산자가 입력될 때
 연산자와 피연산자 사이의 순서가 올바르지 않을 때
 괄호가 올바르게 묶여있지 않을 때
 “/” 연산 시 분모가 0일 때
 sqrt 연산 시 음수 값이 피연산자로 사용될 때
 위의 경우에 해당하는 입력이 들어올 때 error message를 출력
 error message : “The input value is not correct.”
 이외의 잘못된 입력은 들어오지 않는 것으로 가정
Memory & Storage Architecture Lab.
@ Seoul National University
27
보고서 제출
 숙제에 대한 보고서
 각각 숙제 별로 사용된 함수 및 그 설명
 실행 과정
 결과 출력 확인
 어려웠던 점 / 해결 방법
 프로젝트를 진행하며 느낀 점
Memory & Storage Architecture Lab.
@ Seoul National University
28
제출 방법
 과제 확인
 제출 기한
• 6월 11일 수요일 자정 전(23:59)까지
• 1일 delay 당 5점씩 감점
• 제출 기한 일주일 후까지 제출 가능
- (6월 18일 pm 11:59까지 가능)
 제출 방법
• 메일 제목 : [컴개실과제]학번_이름
- ex) [컴개실과제]201410000_홍길동
• 첨부파일 : 학번_이름.zip으로 아래 파일들을 함께 압축하여 제출
- 소스코드 : 학번_이름_checkPalin.c, 학번_이름_solNewtRaph.c, 학번_이름_calculator.c
- 보고서: 한글/워드 중 택하여 학번_이름을 제목으로 함
• 메일 주소 : [email protected]
Memory & Storage Architecture Lab.
@ Seoul National University
29