【 C 언어 】 #37 NULL 널 문자 이해하기

Language/C & C++ 2018. 5. 3. 11:03 Posted by 엑소더스팩토리
반응형

【 C 언어 】 #37 NULL 문자 이해하기



 문자열 길이를 구하는 문제를 통해 NULL 문자에 대해 이해 할 수 있다.  


▶ 문제  : 문자열 길이(예, abcdefg: 길이 7) 를 구하는 코드를 작성하라. 



▶ 포인트 


- 문자열의 끝은 항상 NULL('\0')문자 로 종료된다.

NULL 문자는 아스키 코드 값  '0' 이다

- 문자열 길이를 구하는 함수를 따로 작성하여 코딩한다.

- 문자형 포인터 변수(*pstr)를 사용하여 코딩한다.

- *pstr 은 pstr이 가리키는 번지에 저장되어 있는 값을 의미한다. 



▶ 프로그램 : 


# 이미지를 클릭하면 확대 되어 선명하게 보실 수 있습니다.


▶ 실행 결과 :


▶ 보충설명 :


- *pstr 은 pstr이 가리키는 번지에 저장되어 있는 값을 의미한다.  따라서 pstr은 번지(주소) 라는 것을 이해 해야 한다.

- pstr은 문자열의 선두 번지를 가리키고 있기 때문에, pstr의 번지가 1씩 증가(pstr++)함에  따라 *pstr의 값은 첫 번째 값 a 부터...  b, c, d, e, f, g, \0  처럼 된다.

- while문에서 NULL문자('\0') 의 아스키 값은 '0' 이기 때문에 문자열 끝을 알리는 NULL 문자를 만나면 while 문을 빠져 나오게 된다.

- pstr++;   은 pstr의 번지를 1만큼 증가 시킨다(pstr은 포인터 변수 이기 때문)

- len++;   은 문자열 길이 값을 1만큼 증가 시킨다


 문자열 'abcdefg' 가 메모리에 저장된 모습을 그림으로 그려 보면 아래와 같다.

문자열의 첫 번째 a가 저장된 번지를 '1000'번지라고 가정 해 보자.


# 이미지를 클릭하면 확대 되어 선명하게 보실 수 있습니다.


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



▶ 소스코드 다운로드 :  


37 NULL 넌 문자 이해하기-코드.cpp






반응형
반응형

【 프로세싱 기초 #9선 그리기


 프로세싱에서 실행창의 배경의 음영을 변경하는 것도 매우 간단하다. 

색을 설정해서 1픽셀 단위로 라인을 그리면 바로 배경 음영이 들어간 것 처럼 할 수 있다.


▶ 문제 : 배경의 음영을 검정과 흰색의 중간 값(125)으로 표시해보고, 여러가지 밝기 조절도 시도해보라. 


▶ 포인트 :  


- size(400, 400),  background 설정 대신 stroke(125)를 이용.

- stroke의 값은 0~255 사이의 값  (0은 검정, 255는 흰색)

- 화면 밝기는 stroke의 값을 조절 해도 되나 그리는 라인의 간격을 띄워도 비슷한 효과를 볼 수 있다.

- 프로세싱은 setup()  ~ draw() 형태의 구조를 가지나 ,  기본적으로 이런 구조 없이도 바로 사용이 가능 하다


▶ 프로그램(code) : 



 ▶ 실행결과 :




- 프로세싱은 setup()  ~ draw() 형태의 구조를 가지나 ,  기본적으로 이런 구조 없이도 바로 사용이 가능 하다




  ▶ 코드 설명 : 

width 와 heigh 는 실행창의 폭과 높이를 의미하는 내부 변수 이다. 

(즉, 보더 사이즈의 가로, 세로 사이즈를 의미한다)


- line() 함수로 수직선을 그리는 것이다 :  

 line (x1, y1, x2,y2)  : 시작점의 좌표와 끝점의 좌표를 입력하면 라인을 그려주는 함수이다

- " i=i+1 " 는 C언어와 마찬가지로 " i+=1 "  또는 " i++ " 형태로 줄여 쓸수 있다.


(추가 예제) 라인을 4픽셀씩 건너 띄어 그려보아도 음영의 변화를 줄 수 있다.


void setup() {

  size(400,400);

  stroke(125); // 진하기 : 검정(0) ~ 흰색(255) 사이값

}


void draw() {

  for (int i =0; i<width; i=i+4){

    line(i, 0, i, height);

  }

}



- " i=i+4 " 는  " i+=4 " 형태로 줄여 쓸수 있다.





▶ 코드 다운로드 


sketch_09_line_draw2.pde


반응형

【 프로세싱 기초 #8】함수 ( Function ) 만들기

Language/프로세싱 2018. 4. 25. 11:29 Posted by 엑소더스팩토리
반응형

【 프로세싱 기초 #8】 함수 ( Function ) 만들기


 프로그램에서 자주 사용되는 부분을 모듈 형태로 만들어 주어 프로그램을 간결하게 만들어 주는 것이 사용자 함수이다. 

 프로그램에 내장되어 있는 함수도 있지만 반복적으로 사용되는 부분을 직접 프로그래머가 만들어 사용하면 편리하다


▶ 문제 : 화면의 중간에 원을 그리는데, 원의 중심에서 마우스까지의 거리를 반지름으로 하는 원을 계속적으로 그려주는 프로그램을 

사용자정의 함수를 이용하여 작성하라. ( 마우스의 위치에 따라 원의 크기가 계속적으로 변경되어야 함) 


▶ 포인트 :  size(400, 400),  background(255) 로 적당히 설정.


- 원의 중심에서 마우스까지의 거리를 반지름으로 하는 원을 그리는 것.

- 원 그리기 내장함수 이용 : ellipse(x좌표, y좌표, 가로직경, 세로직경)

- 거리를 구하는 부분을 함수로 정의 할 것.   

- 원 중심에서 마우스까지의 거리(d) : 거리는 피타고라스 정리 공식을 이용하여 식을 세운다.  거리(d) : 

프로그래밍에서 은 X * X 를 하면 된다.

 거리공식에서 X 와 Y는 중심점에서의 마우스의 위치이며, 마우스가 움직임에 따라 계속 변화 됨으로, 보더 사이즈(400x400)를 파라메터를 넣어(감안하여) 작성해야 한다. 




▶ 프로그램(code) : 

 





 ▶ 코드 설명 : 

  원그리기 함수인 ellipse 와 제곱근 구하기 함수인 sqrt()는 프로세싱에서 기본 제공하는 함수이다.


- 함수의 기본 골격 설명




 ▶ 실행결과(동영상) :





▶ 코드 다운로드 

 

sketch_08_Function.pde



실습예제 2 


 ※ x,y 좌표와 직경을 입력하면 단순히 원을 그려 주는 함수를 아래 처럼 만들어 볼 수 있다. 


 void drawCircle(int x1, int y1, int diameter) {


ellipse(x1, y1, diameter, diameter);


}



▶ 프로그램(code) : 

 




▶ 실행결과(동영상) :




▶ 코드 다운로드 


sketch_08_1circle_function.pde


반응형