'2013/10'에 해당되는 글 3건

  1. 2013.10.07 [C언어] 3. 변수
  2. 2013.10.07 [C언어] 2. C언어의 기초
  3. 2013.10.07 [C언어] 1. C언어의 역사
언어/C2013.10.07 15:05

변수!!  무엇을 뜻하는 말인가? 프로그래밍에서는 변수라는 뜻은 "변경이 가능한 수?" , "변하는 수?" 

어떠한 의미도 전부 틀리다고는 말 할 수 없다. 다르지만 틀린것은 아니다.


우리는 수식 중  "4 = x+1"  이라는 수식이 존재 한다고 했을 경우!  "x" 값이 3인것을 확 실히 할 수 있다.

그럼 x를 뭐하고 불러야 될까?  값? 분명 수학시간에 "어떠한 변수" 라고 했을 것이다. 


그럼 프로그래밍에서의 변수는? 그렇다. 어떠한 수식의 결과 값을 저장하는 곳을 의미한다. 


x = 4+1;,  x = 5-1;, x = 6-9;  우리는 이 식을 1초도 않되서 계산을 다 했을 것이다. 그리고 그 값이 x 라는 것도 알고 있다.

그럼 이것을 한꺼 번에 통합해 보자  x= y+z; 이렇게 말이다. 


위의 식과 통합한 식을 같에 만들려면 모두들 


1  x = 4+1;  x= y+z; ==> x=x , y =4 , z =  1 

2. x = 5-1;  x= y+z; ==x=x , y =5 , z = -1 

3. x = 6-9;  x= y+z; ==x=x , y =4 , z = -9 


이렇게 변화 시킬 것이다. 


즉, 우리는 정수를 담는 그릇인 x,y,z를 선언하고 그 값을 4,5,-1,-9 등으로 대입을 하고 그 결과 값을 도출한 것이다. 


이것을 프로그래밍 적으로 풀어 보면 


 
#include <stdio.h>
int main()
{
   int x,y,z;
   y = 4 ;
   z = 1;
  
   x= y+z;
   printf("결과는 : %d",x);
   return 0;
}


이런식으로 나열 할 수 있는 것이다. 


하지만 컴퓨터는 우리가 생각하는 만큼 똑똑하지 않다.!!

즉 저 그릇이 어떠한 그릇인지 명시해야 하며 그 그릇의 크기는 어떠한지도 생각해 줘야 한다. 


코끼리가 들어가야 될 그릇에 고양이가 들어가면 낭비는 되지만 들어 갈수는 있다.

하지만 반대로 고양이 그릇에 코끼리가 들어간다면 그 그릇은 깨지고 말것이다. 이러한 것들은 잘 다뤄야 한다. 


우리가 일상생활에서 배운 "수"라는것은 


이러한 구조를 띄우고 있다.


고로, 이러한 것을 이용하여 계산을 할 때에는 그에 맞는 변수 타입 이라는것을 지정 해 줘야 한다.

간단하게 많이 사용하는 변수 타입을 나열해 보자.



타입 (자료형)

크기 (32bit 기준)

표현 범위 

형식

 비고

int

4 Byte 

-21억 <->  21억 

정수 

 

unsigned int 

Byte 

0      <->  43억 

양의 정수 

 

long

4 Byte 

-21억 <->  21억  

 정수

 

unsigned long

4 Byte 

0      <->  43억  

 양의 정수

 

short

2 Byte  

-32768 <-> 32767 

 정수

 

unsigned long

2 Byte  

0 <->65535 

양의 정수

 

char

1 Byte  

 -128 <-> 127

 문자

 

unsigned char

1 Byte  

0 <->255 

 문자

 

float

4 Byte  

소수 6자리 

 실수

 

double 

8 Byte  

 소수 15자리

 실수

 

bool

1 Byte 

 0,1

 거짓(0), 참(!0)

 0이 아니면 참


위 표가 일반적으로 수식을 할 경우 많이 사용하는 변수들의 목록이다. 

즉, X = Y/Z 일 경우 X는 float 일 수고 있고 int 일수도 있다. 

그러면 프로그래머들은 상위 개념인 float을 이용하여 int도 표현 할 수 있도록 해야한다. 즉 그릇이 작으면 않되니까.


이 표 보다 사실 더 많은 자료형이 있고 64bit OS 에서는 해당 자료형의 크기가  많이 달라집니다.


이제 변수도 알아 봤으니 다음 편은 변수를 이용해서 출력을 해보도록 하겠습니다.        

Posted by 최우림 -=HaeJuK=-
언어/C2013.10.07 15:04

프로그램들은 어느 정도 실력을 쌓이면 항상 이런말을 하고 다닙니다.

" Hello, World! " 만 찍을 수 있다면 해당 언어는 50% 이상 한 것이다!!


왜 그럴까요? 프로그래머 들은 항상 기초를 중시합니다. 처음! 최초 실행이 성공 했다면 그 이후의 일들은 

시간의 투자와 비례하니 더 이상의 막힘이 없다는 것입니다.

즉, 진입 장벽이 없어 졌으니 이제 마음것 해당 언어를 배울 수 있다. 라는 뜻을 내포 하는 것입니다. 


그럼 그 유명한 " Hello, World! " 을 살펴 보겠습니다. 


우리는 현재 C를 공부 하고 있습니다. 고로, C를 이용하여 " Hello, World! " 를 작성해 보겠습니다.



 
#include <stdio.h>
int main()
{
    printf("Hello, World!!!");
    return 0;
}






위의 코드를 살펴 보겠습니다. 


#include <stdio.h> // C 표준 라이브러리 중 하나인 stdio.h 라는 헤더 파일에 선언된 내용을 포함한다는 뜻이다. // 이 문장을 쓰지 않으면, printf 함수의 선언을 찾을 수 없다는 컴파일 오류가 발생한다. int main(void) // 매개변수가 없는 C 프로그램의 시작을 나타내는 정수값을 반환값으로 받는 main 함수를 시작한다. { // 함수의 시작점을 나타낸다. printf("hello, world"); //콘솔 출력에 hello, world라는 단어를 출력하고 \n 에 의해 다음 줄로 이동하게 된다. return 0; // 0을 반환하며 이 함수를 종료한다. } // 함수의 종료점을 의미한다.


위와 같은 해석이 가능합니다. 


칙칙한 콘솔에 글자만 찍히는 프로그램을 만들어서 실망 하셨지요?


이게 시작입니다.  화려한 UI, 그래픽적요소 등은 차근차근 배우면 저절로 하시게 될껍니다.


이상입니다. 

Posted by 최우림 -=HaeJuK=-
언어/C2013.10.07 15:04

C언어를 구글에서 찾은 결과 입니다. 위키백과에서 발취한 내용 입니다.


C 프로그래밍 언어 1972년 켄 톰슨 데니스 리치가 벨 연구소에서 일할 당시 새로 개발된 유닉스 운영 체제에서 사용하기 위해 개발한 프로그래밍 언어이다.

켄 톰슨은 BCPL언어를 필요에 맞추어 개조해서 "B"언어(언어를 개발한 벨 연구소의 B를 따서)라 명명했고,
 
데니스 리치가 이것을 개선하여 C언어가 탄생했다.
유닉스 시스템의 바탕 프로그램은 모두 C로 쓰여졌고, 많은 운영 체제의
 
커널도 또한 C로 만들어졌다.
오늘날 많이 쓰이는 C++는 C에서 객체 지향형 언어로 발전된 것이다. 또 다른 다양한 최신 언어들도 그 뿌리를 C에 두고 있다.



C 언어의 초기 개발은 1969년부터 1973년까지 4년에 걸쳐 AT&T 벨 연구소에서 이루어 졌으며, 데니스 리치의 말에 따르면, 가장 창의적인 작업이 이루어진 기간은 1972년이었다. 언어의 이름이 "C"인 이유는 그 특징이 "B" 언어에서 유래되었기 때문이며, 켄 톰슨에 의하면, B 언어는 BCPL 언어의 기본만 남긴 버전이다.

리치와 톰슨에 의해 초기에 PDP-7의 어셈블리 언어로 구현되었던 유닉스 운영체제의 개발과 C 언어의 기원은 밀접하게 연관되어 있다. 결국 그들은 유닉스 운영체제를 PDP-11로 포팅하기로 결정하였다. PDP-11의 기능의 일부, 특히 바이트 접근기능을 활용하지 못하는 B 언어의 부족함이 C 언어의 초기 버전의 개발을 이끌었다.

유닉스의 초기 PDP-11 버전은 어셈블리로 개발되었다. 1973년에 struct 자료형의 추가로, C 언어는 유닉스의 대부분을 C로 쓸 수 있을 정도로 강력해 졌다. 유닉스는 어셈블리가 아닌 언어로 구현된 최초의 운영체제 커널 중의 하나였다.(더 빠른 사례는 PL/I로 쓰인 Multics 시스템, ALGOL로 쓰인 Burroughs B5000을 위한 MCP(Master Control Program)가 있다.) 1977년 경, 리치와 스티븐 C. 존슨이 유닉스 운영체제의 이식성을 향상시키기 위해, C 언어를 추가적으로 변경하였다. 존슨의 Portable C Compiler는 새로운 플랫폼에서의 C의 구현의 기초가 되었다.


이정도면 C언어의 역사를 인지하셨을 거라고 생각됩니다. 

간략하게 본다면 A--> B --> C 언어로 진화 되었고 객체 지향형이 포함되면서 C++ 발전하게 되었습니다.



Posted by 최우림 -=HaeJuK=-

티스토리 툴바