두 사람이 뭍에서 제주까지 왕복 10만원으로 건너올 수 있으리라고는 상상하지 못했었는데 실제로 제주로 건너오고 보니 이제야 실감이 납니다. 비용이 싸다보니 저녁 비행기로 제주에 도착하고 아침에 제주를 떠나야 하는 점이 아쉽지만 여행을 다녀오고보니 이렇게 다녀오는 것도 그리 나쁘지 않네요. 체력의 한계를 느낄 무렵에 제주를 떠나는 ......저녁에 제주에 도착했다고 그냥 숙소에 들어가는 것은 너무도 아쉬워서 공항 주변을 걷는 공항 올레와 제주 카페 거리를 걷기로 했습니다. 밤 걷기이니 만큼 혼자서 걷기 보다는 안전을 위해서 라도 동료와 함께 걷는 것은 말할 나위가 없겠죠!공항 올레는 위의 사진처럼 올레길 17코스의 일부로 제주 공항 주변 길을 걷습니다. 공항을 나서는 길에서는 이국적인 가로수가 인상적이지만..
C언어에서 함수 만큼이나 중요한 요소가 있을까 싶을 정도로 C언어에서 꼭 이해가 필요한 영역입니다. 함수를 사용하기 위해서는 선언(Declaration)과 정의(Definition)가 있어야 하는데 사용할 함수가 동일한 소스 코드에 위치하는 내부 함수의 경우에는 선언부를 생략하고 정의만 하기도 하지만 선언부를 소스 코드 상단이나 헤더 파일에 기술하고 하단부에 함수의 몸체(Body)를 정의하는 방식을 주로 사용합니다. void swap(int *i1, int *i2); int main() { int a = 10; int b = 20; swap(&a, &b); printf("\na = %d , b = %d", a, b); } void swap(int *i1, int *i2) { int tmp; tmp = *..
제주를 싸게 다녀오는 계획을 구상하는 사람에게 저가 항공사는 매우 매력적인 후보입니다. 시간대와 일자만 적절하게 준비하면 육지를 무궁화를 타고 다녀오는 것보다 훨씬 저렴하고 빠르게 다녀올 수 있습니다. 탑승 준비 1시간을 감안하더라도 고속버스 타듯이 다녀올 수 있습니다. 청주공항의 경우 제주항공, 진에어, 이스타항공도 취항하고 있는데 각 회사 홈페이지에서 비교후 이번 일정에서 가장 저렴한 이스타 항공을 선택했습니다. 일정 마다 각 회사별로 요금 차이가 있기 때문에 비교해 보는 것이 좋습니다. 아래는 국내 저가 항공사의 예약조회 링크입니다.제주항공 : http://www.jejuair.net/진에어 : http://www.jinair.com/이스타항공 : http://www.eastarjet.com/에어부..
얼마전 국내 지방공항들이 적자를 벗어나 흑자로 전환하면서 활로를 찾고 있다는 뉴스가 있었습니다. 그 공항들 중에 하나가 청주공항입니다. 인접해서 오창 과학단지와 청주시를 두고 있지만 그 배후에 천안과 세종시, 대전시등이 자리하고 있어 비행편만 뒷받침된다면 앞으로도 더 발전하지 않을까 싶습니다. 유의할 점은 청주 공항이 군사 공항이라는 점인데 광주나 대구도 비숫하지만 광주나 대구의 경우에는 군사 공항 이전이 검토되고 있다는 차이점이 있습니다. 아무튼 청주 공항에서 출발하는 국제선 비행편도 늘어나고 저가 항공사들의 국내 비행편도 풍부해져서 중부 지역에 거주하는 사람들에게는 나름 매력이 있겠다 싶었습니다.대중 교통으로 가려면 시내 버스, 시외 버스를 이용할 수도 있지만 위의 지도처럼 청주 공항 기차역에서 내려..
평소 수학에 관심을 가지고 있는 사람이 아니면 수열 문제 만큼 머리 아픈 것도 없을 것입니다. 그렇지만 프로그래밍은 단순한 "코딩"이기 보다는 "문제 해결"이 목적이고, "문제 해결"의 첩경은 집중력 있는 관찰과 그를 바탕으로한 적절한 해결책을 제시하는 것이므로 이런 관점에서 수열 문제는 면밀한 관찰을 통해서 단서를 찾고 대상이 아닌 부분을 배제하며 해결책을 찾으려는 태도가 꼭 필요합니다. 24. 다음 프로그램의 출력이 “2 5 10 17 26 ”이 되도록 _________부분에 들어갈 코드는 무엇인가? int i; i = 1; while (i
귀촌후 농사를 지으면서 가장 먼저 자급자족을 이루었던 작물은 바로 마늘입니다. 집의 전 주인께서 남겨주신 5접(1접에 100개)으로 시작한 마늘이 40접이상까지 늘어났다가 선물로도 주고, 고추 심는다고 밭도 줄여가면서 농사를 지어도 자급자족에는 염려가 없네요. 가을에 심어 놓으면 겨울을 잘 견디고 장마 무렵이면 토실토실한 열매를 안겨주는, 농사 과정 만큼은 정말 편한 작물입니다. 첫해부터 한 2년 동안에는 마늘을 심으면서 정확한 간격을 맞추겠다고 5~6센티정도 홈을 내는 도구를 만들어 사용하기도 했습니다. 몇년 심어보니 그렇게 간격 맞춘다고 심혈을 기울일것 까지는 없겠다는 판단아래 망가진 호미에 긴 장대를 달아서 적당한 골을 내고 마늘간의 간격은 눈대중으로 맞추어 심는 소위 '프로'의 세계로 접어들었습니..
C언어에서는 문자열(String, 스트링) 타입을 지원하지 않습니다. char(signed char) 또는 unsigned char로 정의하는 문자의 배열이나 배열에 대한 포인터가 일반적으로 말하는 스트링이라 할 수 있습니다. 문자형 타입인 char은 1 바이트의 메모리 공간을 차지하는 타입으로 리터럴(상수)은 작은 따옴표(', apostrophe)로 a = 'A';와 같이 표현합니다. 대부분의 영문자, 숫자, 특수문자 등은 32~127 사이의 문자 값으로(아스키, ASCII) 표현 하는데 32 아래의 특수문자들은 눈에 보이지 않는 제어(컨트롤) 문자가 배정되어 있고 대표적인 제어문자로 C에서는 아래와 같이 표현할 수도 있습니다.'\a' : 알람음. 7'\b' : 백스페이스, 8'\f' : 폼피드, 12..
리눅스와 윈도우, 맥과 같은 요즘의 운영 체제는 대부분 한번에 여러개의 프로그램이나 프로세스를 실행시키는 멀티태스킹(Multi-tasking) 운영체제입니다. 멀티태스킹 운영체제에서 화면을 통해 사용자와 대화식으로 동작하는 콘솔 응용, 윈도우 폼 응용도 있지만 사용자 눈에 보이지는 않지만 백그라운드에서 동작하는 데몬(Daemon) 프로세스도 있습니다. 장치에 대한 처리를 수행하거나 일정한 예약시간에 프로그램 실행시키거나 하는 프로그램으로 윈도우에서는 이러한 데몬 프로세스를 서비스(Service)라 부르고 제어판>관리도구>서비스를 통해 관리할 수 있습니다. 위의 그림은 서비스 관리자의 목록 화면으로 일반적인 응용과 달리 시스템 구도 시점에 자동으로 시작시키는지 수동으로 시작시킬 지를 "시작 유형"을 통해서..
요즘은 스마트폰으로 영어 공부하는 재미가 쏠쏠합니다. 가족들 모두를 듀오링고 친구로 등록해놓으면 각자 수준이 얼마나 올라왔는지 확인할 수도 있겠지만 부모는 자식들 시선에 자식들은 부모 시선을 생각하면서 자극을 받는 효과가 있는것 같습니다. 무엇보다 하루에 많지는 않지만 일정한 양을 풀어나가는 진도 관리가 개인적으로는 도움이 되는것 같습니다. 예전에 이미 공부했을 법한 단어들이지만 리뷰하고 연습하고.....큰소리로 영어 문장을 읽어내는 과정 만으로도 큰 도움이 되지 않나 싶습니다.학습할 부분을 선택하는 화면에서 이미 학습을 완료한 부분은 위 그림의 "정치"부분처럼 주황색 아이콘으로 표시됩니다. 수준이 높거나 학습을 많이 하신 분이라면 앞쪽의 아이콘들은 대부분 주황색일 것입니다. 그리고 아직 한번도 학습을 ..
이번 문제를 통해서는 C언어 연산자(Operator)의 종류와 연산자별 우선 순위(Precedence)와 결합 방향(Associativity, 결합성, 연관성)을 다룰까 합니다. 연산 우선 순위는 서로 다른 연산자가 섞여 있는 경우 어떤 연산자를 먼저 수행할 것인지를 다루는 것으로 "a + b * c"인 경우 b*c를 먼저 수행하고 그 결과와 a를 더하는 작업을 나중에 수행하는 것과 같습니다. 결합 방향은 동일한 순위 레벨(+와 -는 같은 수위이고 *과 /도 동일 순위)을 가진 연산자가 섞여 있는 경우 연산 순서를 좌->우로 할지 우->좌로 수행할 지를 결정합니다. 예를 들어 "a + b+ c"는 좌->우 결합성을 가져서 a+b 결과에 c를 더합니다. 그런데 캐스팅, 주소추출등의 연산자는 우->좌 방향으..
정보 처리 과정을 가장 단순한 구조로 설명할 때 입력(Input)-처리(Process)-출력(Output)으로 말하는 것처럼 프로그램에 있어 입력과 출력 과정은 프로그램의 정체성을 나타내는 매우 중요한 부분입니다. 요즘이야 스마트폰으로 다양한 센서 정보를 받기도 하지만 전통적인 C언어의 표준 입력은 키보드이고 C언어에서는 표준 입력에 대해서 stdin이라는 파일 포인터를 제공합니다. 프로그램에서 프린터나 인터넷과 같은 통신으로 출력을 내보낼 수도 있지만 C언어에서는 표준 출력은 화면이고 C언어에서는 표준 출력에 대해서 stdout이라는 파일 포인터를 제공합니다. C언어에서는 stdin, stdout, stderr과 같은 시스템 파일포인터와 함께 표준 입출력을 위한 라이브러리 함수를 제공하는데 표준 입력에..
2015년도 정보올림피아드 지역 예선 문제는 다시 봐도 참 출제를 잘 했다 싶습니다. 틀린 문제를 통해서도 중요한 학습을 하게 할 뿐만아니라 출제된 문제들을 통해서 C언어의 주요한 부분을 만날 수 있기 때문입니다. 이번에는 C언어의 기본 문법에 대한 문제들을 다루어 볼까 합니다. 18. 다음 중 변수의 이름으로 사용할 수 없는 것은? ① thisway ② int_char ③ star*star ④ that_way ⑤ _6_ 위의 문제는 C언어의 변수명 작성 규칙을 다룬 것으로 아래와 같이 아주 단순합니다. 변수명으로 사용할 수 있는 문자는 영문 대문자(A~Z), 소문자(a~z), 숫자(0~9), 그리고 언더스코어(_) 입니다.사용 가능한 문자 이외의 어떠한 문자도 사용할 수 없습니다(공백등의 특수 문자도 ..
이번 문제는 간단하지만 얕보다가 당할 수 있는 그러한 문제입니다. for문의 동작 원리를 아주 명쾌하게 습득 할 필요가 있습니다. 17. 다음 프로그램이 출력하는 값은? int t, i; t = 0; for (i = 0; i < 10; i++) { t++; } printf("%d %d\n", t, i); ① 10 10 ② 9 11 ③ 10 9 ④ 9 10 ⑤ 11 9 for (시작 표현식; 비교 표현식; 증분표현식) 문장 for 문법에 대해서는 "올림피아드 기출문제로 배우는 C언어 - 기본 문장"에서 많은 부분을 언급했으므로 언급하지 않은 부분, 유의할 부분을 다루겠습니다. 위의 문제에서 루프 반복 여부 검사에 사용하는 변수는 i이고 t 변수를 통해서 루프의 수행 회수를 카운트 하고 있습니다. 앞서 다룬..
정보올림피아드에 출전하고 싶은 자녀를 둔 부모 입장에서 지역 예선 기출문제를 받아보면 어떻게 도와주어야 할지 난감한 것이 사실입니다. 2014년도까지만 해도 이건 진짜 천재들이나 풀수있겠다 싶은 문제들만 수두룩했습니다. 그런데, 2015년 기출문제를 살펴보니 이제 C언어를 기초부터 탄탄한게 준비하고 집중력있게 사고력을 키운 친구들이라면 충분히 풀수 있는 문제들도 많이 출제되었습니다. 맞는 방향이 아닌가 싶습니다. 2016년의 출제 방향이 어떻게 바뀔지 모르겠지만 C언어 하나라도 제대로 공부한 사람인지를 검증하고 사고력을 묻는 문제들이 지속적으로 출제되었으면 하는 바램입니다. 그래야 경진대회를 준비하는 과정이 의미있고, 탈락한 친구들도 C언어 하나는 확실하게 익힐 수 있으니 말입니다. 이런 배경하에 201..