흠 너무 거창하다 자료구조와 사칙연산이라.....
이걸 또 초보자에게 어케 설명해야 할까? ㅠㅠ
우선 컴퓨터로 계산기를 만든다고 하자..
실제 프로젝트에서는 훨~~씬 어려운 연산들이 많이 들어간다.
일단 개념적으로 쉬운 계산기와 그리고 보너스로 성적 구하는 프로그램을 만들어보자.
아직까지는 프로그램에 대한 감이 오질 않았을 것으로 본다.
요번회를 통해서 왜 프로그램을 해야 하는지?
설계란 놈은 왜 필요한지를 배워보겠다...
집을 지으려면 우선 건축물에 대한 설계부터 이루어져야 한다.
아파트 인지 한옥인지 다세대 건물인지가 먼저 결정되어야 하고 각 종류마다 다른 설계 도면이
먼저 완성되어야 한다. 그러면 이 설계 도면을 가지고 실제 현장에서 빼대부터 시작해서 최종
내장재의 마무리까지 이어진다. 시공이 끝났으면 분양이 이루어지고 사람 사는 곳이 된다.
다 사람을 위해서 만드는 것이다.
프로그램도 마찬가지이다 다 사람을 위해서 만드는 것이다.
어렵고 그럴싸한 말이 아키텍쳐라는 용어가 있다. 쉽계 플어쓰자면 설계도면을 말하는 것이다.
건축에 비유하면 뼈대는 이렇게 하고 각 방은 어떤 구조로 만들며 난방은 또 전기배선은
어떻게 하고 마무리는 어떻게 할지를 정하는 것이다.
바로 이것을 잘 해야 한다. 그래야 진정 프로그래머가 되고 아키텍쳐가 되는 것이다.
기존 프로그래머 중에는 이것이 특히 약한 사람들이 많다. 일단 코딩부터 들어가는 사람들이
있다. 진~~짜 많다 장수하려면 이런 마인드는 버려야 한다. 이 직종에서 1%내에 들어간다면
뭐 할 말은 없지만 1%내의 사람도 결국은 이 설계를 잘해야 장수하는 것 같다.
뭐 이정도로 서론이나 개념 또는 프로그램에 대한 장기적인 설계 관점에서의 설명은 마치고
본격적인 프로그램의 개념으로 다시 넘어가자.
C/C++은 미리 정의된 일정한 언어이다.
입력을 받아 계산하고 출력을 보여주는 모든 과정을 일정한 언어로 만드는 작업이다.
이제 이 언어를 하나씩 살펴보자.
먼저 입력, 계산 , 출력중에 계산 즉 더하기 빼기 같은 것을 하기 위한것 부터 알아보자.
1더하기 3은 4이다. 간단하다.
하지만 컴퓨터에서 이 산수를 하기위해서는 방(메모리)이라는 개념을 사용해야한다.
자 방이 예를 들어 1억개가 있다고 치자.... 그냥 가정하자고....
주소는 0번부터 999999999 까지 일련번호가 있고 각각의 방에 이름표를 붙일수 있다고 본다.
그럼 1이 들어갈 방 이름을 'aa' 라 하고 3이 들어갈 방 이름을 'bb'라 하고 연산 결과인
4가 들어갈 방 이름을 'cc'라고 하면
컴퓨터 프로그램에서는
aa=1;
bb=3;
cc = aa + bb;
라고 하면 cc의 방에는 이쁘게 4라는 값이 들어간다.
위와 같이 프로그램을 하기 위해서는 자료 구조란 놈과 친해져야 한다.
자료구조는 우선 변수와 변수 타입이라는 개념을 알아야 한다.
변수라는 것은 숫자를 담는 그릇이나 방(메모리)이라고 보면 되고,
변수 타입 즉 방에 들어갈 종류를 변수 타입이라하며 정수 실수 문자열등이 있다.
위의 예제를 다시 정확하게 써보자
long aa;
long bb;
long cc;
aa=1;
bb=3
cc=aa+bb;
여기서 aa는 정수 숫자가 들어갈 수 있는 방 즉 정수용 변수 이름이고,
bb도 정수 숫자가 들어갈 수 있는 정수용 변수 이름이고,
cc 역시 정수 숫자가 들어갈 수 있는 정수용 변수 이름이다.
변수에 대한 정의는 더 많지만 일단 요 세가지를 보자.
1. 정수 형
-2, 0, 5, 244, 65535 등의 숫자를 말한다.
char, short, long, int 은 음수가 포함된 것이고
unsigned char, unsigned short, unsigned long, unsigned int는 음수가 없는 것이다.
변수 타입 |
크기 바이트 |
최소값 |
최대값 |
비고 |
char |
1 |
-128 |
127 |
|
short |
2 |
-32768 |
32767 |
|
long |
4 |
-2147483648 |
2147483647 |
|
int |
4 |
-2147483648 |
2147483647 |
32비트 컴퓨터인 경우 |
요즘 2017년 즈음에 신규로 나오는 컴퓨터는 99%이상 64비트 컴퓨터이다. 즉 크기가 8바이트 크기를 갖는다는 의미이다. unsigned 는 크기가 같고 음수가 없다고 보면됨 대시 최대값은 늘어난다. 일단 요기까지만 알아두자..
2. 실수 형
3.1415, -1.99 와 같은 실수를 말한다.
변수 타입 |
크기 바이트 |
최소값 |
최대값 |
float |
4 |
1.175494351e-38F |
3.402823466e+38F |
long |
8 |
2.2250738585072014e-308 |
1.7976931348623158e+308 |
3. 문자 형
문자하나도 하나의 숫자로 표시한다.
즉 char 변수를 사용하면 되고 문자여러개를 사용하는 문자열은 char변수 여러개를 사용하면 된다.
이제 사칙 연산에 대해 알아보자.
사칙연산은 말 그대로 더하기 빼기 곱하기 나누기를 말한다.
기호는 비슷하다 +-*/
예:) long aa = 1+3;
long bb = 3 - 2;
long cc = 4*5;
long dd= 30/5;
위의 방(메모리)에 대한 이름 즉 변수명은 다음과 같은 규칙으로 만들어야 한다.
- 영문자로 시작해야한다.
- 프로그램에서 사용하는 예약어 'if', 'for', 'long', 'main', '+', '%' 등은 사용할 수 없다.
전체 예제)
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[] )
{
}
출력결과:
this is second program
3*5=15, 5-3=2
프로그램 추가 설명)
즉 this is second program을 출력하고 바로 옆으로 출력하는 것이 아니라
다음 줄로 출력한다는 의미이다.
aa에 3을 넣는다는 의미이다 이제부터 3대신 aa를 사용하면 된다.
cc = aa*bb;
aa와 bb의 값을 곱한 결과 값을 cc에 넣는다. 즉 현재 cc에는 15가 들어가 있다.
bb에서 aa값을 빼고 그 결과를 dd에 넣는다. 즉 현재 dd에는 2가 들어가 있다.
%d 는 따옴표 뒤에 오는 변수를 대신해서 사용할 때 표시한다.
%d는 정수형 값을 표시할 때 사용하며, %d의 개수와 뒤의 변수 개수는 같아야 한다.
즉 첫번째 %d는 aa값을 표시하고, 두번째 %d는 bb의 값을 표시한다.
세번째 %d는 cc값을 표시하고, 여섯번째 %d는 dd의 값을 표시한다.
요번 정리는 요기까지~~~
'C/C++ 정리' 카테고리의 다른 글
3부 천리길도 한걸음 부터 부제- 메인 함수 설명 (0) | 2010.06.10 |
---|---|
2부 잘난 얼굴 구경하기 부제-컴파일 해보기 (0) | 2010.05.25 |
1부 프로그램의 첫 걸음. 부제 - 프로그래머의 준비물 (0) | 2010.05.25 |
내 맘대로 C/C++ 정리 목차 (0) | 2010.05.21 |
내 맘대로 C/C++ 정리 카테고리를 만들다. (0) | 2010.05.21 |