'프로그래밍'에 해당되는 글 126건

  1. 2015.02.27 5장 연산자
  2. 2015.02.27 4장 제어문
  3. 2015.02.27 3장 변수
  4. 2015.02.26 2장 프로그램의 구성 요소
  5. 2015.02.26 1장 프로그래밍 입문
  6. 2015.02.26 프로그래밍 공부 목차

기능별 종류

연산자

산술 연산자

+ - * / %

부호 연산자

+ -

대입 연산자

= 복합 대입 연산자

관계 연산자

== != <= < >= >

증감 연산자

++ --

포인터 연산자

* & []

구조체 연산자

. ->

논리 연산자

|| && !

비트 연산자

| & ~ >> <<

삼항 조건 연산자

? :

쉼표 연산자

,

sizeof 연산자

sizeof

캐스트 연산자

(type) type()

괄호 연산자

()

C++ 연산자

new delete :: .* ->*

 

좌변 값이란?

대입 연산자의 우변 -> 에는 상수 , 변수와 연산자들로 구성된 계산할 수 있는 표현 식이오지만.. 좌변에는 좌변 값(l-value : left value)만이 올 수 있다. 좌변 값이란 대입 연산자의 왼쪽에 올 수 있는 값으로.. 실제적인 메모리를 점유하고 있고 그 값을 바꿀 수 있는 대상이다.

연산자의 리턴 값

1 + 2 의 결과가 3이 되는 것은 사실 +가 연산의 결과를 리턴해주기 때문이다. 1과 2를 더한 값을 리턴해주기 때문에 값을 전달받을 수 있는 것이다.

복합 대입 연산자.

a = a+3;을

a += 3으로 줄여 쓸 수 있다. +나 - 연산자 외에도 * , / , ^ 연산자등 모두에 사용하는 것이 가능하다.

증감 연산자

++ , -- . 어셈블리 레벨의 조작을 하므로 빠르다. +=1이나 -=1은 컴파일러가 ++1과 --1로 치환하므로 별 차이는 없다.

관계 연산자

논리연산에 자주쓰인다.

논리 연산자

연산자

설명

!

논리 부정(Not)

논리식의 진위를 반대로 만든다.

&&

논리곱(And)

논리식이 모두 참이어야 참이다.

||

논리합(Or)

논리식 하나만 참이면 참이다.

 

!는 참 좋다. 어려운 내용도 !() 해서 쓰면 그만이다.

비트 연산자

연산자

설명

~

비트를 반전시킨다.

&

대응되는 비트가 모두 1 1이다.

|

대응되는 비트가 모두 0 0이다.

^

개의 비트가 달라야 1이다.

<<

지정한 수만큼 왼쪽으로 비트들을 이동시킨다.

>>

지정한 수만큼 오른쪽으로 비트들을 이동시킨다.

 

<< >> 는 쉬프트연산자라고도 부른다.

삼항 연산자

(조건식) ? 1:2  :  if문의 축소판. 조건이 맞으면 값1을, 틀리면 2를 반환한다.

쉼표 연산자

, 다. 연산자가 아닌 거 같지만 연산자다. 변수를 여러개 선언 할때 쓰인다.

sizeof 연산자.

sizeof(타입 또는 변수)

이 연산자는 피연산자로 주어진 타입 또는 변수의 크기를 계산한다. 피연산자로 int, double같은 타입을 쓸 수도 있고 변수를 쓸 수도 있으며 상수를 사용할 수도 있다. 아뭏든 괄호안에 있는 대상이 메모리를 얼마나 차지하고 있는지 계산한다.

캐스트 연산자

(int) 변수. 처럼 캐스팅한다. 타입을 바꿀 때 쓴다.

연산 우선순위

순위

연산자

결합순서

1

( ) [ ] -> .

왼쪽 우선

2

! ~ ++ -- + -(부호) *(포인터) & sizeof 캐스트

오른쪽 우선

3

*(곱셈) / %

왼쪽 우선

4

+ -(덧셈, 뺄셈)

왼쪽 우선

5

<< >>

왼쪽 우선

6

< <= > >=

왼쪽 우선

7

== !=

왼쪽 우선

8

&

왼쪽 우선

9

^

왼쪽 우선

10

|

왼쪽 우선

11

&&

왼쪽 우선

12

||

왼쪽 우선

13

? :

오른쪽 우선

14

= 복합대입

오른쪽 우선

15

,

왼쪽 우선

 

그냥 괄호 쓰는게 낫다.

결합 순서

결합 순서는 수식내에 같은 연산자가 있을 때 어디부터 우선 수행 할 것인지이다. 가령 예를 들자면

`a=b=c=3 이 대입문은 a, b, c 모두 3을 대입하는데 대입 연산자는 오른쪽 우선이다

산술변환

이항 연산시 양변의 타입이 다르면 큰 쪽으로 상승 변환된다. 그래야 가급적이면 정확한 계산을 할 수 있다.

대입 연산시 좌변의 타입을 따른다. 값을 대입받을 변수의 능력치를 초과할 수는 없기 때문에 대입되는 값이 변수보다 더 크면 잘라낸다.

함수 호출시 실인수와 형식인수의 타입이 다르면 형식인수의 타입을 따라간다. 함수 호출 과정에서의 인수 전달은 결국 대입 동작이기 때문에 2번 규칙과 같은 규칙이다.

캐스트 연산자를 사용하면 강제로 타입을 변환할 수 있다. 이 변환은 암시적인 산술 변환 규칙이 아니라 사용자가 직접 지정한 명시적 변환이다.

수식내에서 사용될 경우 char, unsigned char, enum형은 int형으로 자동 확장되며 float형은 double형으로 확장된다.

 

 

'프로그래밍 > 프로그래밍 공부' 카테고리의 다른 글

7장 기억 부류  (0) 2015.02.27
6장 함수  (0) 2015.02.27
5장 연산자  (0) 2015.02.27
4장 제어문  (0) 2015.02.27
3장 변수  (0) 2015.02.27
2장 프로그램의 구성 요소  (0) 2015.02.26
Posted by GENESIS8

댓글을 달아 주세요

프로그램을 실행할 명령들을 다룰 때 사용된다. 중요하다.


조건문

if문

주어진 조건에 따라 명령의 실행 여부를 결정하는 문장이다.


if( 조건 ) 과 같이 쓰며, 조건이 맞으면 명령을 수행한다.

비교연산자가 주로 활용된다.


{}로 블록을 활용하여 실행시킬 문장의 범위를 넓게 잡는 것도 가능하다.

if(x>3) 명령  보다는

if(x>3)

{

명령들..

명령들..

}

이 더 많은 작업을 처리할 수 있다.


else를 사용할 수 있는데, 특정 조건에 맞아야하는 if와 달리 맞지 않으면 다 성립한다.

if () { } else { } 와 같이 사용한다.


조금 더 나아가 else if가 있는데, if와 거의 같다고 보면되지만, 첫 번째 if가 거짓인 이후에야 순번이 오므로, 일단 if는 아닌데, 다른 조건을 만족하거나, 조금 덜 만족하거나.. 하는 경우 등에 쓰인다.



for문 반복문이다.

for(int i = 0; i < 10 ; i++)

{

}

로 굉장히 유명한 for문은 특정 조건이 성립하는 동안 반복시키기보다는 특정 횟수를 반복시키게 하고 싶은 경우에 주로 쓴다.

기본적으로는 i < 10 부분이 조건식이 되어 '조건식이 참인 동안 계속 실행하는 것이다.

역시 { } 부분에는 실행할 명령이 들어간다.

i++ 부분은 증감식으로 위의 경우 i값을 0부터 1씩 올리고 있기 때문에, 10번 올린 후에는 i < 10이 거짓이 되어 for문을 마치게 된다.


무한 루프하고 싶을 경우 for(;;) 처럼 아무런 조건도 없는 내용을 써주면 반복한다.

for문 안에 for문이 들어가는 것도 가능하다.


while문

반복문이다. for문과 100% 호환되며. for문으로 짠 코드는 모두 while문으로 변환하는 것이 가능하다. 다만 while문은 while(i<10) 처럼 조건식만을 넣고 선언되며.. 보통 특정 조건이 만족되는 동안~ 반복하려는 때에 많이 사용한다.


확장판으로 do while이 있는데, 이 경우 조건의 참 여부와는 상관없이 일단 한번은 실행한다.


do

{

}

while(); 과 같이 사용한다. do while의 경우 ;가 붙는다.



switch문

다중선택을 하고 싶을 때 사용한다. if문을 사용해서 받은 숫자가 뭔지 확인한다면? 10개의 숫자가 있을 경우 if문을 10번이나 쓰거나.. else if를 여러개 두는 수고를 해야한다. 그런 불편함을 해소해주는 다중 선택문이다.


switch(x)

case 0 : ~내용

break;

case 1 : ~내용

break;

처럼... 사용하며 여러가지 처리문에 대응하기 적절하다.

단, switch 문으로 평가할 수 있는 것은 정수형이다. float형이나 사용자 정의형 등은 판별할 수 없기 때문에 지양해야한다. enum문을 사용하기에 좋다.

case문 사이에 break를 넣지 않으면 break를 만날때 까지 선택지들을 실행하기 때문에..

break가 없이 1부터 10까지 만들어두었다면 10은 10의 내용만 실행되고 끝나겠지만, 1은 1부터 10까지 전부 실행될 수도 있다.


goto

컴파일러가 코드를 읽다가 goto문을 만나면, 지정한 곳으로 점프하게 하는 제어문이다. 그러나.. 잘 쓰지 않을 뿐더러 잘 쓰지 않는 것이 좋다.


break;

if문이나 for문 등의 제어 영역에서 탈출하게 해주는 코드이다. break를 만나면 그 아래에 실행할 내용등을 무시하고 해당 영역을 탈출한다.


continue

if문에는 사용되지 않고 for , while의 반복문에만 사용되는데, break가 해당 영역을 탈출한다면 continue는 해당 영역을 읽은 것으로 치고.. 넘어간다. while 안에 break가 있다면 해당 코드는 거기서 끝이지만, continue를 만난 것이라면, 한번은 실행했다 치고.. 바로 조건식 쪽으로 돌아간다.






'프로그래밍 > 프로그래밍 공부' 카테고리의 다른 글

6장 함수  (0) 2015.02.27
5장 연산자  (0) 2015.02.27
4장 제어문  (0) 2015.02.27
3장 변수  (0) 2015.02.27
2장 프로그램의 구성 요소  (0) 2015.02.26
1장 프로그래밍 입문  (0) 2015.02.26
Posted by GENESIS8

댓글을 달아 주세요

변수란?

이름은 변수. 변하는 수 지만, 단순히 수치값만 저장되는 것이 아니라. 문자열이나 포인터 같은 보다 복잡한 값도 변수에 해당된다. 사실 내부적으로는 0101..의 수치이기 때문에 변수 라는 표현만으로 명명하는 게 틀린 것은 아니기도하다.


변수란 컴퓨터에서 사용되는 '값' 혹은 '데이터'라고 할 수 있다.


컴퓨터의 주 기억 장치는 메모리이며, 컴퓨터가 하는 일이란 메모리에 기록된 값을 처리해서 입출력하는 것이다.

수 많은 기억 소자에 이름을 일일히 붙이는 것은 힘드므로.. 메모리의 위치를 구분하기 위해서 숫자로된 번지 (adress)라는 개념을 사용한다. 메모리를 구성하는 각 바이트들은 0부터 시작해서 40억까지(4gb의 경우)의 고유한 번지를 가지고 있으므로.. 이 번지를 대상으로 값을 읽거나 쓴다.


하지만 번지는 16진수로 된 수치 값이기 때문에.. 인간이 기억하고 사용하기에는 무리가 따른다. 0x183c7eda 번지에 저장되어 있다. 하는 식으로 기억하기는 힘들기 때문이다.

따라서 1000 번지부터 1004번지까지의 메모리 영역을 num이라고 선언하는 것이 변수를 명명하는 것이다.


int num; 이라는 선언은 특정한 메모리 영역의 번지로부터 4byte 공간을 할당받아 그 공간을 num이라고 부르게 되는 것이다.


변수명을 작성하는 데에는 일반적으로 몇가지 법칙이 있다고한다.


1. 의미를 잘 설명할 수 있는 이름을 짓는 것이 좋다. 사람의 이름이라면 name, 평균이라면 average 처럼. 읽기만 해도 의미를 알 수 있는 것이 좋다.

2. 변수명의 길이에는 제약이 없지만, 3 ~ 10자 내외로 작성하는 것이 좋다.

3. 대소문자 구성을 일관되게 작명하는 것이 좋다.

4. 변수명은 보통 짧은 영어 단어를 활용하는 것이 좋다.


변수의 종류

변수는 메모리의 위치를 기억한다.

num = 56이라는 문장을 컴파일러는 어떻게 생각할까?

num이 가리키는 번지를 56으로 바꾸어라

num이 가리키는 번지에 들어 있는 값을 56으로 바꾸어라.


num이 가리키는 번지에 들어 있는 값을 56으로 바꾼다가 맞다.

변수는 내부저4으로 번지에 대한 위치를 가리키지만.. 컴파일러는 변수를 번지에 기억된 값으로 참조한다. 변수의 실체는 번지가 아니라 번지에 기록된 값이다.


컴파일러가 변수를 통해 값을 참조하기 위해서는 단순히 그 위치만 알아서는 안된다. num을 읽어라 라고 했을 때. num의 1000번지로부터 어디까지 읽어야할지? 를 알아야하므로 num의 길이 또한 필요하다.


때문에 변수의 형태에 대해서 알아야한다.


변수는 저장된 메모리 위치와 함게 길이와 형태에 대한 정보를 가지는데, 이런 변수의 특성을 타입(type)이라고 한다.


C언어의 타입은 크게 기본형과 유도형으로 나뉜다.

 

구분

타입

설명

기본형

정수형

정수

문자형

문자

실수형

실수

열거형

가능한 값들에 대한 나열형

void

타입이 정해지지 않은 자료형

유도형

배열

같은 타입의 자료 집합

구조체

다른 타입의 자료 집합

공용체

메모리를 공유하는 자료 집합

포인터

대상체의 번지를 가리키는 타입

함수형

함수의 번지를 가리키는 타입

 

변수의 선언

변수를 사용하려면 먼저 선언해야한다. 선언(declaration)이란 컴파일러에게 앞으로 이런 이름을 가진 어떤 타이브이 변수를 사용하겠으니 준비해달라고 부탁하는 것과 같다.

변수는 처음 선언할 때 값을 입력하지 않으면 쓰레기 값이라는 의미없는 값을 가지게 된다.



서식 문자열


printf 나 scanf등을사용할때 f(format)에 사용된다.



1. 부호에 대한 수식어가 생략되면 signed가 적용되어 부호가 있는 것으로 선언된다.
2. int 앞에 수식어가 있을 경우 int를 생략할 수 있다. long int , unsigned int 등은 전부 int를 떼고 써도 된다.


정수 자료형은 컴퓨터가 무한한 수치를 표현할 수 없고, 단지 할당된 공간을 쪼개 쓰는 것 뿐이므로.. 자료형이 표현할 수 있는 수치 이상의 수치를 표현하려고 하면 수치가 잘려버리고, (올라간 자릿수가 버림이 되어버린다) 부호가 있는 경우.. 양수가 음수로 표현되는 오버플로우 현상이 발생한다.


문자형

문자를 표현하기 위한 자료형이다. 사실 정수이긴하다. 특정 숫자를 특정 문자로 생각하는 것이라 볼 수 있다. 통상적인 방식은 아스키(ASCII) 코드 방식이다.




문자열

's'와 "s"는 엄청난 차이가 있다. 's'는 문자 이고 "S"는 문자열 이기 때문이다.

문자열은 메모리의 끝에 \0 (백슬래시 0) 이라는 NULL문자 (문자의 끝을 알리는)가 들어가게 된다.  크기가 지정된 문자와는 달리 문자열에는 문자열의 끝을 의미하는 널 문자까지 문자를 읽어들여 그 문자를 받는 곳을 끝으로 하는 것을 규칙으로 하고 있다.

"로 시작해서 "로 끝나는데, 때문에 문자열내에서 "를 넣어서 사용하고 싶은 경우  \"로 표기해야 정상적으로 표기된다.


열거형(enumeration)

변수가 가질 수 있는 가능한 값을 나열해 놓은 타입이다.

어떤 변수가 가질 값을 특정 조건 이내로 한정하는 상황이라면 열거형을 유용히 사용할 수 있다. 예를 들어 이동할 방향을 숫자로 인식한다고 할 때.

enum { LIGHT = 0 , LEFT , UP, DOWN = 3 } moveDirection;


이제 moveDirection이라는 변수는 위의 4가지 값 중 하나 밖에 가지지 못한다. 그 이외의 값을 대입하는 것은 허락되지 않으므로.. 5번째 방향으로 갈 일은 없다. 멤버는 자연적으로 0부터 1씩 증가하여 번호가 매겨지는데, 위와 같이 해도 0 , 1, 2 , 3으로 정의된다.


열거형을 사용하는 장점은

1. 기억이 용이하다. 0번에는 무엇 1번에는 무엇 하는 것 보다는. 미리 지정해 놓은 ~~~에는 무엇 하는 식으로 정하는 것이 편하다. 0은 총무부 1은 인사부 2는 경리부 같이 외우기 보다는.. 그냥 그렇게 쓸 수 있으면 더 편하다.


2. 소스의 가독성이 높아진다.  위와 같은 맥락이기도 한데..

if(type == 총무부)가  if(type == 0)보다는 알아보기도 쉽고 간편하다.


3. 열거형은 정수형보다 안전하다. 위의 moveDirection의 경우. 저 4가지 값 중 하나 밖에 받지 못한다. 5번을 넣는다던지 MOVE 같은 값을 넣는 것은 허락되지 않는다. 그래서 잘못넣으면 바로 문제가 일어나 그것을 확인할 수 있다.


※ 열거멤버는 유일한 이름이므로 같은 이름이면 안된다. LEFT가 있는데 또 LEFT를 선언하는 행동은 해서는 안된다. 하지만 반대로.. 같은 번호를 여러 멤버가 공유하는 것은 가능하다. END가 똑같이 3번이라던지 이런 경우 이명(異名)처럼, 동일한 의미로 사용될 뿐 문제는 없다.


enum tags { LIGHT , FIRE , WATER , DARK };

tags elemental; 과 같이 사용하는 것도 가능하다.

미리 enum을 특정 타입과 같이 정의해놓고, 변수를 해당 타입으로 선언하여 사용하는 것이 가능한 것이다.


유도형

유도형은 기본형의 조합에 의해 만들어지는 타입이며, 기본형 변수 여러개를 모아서 또는 기본형을 변형하여 만드는 타입이다.


배열(array)

가장 흔하면서 실용적인 자료형. 같은 타입을 다수 가질 수 있다.

int array[10]와 같이 선언하며, []가 하나 잇으면 1차원 배열, 두 개 있으면 2차원 배열 하는 식으로.. 특정 자료형을 묶어서 여러개 선언해 놓은 것이다.

int array[10]의 경우 int가 10개 있는 것이고, array라는 배열 안에 그 10개가 관리되고 있는 상황이다.


array[0] .. array[1] 과 같은 식으로 만들어진 10개의 공간에 접근할 수 있으며, 시작은 0부터하기 때문에, 다루게 되는 공간은 자기가 선언한 값보다 1이 적다. (10 선언시 0부터 9까지)

학생이 천명 있을 때, 천명의 점수를 기록하려면 1000개의 변수 대신, int score[1000]; 으로 한번에 선언하고 쓸 수 있게 해주는 장점이 있다.


구조체(structure)

구조체는 배열과 달리, 서로 다른 타입을 묶어놓은 것이다. 심지어 묶어놓은 데이터 중에는 배열이 있을 수도 있다.


struct

{

  int number;

  float average;

  char name[10];

} student;


student.average 와 같이 데이터를 활용하며, 저 구조체를 배열로서 여러 개 만드는 것도 가능하다. 사실 위와 같이 선언하기보다는 typedef를 자주쓴다.


포인터

C를 강력한 언어로 만들어주는 기능이라고 한다. 어셈블리와 같은 시스템 수준의 프로그래미오 가능하게 해주며, 일반적인 변수가 수치값을 저장하는 반면 포인터는 주소 값을 저장한다.


int *ptr 과 같이 쓰는데, 포인터는 타입에 관계 없이 4바이트를 차지한다.

(char* 이건 double* 건 똑같이 주소를 저장하기 때문에..)


* : 포인터가 가리키는 번지의 값을 읽는다.

& : 변수가 기억되어 있는 메모리 번지를 읽는다.


*ptr은 ptr이 가리키는 곳의 값을 읽고,

ptr = &a는 a의 주소를 ptr에 넣어주는 것이다.


사용자 정의형

typedef int jungsoo;

와 같이 사용한다.


이미 존재하는 타입을 가지고 별명을 만들었다고 할 수 있다.



'프로그래밍 > 프로그래밍 공부' 카테고리의 다른 글

5장 연산자  (0) 2015.02.27
4장 제어문  (0) 2015.02.27
3장 변수  (0) 2015.02.27
2장 프로그램의 구성 요소  (0) 2015.02.26
1장 프로그래밍 입문  (0) 2015.02.26
프로그래밍 공부 목차  (0) 2015.02.26
Posted by GENESIS8

댓글을 달아 주세요

인간이 사용하는 언어에 명사 , 동사 , 형용사 가 있으며.. 그것을 조합하기에 따라서 그 내용이 달라지듯이, 프로그래밍 언어에도 구성요소를 파악하고 활용하는 것이 중요하다.

 

키워드(Keyword)

c언어가 자체적으로 의미를 미리 정해놓은 단어들로서, 예약어 라고도 한다.

 

C의 키워드

auto , case , cdecl , const , char , continue , default , do , double , else , enum , extern , float , for , goto , if , int , long , register , return , short , signed , sizeof , static , struct , switch , typedef , union , unsigned , void , volatile , while


C++에서 추가 된 키워드

asm , class , delete , friend , inline , mutable , new ,operator , private , protected , public , template , this , virtual , explict

.. 등

 

명칭(identifier)

사용자가 직접 만드는 것이다. 변수나 함수따위를 다른 것과 구분 하기 위해서 고유한 이름을 짓는 것을 말한다. 하지만 명칭에는 규칙이 존재한다.

1. 키워드는 사용할 수 없다. 이미 의미가 정해져 있기 때문이다. 다만 명칭인 문자열에 키워드가 포함되는 경우는 상관없다.( ints 같은 경우 int가 포함되었으나 키워드 자체는 아니므로 무관)

2. 알파벳 , 숫자 , 밑줄 기호(_)로 구성된다.

3. 첫 문자는 알파벳 혹은 _만 올 수 있다. 숫자는 올 수 없다.

4. C언어는 대소문자를 구분한다. score , Score , SCORE 모두는 전부 다른 문자로 인식된다.

(4번 규칙에 따라 for이 아닌 For 이나 if 가 아닌 IF 등은 모두 사용이 가능하지만 바람직한 방법은 아니다.)


상수(constant)

변수의 반대되는 개념으로 고정된 값 (한번 정의되면 변경 되지 않는) 5,638, 1410 등의 값이 상수이다. 5와 같은 수치는 5일 뿐. 변할 수 있는 수치가 아니므로 상수이다.


연산자(operator)

계산을 지시하는 기호들을 연산자라고 한다. + - * / 같은 사칙연산자 외에 대입 , 논리 , 관계 연산자 , 포인터 연산자등이 있다.

구두점(punctuator)

c언어의 구성 요소를 구분하여 좀 더 분명한 의미를 가지도록 하는 기능을 한다. 괄호 , 세미콜론 등이 사용된다.


공백 문자(white space)

int x 를 선언할 때. intx 라고 써버리면.. 어디까지가 자료형이고 어디까지가 문장인지 알 수가 없다. 이를 구분하기 위해 공백이 필요하며, 주석 또한 일종의 공백으로 인정된다.


주석(comment)

설명을 위해 삽입되는 문자열이다.


프로그램의 구조

c의 특징에 대해 정리

1. c언어는 대소문자를 구분하므로 명칭작성시 대소문자 구분에 유의해야한다.

2. c프로그램은 항상 main함수로 시작한다. main은 항상 고정된 이름이다.

3. 모든 문장은 세미콜론 ( ; )으로 끝나는데. 이는 자연어의 마침표에 해당한다.

4. c언어는 프리포맷(free format)을 지원한다. 문법에만 맞는다면, 한 줄에 붙여 쓰는 것도 가능하고 나누어써도 된다. 여백을 두기 위해 한 줄을 비워둘 수도 있다.

 

'프로그래밍 > 프로그래밍 공부' 카테고리의 다른 글

5장 연산자  (0) 2015.02.27
4장 제어문  (0) 2015.02.27
3장 변수  (0) 2015.02.27
2장 프로그램의 구성 요소  (0) 2015.02.26
1장 프로그래밍 입문  (0) 2015.02.26
프로그래밍 공부 목차  (0) 2015.02.26
Posted by GENESIS8

댓글을 달아 주세요

프로그래머란? 프로그램이란?

프로그래머는 프로그램을 만드는 사람이다.

프로그래머는 사용자와 컴퓨터 사이를 중계하는 통역자 역할을 한다고도 할 수 있는데, 컴파일러라는 번역기를 통해서 컴퓨터에게 자신의 말을 알아듣게 하고, 그것을 통해서 일반 사용자가 원활히 컴퓨터를 사용할 수 있도록 하는 역할이다.

프로그램이란 문제를 풀기 위한 명령들의 조직적인 집합이다.

어떤 목적을 가졌을 때, 그 목적에 부합하는 결과를 내려고 할 때.. 그 결과까지의 과정이 풀어야할 문제가 된다. 해당 문제를 풀기 위해 컴퓨터에 내리는 명령의 집합이 프로그램 이라 할 수 있다.

프로그래밍을 하려면 어떤 작업을 처리할 것인지, 어떻게 할 것인지의 명확한 목적을 가지고, 그것에 대응하기 적절한 도구를 사용하여 문제를 잘 해결하는 것이 중요하다.

 

C/C++ 언어의 역사

c언어는 벨 연구소의 데니스 리치가 만든 언어이며, 이어 비얀 스트로스트롭이 c++을 만든다.

 

c++은 c를 계승한 언어로서 c의 기능 대부분을 포괄하고 있기는 하지만, 그렇다해도 c의 빠른 속도로 인해 여전히 c도 사용할만한 의미가 있다. 따라서 프로젝트의 규모나 성격을 파악하여 어떤 언어를 사용할 지 결정하는 것이 중요하다.

 

C/C++ 언어의 장점

1. 문법이 간결하다.

2. 효율성이 뛰어나 대규모의 고기능 프로그램을 작성할 수 있다. 제작된 프로그램의 크기가 작고 속도도 빠르다.

3.운영체제 개발을 목적으로 만든 언어이므로, 저수준 프로그래밍이 가능하여 어셈블리 수준의 하드웨어 제어를 할 수 있다. (실제로 리눅스는 C로 만들어졌다)

4. 모든 분야에 두루 활용할 수 있을 정도로 범용적이다.

5. 성능을 위해 불필요한 에러 처리를 하지 않는다. 이는 속도의 향상으로 이어지는 반면, 프로그래머가 직접 점검해야 하므로 이 점을 주의해야한다.

6. 이식성이 좋다. 대부분의 플랫폼에서 C/C++ 언어를 사용할 수 있으므로 재 컴파일만 하면 타 운영체제에서 실행되는 프로그램을 쉽게 만들 수 있다.

 

 

 

 

 

'프로그래밍 > 프로그래밍 공부' 카테고리의 다른 글

5장 연산자  (0) 2015.02.27
4장 제어문  (0) 2015.02.27
3장 변수  (0) 2015.02.27
2장 프로그램의 구성 요소  (0) 2015.02.26
1장 프로그래밍 입문  (0) 2015.02.26
프로그래밍 공부 목차  (0) 2015.02.26
Posted by GENESIS8

댓글을 달아 주세요

혼자연구하는 c/c++ 을 학습하면서 각 장에서 학습한 것을 정리하는 곳입니다.

soen.kr과 김상형 저자의 혼자연구하는 c/c++ 교재의 내용들을 보고 따라적거나 정리한 내용입니다.


'프로그래밍 > 프로그래밍 공부' 카테고리의 다른 글

5장 연산자  (0) 2015.02.27
4장 제어문  (0) 2015.02.27
3장 변수  (0) 2015.02.27
2장 프로그램의 구성 요소  (0) 2015.02.26
1장 프로그래밍 입문  (0) 2015.02.26
프로그래밍 공부 목차  (0) 2015.02.26
Posted by GENESIS8

댓글을 달아 주세요