[[TableOfContents]] = 출석 및 진행 = * [권우성] * [채유빈] * 3시부터 약 1시간 30분 진행 = 아이스브레이킹 = * 서로 모른다길래 첫인상 얘기함. * 우성 -> 유빈 : 너무 좋고..(?) 예쁘고, 키 크고, 공부 잘 해보이고, 착해보인다. * 유빈 -> 우성 : 밝아보이고 친해지면 재밌을 것 같아요. 좋아보여요. * 강사에 대한 첫인상이 궁금해지는군요. - [김준석] * 잘 생겼데요 - [정진경] * 축하합니다 - [김준석] = 수업 내용 = == main 함수 == * 프로그램의 시작점 {{{ main() { 1+1; } }}} == printf 함수 == * 출력을 위한 함수 * stdio.h 필요 {{{ main() { printf("%d\n", 1+1); } }}} * printf 함수가 명시적으로 정의되지 않았기 때문에 컴파일에 실패하거나, 경고가 뜸. == include == * 함수들을 쓸 수 있도록 함. * .h : 함수들의 집합 {{{ #include main() { printf("%d\n", 1+1); } }}} == 주석 == * // 를 통해 한 줄 주석을 할 수 있다! == %d == * print decimal ( 십진수 ) == 변수 및 자료형 범위 == {{{ printf("%d", 10000000000); printf("%lld", 10000000000); }}} * lld는 더 큰 범위 표현 가능 (long long) * %f 와 %lf == 논리, 비트, 비교 연산 == * 비트 연산 : <<(left shift), >>(right shift), &(and), |(or), ^(xor), ~(not) * 논리 연산 : &&(and), ||(or) !(not) * 비교 연산 : ==, !=, >=, <=, >, < * !=, >=, <= 에서 등호가 오른쪽에 있는 것이 중요합니다. 예를 들어, x=!y 는 x y를 비교한 것이 아니라, y에 !(not) 논리 연산을 한 결과를 x에 대입한 것입니다. * C언어에는 boolean 타입이 없습니다. 보통 int로 참과 거짓을 표현하고, 모든 비트가 0일 경우에만 거짓이고, 그 외는 참입니다. == if == * 어떤 명령을 조건에 따라 실행되거나 실행되지 않게 할 수 있는 문법 {{{ // if(x=0) // x에 0을 대입 // if(x==0) // x와 0을 비교 if(조건문){ 명령1; } // 조건문이 맞을 경우 명령1을 실행합니다. // 중괄호를 쓰는 습관을 들이면 편합니다. }}} = 다음 수업에 필요한 내용 = * else if, 전역 변수, 함수 * 생략 가능한 내용 : 삼항연산자(?:) * 재귀함수를 이용한 반복문을 먼저 설명하려 합니다. = 후기 = * [권우성] : 논리연산자 같은거 복습하게 된 것 같다. * [채유빈] : 교수님한테 못물어보는거 편하게 물어볼 수 있어서 좋았어요. * [정진경] : 리눅스 터미널 환경에서 진행했는데, 컴파일 하는 과정이나 편집하는 과정의 설명은 생략했습니다. 검은 화면에 흰 문자열이 큰 거부감을 일으키는 것 같지는 않습니다. 아무래도 준비가 빈약하다보니 뭘 가르쳐야 할지 모르겠습니다. 일단 상세한 문법이나 C 표준에 대한 설명은 뒤로 미루는 것이 좋을 것 같고, 일정 수준 이상의 프로그래밍을 스스로 할 수 있을 정도로 실력을 끌어올리는 것에 집중해보려 합니다. 또한 중간중간에 코드를 작성한 것에 대한 출력을 물어보면서 알고 있는지 확인하는 과정이 중요한 것 같습니다. * 적혀있지 않아서 질문 드립니다. 실습을 하였나요? - [김준석] = 질문에 대한 답변 = * goto 안쓰나요? - [권우성] {{{ while(){ while(){ while(){ // 다중 반복문을 한번에 빠져나오려 할 때 goto를 쓰기도 합니다. // 하지만 권장되지는 않습니다. if(조건문){ goto exit_loop; } } } } exit_loop: }}} ----------- [새싹교실/2012]