Click here to load reader

Sangwook Lee Deogi High Schooledpia.net/info/materials/3-3.pdf4 3-1 프로그래밍환경(p122) •프로그래밍언어의종류를설명할수있다. •프로그래밍언어의개발환경및특징을이

  • View
    8

  • Download
    0

Embed Size (px)

Text of Sangwook Lee Deogi High Schooledpia.net/info/materials/3-3.pdf4 3-1 프로그래밍환경(p122)...

  • 정보

    Sangwook LeeDeogi High School

  • III 문제 해결과 프로그래밍

    1 추상화

    2 알고리즘

    3 프로그래밍

  • 3

    3 프로그래밍

    3-1 프로그래밍 환경3-2 변수와 자료형3-3 연산자3-4 표준 입출력과 파일 입출력3-5 제어 구조의 활용3-6 배열의 활용3-7 함수의 활용

  • 4

    3-1 프로그래밍 환경 (p122)

    • 프로그래밍 언어의 종류를 설명할 수 있다.

    • 프로그래밍 언어의 개발 환경 및 특징을 이

    해할 수 있다.

    학습 목표

  • 5

    • 프로그램(program)

    – 컴퓨터가 해야 될 일을 지시한 명령어들의 집합

    – 스마트폰, 태블릿PC 등에서는 ‘앱’이라는 용어를 사용

    프로그래밍의 이해

  • 6

    프로그램이란

    알고리즘을 작성

    알고리즘이란?

    문제를 해결하기 위한 구체적인 절차

    데이터를 표현 하고,

    그렇게 표현된

    데이터를 처리 하는 것

    자료 구조를 작성

    자료 구조란?

    자료를 효율적으로이용할 수 있도록저장하는 방법

  • 7

    프로그램이란

    데이터를 표현한다는 것=

    자료 구조를 작성한다는 것=

    자료 저장 방법을 결정한다는 것=

    자료 저장 형태와입출력 방식을 결정한다는 것

  • 8

    • 프로그래밍 (programming)

    – 주어진 문제를 해결하기 위해 컴퓨터 프로그램을 만들고 실행하는전 과정

    – 절차

    • 문제 분석 → 입출력 설계 → 알고리즘 설계 → 코딩 → 프로그램 실행

    ★ 코딩 (coding)

    – 주어진 문제를 해결하기 위해 설계한 자료구조와 알고리즘을 특정한 프로그래밍 언어를 사용하여 작성하는 것

    – 좁은 의미의 프로그래밍

    프로그래밍의 이해

  • 9

    • 프로그래밍 언어 (programming language)

    – 컴퓨터에게 작업을 지시하기 위해 만든 언어

    – 종류

    • 저수준 언어: 어셈블리

    • 고수준 언어: BASIC, C, C++, JAVA, SCRATCH

    [1] 저급 언어와 고급 언어 (p123)

  • 10

    • 저수준 언어 vs 고수준 언어

    [1] 저급 언어와 고급 언어 (p123)

    고수준 언어 저수준 언어

    • 사람이 이해하기 쉬운 언어

    • 처리(번역) 속도가 느림

    • 프로그램 작성이 쉬움

    • 호환성 높음

    → 다양한 CPU에서 실행

    • 기계가 이해하기 쉬운 언어

    • 처리(번역) 속도가 빠름

    • 프로그램 작성이 어려움

    • 호환성 낮음

    → 특정 CPU에서만 실행

    C Language Assembly Language Machine Language

  • 11

    • 언어 번역 프로그램

    – 코딩 결과(소스 코드)를 기계어(실행 파일)로 변환하는 프로그램

    – 종류

    • 저수준 언어 번역 프로그램: 어셈블러

    • 고수준 언어 번역 프로그램: C 컴파일러, JAVA 컴파일러 등

    [2] 언어 번역 프로그램의 종류 (p123)

  • 12

    • 컴파일러 vs 인터프리터

    – 컴파일러

    • 소스 코드를 한꺼번에 어셈블리 코드나 실행 가능한 기계어로변환

    – 인터프리터

    • 소스 코드를 한 줄씩 실행 가능한 기계어로 변환 후 바로 실행

    [2] 언어 번역 프로그램의 종류 (p123)

  • 13

    • 파이썬(Python)이란

    – 네덜란드 프로그래머인 귀도 반 로섬이 1991년에 발표

    – 지금은 파이썬 소프트웨어 재단에서 관리

    [3] 파이썬 프로그램 개발 환경 (p124)

    Guido van Rossum

    https://gvanrossum.github.io/

  • 14

    • 파이썬 언어의 특징

    – 변수를 선언하지 않고 사용 가능

    – 들여쓰기를 통해 블록 구분

    – 풍부한 라이브러리 제공

    [3] 파이썬 프로그램 개발 환경 (p124)

    라이브러리(library)란…미리 만들어 놓은 함수의 집합

    블록이란…관련 있는 문장들의 묶음으로처리 범위를 결정하는 단위

    라이브러리를 활용하면프로그램을 간결하고 빠르게 작성 가능

  • 15

    ★ 라이브러리(library)

    – 유용한 함수를 미리 만들어 모아 놓은 것

    ★ 함수(function)

    – 특정 기능을 수행하는 작은 프로그램

    ★ 모듈(module)

    – 관련된 함수를 포함하고 있는 파일

    [3] 파이썬 프로그램 개발 환경 (p124)

    라이브러리에 있는 함수를 사용하기 위해서는함수를 포함하고 있는 모듈을 불러오면 됨

  • 16

    ※ IDE

    – Integrated Development Environment(통합개발환경)

    – 에디터, 편집, 컴파일, 실행 등 프로그램 개발에 필요한 모든 기능을 통합적으로 제공하는 소프트웨어

    [3] 파이썬 프로그램 개발 환경 (p124)

  • 17

    • IDLE

    – Integrated Development and Learning Environment

    – 파이썬의 기본 IDE

    – IDLE의 두 가지 창

    [3] 파이썬 프로그램 개발 환경 (p124)

    셸 창편집 창

  • 18

    • IDLE 편집 창 띄우는 방법

    ① 바탕화면 또는 시작 메뉴에서 IDLE 실행하여 셸 창 띄움

    [3] 파이썬 프로그램 개발 환경 (p124)

  • 19

    • IDLE 편집 창 띄우는 방법

    ② 셸 창에서 [File]–[New File] 선택하여 편집 창 띄움

    [3] 파이썬 프로그램 개발 환경 (p124)

  • 20

    1. 편집 창에서 소스 코드 작성

    [예제] 30명의 학생 발표 순서 정하기 (p124)

    import random

    nums = [n for n in range(1,31)]random.shuffle(nums)

    print("발표 순서: ")print(nums)

  • 21

    2. [File]-[Save] 선택하여 바탕 화면에 “발표 순서”로 저장

    [예제] 30명의 학생 발표 순서 정하기 (p124)

    1

    2

    3

  • 22

    3. [Run]-[Run Module] 선택하여 프로그램 실행

    [예제] 30명의 학생 발표 순서 정하기 (p124)

  • 23

    • 소스 코드 설명

    [예제] 30명의 학생 발표 순서 정하기 (p124)

    import random

    nums = [n for n in range(1,31)]random.shuffle(nums)

    print("발표 순서: ")print(nums)

    random 모듈을불러온다

    1부터31 직전까지값을차례로nums에저장한다

    random 모듈에포함된shuffle( ) 함수를이용

    하여nums에저장된숫자들을 무작위로섞는다

    화면에“발표순서: ”를표시한다.

    nums에들어있는숫자들을모두출력한다

  • 24

    • 터틀(turtle) 모듈

    – 직선, 원, 도형 등을 사용하여 그림을 그리는 모듈

    • 터틀 모듈 불러오는 방법 2가지

    [3] 파이썬 프로그램 개발 환경 (p125)

    import turtle

    from turtle import *

    or

    https://docs.python.org/3/library/turtle.html

  • 25

    • 터틀 모듈의 명령어

    – forward(x) / backward(x)

    • x픽셀만큼 전진 / x픽셀만큼 후진

    – left(x) / right(x)

    • 왼쪽으로 x도 회전 / 오른쪽으로 y도 회전

    – circle(x)

    • 반지름이 x픽셀인 원을 그림

    – pencolor(‘x’)

    • 선의 색상을 x색으로 설정 (예) red, blue, green, …

    – clear() / home()

    • 화면 지움 / 거북이를 처음 위치로 이동

    [3] 파이썬 프로그램 개발 환경 (p125)

  • 26

    [예제] 정삼각형 그리기 (p125)

    ?from turtle import *forward(200)left(120)forward(200)left(120)forward(200)

  • 27

    [예제] 정육각형 그리기 (p125)

  • 28

    [예제] 정육각형 그리기 (p125)

    from turtle import *

    forward(100)left(60)forward(100)left(60)forward(100)left(60)forward(100)left(60)forward(100)left(60)forward(100)left(60)

    from turtle import *

    n = 0while n < 6:

    forward(100)left(60)n = n + 1

    만약, n=n+1 이 없다면? 무한 반복!

    조건식

    반복 문장

  • 29

    3 프로그래밍

    3-1 프로그래밍 환경3-2 변수와 자료형3-3 연산자3-4 표준 입출력과 파일 입출력3-5 제어 구조의 활용3-6 배열의 활용3-7 함수의 활용

  • 30

    3-2 변수와 자료형 (p126)

    • 자료형의 종류와 특성을 설명할 수 있다.

    • 변수를 활용하여 프로그램을 작성할 수 있다.

    학습 목표

  • 31

    • 변수란

    – 프로그램을 실행할 때 필요한 자료(값)를 저장하는 공간

    [1] 자료의 종류와 특성 (p127)

  • 32

    • 변수에 값을 넣는 방법

    [1] 자료의 종류와 특성 (p127)

    변수명 = 값;

    (예)

    C 또는 JAVA의 경우

  • 33

    • 변수 선언이란

    – 변수를 사용하기 전에 미리 만드는 것

    • 변수 선언 방법

    [1] 자료의 종류와 특성 (p127)

    자료형 변수명;

    ex) int x;

    자료형이란…변수에 저장하는 값의 형태로서 int(정수), float(실수) 등이 있음

    → 정수를 저장하는 변수 x를 만드시오~

    C 또는 JAVA의 경우

  • 34

    [1] 자료의 종류와 특성 (p127)

    파이썬에서는…선언 과정 없이 변수를 바로 사용 가능!

    int n;

    n = 123;

    n = 123

    C 코드 Python 코드

  • 35

    • 자료형이란

    – 변수에 저장하는 값의 형태

    • 자료형의 종류

    – 정수형

    – 실수형

    – 문자열형

    – 리스트

    – 튜플

    – 딕셔너리

    [1] 자료의 종류와 특성 (p127)

  • 36

    • 자료형의 종류

    – 정수형(int)

    예) 3 / 92

    – 실수형(float)

    예) 3.14 / 11.27

    – 문자열형(str)

    예) “abc” / “이상욱”

    – 리스트(list)

    예) [10, 20, 30] / [“abc”, “def”] / [7.2, “목요일”]

    [1] 자료의 종류와 특성 (p127)

    문자열형은 반드시…큰따옴표나 작은따옴표로 묶어야 됨

    name = sangwook (X)name = ‘sangwook’ (O)

    리스트 값은 여러 값들의 묶음 형태로서서로 다른 종류의 값들의 묶음도 가능

  • 37

    • 공통점

    – 여러 자료들을 하나의 이름으로 연속적으로(일렬로) 저장하는 공간

    배열 vs 리스트

  • 38

    • 차이점

    배열 vs 리스트

    배열 리스트

    서로 다른 자료형 저장 불가능 가능

    전체 크기(자료 저장 공간 수)

    고정 가변

    기억 장소 저장 형태 연속 비연속

  • 39

    • 변수명이란

    – 변수를 구분하기 위한 변수의 이름

    • 변수명 작성 규칙

    – 첫 번째 문자는 영문자, 한글, ‘_’만 가능

    – 두 번째 문자부터는 영문자, 한글, ‘_’, 숫자 가능

    – 공백과 하이픈(-)은 사용 불가

    – 대소문자를 구분

    예) num과 Num은 다른 변수

    – 예약어 사용 불가

    예) for = 27 (×)

    [2] 변수의 활용 (p128)

    예약어(reserved word)

    if, while 등과 같이프로그램에서 사용하기 위해미리 만들어 놓은 단어

  • 40

    • 변수명 작성 권장 사항

    – 저장된 값의 의미를 알 수 있는 이름을 사용할 것

    • abc (×)

    • num (△)

    • name (○)

    – 여러 단어로 이루어진 경우, 가독성을 높이기 위해 이어지는 단어의 첫 번째 문자를 대문자로 작성할 것

    • studentname (×)

    • student_name (△)

    • studentName (○)

    [2] 변수의 활용 (p128)

  • 41

    • 변수 str1과 str2에 문자열을 저장하고 출력한 후, 두 변수의 값을 교환한 후 다시 출력하는 프로그램을 작성하시오

    [예제] 변숫값 교환 (p128)

    str1 = You need Python.

    str2 = Life is too short,

    str1 = Life is too short,

    str2 = You need Python.

  • 42

    1. IDLE 실행

    바탕화면 또는 시작 메뉴에서 IDLE 실행

    2. 편집 창 띄우기

    셸 창에서 [File]-[New File]

    ☞ 단축키:

    [예제] 변숫값 교환 (p128)

    만약, 기존 편집 창이 띄워져 있으면기존 편집 창에서 [File]-[New File]

  • 43

    3. 코드 작성

    [예제] 변숫값 교환 (p128)

    str1 = "You need Python."

    str2 = "Life is too short,"

    print("str1 =", str1)

    print("str2 =", str2)

    temp = str1

    str1 = str2

    str2 = temp

    print("str1 =", str1)

    print("str2 =", str2)

    임시 변수 temp를 사용하여 str1과 str2의 값을 교환하는 소스 코드

  • 44

    4. 저장

    ① [File]-[Save]

    ② 파일명 입력 후 저장

    5. 번역 및 실행

    [Run]-[Run Module]

    ☞ 단축키:

    [예제] 변숫값 교환 (p128)

  • 45

    • 동일한 소스 코드

    [예제] 변숫값 교환 (p128)

    str1 = "You need Python."

    str2 = "Life is too short,"

    print("str1 =", str1)

    print("str1 =", str2)

    str1, str2 = str2, str1

    print("str1 =", str1)

    print("str1 =", str2)

    임시 변수를 사용하지 않고 str1과 str2의 값을 교환하는 소스 코드

  • 46

    • 프로그램 실행 후 각 변수의 최종값을 적으시오

    스스로 해결하기 (p128)

    num1:

    num2:

    sum:

    200

    300

    500

    sum = 0

    num1 = 100

    num1 = num1+100

    num2 = 300

    sum = num1+num2

  • 47

    • 변수 name의 자료형이 출력되도록 프로그램을 완성하시오

    스스로 해결하기 (p129)

    My name is 홍길동

    ※ str: 문자열 자료형

    name = "홍길동"

    print("My name is", name)

    type(name)print(type(name))

    실행 결과

  • 48

    • 다음 프로그램의 실행 결과는?

    스스로 해결하기 (p129)

    pi = 3.14

    area = 5 * 5 * pi

    print(type(area))

    실행 결과

    ※ float: 실수 자료형

  • 49

    • 다음 프로그램의 실행 결과는?

    스스로 해결하기 (p129)

    thisYear = 2016

    myBirthYear = "2000"

    age = thisYear - myBirthYear

    print(age)

    TypeError: unsupported operand type(s) for -: 'int' and 'str'

    실행 결과

  • 50

    3 프로그래밍

    3-1 프로그래밍 환경3-2 변수와 자료형3-3 연산자3-4 표준 입출력과 파일 입출력3-5 제어 구조의 활용3-6 배열의 활용3-7 함수의 활용

  • 51

    3-3 연산자 (p130)

    • 다양한 연산자의 종류와 기능을 설명할 수 있다.

    • 연산자를 활용한 프로그램을 작성할 수 있다.

    학습 목표

  • 52

    • 연산자란

    – 자료에 어떤 작업을 지시하는 기호

    • 연산자 종류

    – 산술 연산자

    – 비교 연산자

    – 논리 연산자

    [1] 다양한 연산자의 종류 (p131)

  • 53

    • 산술 연산자

    – 덧셈, 뺄셈, 곱셈, 나눗셈을 하는 연산자

    • 산술 연산자 종류

    [1] 다양한 연산자의 종류 (p131)

    연산자 기능 사용 예

    + 덧셈 3 + 5 →

    - 뺄셈 3 - 5 →

    * 곱셈 7 * 4 →

    / 나눗셈 7 / 4 →

    % 나머지 7 % 4 →

    8

    -3

    28

    1.75

    3

  • 54

    • 비교 연산자

    – 값을 비교하여 참(True), 거짓(False)을 판별하는 연산자

    • 비교 연산자 종류

    [1] 다양한 연산자의 종류 (p131)

    연산자 기능 사용 예

    < 작다 11 < 14 →

    > 크다 11 > 14 →

    = 14 →

    == 같다 11 == 14 →

    != 같지 않다 11 != 14 →

    True

    False

    True

    False

    False

    True

  • 55

    • 논리 연산자

    – 참(True), 거짓(False) 값에 대하여 논리 연산을 하는 기호

    • 논리 연산자 종류

    [1] 다양한 연산자의 종류 (p131)

    연산자 기능 사용 예

    and 논리곱 True and False →

    or 논리합 True or False →

    not 논리 부정 not True →

    False

    True

    False

    연산에 사용되는 값과 연산의 결과 값이 모두참(True)과 거짓(False)으로만 이루어진 연산

  • 56

    • 집합 개념으로 논리 연산 설명하기

    – AND: 교집합

    – OR: 합집합

    – NOT: 여집합

    [1] 다양한 연산자의 종류 (p131)

    True AND False → False

    어떤 집합 A에는 포함되고 다른 집합 B에는 안 포함되는 자료는… A∩B에 안 포함됨

    True OR False → True

    어떤 집합 A에는 포함되고 다른 집합 B에는 안 포함되는 자료는… A∪B에 포함됨

    NOT True → False

    어떤 집합 A에 포함되는 자료는… A⊂에 안 포함됨

  • 57

    • 아이디와 패스워드를 입력 받아서 미리 저장된 값과 비교하여 일치여부를 판단하는 프로그램을 작성하시오.

    [예제] 아이디와 패스워드 검사 (p132)

    >>>

    ====================

    아이디: python

    패스워드: 1234

    True

    True

    True

    >>>

  • 58

    • 세부 기능

    – 아이디와 패스워드를 입력 받음

    – 아이디 일치하면 True, 불일치하면 False 출력

    – 패스워드 일치하면 True, 불일치하면 False 출력

    – 아이디, 패스워드 모두 일치하면 True, 하나라도 불일치하면False 출력

    [예제] 아이디와 패스워드 검사 (p132)

  • 59

    1. IDLE 실행

    바탕화면 또는 시작 메뉴에서 IDLE 실행

    2. 편집 창 띄우기

    셸 창에서 [File]-[New File] 선택

    ☞ 단축키:

    [예제] 아이디와 패스워드 검사 (p132)

    만약, 기존에 사용했던 편집 창이 띄워져 있으면편집 창에서 [File]-[New File] 선택

  • 60

    3. 코드 작성

    [예제] 아이디와 패스워드 검사 (p132)

    id = "python"

    pw = "1234"

    answer1 = input("아이디: " )

    answer2 = input("패스워드: " )

    print(id == answer1)

    print(pw == answer2)

    print(id == answer1 and pw == answer2)아이디와 패스워드가 모두 일치했을 때 True를 출력하는 코드

  • 61

    4. 저장

    ① [File]-[Save]

    ② 파일명 입력 후 저장

    5. 번역 및 실행

    [Run]-[Run Module] 선택

    ☞ 단축키:

    [예제] 아이디와 패스워드 검사 (p132)

  • 62

    • 사용자가 금액을 입력하면 해당 금액을 최소한의 지폐 개수로 나타내는 프로그램을 작성하시오.

    [스스로 해결하기] 최소 지폐 개수 출력 (p133)

    (예)사용자가 128,000원 입력하면…

    5만원 2장, 1만원 2장, 5천원 1장, 1천원 3장을 출력

    >>>

    =========

    Total Money: 128000

    50000원: 2장, 10000원: 2장, 5000원: 1장, 1000원: 3장

    >>>

  • 63

    • 세부 기능

    – 금액을 키보드로 입력 받음

    – m50000 변수에 5만원 지폐 최대 개수 저장

    – m10000 변수에 1만원 지폐 최대 개수 저장

    – m5000 변수에 5천원 지폐 최대 개수 저장

    – m1000 변수에 1천원 지폐 개수 저장

    – 각각의 변숫값 출력

    [스스로 해결하기] 최소 지폐 개수 출력 (p133)

  • 64

    • 소스 코드

    [스스로 해결하기] 최소 지폐 개수 출력 (p133)

    money = int(input("Total Money: "))

    m50000 = money 50000

    money = money 50000

    m10000 = money 10000

    money = money 10000

    m5000 = money 5000

    money = money 5000

    m1000 = money 1000

    money = money 1000

    print("5만원: %d장, 1만원: %d장, 5천원: %d장, 1천원: %d장" %

    (m50000, m10000, m5000, m1000))

    /

    %

    /

    %

    /

    %

    /

    %

    문자열(str) 형을 정수(int) 형으로 변환

    m50000에 2.56 저장

    money에 28000 저장

    128000 입력 했다고 가정하면…

    m10000에 2.8 저장

    money에 8000 저장

    m5000에 1.6 저장

    money에 3000 저장

    m1000에 3.0 저장

    money애 0 저장

    5만원 최대 지폐 수 저장

    5만원으로 나눈 나머지 저장

    1만원 최대 지폐 수 저장

    1만원으로 나눈 나머지 저장

  • 65

    3 프로그래밍

    3-1 프로그래밍 환경3-2 변수와 자료형3-3 연산자3-4 표준 입출력과 파일 입출력3-5 제어 구조의 활용3-6 배열의 활용3-7 함수의 활용

  • 66

    3-4 표준 입출력과 파일 입출력 (p134)

    • 표준 입출력과 파일 입출력의 개념과 필요성을 설명

    할 수 있다.

    • 표준 입출력과 파일 입출력을 활용하여 문제를 해결

    할 수 있다.

    학습 목표

  • 67

    [1] 프로그램 처리 과정 (p135)

    데이터 입력

    알고리즘에 의한 처리

    데이터 출력

  • 68

    • 표준 입출력이란

    – 표준 입력 (장치)로부터 자료를 입력 받고, 표준 출력 (장치)에 자료를 출력하는 것

    • 파이썬의 표준 입출력 함수

    – 표준 입력 함수

    • input()

    – 표준 출력 함수

    • print()

    [2] 표준 입출력 (p135)

    일반적으로표준 입력 장치는 키보드이고 표준 출력 장치는 모니터이며

    표준 입력 장치와 표준 출력 장치는 변경 가능

  • 69

    • print()

    – 괄호 안의 문자열이나 변숫값을 화면으로 출력하는 역할

    – 문자열을 출력하려면 작은따옴표 또는 큰따옴표를 사용하고 변숫값을 출력할 때에는 변수명 사용

    – 출력하고자 하는 값이 여러 개인 경우에는 콤마로 구분

    [2] 표준 입출력 (p135)

    good_day = "좋은 하루"

    print(good_day,"보내세요!")

    콤마로 구분된 각각의 값 사이에는공백 한 개가 추가되어 출력

  • 70

    • input()

    – 문자열을 화면에 출력한 후 키보드로부터 문자열을 입력 받는 역할

    – 출력할 문자열은 작은따옴표 또는 큰따옴표로 묶음

    – 입력 받은 문자열을 저장하기 위해 변수와 등호를 함께 사용

    – 입력 받은 문자열을 정수로 변환하기 위해서 int() 함수를 사용

    [2] 표준 입출력 (p135)

    age = input("나이를 입력해 주세요.")

    print(20-int(age), "년 후면 20살이시네요!")

    콤마 뒤의 공백은 의미 없음

  • 71

    [예제] 영화 관람료 출력 (p135)

    >>>

    ====================

    안녕하세요? 티켓 금액은 7000 원입니다.

    영화를 관람하실 인원을 입력해 주세요: 30

    예매하실 인원은 30 명, 총 금액은 210000 원입니다.

    >>>

    영화 관람 인원을 입력 받고총 금액을 출력하는 프로그램

  • 72

    • 프로그램 세부 기능

    – 티켓 금액 출력

    – 관람 인원 입력

    – 관람 인원 및 총 금액 출력

    [예제] 영화 관람료 출력 (p135)

    >>>

    ====================

    안녕하세요? 티켓 금액은 7000 원입니다.

    영화를 관람하실 인원을 입력해 주세요: 30

    예매하실 인원은 30 명, 총 금액은 210000 원입니다.

    >>>

  • 73

    • 소스 코드

    [예제] 영화 관람료 출력 (p135)

    fee = 7000

    print("안녕하세요? 티켓 금액은", fee, "원입니다.")

    num = input("영화를 관람하실 인원을 입력해 주세요: ")

    total = fee * int(num)

    print("예매하실 인원은",num,"명, 총 금액은",total,"원입니다.")

  • 74

    • 파일 입출력이란

    – 파일로부터 자료를 입력 받고, 파일에 자료를 출력하는 것

    • 파이썬의 파일 입출력 함수

    – 파일 열기 함수

    • open()

    – 파일 입력 함수

    • read(), readline()

    – 파일 출력 함수

    • write()

    – 파일 닫기 함수

    • close()

    [3] 파일 입출력 (p136)

  • 75

    • 파일 입출력 함수의 종류 및 사용 방법

    [3] 파일 입출력 (p136)

  • 76

    [예제] 영화 예매 프로그램 (p136)

    영화 제목을 입력해주세요: 이미테이션 게임

    티켓 비용을 입력해주세요: 7000

    영화 제목: 이미테이션 게임

    티켓 비용: 7000

    입력 받은 영화 제목과 티켓 비용을파일에 저장한 후

    파일 내용을 읽어서 출력하는 프로그램

  • 77

    • 프로그램 세부 기능

    – 영화 제목, 티켓 비용을 키보드로부터 입력 받음

    – 입력 받은 영화 제목, 티켓 비용을 파일에 씀

    – 영화 제목, 티켓 비용을 파일로부터 읽음

    – 읽은 영화 제목, 티켓 비용을 화면에 출력

    [예제] 영화 예매 프로그램 (p136)

    영화 제목을 입력해주세요: 이미테이션 게임

    티켓 비용을 입력해주세요: 7000

    영화 제목: 이미테이션 게임

    티켓 비용: 7000

  • 78

    • 소스 코드

    [예제] 영화 예매 프로그램 (p136)

    title = input("영화 제목을 입력해주세요: ")

    fee = input("티켓 비용을 입력해주세요: ")

    f1 = open("movie.txt", "w") #파일에 쓰기(출력) 위해 파일 열기

    f1.write(title + "\n")

    f1.write(fee)

    f1.close()

    f1 = open("movie.txt", "r") #파일로부터 읽기(입력) 위해 파일 열기

    title = f1.readline()

    fee = f1.readline()

    f1.close()

    print("영화 제목:", title)

    print("티켓 비용:", fee)

    movie.txt 파일의 첫 줄에 title 값을, 둘째 줄에 fee 값을 쓰는 코드

    movie.txt 파일의 첫 줄을 읽어 title에, 둘째 줄을 읽어 fee에 저장하는 코드

  • 79

    3 프로그래밍

    3-1 프로그래밍 환경3-2 변수와 자료형3-3 연산자3-4 표준 입출력과 파일 입출력3-5 제어 구조의 활용3-6 배열의 활용3-7 함수의 활용

  • 80

    3-5 제어 구조의 활용 (p138)

    • 순차, 반복, 선택 구조를 활용한 프로그램을 작성할

    수 있다.

    • 중첩 제어 구조를 활용한 프로그램을 작성할 수 있

    다.

    학습 목표

  • 81

    • 제어 구조(control structure)란

    – 작업 처리(실행) 흐름을 표현하는 프로그램 속 문장 구조

    제어 구조

    프로그램의 처리 흐름 유형 3가지

    프로그램을 작성하는 과정은… 제어 구조를 만들어 가는 과정!

  • 82

    • 제어 구조 종류

    – 순차 구조: 처리 순서가 한 방향으로 진행되는 구조

    – 선택 구조: 조건에 따라 처리 순서가 다르게 진행되는 구조

    – 반복 구조: 조건을 만족하는 동안 처리가 반복하여 진행되는 구조

    제어 구조

    순차 구조 선택 구조 반복 구조

  • 83

    제어 구조의 필요성

    우리가 프로그램을 작성하다 보면…특정 문장을 선택하여 실행하거나,

    특정 문장을 반복적으로 실행하고 싶은 경우가 있음

    A) 학생의 총점을 학생 수 만큼 반복하여 계산!

    A) 석차 백분율에 따라 등급을 선택하여 출력!

    Q) 여러 문장 중 한 문장을 선택해야 되는 경우?

    Q) 특정 문장을 반복해야 되는 경우?

  • 84

    제어 구조의 필요성

    이때 선택 또는 반복 제어 구조를 만들면위에서부터 아래로 순차적으로 진행되는

    프로그램 실행 흐름을 변경할 수 있음

    선택 구조 반복 구조순차 구조

  • 85

    • 제어문

    – 조건에 따라 특정 문장을 선택하여 실행하거나, 특정 문장을 반복적으로 실행하는 제어 구조를 만드는 명령문

    • 제어문 종류

    – 선택문

    • 선택 구조를 만드는 명령문

    • 예: if, switch

    – 반복문

    • 반복 구조를 만드는 명령문

    • 예: for, while

    제어문이란

  • 86

    • 구조적 프로그램

    – 순차, 선택, 반복 구조를 포함하는 프로그램

    • 구조적 프로그램의 장점

    – 프로그램의 구조가 간결

    ☞ 이해하기 쉬움

    ☞ 수정하기 쉬움

    ☞ 많은 기능을 구현하기 쉬움

    구조적 프로그램이란

  • 87

    3 프로그래밍

    3-1 프로그래밍 환경3-2 변수와 자료형3-3 연산자3-4 표준 입출력과 파일 입출력3-5 제어 구조의 활용3-6 배열의 활용3-7 함수의 활용

  • 88

    3-6 배열의 활용 (p148)

    • 배열의 개념과 표현 방법을 설명할 수 있다.

    • 배열을 활용하여 프로그램을 작성할 수 있다.

    학습 목표

  • 배열

    • 배열이란

    – 연속적인 기억 장소에 동일한 형식의 자료들을 저장하는 자료 구조

    – 여러 자료들을 하나의 배열 이름으로 저장

    – 배열 내 각각의 저장 공간은 첨자로 구분

    – 저장된 자료들에 대하여 반복적인 작업을 할 때 매우 효율적

    89

    “배열도 넓은 의미로는 변수!”

    http://leeside.tistory.com/31http://leeside.tistory.com/31

  • 배열

    • 배열의 장점

    – 동일 형식과 성격을 가진 자료들의 저장 공간을 만들기 쉬움

    90

    왜냐하면 배열은…여러 저장 공간을 하나의 이름으로 표현하기 때문!

    변수로 만들기 배열로 만들기

    int 김○○;

    int 이☆☆;

    int 박♡♡;

    int 정보[3];

  • 배열

    • 배열의 장점

    – 동일 형식과 성격을 가진 자료들을 저장하기 쉬움

    91

    왜냐하면 배열은…여러 저장 공간을 첨자로 구분하기 때문!

    변수에 입력하기 배열에 입력하기

    김○○ = 70;

    이☆☆ = 90;

    박♡♡ = 80;

    정보[0] = 70;

    정보[1] = 90;

    정보[2] = 80;

  • 92

    • 배열의 장점

    – 반복문을 함께 사용하면 간결한 작업 처리가 가능

    배열

    5를 더하기 (순차 구조) 5를 더하기 (반복 구조)

    정보[0] = 정보[0] + 5;

    정보[1] = 정보[1] + 5;

    정보[2] = 정보[2] + 5;

    :

    :

    정보[28] = 정보[28] + 5;

    정보[29] = 정보[29] + 5;

    for (x=0; x

  • 93