1 of 28

정보사회와소프트웨어

Information Society & Software

Aaron Snowberger

전주교육대학교 • 070137 • 정보사회와소프트웨어

4주차: 자료형과 연산, 변수 익히기

Scratch!

pp. 80-107

2 of 28

4주차

자료형과 연산, 변수 익히기

04

04-01 자료형, 연산, 변수 �04-02 지역 변수와 전역 변수�04-03 구조적 자료형: 배열과 리스트

3 of 28

04-01 자료형, 연산, 변수

자료의 개념

자료 data 는 컴퓨터 프로그램이

  1. 읽고,
  2. 수정하고,
  3. 출력하는

모든 재료를 의미합니다.

컴퓨터 프로그램은 이런 다양한 자료에 대해

  1. 입력,
  2. 연산,
  3. 저장,
  4. 출력

등의 작업을 수행합니다.

4 of 28

04-01 자료형, 연산, 변수

자료형의 개념과 종류

자료를 종류별로 구분하기 위해 자료형 data type 이라는 개념을 사용합니다.

  • - 1, 0, 1, 100과 같은 정수형 integer
  • —1.5, —0.7, 0.5, 2.0과 같은 실수형 real-number
  • ‘가’, ‘A', ‘1’, ‘$'와 같은 문자형 character
  • "Apple", "banana", "stop!", “고양이’’와 같은 문자열 형 string
  • 참 또는 거짓 값을 구분하는 불린 형 boolean

자료형은 자료의 종류뿐 아니라 자료에 수행할 수 있는 연산operation도 포함하는 개념입니다.

5 of 28

04-01 자료형, 연산, 변수

스크래치의 자료형 구분하기

스크래치는 최대한 자료형을 신경 쓰지 않게 도와줍니다. 스크래치 블록들 중 자료 입력 창을 포함하는 것들이 있습니다. 이런 블록들의 자료 입력 창은 타원형(oval) 또는 마름 모형(rhombus)으로 구분됩니다.

따라서 스크래치 사용자는 특별히 자료형에 대한 고민 없이 이 규칙대로 자료를 사용하면 됩니다.

스크래치에서 자료 입력 창을 사용할 때 주의할 점은 숫자만 입력해야 할 창에 문자열의 자료/변수 블록을 조립할 수 있다는 것입니다.

6 of 28

04-01 자료형, 연산, 변수

연산의 종류

스크래치는

  • 사칙연산,
  • 관계연산,
  • 논리연산
  • 외에도

프로그래밍할 때 유용하게 사용할 수 있는 다양한 수학 연산들과 문자열 연산들을 제공합니다.

이와 같은 연산에 관련된 블록들은 [코드] 탭 ―[연산] 메뉴에 있습니다.

7 of 28

04-01 자료형, 연산, 변수

변수의 개념

변수는 자료에 의미를 부여하는 역할을 합니다.

프로그래밍의 대부분의 작업은 변수를 대상으로 논리적 관계를 따지거나 수학적 계산을 수행하는 것입니다. 예를 들어, "국어 점수와 수학 점수를 더하는 프로그램”을 만들 수 있습니다.

변수를 생성할 때는 다음 두 가지 사항에 유의합니다.

  • 자료의 의미를 잘 반영한 변수 이름 정하기
  • 변수에 할당될 자료의 자료형과 동일한 변수형 사용하기

8 of 28

04-01 자료형, 연산, 변수

변수의 종류

스크래치는 [코드] 탭의 각 메뉴에 해당 메뉴의 기능과 관련된 변수를 제공합니다.

9 of 28

04-01 자료형, 연산, 변수

변수 생성하고 활용하기

스크래치가 제공하는 변수 외에 프로그램에 필요한 변수들은 프로그래머가 직접 생성할 수 있습니다.

스크래치의 모든 변수는 스프라이트나 무대에 소속되어야 합니다. 따라서 변수를 생성할 때 스프라이트나 무대를 먼저 선택하고 그에 속하는 변수를 생성합니다.

10 of 28

04-01 자료형, 연산, 변수

변수 생성하고 활용하기

변수 생성 과정에서 이 변수를 자신이 속한 스프라이트에서만 사용할지 아니면 모든 스프라이트가 공용으로 시용할지를 결정합니다.

스크래치는 변수가 생성되면 그 변수를 조작할 다양한 기능의 문장 블록들도 함께 생성합니다.

11 of 28

04-01 자료형, 연산, 변수

주석의 개념

프로그램의 주석 comment은 프로그램을 이해하는 데 필요한 내용을 담은 메모로, 소스 프로그램 안에 들어 있습니다.

컴파일러나 인터프리터는 주석을 무시하기때문에 프로그램을 실행하는 데는 어떤 영향도 주지 않습니다.

자신이 작성한 프로그램도 오랜 시간이 지나 다시 보면 생소하게 느껴지는 경우가 많기 때문에, 주석은 다른 사람뿐 아니라 자신을 배려하는 수단이며 프로그래밍의 필수 작업으로 간주되고 있습니다.

12 of 28

04-01 자료형, 연산, 변수

주석 활용하기

스크래치에서는 모든 블록마다 여러 행의 주석을 달 수 있습니다. 그리고 주석을 접거나 펼칠 수 있고 삭제도 할 수 있습니다.

13 of 28

04-02 지역 변수와 전역 변수

지역 변수와 전역 변수의 개념

프로그래밍 언어는 변수의 유효 범위scope라는 개념을 사용해 변수를 사용할 수 있는 범위를 조정합니다.

변수는 자신의 유효 범위로 정해진 영역 내에서만 사용가능하며 유효 범위 밖에서는 해당 변수의 값을 읽는다거나 수정하는 작업이 차단됩니다.

변수의 유효 범위는 기본적으로 해당 변수가 생성된 장소로 한정됩니다. 이렇게 유효 범위가특정 장소로 한정된 변수를 지역 변수local variable 라고 합니다.

14 of 28

04-02 지역 변수와 전역 변수

지역 변수와 전역 변수의 개념

전역 변수global variable는 지역 변수와 달리 프로그램의 모든 장소에서 접근하여 그 값을 읽고 변경할 수 있습니다.

전역 변수가 생성될 수 있는 공용 장소를 별도로 제공하는 경우가 많은데, 스크래치의 경우 무대가 그런 공용 장소입니다.

15 of 28

04-02 지역 변수와 전역 변수

지역 변수와 전역 변수의 개념

스크래치에서는 스프라이트와 무대에서 변수를 생성할 수 있습니다.

  • 지역 변수 : 스프라이트의 지역 변수는 [이 스프라이트 에서만 사용] 메뉴로 생성합니다. ��이 지역 변수는 생성된 스프라이트 내부에서만 활용되고 다른 스프라이트와 무대에서는 활용할 수 없습니다.�
  • 전역 변수 : 스크래치에서 전역 변수를생성하는방법은두가지입니다. 하나는 스프라이트의 변수를 생성할 때 [모든 스프라이트에서 사용] 메뉴로 생성하는 방법이고, 다른 하나는 무대의 변수로 생성하는 방법입니다. ��전역 변수는 유효 범위가 프로그램 전체이기 때문에 모든 스프라이트와 무대에서 활용할 수 있습니다.

16 of 28

04-02 지역 변수와 전역 변수 (Do it!)

지역 변수와 전역 변수 생성하기

스크래치에서 지역 변수와 전역 변수를 생성해보겠습니다. 사과를 추가하고, 고양이에 속한 지역 변수 [고양이 이름]을 생성합니다. 이어서 사과로 전역 변수인 [사과 색깔]을 생성합니다.

17 of 28

04-02 지역 변수와 전역 변수 (Do it!)

지역 변수와 전역 변수 생성하기

앞의 작업을 완료한 후 [스프라이트/무대 관리 창]에서 고양이, 사과, 무대를 각각 선택하여 활용 가능한 변수를 살펴봅니다.

18 of 28

04-02 지역 변수와 전역 변수 (Do it!)

지역 변수와 전역 변수 생성하기

이제 [무대 배경]이란 이름의 무대 변수를 생성한 후, 고양이와 사과에서 활용 가능한 변수를 다시 확인합니다.

19 of 28

04-02 지역 변수와 전역 변수 (Do it!)

지역 변수와 전역 변수 생성하기

이제 [무대 배경]이란 이름의 무대 변수를 생성한 후, 고양이와 사과에서 활용 가능한 변수를 다시 확인합니다.

20 of 28

04-03 구조적 자료형: 배열과 리스트

구조적 자료형의 개념

지금까지 살펴본 자료형은 변수명으로 사용될 때 변수가 그 자료형에 속하는 하나의 값만 할당받을 수 있었습니다.

이렇게 변수형으로 사용될 때 변수가 하나의 자료만 할당받을 수 있는 자료형을 기본 자료형 simple data type 이라 합니다.

보통 프로그래밍 언어는 여러개의 자료를 하나의 단위로 효율적으로 처리할 수 있는 구조적 자료형 structured data type을 제공하고 있습니다. 구조적 자료형은 기본 자료형과 달리 하나의 변수에 여러 개의 자료를 할당할 수 있습니다.

21 of 28

04-03 구조적 자료형: 배열과 리스트

배열의 개념

배열 array은 동일한 자료형의 원소(자료)들에 순서를 매겨 나열한 집합으로 가장 기본적인 구조적 자료형입니다.

배열에는 원소의 위치를 구별하는 연산이 필요한데, 일반적으로 배열 변수 이름 다음에 []를 붙여 원소의 위치를 표시합니다.

여기서 주의할 점은, 일반적으로 배열의 위치를 0부터 세기합니다.

22 of 28

04-03 구조적 자료형: 배열과 리스트

리스트의 개념

리스트는 여러 개의 자료를 일정한 순서에 따라 나열한 구조입니다.

리스트는 배열과 마찬가지로 동일한 자료형의 자료들을 담을 수 있으며 일반적으로:

  • 리스트 끝에 원소 추가하기,
  • 특정 위치에 원소 삽입/삭제하기,
  • 특정 위치의 원소의 값 검색하기,
  • 리스트의 원소 개수 구하기,
  • 특정 원소가 리스트에 존재하는지 검색하기

둥의 연산을제공합니다.

23 of 28

04-03 구조적 자료형: 배열과 리스트

리스트 생성하고 활용하기

스크래치는 구조적 자료형으로 리스트를 제공하는데 앞의 소개한 연산 외에 몇 가지 유용한 연산들을 추가로 제공합니다.

24 of 28

04-03 구조적 자료형: 배열과 리스트

리스트 생성하고 활용하기

프로그램을 실행하면 입력한 답변에 따라 [고양이 먹이들] 리스트의 원소가 달라지는 모습을 확인할 수 있습니다.

25 of 28

04-03 구조적 자료형: 배열과 리스트

리스트 생성하고 활용하기

프로그램을 실행하면 입력한 답변에 따라 [고양이 먹이들] 리스트의 원소가 달라지는 모습을 확인할 수 있습니다.

26 of 28

27 of 28

28 of 28

Thanks!

Do you have any questions?

https://2023-aaronkr.github.io/jnue-iss

https://scratch.mit.edu/ (코딩 해보세요~~)

Please keep this slide for attribution

CREDITS: This presentation template was created by Slidesgo, including icons by Flaticon, infographics & images by Freepik