목표
- 변수와 상수가 무엇인지 알아 보자.
- 프로그래밍 언어에서 변수를 사용하기 위해 이름을 짓는 규칙에 대해 알아 보자.
컴퓨팅 사고력
한비네 가족은 모처럼 중국집에서 외식을 하기로 하였다. 출발 전 메뉴는 다음과 같이 결정하였다. 엄마 : 오랜만에 우동이 먹고 싶네요. 한나 : 전 볶음밥이 좋아요! 한비 : 중국집 하면 짜장면이죠~ 아빠 : 난 짬뽕 그런데 식당에 가면서 마음이 변해서 다음과 같은 순서로 메뉴를 정하였다. 각자 마지막으로 결정한 메뉴는 무엇일까? 아빠 : 아니다. 난 한나가 선택한 음식으로 주문해야겠다. 한나 : 그럼 전 한비가 선택한 음식으로 주문할래요. 한비 : 흠. 전 아빠가 선택한 음식으로 주문할게요. |
문제출처) 창의적인 문제해결 능력을 키워주는 IT퍼즐
문제풀이)
출발하기 전 한나가 선택한 메뉴는 볶음밥 이었으므로 아빠가 최종 선택한 메뉴는 볶음밥이 된다.
한비가 선택한 메뉴는 짜장면이었으므로 한나가 선택한 메뉴는 짜장면이 된다.
아빠가 선택했던 메뉴는 짬뽕이었지만 현재 한나가 선택했던 볶음밥을 선택했으므로 한비는 볶음밥이 된다.
생각해보기)
여기서 흔히 실수하는 일이 한비가 마지막에 아빠가 선택한 음식을 선택하는 경우 출발전 아빠가 선택했던 짬뽕을 생각하게 된다.
하지만 컴퓨팅 사고력에서 순차적으로 생각을 하면 다음과 같이 진행됨을 볼수 있다.
1) 엄마 = 우동
2) 한나 = 볶음밥
3) 한비 = 짜장면
4) 아빠 = 짬뽕
5) 아빠 = 한나선택메뉴 = 볶음밥
6) 한나 = 한비선택메뉴 = 짜장면
7) 한비 = 아빠선택메뉴(현재 시점의 메뉴는 볶음밥이다.) = 볶음밥 이 된다.
이러한 문제는 컴퓨터 언어에서 변수의 처리 방법에 관한 문제입니다.
변수란 변하는 수를 의미합니다.
위에서 엄마,한나,한비,아빠가 선택하는 메뉴가 선택할때 마다 바뀌는 것과 마찬가지로 임의의 값을 선택할 때마다 바뀌는 값을 의미합니다.
여기서 엄마,한나,한비,아빠 는 선택하는 메뉴의 값을 갖게 되는 변수의 이름에 해당하는데요~
변수의 이름을 만드는 규칙은~
파이썬,자바,C언어 모두 다음과 같은 규칙을 가지고 있습니다.
- 알파벳('A'~'Z','a'~'z')
- 숫자(0~9) : 단 변수명을 만들때 맨 앞에 사용할 수 없다.
- 특수문자 중 언더바('_') 사용가능
- 해당 언어에서 사용하는 키워드는 사용불가능
(단, 파이썬에서는 한글을 사용해서도 변수명을 만들수 있지만 실제로 프로그래밍을 하는 분들이라면 한글변수명 보다는 영문 변수명을 권해드립니다.^^)
그렇다면 변수와 상수는 어떻게 다른것일까요?
변수와 상수
- 변수 : 변하는 수를 저장하는 그릇 개념
- 상수 : 고정된 수를 저장하는 밀봉된 박스 개념
사용법
변수를 선언하여 값을 변경하는 예제
- C/C++/Java
int val; //변수를 선언한다.
val = 1; //변수에 1을 대입한다.
val = val + 1; //현재 값에 1을 더해서 다시 자신에 대입한다.
- Python
val=1 #val이라는 변수를 선언해서 1을 대입한다.
val=val+1 #val 이라는 변수에 1을 더해서 저장한다.
자료형(데이터 타입)
변수 선언 시 유의점
- 변수는 쓰이기 전에 선언을 해 주어야 한다.
- C/C++/Java/Python 은 대,소문자를 구별한다.(예 대문자 A와 소문자 a는 서로 다른 변수이다.)
- 변수는 숫자로 시작 할 수 없으며 공백 또는 특수문자를 사용할 수 없다.(단, '_'는 사용 가능)
- 키워드는 사용할 수 없다.
상수 사용법
- C/C++
#define one 1 //one 이라는 문자열을 1이라는 숫자로 정의 했음
const int one = 1; //one 이라는 변수를 const를 이용하여 상수형으로 고정했음
C/C++에서는 #define으로 정의해서 사용하는 방법과 const 로 변수를 상수로 고정하는 방법이 있음
- Java
public static final Integer one = 1; //one이라는 변수를 final로 고정하였음
- Python
- Python은 상수를 만드는 방법은 별도로 없지만 대문자를 이용해서 실수하지 않도록 한다.(예 PI=3.14)
결론
변수와 상수를 살펴 보았습니다.
변수는 그 시점에 값을 임시로 가지고 있는 기억장치라고 보시면 됩니다.
상수는 흔히 우리가 원주율(3.141592.....) 와 같이 고정되어 있으며 이 값이 변경이 된다면 계산값도 많이 틀려지게 되는 경우 고정값으로 사용하기 위해 사용하게 됩니다.(하지만 아쉽게도 파이썬에는 상수형 변수가 없어서 임의로 글래스를 생성해서 getter 함수만 만들고 setter함수를 만들지 않는 형식으로 사용하기도 합니다.)
===================================================
이 문서는 원당컴퓨터 학원에서 학생들과 같이 공부하기 위해 작성된 문서입니다.
오늘도 최선을 다하는 우리 학생들을 응원합니다.
인천 서구 검단신도시 원당컴퓨터학원
'프로그래밍언어문법(C,C++,Python,JAVA)' 카테고리의 다른 글
프로그래밍언어 문법 목차 (0) | 2024.03.18 |
---|---|
1.5 아스키코드(ASCII CODE) (3) | 2021.04.13 |
1.4 서식문자 (4) | 2021.03.08 |
2.1 알고리즘이란? (4) | 2021.02.05 |
1.1 프로그래밍 언어란? (9) | 2021.01.29 |