컴퓨터 개론 및 실습 2 차 프로젝트

29
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

Upload: aaron

Post on 22-Jan-2016

76 views

Category:

Documents


0 download

DESCRIPTION

컴퓨터 개론 및 실습 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 환경에서 채점 - PowerPoint PPT Presentation

TRANSCRIPT

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

Memory & Storage Architecture Lab.@ Seoul National University

컴퓨터 개념 및 실습 2 차 프로젝트

1 차 프로젝트의 과제를 C 언어로 구현 Palindrome Checker Newton/Raphson Method Calculator

Web compile 환경에서 채점 http://www.compileonline.com/compile_c_online.php

2

Memory & Storage Architecture Lab.@ Seoul National University

Palindrome Checker

Palindrome 이란 ? 앞에서부터 읽으나 뒤에서부터 읽으나 동일한 구문

ex) “ASA”, “abba”, “12321”, “pop”, “LoL”,

3

Memory & Storage Architecture Lab.@ Seoul National University

Palindrome Checker

Palindrome Checker 만들기 입력 형식

• 파일 입력 사용- 파일이름 : input.txt- 여러 입력 문자열이 line-by-line 으로 나열됨

• 입력 문자열은 알파벳 대소문자와 숫자로 이루어짐ex) “nurses run”, “abc cba” 등의 입력 값은 주어지지 않는다고 가정

• 대문자와 소문자는 다른 문자로 취급 ex) “oOO” is not palindrome.

• 한 입력 문자열의 최대 길이는 255

4

Memory & Storage Architecture Lab.@ Seoul National University

Palindrome Checker

Palindrome Checker 만들기 출력형식

• 표준 출력 사용• Palindrome 여부를 입력 문자열과 함께 출력

- Palindrome 일 경우“[ 입력문자열 ]” is palindrome.

- Palindrome 이 아닐 경우“[ 입력문자열 ]” is not palindrome.

5

Memory & Storage Architecture Lab.@ Seoul National University

입력 파일

실행 결과

입력 / 출력 예제

6

Memory & Storage Architecture Lab.@ Seoul National University

파일 입력 코드 예제

7

Memory & Storage Architecture Lab.@ Seoul National University

컴퓨터 개념 및 실습 2 차 프로젝트

Palindrome Checker

Newton/Raphson Method

Calculator

8

Memory & Storage Architecture Lab.@ Seoul National University

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

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

Memory & Storage Architecture Lab.@ Seoul National University

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

20

Memory & Storage Architecture Lab.@ Seoul National University

Newton/Raphson Method

Newton/Raphson Method 구현하기 출력 형식

• 표준 출력 사용• 구해진 근사해를 입력 문자열과 함께 출력

- 근사해 : | f(xn) | < 0.0001 이 될 때의 Xn 값ex) [(1,2),(-2,0)] => 1.414215

• 다항식의 해가 여러 개라면 그 중 하나만 구하면 됨

21

Memory & Storage Architecture Lab.@ Seoul National University

구현 방법

구현 방법 여러 역할을 하는 함수를 조합한다 .

• ( 예시 )- 입력 문자열에서 계수와 지수를 정수로 변환하여 저장하는 함수- 입력을 미분해주는 함수- 식의 값을 계산해주는 함수- 접선의 x 절편을 구해주는 함수

22

Memory & Storage Architecture Lab.@ Seoul National University

컴퓨터 개념 및 실습 2 차 프로젝트

Palindrome Checker

Newton/Raphson Method

Calculator

23

Memory & Storage Architecture Lab.@ Seoul National University

Calculator

Calculator 의 기능 Sss 다섯 가지의 연산을 수행함 다섯 개의 연산은 각각 아래와 같은 연산을 함

• “+” 는 두 실수의 덧셈• “-” 는 두 실수의 뺄셈• “/” 는 두 실수의 나눗셈• 는 두 실수의 곱셈• “sqrt” 는 한 수의 제곱근

24

Memory & Storage Architecture Lab.@ Seoul National University

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 를 이용

25

Memory & Storage Architecture Lab.@ Seoul National University

Calculator

Calculator 구현하기 출력 형식

• 표준 출력 사용• 입력 문자열과 결과 값을 등호로 연결하여 출력• 피연산자가 실수로 변환되기 전 / 변환된 후의 형태 모두 허용

ex) 2+3 = 5.0

2.0 + 3.0 = 5.0

sqrt(4) = 2.0001

• 잘못된 입력이 입력될 경우 알맞은 error message 를 반환

26

Memory & Storage Architecture Lab.@ Seoul National University

Calculator

잘못된 입력의 종류 제시된 연산자 이외의 연산자가 입력될 때 연산자와 피연산자 사이의 순서가 올바르지 않을 때 괄호가 올바르게 묶여있지 않을 때 “/” 연산 시 분모가 0 일 때 sqrt 연산 시 음수 값이 피연산자로 사용될 때

위의 경우에 해당하는 입력이 들어올 때 error message 를 출력 error message : “The input value is not correct.”

이외의 잘못된 입력은 들어오지 않는 것으로 가정

27

Memory & Storage Architecture Lab.@ Seoul National University

보고서 제출

숙제에 대한 보고서 각각 숙제 별로 사용된 함수 및 그 설명 실행 과정 결과 출력 확인 어려웠던 점 / 해결 방법 프로젝트를 진행하며 느낀 점

28

Memory & Storage Architecture Lab.@ Seoul National University

제출 방법

과제 확인 제출 기한

• 6 월 11 일 수요일 자정 전 (23:59) 까지• 1 일 delay 당 5 점씩 감점• 제출 기한 일주일 후까지 제출 가능

- (6 월 18 일 pm 11:59 까지 가능 )

제출 방법• 메일 제목 : [ 컴개실과제 ] 학번 _ 이름

- ex) [ 컴개실과제 ]201410000_ 홍길동• 첨부파일 : 학번 _ 이름 .zip 으로 아래 파일들을 함께 압축하여 제출

- 소스코드 : 학번 _ 이름 _checkPalin.c, 학번 _ 이름 _solNewtRaph.c, 학번 _ 이름 _calculator.c- 보고서 : 한글 / 워드 중 택하여 학번 _ 이름을 제목으로 함

• 메일 주소 : [email protected]

29