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