함수 제작 과정
단계1: 해야 할 일 분석
단계2: 함수 이름을 결정하시오.
단계3: 입력 인자 개수를 판단하여 입력 매개 변수를 결정하시오.
단계4: 무엇을 반환할 것인지 결정하시오.(없을 수도 있습니다.)
단계5: 함수의 논리 코드를 의사 코드로 작성하시오.
단계6: 함수를 구현하시오.
단계7: 함수를 호출하여 사용하는 코드를 작성하시오.
실습
1. 소수(Prime Number)인지 판별하는 함수를 작성하시오.
사용 예===
정수 입력: 3
소수입니다.
정수 입력: 8
합성수입니다.
정수 입력: 7
소수입니다.
정수 입력: 0
프로그램을 종료합니다.
def IsPrimeNo(num):
for i in range(2,num): #반복 i in 구간(2~num-1)
if num%i ==0:#조건 i가 num의 약수라면:
return False#False 반환
return True#True 반환
while True:#반복 (무한)
num = int(input("정수 입력:"))#num = 정수 입력
if num == 0:#조건 num이 0이면:
break#반복문 탈출
if IsPrimeNo(num):#조건 num이 소수일 때
print("소수입니다.")#소수입니다. 출력
else:#아닐 때
print("합성수입니다.")#합성수입니다.출력
print("프로그램을 종료합니다.")#프로그램을 종료합니다. 출력
2. 특정 범위에 수를 출력하는 함수를 작성하시오.
사용 예===
구간 시작:3
구간 끝:10
3 4 5 6 7 8 9 10
#2. 특정 범위에 수를 출력하는 함수를 작성하시오.
#사용 예===
##구간 시작:3
##구간 끝:10
#3 4 5 6 7 8 9 10
#함수명: PrintRange
#입력 인자 개수: 2
# start, end
def PrintRagne(start,end):
for i in range(start,end+1):#반복 start ~end
print(i,end = ' ')#출력
print()
start = int(input("구간 시작:"))
end = int(input("구간 끝:"))
PrintRagne(start,end)
3. 특정 범위에 수를 step 간격으로 출력하는 함수를 작성하시오.
사용 예===
구간 시작:3
구간 끝:40
step: 5
3 8 13 18 23 28 33 38
def PrintRagne(start,end,step=1):
for i in range(start,end+1,step):#반복 start ~end
print(i,end = ' ')#출력
print()
def PrintRagne2(start,end,step=1):
while(start<=end):#반복 start ~end
print(start,end = ' ')#출력
start+=step
print()
start = int(input("구간 시작:"))
end = int(input("구간 끝:"))
step = int(input("step:"))
PrintRagne(start,end,step)
PrintRagne2(start,end,step)
#PrintRagne(start,end) 3번째 인자를 전달하지 않으면 step은 1로 적용
4. 특정 범위에 소수(Prime Number)의 개수를 구하는 함수를 작성하시오.
사용 예===
구간 시작:3
구간 끝:10
3~10사이의 소수는 2개입니다.
#4. 특정 범위에 소수(Prime Number)의 개수를 구하는 함수를 작성하시오.
def IsPrimeNo(num):
for i in range(2,num): #반복 i in 구간(2~num-1)
if num%i ==0:#조건 i가 num의 약수라면:
return False#False 반환
return True#True 반환
def GetCountPrimeNo(start,end):
i = start#i는 start로 초기화
count = 0#count는 0으로 초기화
while i<=end:#반복 i가 end보다 작거나 같다면
if IsPrimeNo(i):#조건 i가 소수일 때
count +=1#count 1 증가
i+=1#i를 1 증가
return count# count 반환
def GetCountPrimeNo2(start,end):
count = 0#count는 0으로 초기화
for i in range(startf,end+1):#반복 i는 start~ end까지
if IsPrimeNo(i):#조건 i가 소수일 때
count +=1#count 1 증가
i+=1#i를 1 증가
return count# count 반환
start = int(input("구간 시작:"))
end = int((input("구간 끝:")))
cnt = GetCountPrimeNo(start,end)
print("{0}~{1}사이의 소수는 {2}개 입니다.".format(start,end,cnt))
5. 두 개의 정수의 최대 공약수를 구하는 함수를 작성하시오.
사용 예===
첫번째 정수:24
두번째 정수:36
24와 36의 최대공약수는 12입니다.
6. 피보나치 수열의 n번째 항의 값을 구하는 함수를 작성하시오.
F(1)=F(2)=1
F(n)=F(n-1)+F(n-2), n>=3인 정수
사용 예===
피보나치 수열
항: 3
2
항: 4
3
항: 0
프로그램을 종료합니다.
'언어 자료구조 알고리즘 > 프로그래밍 실습' 카테고리의 다른 글
[python] 캡슐화 실습 - 생성자(초기화) 정의하기 (0) | 2020.10.29 |
---|---|
[python] 캡슐화 실습 - 학생 유닛 키우기 (0) | 2020.10.29 |
[python] 도서 관리 프로그램 - 클래스 및 파일 입출력 포함 (0) | 2020.10.28 |
[python] 도서 관리 프로그램 - 파일 입출력 포함 (0) | 2020.10.27 |
[python] 도서 관리 프로그램 (리스트 사용, 클래스 사용X) (0) | 2020.10.26 |
[python] 제어문 실습 (0) | 2020.10.22 |
[C# 실습,통신 제어] 반도체 증착공정 및 Burn in 테스트 설비 시뮬레이션 (0) | 2020.10.13 |
[C# 실습,공장 UI 구현] 반도체 증착공정 및 Burn in 테스트 설비 시뮬레이션 (0) | 2020.10.12 |
[C# 실습,설비 컨트롤 예광탄] 반도체 증착공정 및 Burn in 테스트 설비 시뮬레이션 (0) | 2020.10.08 |
[C# 실습,예광탄] 반도체 증착공정 및 Burn in 테스트 설비 시뮬레이션 (0) | 2020.10.08 |