You are on page 1of 2

화공전산 중간고사 I (11/1/2018 50 분 소요, 점 만점;

100 미사용)
Closed Book, PC

<A4 1/2쪽 Crib Sheet + 계산기만 지참; 종료후 답안지만 회수>


- 시험시간이 (의도적으로) 부족하게 배정되었기에, 문제에 대한 질의 자제
- 문제에 따라 추가정보가 필요하다 판단 경우, 본인이 도입한 가정을 답지에 명확히 기재후 풀이 진행
주의: 모든 답의 경우 논리상 요구되는 최소한의 중간과정이 없이 답만 있는 경우 해당 문제 0점 처리

1. (25) 주어진 방정식의 근을 bisection search 를 이용해 구하는 함수 bisectionSearch() 가 있다 .

def eq(x):
return x**2 - 1

def bisectionSearch(f, low, high, epsilon=0.1):


numGuesses = 1
ans = ...
while abs( ... ) >= epsilon:
print("Guess", ... )
numGuesses += ...
if ... :
low = ans
else:
...
ans = ...
return ans

위 코드의 실행시 출력 결과가 아래와 같아야 한다고 할 때 물음에 답하시오


print("Solution of a given equation =", bisectionSearch(eq, -1, 2))
:

Guess 1 : low = -1 high = ... ans = 0.5 f(x) = -0.75


Guess 2 : low = ... high = ... ans = 1.25 f(x) = ...
Guess 3 : low = 0.5 high = 1.25 ans = 0.875 f(x) = -0.234375
Guess 4 : low = 0.875 high = 1.25 ans = 1.0625 f(x) = 0.12890625
Solution of a given equation = ...
(a) 코드의 로 생략된 개 부분들을 모두 채워
... 함수를 완성하시오
7 bisectionSearch() .

(b) 출력 결과에서 로 생략된 개 값들을 순서대로 적으시오


... 5 .

2. 아래의
(25) 코드를 보고 물음에 답하시오
Python .

def myCalc(s):
total = 0
tmp = "0"
for s1 in s:
if s1 in "0123456789.":
tmp += s1
elif s1 == "=":
return total
else:
if s1 == "+":
total = total + float(tmp)
if s1 == "-":
total = total - float(tmp)
if s1 == "*":
total = total * float(tmp)
print("total =", total)
tmp = "0"

위 코드를 실행시켰을때 얻어지는 화면 출력결과를 순서대로 빠짐없이 적으시오


print("Answer =", myCalc("12+03.4-0.56*7.89="))
(a) .

(b) myCalc()함수는 어떤 방식으로 연산을 하는 코드인지 그 작동방식에 대해 기술하시오 .

뒷면 계속...

- 1 -
3. (20) Recursion 을 사용해 구현한 factorial 계산 함수 factR() 이 있다 .

def factR(n):
"""Assumes int n > 0. Returns n!"""
if n == 1:
return n
else:
return n*factR(n - 1)

def testFact(n):
print(n, "! =", factR(n))

을 구하는 위의 코드를 실행하면 아래 결과물이 출력된다 이 과정에서 함수가


testFact(4)
(a) 4! , . factR()

몇 번이나 실행되겠는지 그 근거와 아울러 제시하시오 .

4 ! = 24
(b) 의 계산과정에서
Factorial 이 되는 횟수를 함수의 마지막 줄로 문을
factR() call testFact() print

추가해 아래와 같이 정확히 출력하려 한다 이런 결과가 얻어질 수 있도록 및 . factR() testFact()

함수의 코드를 개선해 다시 적으시오


변수 사용
.

Hint: global

4 ! = 24
Total no of calls of factR during calculation = ...

4. 구간의 정수 난수 개 단 를 발생해 이들의 합 평균 최대 최소 및 최대값


(30) [0,100] n ( n>0) , , , ,

정수 숫자의 발생 횟수를 하는 함수 을 작성하시오 단


print 에서 기본적으 randStat(n) . , Python

로 제공되는 함수의 사용 없이 구현
의 이용
sum(), max(), min() .

Hint: random module randint()

- 2 -

You might also like