일단 시작은 우연히 건진 호러틱한 사진.ㅋ

이 귀신이 튀어나올 것 같은 음침한 건물은 바로...........


어린이대공원 입구입니다.ㅋㅋ

새벽에 지나가니까 이렇게 소름돋는 곳이었음-ㅅ-)a




내가 그렇게도 의문을 품었던 용마폭포공원의 진실.
빨간 점선이 등산로.

폭포공원 테두리를 따라 올라가는 길이 있었지만,

나는 아무상관없는 위의 길로 왔다갔다 한 것.=ㅅ=);;;;;;;;;;;;;;;







이게 그 "폭포공원과는 아무 상관없는" 등산로의 입구.

누가 설명해주지 않으면 이게 등산로인지, 용마산 정상으로 향하는 길인지 모르겠음.=ㅅ=);;;

어떻게 표지판이나 안내판 같은게 하나도 없냐;;;;;






그리고 시작되는 길.ㅋ


어제 그렇게 다리가 후들거리는 경험을 하고나서 왜 또 이 길을 올랐냐면..





이 사진을 찍고 싶어서.ㅋ

새벽인데 구름이 짙지 않아서 도시가 보인다. 은근히 야경 느낌도 나고.





하지만 내 앞은 바윗길.ㅋ





그래도 이쪽 길엔 찍을만한 것들이 꽤 있었다.



산! 산!




그리고 저 멀리 보이는 서울의 또다른 산.

저게 바로 "구름 위로 우뚝 솟은" 산 이란 건가!!(......)



멋진 산과 멋진 하늘



서울의 새벽.ㅋ






산과 도시.


그렇게 사진을 찍어대면서 올라오니 어느새 용마산 정상!'ㅅ')

시간은 48분 걸렸다.


하지만 어제는 33분 걸렸었는데;;;;;;;;;;;;

설마 사진 몇장 찍었다고 15분이 더 걸리진 않았을테고..


어제보다 다리가 더 후들거리는 걸로 봐서,

아직 다리가 다 치유되지 않았던 듯.=ㅅ=)ㅋㅋ



너무 다리가 후들거려서, 위의 용마산 정상 태극기 사진을 마지막으로

더 이상 찍은 사진이 없다.=ㅅ=)!!!!!!;;;;;;;;;


그리고 내려오면서 생각했다.


내가 저 괴악한 용마 바윗길을 다시 올라오는건 최소한 이번 달 안에는 없을거라고.=ㅅ=);;;;




'사진' 카테고리의 다른 글

100812 춘천여행 part 1  (0) 2010.08.12
100727 월드컵공원역  (0) 2010.08.12
100708 용마산 + 아차산  (0) 2010.07.14
100707 아차산 + 용마산  (0) 2010.07.14
100622 아차산 + 용마산  (0) 2010.06.22


그래서 어제의 그 괴악한 오르막에 대한 도전의식 때문에

평소의 아차산 -> 용마산 루트에서 용마산 -> 아차산 루트로 바꿔보았다.

어제 간 길을 정확히 거꾸로 가는 것이다.




하지만...........


그것이 나의 오만이었음을 깨닫게 된다.=ㅅ=);;;;;;;;;






일단은 가는길에 찍은 새벽 하늘. 
5시 17분에 찍은 사진이니 마침 해가 딱 뜰 때이다.
이것도 노을이라고 하나?;;;;;;;;;;;;;




어머나 실수로 플래시가 터져버렸네~?

이렇게 보니 무슨 자연 다큐멘터리같음.ㅋ





그리고 역시 시작되는 오르막길.=ㅅ=)a

뭐 각오하고 온거니까.......



대략 이런 경사.










그리고 올라가면서 찍은 사진은 이게 전부다.=ㅅ=)!!...........


일단......처음부터 끝까지 똑같은 바위 오르막길이어서 찍을게 별로 없었던 것도 있고....



양 팔을 계속 사용해서 올라가야 했고....(줄 잡고, 땅 잡고;;;;)



무엇보다 죽을만큼 힘들어서 카메라 꺼내기도 귀찮았다.0ㅅ0)!!!!





최근 선택한 등산로 중 최악의 난이도를 자랑하는 길이었음.

이것에 비하면 아차산은 그냥 동네 뒷산이었구나~ 라는 생각을 하며 올라왔다.

그렇게 해서 용마산 정상까지 33분만에 도달.=ㅅ=);


말이 33분이지.................

그 시간동안 계속 바위 오르막을 올라왔다.=ㅅ=);;;;;;;;;;

30분동안 보통 계단을 올라와도 힘들텐데, 무릎 높이의 바위가 계속 나오는 길을 올라왔으니;;;

땀이 쫘악 흘렀고, 다리가 계속 후들거렸다.


이거 일주일만 하면 살이 우습게 빠지겠지 라는 생각을 했지만,

난 이렇게 죽어라고 몸을 한계로 내몰아버리는 짓은 질색이라서.

난 안될거야, 아마.ㅋ



그렇게 후들거리는(...) 다리를 이끌고 아차산으로 향했다.



내가 올라왔던 용마 바윗길(..멋대로 명명)에 비하면 이정도는 껌이지~ 라고 생각했다.


아니 물론 정말 껌이긴 껌이다.

내 다리가 후들거리지 않았다면, 말이지-ㅅ-)a


그나마 내려올 때는 약간의 여유가 생겨서 사진을 다시 찍기 시작했다.



서서히 드러나는 서울. 근데 여기가 어디쯤인지는 모르겠다.ㅋㅋ



저 구름이 다 걷히려면 시간이 더 지나야 되는 듯.





문득 눈에 띄는 거대한 건물............
저게 뭐지? 학교인가?;;;;; 

가운데 건물에서 뚜껑이 열리면서 뭔가 로보트 같은게 나올 기세.=ㅅ=);





그리고 내가 정말 좋아하는, 구름 사이로 비치는 태양.





이런 사진 계속 찍으면 렌즈에 안좋다는건 알고 있지만,

왠지 자꾸 찍고 싶다.ㅠ.ㅠ

렌즈보호를 위해서 앞으로는 자제해야겠다.




그렇게 산행을 마치고 집에 돌아왔다.

그리고 이 날은 하루종일 다리가 후들거렸다.=ㅅ=);;;;;;;;



'사진' 카테고리의 다른 글

100727 월드컵공원역  (0) 2010.08.12
100709 용마산 + 아차산  (0) 2010.07.14
100707 아차산 + 용마산  (0) 2010.07.14
100622 아차산 + 용마산  (0) 2010.06.22
100621 아차산  (0) 2010.06.21

무려 일주일전에 올라가며 찍었던 사진을 이제야 올림;




항상 새벽에 올라가서 그런지........구름이 잔뜩 끼어있다.




구름이 걷히면 도시가 나오는데....쩝....



손글씨 표지판?ㅋㅋㅋ........그리고 어째서 나이X?!(.........)




저 멀리 용마산 정상에 있는 태극기가 보인다. 



확대사진.




그리고 그 태극기의..........





앞에 도달.ㅋ



약간 놀란건 앞사진과 뒷사진의 시간차가 6분밖에 되지 않는다는 거.........

내가 6분만에 저 거리를 갔단 말인가?;;;;;;;;;;


기록을 보니 아차산 정상까지 42분만에 올랐고,

아차산 정상에서 용마산 정상까지 19분이 걸렸다.

1시간 1분만에 아차산을 지나 용마산을 정ㅋ벅ㅋ




그리고 이제는 내려오는 길.

이번엔 용마폭포공원 쪽으로 내려와보았다.




뻥튀기골.............. 유래가 무엇일까 궁금하다.





용마산 정상에 있는 산의 약도. 


 

새벽의 산. 그리고 하늘.



원래는 도시의 전경이 보여야 하는데;ㅅ;)




나무 사이로 보이는 저 곳은?!



용마산 7보루~

나름 군사시설이었단다... 하긴 산이야말로 전략적으로 중요한 지형이니까.....




뭔가, 다른곳하고 색이 다른 바위 발견.

그리고 구름이 걷히며 서서히 드러나는 서울.




그리고 미친듯이 계속되는 내리막ㅠㅠ

저 흰 줄을 옆에서 보면



요런 각도이다.=ㅅ=);;;;;;;;;;;

초록색 봉을 일부러 기울여서 박아놓을 정도로, 계속되는 바위 오르막의 향연.

아마 이 길로 올라왔으면 정상에서 쓰러졌을지도;;;;






그리고 간신히 미친듯한(..) 내리막을 지난 후, 뒤를 돌아보며 찍은 사진.

그런데 왠지, 다음에는 이 길로 올라가보고 싶다는 묘한 도전의식이 생겨버렸다.;;;;





그리고 끝나가는 길. 아파트 사이로 들어가는것 같은 느낌이 드는;;;;;;;;;;;;


난 분명 용마폭포공원 쪽으로 내려왔는데?!?!;;;;;;;;;;;;





.......................끝.

등산로의 마지막이 이런 황당한 계단이라니...

이 순간은 정말 너무나 허무했다.

나중에 찾아보니 용마폭포공원으로 들어가는 등산로는 따로있었다.=ㅅ=);;;;;;;;;

도대체 어디서 길을 잘못든건지 모르겠다;;;;;;;;;;;;;;;;;;;


'사진' 카테고리의 다른 글

100727 월드컵공원역  (0) 2010.08.12
100709 용마산 + 아차산  (0) 2010.07.14
100708 용마산 + 아차산  (0) 2010.07.14
100622 아차산 + 용마산  (0) 2010.06.22
100621 아차산  (0) 2010.06.21

9-1 함수의 정의 및 선언

- Divide and Conquer!

- 전달인자나 반환값이 없어도 된다.

- 호출되기 전에 선언되어야 한다.


9-2 변수의 범위(scope)

1) 지역변수

- 중괄호 내의 '지역'에 선언된 변수. 선언된 지역 내에서만 유효하다.
- 지역변수는 선언될 때 메모리 상에 올라갔다가, 선언되었던 지역이 끝나면 지워진다.
- 선언된 지역보다 상위 지역에 같은 이름의 변수가 있어도, 하위 지역의 전역변수가 사용된다.


2) 전역변수

- 함수 외부에 선언된 변수. 모든 코드에서 사용가능하다.
- 전역변수는 초기화하지 않으면 쓰레기값이 아니라 0 이 들어간다.


3) static 변수

- 지역변수의 선언에서 자료형 앞에 static이라는 키워드를 붙인 변수
- 함수가 종료되어도 메모리에 그대로 남아있다.
- 반복문에서 값을 유지시킬 수 있다.


4) register 변수

- 지역변수의 선언에서 자료형 앞에 register라는 키워드를 붙인 변수
- CPU의 레지스터에 저장이 된다. 빠르게 처리된다.
- 레지스터에 적재할 공간이 없으면 무시된다.


9-3 재귀적 함수 호출

- 함수 내에서 자기 자신을 다시 호출하는 형태.
- 종료조건을 설정하지 않으면, 완료되지 않은 함수가 계속 쌓이게 되어 메모리 부족으로 프로그램이 비정상 종료된다.



'학부 전공 > C' 카테고리의 다른 글

12. 포인터의 이해  (0) 2010.07.14
11. 1차원 배열  (0) 2010.07.14
8. 분기문  (0) 2010.07.08
7. 반복문  (0) 2010.07.08
6. printf함수와 scanf함수  (0) 2010.07.08

8-1 if - else

if( 조건 )
{
//내용
}


if( 조건 )
{
//내용
}
else if( 조건 )
{
//내용
}
else if( 조건 )
{
//내용
}
else 
{
//내용
}

- if-else를 사용하면 불필요한 비교 연산을 줄일 수 있다.

 * 조건 연산자 ( 삼항 연산자 )
 조건 ? A : B
조건이 true면 A, false면 B
- 조건 연산자는 실행할 문장이 많지 않을때, 코드를 간결하게 한다.


8-2 continue와 break

- break문을 만나면, 가장 가까이서 감싸고 있는 반복문 하나를 빠져 나오게 된다.

- continue문을 만나면, 가장 가까이서 감싸고 있는 반복문의 처음으로 돌아간다. for문일 경우, 증감문을 실행시키고 조건문을 비교한다.


8-3 switch-case

switch(n)
{
case 1: 내용. break;
case 2: 내용. break;
case 3: 내용. break;
default: 내용. 
}

- switch문에 전달되는 인자 n은 int형이나 char형 변수여야 한다.
- break를 쓰지 않으면 해당 case의 아래부분을 전부 실행해버린다.

- 분기의 개수가 많아지면 switch-case로 만드는게 간결해보인다.


'학부 전공 > C' 카테고리의 다른 글

11. 1차원 배열  (0) 2010.07.14
9. 함수  (0) 2010.07.09
7. 반복문  (0) 2010.07.08
6. printf함수와 scanf함수  (0) 2010.07.08
5. 상수와 기본 자료형  (0) 2010.07.08


7-1 while

- while문은 조건이 만족될 때까지 계속 반복을 시키는 것이다.
- 반복해야할 문장이 하나이면 중괄호를 쓰지 않아도 된다.

while(1)
{
// 무한 루프
}


7-2 do-while

- while문은 조건 검사를 앞에서 하지만 do-while문은 뒤에서 한다.

do
{
// 무한 루프
} while(1)


7-3 for

- for문은 초기문, 조건문, 증감문 3가지를 포함하고 있다.

for( 초기문; 조건문; 증감문 )
{
//반복 내용
}

- 증감문이 실행된 다음 조건문의 조건에 맞으면 반복, 틀리면 탈출.
- 세 문장이 꼭 같은 변수를 써야만 하는것은 아니지만, 다른 변수로 만들게 되면 가독성이 떨어진다.


'학부 전공 > C' 카테고리의 다른 글

9. 함수  (0) 2010.07.09
8. 분기문  (0) 2010.07.08
6. printf함수와 scanf함수  (0) 2010.07.08
5. 상수와 기본 자료형  (0) 2010.07.08
4. 데이터의 표현방식  (0) 2010.07.07

6-1 printf 함수

1. printf는 문자열을 출력하는 함수이다.

2. printf는 특수 문자 출력이 가능하다.

*특수 문자 목록
\a : 경고음
\b : 백스페이스
\f : 폼 피드(페이지 넘김)
\n : 개행 ( enter )
\r : 캐리지 리턴( 커서를 맨 앞으로 옮김 )
\t : 수평 탭
\v : 수직 탭
\\ : 원 표시 ( 또는 백슬래시 )
\' : 작은 따옴표
\" : 큰 따옴표

3. printf의 f는 formatted를 의미.

 *서식 문자 목록
%c : 단일 문자
%d, %i : 부호 있는 10진 정수
%f : 부호 있는 10진 실수
%s : 문자열
%o : 부호 없는 8진 정수
%u : 부호 없는 10진 정수
%x : 부호 없는 16진 정수, 10이상을 표시하는데 소문자 사용
%X : 부호 없는 16진 정수, 10이상을 표시하는데 대문자 사용
%e : e 표기법에 의한 실수
%E : E 표기법에 의한 실수
%g : 값에 따라 %f, %e 중 선택
%G : 값에 따라 %f, %E 중 선택
%% : % 기호 출력


4. 필드 폭을 지정할 수 있다.
-서식 문자에서 %기호 뒤에 숫자를 넣음으로써 공간을 확보할 수 있다.
%8d : 8칸 띄운 뒤 오른쪽 정렬 후 출력
%-8d : 8칸 띄운 뒤 왼쪽 정렬 후 출력
%+8d : 8칸 띄운 뒤 오른족 정렬 후 양수는 +, 음수는 -를 붙여서 출력



6-2 scanf 함수

- 서식 문자를 사용해서 해당되는 데이터 타입으로 입력받는다.

- 실수를 입력받을 때, double형은 %le를 사용한다.



'학부 전공 > C' 카테고리의 다른 글

8. 분기문  (0) 2010.07.08
7. 반복문  (0) 2010.07.08
5. 상수와 기본 자료형  (0) 2010.07.08
4. 데이터의 표현방식  (0) 2010.07.07
3. 변수와 연산자  (0) 2010.07.06

5-1 C언어가 제공하는 기본 자료형


- C언어는 변수의 선언을 위해 자료형을 제공한다.

 * 기본 자료형과 데이터 표현 범위

자료형 할당되는 메모리 크기 표현 가능한 데이터의 범위
정수형 char 1바이트 -128 ~ 127
short 2바이트 -32768 ~ 32767
int 4바이트 -2147483648 ~ 2147483647
long 4바이트 -2147483648 ~ 2147483647
실수형 float 4바이트 3.4*10^-37 ~ 3.4*10^38
double 8바이트 1.7*10^-307 ~ 1.7*10^308
long double 8바이트 혹은 그 이상 유동적임


- sizeof는 함수가 아니라 연산자이다. 


- 컴퓨터는 내부적으로 int형 데이터를 가장 빠르게 연산(처리)한다. 따라서 메모리가 낭비되더라도 연산을 하는 정수에는 int형을 쓰는게 좋다.
- char형은 문자를 표현하는데 좋다. 문자로 연산을 하는 일은 드물기 때문이다.

- unsigned가 붙으면 부호 비트를 사용하지 않는다. 따라서 각 데이터 표현 범위가 -x ~ x-1 에서 0 ~ 2x-1이 되는 것이다. 


5-2 상수

- 리터럴(literal)상수 : 이름이 없는 상수. 코드상에서 이름없이 문자,숫자 그대로 쓰인다.

- 심볼릭 상수 : 이름을 지니는 상수. const 키워드를 사용하거나, 매크로를 사용할 수 있다.
ex) const int MAX = 100;
 const 키워드를 사용할 때에는 선언과 동시에 초기화를 해야만 한다. (상수이기 때문에 나중에 변경할 수 없다.)

- 상수의 이름은 일반적으로 대문자로 표시한다.


5-3 자료형 변환


1) 자동 형 변환

-대입 연산시 발생.
 실수형 데이터를 정수형 데이터 타입에 대입하면 소수부의 손실이 발생한다.
 값의 표현 범위가 적은 데이터 타입에 대입하면 비트의 앞부분이 그 차이만큼 버려진다. 즉, 값이 달라진다.

-정수의 승격 ( int형 연산이 빠른 이유 )
 char형과 short형 데이터들의 연산은 각 데이터를 int형으로 변환시킨후에 연산을 진행한 후 다시 해당 데이터 타입으로 변환시킨다. int형 연산은 이 형 변환을 거치지 않기 때문에 연산이 빠른 것이다.

-산술 연산 과정에서 발생
 데이터 타입이 다른 두 수를 연산 할 때, 데이터의 손실이 최소화되는 방향으로 형 변환이 일어난다.

산술 연산 과정에서의 형 변환 방향은
char -> int -> long -> float -> double -> long double 이다.


2) 강제 형 변환 ( 명시적 형 변환 )

-변수 앞에 괄호를 붙여서 강제적으로 데이터 타입을 변환시킬 수 있다.
ex) b = (float)a/2 ;
 

'학부 전공 > C' 카테고리의 다른 글

7. 반복문  (0) 2010.07.08
6. printf함수와 scanf함수  (0) 2010.07.08
4. 데이터의 표현방식  (0) 2010.07.07
3. 변수와 연산자  (0) 2010.07.06
2. 프로그램의 기본 구성  (0) 2010.07.06

4-1 컴퓨터의 데이터 표현방식

- 컴퓨터는 모든 데이터의 표현 및 연산을 2진수로 처리한다.

- 비트 : 컴퓨터가 나타내는 데이터의 최소 단위. 2진수 값 하나를 저장할 수 있는 메모리 공간.
- 바이트 : 비트가 8개 모여서 이루어진 데이터 단위.

- 숫자 앞에 0x를 붙이면 16진수, 0을 붙이면 8진수로 표현했다는 의미이다.


4-2 정수와 실수의 표현 방식

1) 정수의 표현 방식

- 가장 왼쪽에 있는 비트는 부호 비트이다. 양수면 0, 음수면 1
- 음수를 표현할 때에는 2의 보수로 표현한다.
- 2의 보수는 모든 비트를 반전시킨 뒤, 1을 더함으로써 구할 수 있다.


2) 실수의 표현 방식

- 컴퓨터는 넓은 범위의 실수를 표현할 수 있다는 장점을 지니는 대신, 오차가 존재한다.
- 근사치를 계산해서 실수를 표현하기 때문에 오차가 있는 것이고, 이것을 부동소수점 오차라고 한다.


3) 비트 단위 연산

 - &(AND) 연산자의 진리표 - 두 개의 비트가 모두 1일때 1을 반환.
0
&
0
=>
0
0
1
0
1
0
0
1
1
1

- |(OR) 연산자의 진리표 - 두 개의 비트중 하나라도 1이면 1을 반환.

0
&
0
=>
0
0
1
1
1
0
1
1
1
1

- ^(XOR) 연산자의 진리표 - 두 개의 비트가 서로 다를 경우에 1을 반환.

0
&
0
=>
0
0
1
1
1
0
1
1
1
0


- ~(NOT),연산자- 모든 비트를 반전시킴

~0 -> 1
~1 -> 0


- <<(왼쪽 쉬프트), >>(오른쪽 쉬프트)

a << b : a의 비트를 b만큼 왼쪽 쉬프트
a >> b : a의 비트를 b만큼 오른쪽 쉬프트



'학부 전공 > C' 카테고리의 다른 글

6. printf함수와 scanf함수  (0) 2010.07.08
5. 상수와 기본 자료형  (0) 2010.07.08
3. 변수와 연산자  (0) 2010.07.06
2. 프로그램의 기본 구성  (0) 2010.07.06
1. C언어  (0) 2010.07.02

3-1 변수

- 변수 : 데이터를 저장할 수 있는 메모리 공간에 붙여진 이름

 *변수의 자료형(데이터 타입)
- 정수형 변수 : char, int, long
- 실수형 변수 : float, double

- 변수를 선언하고 초기화하지 않으면 의미없는 값이 들어가게 되는데, 그 값을 "쓰레기 값"이라 한다.

- 변수의 선언은 함수에서 제일 위에 나와야 한다.(C++에서는 상관 없음)

 * 변수 이름의 규칙
1. 알파벳, 숫자, 언더바로만 구성된다.
2. 대소문자를 구분한다.
3. 숫자로 시작할 수 없다.

그리고 키워드와 동일한 이름을 쓰는 것도 불가능하다.



3-2 연산자


1) 대입 연산자( = ), 산술 연산자 ( +, -, *, /, %)

2) 기타 대입 연산자 ( +=, -=, *=, /=, %=)

3) 단항 연산자 ( +, - )

4) 증가, 감소 연산자 ( ++, -- )

5) 비교 연산자 ( >, <, == )

6) 논리 연산자 ( &&, ||, ! )

7) 비트 단위 연산자 ( ~, &, ^, |, <<, >> )

8) 콤마 연산자 ( , )

- 여러 개의 연산자가 있을 경우 우선순위가 높은 순서대로 실행된다.

- 컴퓨터는 0이 아닌 모든 값을 true로 인식한다. 



3-3 키보드로부터 입력받는 scanf

- scanf 함수를 쓸 때에는 인자 중에서 입력받는 변수 이름 앞에 &를 붙여야 한다.

- scanf 함수는 데이터의 경계를 공백(스페이스 바, tab키, enter키)으로 구분한다.



3-4 키워드

- int, void 등의 단어들은 이미 기능적 의미가 정해져 있다. 그러한 단어를 예약어 또는 키워드라고 한다.

- 이러한 키워드들은 변수나 함수의 이름으로 사용할 수 없다.



'학부 전공 > C' 카테고리의 다른 글

6. printf함수와 scanf함수  (0) 2010.07.08
5. 상수와 기본 자료형  (0) 2010.07.08
4. 데이터의 표현방식  (0) 2010.07.07
2. 프로그램의 기본 구성  (0) 2010.07.06
1. C언어  (0) 2010.07.02

+ Recent posts