숭실대 프로그래밍 중간고사(2024-2)
2024. 10. 31. 01:01ㆍpython study
1번
- 랜덤으로 5가지 숫자를 가져와서 7로 나누었을 때 나머지를 구하시오.
- 번호와 랜덤 숫자, 나머지를 출력할 때 오른쪽으로 '두' 칸 뛰어서 정렬하시오.
- 마지막 줄에는 랜덤과 나머지의 총합을 출력하시오.(예시 참조)
예시)
번호 랜덤 나머지
----------------------
1 17 3
2 11 4
3 4 4
4 3 3
5 6 6
----------------------
총합 41 20
- 이때 번호와 랜덤, 나머지는 \t을 활용하여서 사이를 띄어쓰기
최종 코드
더보기
import random
print("번호\t랜덤\t나머지")
print('-'*22)
sum1=0
sum2=0
for i in range(1,6):
n=random.randint(1,20)
sum1+=n
sum2+=n%7
print(f"{i:>2}\t{n:>2}\t{n%7:>2}")
print('-'*22)
print(f"총합\t{sum1}\t{sum2}")
- random을 활용하여서 무작위로 숫자를 5번 불러와준다.
- sum1은 랜덤 값들의 합, sum2는 7로 나눈 나머지의 합을 의미한다.
- 출력할 때는 오른쪽으로 두칸 띄어서 정렬하는 :>2를 활용해준다.
2.
- 삼각형의 너비와 높이("실수값"으로)를 입력받아서 넓이를 구하는 프로그램을 만든다.
- 이때 함수는 다음과 같이 작성한다.
area: 함수명
매개변수: 너비와 높이 값(변수명은 상관없음)
리턴값: 삼각형의 넓이
- 이때 삼각형의 면적이 30 이상 이면 소수점 두 자리로 출력하고 아니면 소수점 첫째 자리로 출력해 준다.
예시 1)
= 삼각형의 면적을 구하는 프로그램 =
삼각형의 너비 입력: 5.5
삼각형의 높이 입력: 4.4
삼각형의 면적은 '12.1' 입니다.
예시 2)
= 삼각형의 면적을 구하는 프로그램 =
삼각형의 너비 입력: 6.6
삼각형의 높이 입력: 10.4
삼각형의 면적은 '34.32' 입니다.
최종 코드
더보기
def area(x,y):
return x*y/2
print("= 삼각형의 면적을 구하는 프로그램 =")
n=float(input("삼각형의 너비 입력: "))
m=float(input("삼각형의 높이 입력: "))
k=area(n,m)
if(k>=30.0): print(f"삼각형의 면적은 '{k:0.2f}' 입니다.")
else: print(f"삼각형의 면적은 '{k:0.1f}' 입니다.")
- 함수명은 area, 매개변수는 x,y (너비, 높이), 리턴값은 x*y/2 (삼각형의 넓이)로 해주었다.
- 30이상이면 0.2f 로 두 자리까지 출력해주고 아니라면 0.1f 로 한 자리만 출력해주었다.
3)
- 시간(0~23), 분(0~59)을 각각 랜덤으로 생성해 준다.
- 랜덤 시간을 출력한 후에 45분을 앞당긴 알람 시간을 출력해 준다.
예시 1)
랜덤 시간: "10시 24분"
45분 앞당긴 알람 시간: "9시 39분"
예시 2)
랜덤 시간: "0시 14분"
45분 앞당긴 알람 시간: "23시 29분"
최종 코드
더보기
import random
n=random.randint(0,23)
m=random.randint(0,59)
print(f"랜덤 시간: \"{n}시 {m}분\"")
k=n*60+m
k-=45
if(k<0): k+=1440
print(f"45분 앞당긴 알람 시간: \"{k//60}시 {k%60}분\"")
- randint를 활용하여서 시간은 0~23까지를 랜덤으로 지정해주고 분은 0~59까지 지정해준다.
- k에는 시간을 분으로 변경하여서 k에 저장해준다.
- 만약에 k가 0보다 작다는 것은 0시 0분 보다 작다는 의미이기 떄문에 1440분 (24시)를 더해준다.(-1시간으로 나오는 대신 23시간으로 바꾸어주기 위함)
- k는 분이기 때문에 60으로 나눈 몫을 시간, 나머지를 분으로 출력해주면 완성된다.
- 이 코드가 무조건 정답은 아니지만 알아두면 좋음?
4)
- 정수를 입력받는데 정수를 입력받을 때는 다음과 같은 경우가 존재한다.
한 자리 수만 입력 가능
홀수만 입력가능
- 만약 조건에 성립한다면 다음 예시처럼 출력해 준다.
정수 입력: 3
1^2 + 2^2 + 3^2 = 14
- 다음과 같이 출력한 이후에는 프로그램을 종료한다.
예시
정수 입력: 4
홀수를 입력하세요.
정수 입력: 11
한 자리수만 입력 가능합니다.
정수 입력: 7
1^2 + 2^2 + 3^2 + 4^2 + 5^2 + 6^2 + 7^2 = 140
최종 코드
더보기
while(True):
sum=0
n=int(input("정수 입력: "))
if(n//10!=0): print("한 자리수만 입력 가능합니다.\n")
elif(n%2==0): print("홀수를 입력하세요.\n")
else:
for i in range(1,n+1):
sum+=i*i
if(i<n):print(f"{i}^{2} + ",end="")
else: print(f"{i}^{2} = ",end="")
print(f"{sum}\n")
break
- 정수가 한 자리수가 아니면 "한 잘수만 입력 가능합니다" 라는 문구를 띄운 후에 다시 정수를 입력받는다.
- 만약 정수가 한 자리수지만 짝수라면 "홀수를 입력하세요" 라는 문구를 띄운 후에 다시 정수를 입력받는다.
- 1~n까지의 숫자를 제곱하고 난 후 전체 합을 출력해준다. 이때 조심할 부분은 맨 마지막에 +기호가 아니라 =기호를 출력해야한다.
회고
- 대학교 프로그래밍 시험은 단순히 구현을 어떻게 할지도 중요하지만 띄어쓰기나 기호 같은 디테일도 굉장히 중요하다는 교훈을 얻을 수 있었다...(30/29)
'python study' 카테고리의 다른 글
| 숭실대 프로그래밍 기말 고사(2024-2) (0) | 2025.01.14 |
|---|---|
| 숭실대 프로그래밍 중간 고사(2024-1) (0) | 2024.06.20 |
| 숭실대 프로그래밍 기말 고사(2024-1) (1) | 2024.06.14 |