본문 바로가기

정보교과서

[고등학교 정보교과서] 3-3-4. 제어 구조 활용 #2 - 씨마스

고등학교 정보교과서 3. 문제 해결과 프로그래밍 (3) 프로그래밍 Programming ④ 제어구조의 활용 #2 - 씨마스

고등학교 정보교과서 3. 문제 해결과 프로그래밍 (3) 프로그래밍 Programming ④ 제어 구조의 활용 #2 - 씨마스

 


 

중첩 제어 구조

평균 내신 등급 계산을 학기별로 해야 한다면, 구현한 전체 로직을 반복 실행해야 합니다.

순차, 조건, 반복 구조는 모두 중첩하여 사용이 가능합니다.

이전의 프로그램을 확장하여 학기별 평균 내신 등급 계산 프로그램을 작성해 봅시다.

학기는 최대 6학기까지 입력 가능
학기별 평균 내신 등급 = (단위 수 * 과목별 내신 등급의 합) / 학기 전체 단위 수
전체 평균 내신 등급 = 학기별 내신 등급 합 / 총 학기 수

학기별 평균 내신 등급 계산 프로그램 실행결과

전체 코드 보기

더보기
# 학기별 평균 내신 성적 프로그램
print('============ 학기별 평균 내신 등급 프로그램 ============')

totalUnit = 0
totalSum = 0
sumGrade = 0

totalTerms = int(input('계산할 학기 수 입력(1~6) > '))

for i in range(totalTerms) :

    print(i + 1, end = '')
    totalSub = int(input('학기 과목 수 입력 > '))

    for j in range(totalSub) :
        print(j + 1, '번째 과목')
        unit = int(input('단위 수 입력 > '))
        grade = int(input('등급 입력 > '))

        totalUnit += unit
        totalSum += unit * grade
    
    avgGrade = totalSum / totalUnit
    sumGrade += avgGrade

myGrade = sumGrade / totalTerms

level = ''
if myGrade <= 3 :
    level = '상위권'
elif myGrade <= 6 :
    level = '중위권'
else :
    level = '하위권'

printResult = int(input('수준 출력 여부(1 출력, 2 미출력) > '))
if printResult == 1 :
    print('전체 내신 등급은', myGrade, '입니다.')
    print('수준은', level, '입니다.')

합리적인 소비를 위한 경우의 수 계산 프로그램

합리적인 소비를 위한 경우의 수 계산 프로그램 실행결과

전체 코드 보기

더보기
# 합리적인 소비를 위한 경우의 수 계산 프로그램
print('============ 물건 개수 구하기 ============')

count = 0

for i in range(10) :
    for j in range(10) :
        sum = (i + 1) * 500 + (j + 1) * 1000
        if sum == 10000 :
            count += 1
            print('500원 %d개, 1000원 %d개' %(i + 1, j + 1))

print('경우의 수는 %d가지입니다.' %count)

 

숫자 맞히기 게임 프로그램

숫자 맞히기 게임 프로그램 실행결과

전체 코드 보기

더보기
import random;

# 숫자 맞히기 게임 프로그램
print('============ 숫자 맞히기 게임 프로그램 ============')

chance = 6
number = random.randint(1, 100)
correct = False

print('1~100 까지의 정수 중 컴퓨터가 생각한 숫자를 맞혀보세요.')
print('기회는 %d번입니다.' %chance)

for i in range(chance) :
    guess = int(input('숫자를 입력하세요 > '))

    if guess > number :
        print('%d보다 작습니다.' %guess)
    elif guess < number :
        print('%d보다 큽니다.' %guess)
    else :
        print('정답입니다!')
        print('%d번 만에 답을 맞혔습니다.' %i)
        correct = True
        break

if not correct :
    print('실패! 컴퓨터가 생각한 숫자는 %d입니다.' %number)

 

구구단 출력하기

구구단 출력하기 실행결과

전체 코드 보기

더보기
print('============ 구구단 프로그램 ============')

end = 0
while True :
    dan = int(input('출력할 단을 입력하세요 > '))
    if dan < 2 or dan > 9 :
        print('\t잘못 입력했습니다. 2~9 사이의 정수를 입력해주세요.')
    else :
        print(dan, '단')
    
    for i in range(1, 10) :
        print(dan, '*', i, '=', dan * i)
    
    end = int(input('종료하시겠습니까?(1:예, 2:아니오) > '))

    if end == 1 :
        break

print('프로그램을 종료합니다.')

 

타자 연습하기 프로그램

전체 코드 보기

더보기
import random
import time

print('============ 타자 연습하기 프로그램 ============')

word = ['정보 사회', '정보 보호', '저작권', '사이버 윤리', '자료', '정보', '추상화', '알고리즘', '제어 구조', '배열', '운영체제']

print('10초 이내에 5개의 단어를 정확하게 입력하면 승리합니다.')

input('(시작하려면 엔터를 입력하세요.)')
start = time.time()
for i in range(5) :
    print(i + 1, '번재 문제 :')
    test = random.choice(word)
    print(test)
    while True :
        type = input()
        if type == test :
            print('성공!')
            break
        print('다시 도전 > ')

end = time.time()

dur = end - start
print(f'총 걸린 시간은 {dur:.2f}초 입니다.')

if dur <= 10 :
    print('승리! 축하합니다.')

print('프로그램을 종료합니다.')

 

728x90