Skip to content

구조적 프로그래밍

프로그래밍 패러다임은 제품 생산 공정처럼 순차, 선택, 반복, 구조로 표현될 수 있다.

명령형 프로그래밍 패러다임의 하위 개념

  • 제어 흐름만으로 구성하는 프로그래밍 패러다임
    • 순차(sequence)구조
    • 선택(selection)구조
    • 반복(iteration)구조
  • 제어 흐름을 블록 단위로 계층화하고 지역화
  • 프로그램 실행 흐름이 간결하고 작은 규모로 조직화가 용기
  • 프로그램 예측 가능성과 검증 가능성을 보장

실행의 흐름을 주어지는 명령의 위치적 흐름에 따라 수행하는 구조

설계 → 생산 → 조립

  • 명령 라인 위에서 아래로 흐르는 가장 직관적인 구조
  • 다버깅 용이

설계, 결함 논리적 실수 또는 문법 오류로 프로그램이 의도한 대로 결과를 생성하지 못하는 상황

  • 구문 오류 (syntax error) 문법 체계에 적합하지 않는 명령문 입력 시 발생 프로그램이 실행되기 전, 인터프리터/컴파일러가 탐지
  • 실행 오류 (runtime error) 실행되지만 실행 중에 잘못된 상황 발생으로 프로그램이 중단되는 오류
  • 의미 오류 (semantic error) 프로그래머의 의도와 다른 잘못된 결과를 생성 논리적/의미적으로 잘못 해석되는 명령문 작성 시 발생

한 데이터를 다른 데이터 타입으로 변환
데이터 타입 변환 내장 함수

  • 문자열 : str()
  • 정수 : int()
  • 소수 : float()

여러 개의 데이터 단일 함수로 출력 가능

  • 파라미터로 데이터를 콤마(,)로 구분하여 입력
  • 데이터 사이에 공백(default)이 자동으로 추가
  • sep 옵션을 변경하여 공백 변경 가능

print(“상자에”, “사과가”, number, “개”, “들어있습니다.”) → 상자에 사과가 5 개 들어있습니다.
print(“상자에”, “사과가”, number, “개”, “들어있습니다.”, sep="") → 상자에사과가5개들어있습니다.

원뿔의 부피&겉넓이 계산 프로그램

Section titled “원뿔의 부피&겉넓이 계산 프로그램”
rad = int(input('반지름을 입력하세요 :'))
hei = int(input('높이를 입력하세요 :'))
sla = pow(rad ** 2 + hei ** 2, 0.5)
#부피 & 겉넓이 출력
vol = 1 / 3 * 3.14 * rad ** 2 * hei
suf = 3.14 * rad ** 2 + 3.14 * rad * sla
print("원뿔의 부피는 : ", str(vol) + "입니다.", sep='|')
print("원뿔의 겉넓이는 : ", str(suf) + "입니다." )

특정 영역 내의 명령문에 대한 실행 여부를 프로그램 실행 과정 중 조건의 참, 거짓에 따라 결정하는 구조

  • 동일한 입력에 대해 항상 같은 행동을 하는 게 아닌 상황에 따라 다르게 행동하게 만드는 지능의 시작
  • 오류 처리, 예외 상황 대응 등 프로그램의 안정성을 책임
if rad >= 0 and hai >= 0
# 모선 계산
sla = pow(rad ** 2 + hei ** 2, 0.5)
#부피 & 겉넓이 출력
vol = 1 / 3 * 3.14 * rad ** 2 * hei
suf = 3.14 * rad ** 2 + 3.14 * rad * sla
print("원뿔의 부피는", str(vol) + "입니다.")
print("원뿔의 겉넓이는", str(suf) + "입니다.")
  • 비교 연산자를 사용하여 결과가 불리언(Boolean) 타입으로 생성되는 표현식
  • 비교 연산자의 종류
연산자수학적 표현의미
<<작다.
<=작거나 같다.
>>크다.
>=크거나 같다.
===같다.
!=같지 않다.

표현식에 사용된 여러 연산자의 연산 순서를 결정

① 괄호 내부의 수식 ② 거듭제곱(**) 연산자 ③ 곱셈, 실수 나눗셈, 정수 나눗셈, 모듈로 연산자 (왼쪽에서 오른쪽 순서로 적용) ④ 덧셈, 뺄셈 연산자 - (왼쪽에서 오른쪽 순서로 적용) ⑤ 비교 연산자(<, <=, >, >=, ==, !=) ⑥ 할당 연산자

논리값인 참(Frue)과 거짓(False)의 값만 표현할 수 있는 데이터 타입

참, 거짓을 구별할 수 있는 명제를 대상으로 명제의 집합을 위해 고안한 연산자

  • 명제 : 참과 거짓 중 하나의 진리값만을 갖는 서술문
  • 불리언식에 작용하여 또 하나의 불리언 값을 산출하는 연산체계

두 개의 논리값을 연산하여 참 또는 거짓을 결과로 생성하는 연산자

  • and(논리곱), or(논리합), not(논리부정), 연산자 가용
  • 왼쪽에서 오른쪽의 방향으로 결합

두 논리값이 모두 True 일 때 True이고 어느 하나가 False일 경우 False를 반환

두 논리값이 모두 False일 때 False이고 어느 하나가 True일 경우 True 반환

단항 연산자로 논리값을 반전하여 False는 True로 True는 False로 반환

불리언식의 논리 연산 결과가 이미 결정되면, 전체 연산 결과를 도출하기 전 나머지 피연산자를 평가하지 않는 기법
대상 연산자: and, or

  • A and B : A가 False이면, B의 평가를 생략
  • A or B : A가 True면 B의 평가를 생략

이분 선택 구조의 구문 형식과 제어의 흐름

Section titled “이분 선택 구조의 구문 형식과 제어의 흐름”

if 불리언식 : 명령문 집합1 else : 명령문 집합2