프로젝트 #1 - Memory & Storage Architecture Lab.

Report
Memory & Storage Architecture Lab.
@ Seoul National University
컴퓨터 개론 및 실습
1차 프로젝트
Byoungjun Kim ([email protected])
Ansu Na([email protected])
School of Computer Science and Engineering
Seoul National University
추가 내용
 오늘 숙제 설명에서 추가된 내용 정리
 3개의 과제 모두 import / method 사용 금지
 print가 아닌 return으로 처리 (각 함수에 대한 결과화면 참고)
 과제 2의 return value에 대한 재 설명 (해당 함수 부분에 추가)
Memory & Storage Architecture Lab.
@ Seoul National University
2
컴퓨터 개념 및 실습 1차 프로젝트
 Palindrome Checker
 Newton/Raphson Method
 Calculator
Memory & Storage Architecture Lab.
@ Seoul National University
3
Palindrome Checker
 Palindrome 이란?
 앞에서부터 읽으나 뒤에서부터 읽으나 동일한 구문
• ex) “ASA”, “abba”, “12321”, “pop”, “LoL”,
Memory & Storage Architecture Lab.
@ Seoul National University
4
Palindrome Checker
 Palindrome Checker 만들기
 함수의 이름은 checkPalin
 함수의 입력은 string type (argument)
 함수의 반환값은 boolean type (return value)
 띄어쓰기가 있는 문자열은 입력되지 않는다고 가정
• ex) “nurses run”
 대문자와 소문자는 다른 문자로 취급
• print checkPalin(“oOO”) -> False
 import/method는 사용할 수 없음
• ex) import string, a.reverse(), a.sort()
Memory & Storage Architecture Lab.
@ Seoul National University
5
Palindrome Checker
 구현 방법-1
 입력된 string을 뒤집어서 비교하기
• while문을 이용하여 입력된 문자열을 뒤집음
• 원래 입력된 문자열과 비교함
• 두 문자열이 같으면 True를 return하고, 다르면 False를 return함
Memory & Storage Architecture Lab.
@ Seoul National University
6
Palindrome Checker
 구현 방법-2
 앞과 뒤의 문자를 순차적으로 비교하기
• 맨 앞과 맨 뒤의 문자 비교함
- 같으면 앞에서 두 번째 문자와 뒤에서 두 번째 문자를 비교함
- 다르면 False를 return 함
• 위의 과정을 더 이상 비교할 문자가 없을 때까지 반복함
Memory & Storage Architecture Lab.
@ Seoul National University
7
구현 예시
 입력된 문자열을 List type으로 변환
 List를 reverse method를 사용하여
반대로 재배열
 만약 원래 문자열과 같으면 True
아니면 False를 반환
 하지만!
import/ method 사용 금지!
결과는 옆과 같이 나오면 됨
Memory & Storage Architecture Lab.
@ Seoul National University
8
컴퓨터 개념 및 실습 1차 프로젝트
 Palindrome Checker
 Newton/Raphson Method
 Calculator
Memory & Storage Architecture Lab.
@ Seoul National University
9
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
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
과정 예시
Memory & Storage Architecture Lab.
@ Seoul National University
20
Newton/Raphson Method
 Newton/Raphson Method 구현하기
 함수의 이름은 solNewtRaph
 입력은 int/float type 2개의 인자로 이루어진 tuple의 list(argument)
• ex) [( 2.0, 3) , ( 4, 2), ( -2.0, 1.0), ( 2, 0)]
 반환 값은 float type (return value)
 tuple의 앞 인자는 미지의 x에 대해 계수, 뒤 인자는 지수를 의미
• ex) (2, 3) ->
 list의 각 인자는 더하기로 연결
• ex) [( 2, 3) , ( 4, 2), ( -2, 1), ( 2, 0)] ->
Memory & Storage Architecture Lab.
@ Seoul National University
21
Newton/Raphson Method
 Newton/Raphson Method 구현하기
 잘못된 형식의 입력은 들어오지 않는다고 가정
 다항식의 해가 여러 개라면 그 중 하나만 구하면 됨
 반환 값은 구해진 근사해 xn에 대해 | f(xn) | < 0.0001이 될 때의 xn값
 import/method는 사용할 수 없음
Memory & Storage Architecture Lab.
@ Seoul National University
22
구현 방법
 구현 방법
 여러 역할을 하는 함수를 조합한다.
• (예시)
- 입력 안에 섞여 있는 int/float type을 float type으로 통일시켜주는 함수
- 입력을 미분해주는 함수
- 식의 값을 계산해주는 함수
- 접선의 x절편을 구해주는 함수
Memory & Storage Architecture Lab.
@ Seoul National University
23
결과 화면
Memory & Storage Architecture Lab.
@ Seoul National University
24
컴퓨터 개념 및 실습 1차 프로젝트
 Palindrome Checker
 Newton/Raphson Method
 Calculator
Memory & Storage Architecture Lab.
@ Seoul National University
25
Calculator
 Calculator의 기능
 Sss
다섯 가지의 연산을 수행함
 다섯 개의 연산은 각각 아래와 같은 연산을 함
• “+”는 두 수의 덧셈
• “-”는 두 수의 뺄셈
• “/”는 두 수의 나눗셈
•
는 두 수의 곱셈
• “sqrt”는 한 수의 제곱근
Memory & Storage Architecture Lab.
@ Seoul National University
26
Calculator
 Calculator의 구현하기
 함수의 이름은 calculator
 함수의 입력은 연산자와 피연산자로 이루어진 tuple
• 피연산자가 2개이면 3개의 항을 가진 tuple
- ex)
• 피연산자가 하나이면 2개의 항을 가진 tuple
- ex) “sqrt”
 반환 값은 string type
• 알맞은 입력이 입력될 시는 float type의 연산 결과를 string type으로 변환하여 반환
• 잘못된 입력이 입력될 시는 알맞은 error message를 반환
 sqrt 연산은 앞의 숙제인 Newton/Raphson Method를 이용
 Import / method는 사용할 수 없음
Memory & Storage Architecture Lab.
@ Seoul National University
27
Calculator
 잘못된 입력의 종류
 제시된 연산자 이외의 연산자가 입력될 때
 피연산자에 int 혹은 float 이외의 type이 입력될 때
 입력된 tuple의 항의 개수가 적거나 많을 때
 “/” 연산 시 분모가 0일 때
 sqrt 연산 시 음수 값이 들어올 때
 위의 경우에 해당하는 입력이 들어올 때 error message를 출력
 error message : “The input value is not correct.”
 이외의 잘못된 입력은 들어오지 않는 것으로 가정
Memory & Storage Architecture Lab.
@ Seoul National University
28
결과 화면
 올바른 입력 값에 대한 결과 화면
Memory & Storage Architecture Lab.
@ Seoul National University
29
결과 화면
 잘못된 입력 값에 대한 결과 화면
제공하지 않는 연산자
잘못된 입력 형식
잘못된 입력 항 갯수
“/” 연산에서 분모가 0
“sqrt”연산의 피연산자가 음수
Memory & Storage Architecture Lab.
@ Seoul National University
30
보고서 제출
 숙제에 대한 보고서
 각각 숙제 별로 사용된 함수 및 그 설명
 실행 과정
 결과 출력 확인
 어려웠던 점 / 해결 방법
 프로젝트를 진행하며 느낀 점
Memory & Storage Architecture Lab.
@ Seoul National University
31
제출 방법
 과제 확인
 제출 기한
• 5월 7일 수요일 자정 전(23:59)까지
• 1일 delay 당 5점씩 감점
• 제출 기한 일주일 후까지 제출 가능
- (5월 14일 pm 11:59까지 가능)
 제출 방법
• 메일 제목 : [컴개실과제]학번_이름
- ex) [컴개실과제]201410000_홍길동
• 첨부파일 : 학번_이름.zip으로 아래 파일들을 함께 압축하여 제출
- 소스코드 : 학번_이름_checkPalin.txt, 학번_이름_solNewtRaph.txt, 학번_이름_calculator.txt
- 보고서: 한글/워드 중 택하여 학번_이름을 제목으로 함
• 메일 주소 : [email protected]
Memory & Storage Architecture Lab.
@ Seoul National University
32

similar documents