본문 바로가기

내가 꾸는 꿈

변수형, 변환문자, 간단한 계산기 만들기 #1[노베이스 게임개발 11일차]

반응형

이번시간에는 먼저 다양한 변수형에 대해서 알아보았다.

 

 

bool : 1byte, 참 거짓만 판단.

char : 1byte, -128~127의 숫자를 저장 대부분의 문자나 문자열을 저장하는데 유용하게 사용한다.

int : 4byte, -2,147,483,648 ~ 2,147,483,647의 숫자를 저장한다. integer의 약자로 정수를 의미한다.
컴퓨터에서 가장 빨리 수행할 수 있는 정수의 연산 단위이다.

float : 4byte, 소수점수를 저장한다. 원래는 사용하는 수의 끝에 f를 붙여야 하지만 c / c++에서는 자동으로 처리해 주므로 쓸 필요는 없다.

double : 8byte, 소수점수를 저장하며 2배 정밀도를 갖는 소수점수이다. float보다 표현범위가 더 넓다.

 

 

 

이렇게 여러 가지 변수형을 가지는 이유는 컴퓨터의 공간이 한정되어 있고 그것을 쓸데없이 낭비할 필요가 없기 때문이다.

컴퓨터는 이진법에 기반해 있기 때문에 십진법의 연산을 하게 된다면 근사치로 연산하게 되기 때문이다.

 

 

이외에도 더 많은 변수형이 많지만 추후 계속해서 배워나갈 예정이다.

 

그다음으로는 변환문자에 대해 알아보았다.

 

char에서 숫자형태로 출력하기 위해서는 %d를 

문자 형태로 출력하기 위해서는 %c를 이용한다. %c를 이용하면 아스키코드에 기반하여 문자를 숫자로 인식하여 처리하게 된다.

이때 모든 문자를 일일이 아스키코드로 출력하기는 비효율적이므로 '따옴표'를 이용하여 출력을 편하게 할 수 있다.

 

%d는 정수형 출력이다 %와 d 사이에 0을 넣으면 0으로 자리를 채워서 출력할 수 있다.

%f 사이에 .2를 이용해 자릿수를 조절할 수 있다. 또 %d에서 처럼 0을 넣으면 앞에 0을 채워서 출력할 수 있게 된다.

 

 

이제 연습 프로그래밍을 통해 지금까지 배운 것들을 종합하고 복습하자.

 

*사용자로부터 실수형 변수 1과 실수형 변수 2를 입력받고 문자 '+' '-' '*' '/' '%'를 연산자로 입력받아 해당 연산을 수행하는 계산기를 만들어 주세요. 실수부의 숫자는 소수점수 3자리까지 출력하며 if가 아닌 switch구문을 활용해 주세요.

 

 

 

먼저 값을 입력받을 함수들을 먼저 정의해 주었다.

float는 계산할 수를 입력받을 예정이고 char는 연산자를 입력받을 예정이다.

그리고 각각 함수들은 메인함수 뒤로 빼기로 하였다.

 

그다음 메인함수에서 입력받은 수를 계산할 변수들을 각각 선언해 주고 그 변수들에 입력받은 값들을 넣어 주었다.

 

이번 코드에서는 if문 말고 switch문을 사용하라고 했으므로 사용해 보았다.

char를 이용해서 연산자를 받을 예정이므로 %c를 이용해 아스키코드로 숫자를 받아 input3에 넣음으로써 각각 연산자에 해당하는 숫자를 입력받을 수 있게 되었다.

그리하여 각 case에 숫자를 대입하였는데 처음에는 +에 해당하는 43, -에 해당하는 45 등등을 숫자로 찾아서 입력하였는데

저번시간에 배운 것처럼 따옴표를 이용하면 굳이 아스키코드를 찾지 않아도 간단하게 값을 대입할 수 있었다.

 

그리하여 +, -, *, / 은 그림과 같이 간단하게 입력할 수 있었다.

하지만 어째서인지 %는 아무리 해도 오류가 떠서 일단 보류해 두기로 하고 나머지 코드를 진행하였다.

 

switch문의 마지막으로 default를 이용하여 연산자를 잘 못 입력한 경우에 대한 문구를 출력하도록 마무리를 지었다.

그런 다음 아까 말한 것처럼 메인함수 뒤에 각 값을 입력받을 수 있는 함수들을 입력하였는데

 

float는 소수점까지 입력할 수 있도록 %f를 이용해 값을 입력받았고

char는 각 연산자에 해당하는 아스키코드를 받을 수 있게 %c를 이용하였다.

 

이때 float와 char에 공통적으로 input이 들어갔는데 서로 다른 브라켓에 존재하므로 서로 영향을 끼치지 않은 모습이다.

 

글이 길어져서 다음 포스팅에서 내가 최대한 만들어본 프로그램을 강의와 비교하며 보완과 최적화를 할 것이다.

 

후기:

처음으로 직접 그럴듯한 프로그램을 만들어 보는 시간이었는데 쉬워 보였지만 생각보다 오류가 계속해서 발생해 왔다.

아무리 간단해 보이는 프로그램이라도 쉽게 생각해서는 안 되겠다. 그리고 작은 부분부터 꼼꼼히 배우고 기억해야 다른 오류를 만났을 때 잘 해결할 수 있는 능력을 기를 수 있을 것 같다.

 

 

*본 포스팅은 학생의 입장에서 쓴 글로 정확하지 않을 수 있으며 댓글로 피드백해 주시면 감사하겠습니다.

클래스 101 개발자 라라 님의 강의를 통해 학습한 내용을 기반으로 두고 있습니다.

반응형