[[TableOfContents]] == 참가자 == || 강사 || 반페이지 |||||| 학생 || || [[강민승]] || [:새싹교실/2015/과탑반 /과탑반] || [[김석준]] || [[이대한]] || [[이준석]] || == 진행 == * c언어 프로그래밍 * 매주 화요일 17시 ~ 19시 208관 6층 PC 실 * 노트북 있으면 가져오시길 == 수업 일지 == === 3월 12일 목요일 === * 참가 : 강민승, 김석준, 이대한, 이준석 * 오리엔테이션 * 튜티들의 수준이 어느정도인지 파악 * 시간 및 장소를 정하였습니다. === 3월 17일 화요일 === * 참가 : 강민승, 김석준, 이대한, 이준석 * 첫 수업 * "Hello, world!"를 출력하는 소스코드를 분석 * #include * header과 return * 위의 것을 설명하면서 function과 parameter에 대해서도 잠깐... * printf와 scanf함수 * 변수형 *그 외 튜티들이 수업을 들으며 이해되지 않았던 부분이나 궁금한 부분에 대한 설명을 했습니다! * 과제 : 1. 숫자 두 개를 입력받아 덧셈, 뺄셈, 곱셈, 나눗셈을 한 뒤, 출력하기 2. 문자(char) '한 글자'를 입력받아 그 대로 출력하기. === 3월 31일 화요일 === * 참가 : 강민승, 김석준, 이대한, 이준석 * 수업 내용 * 질문 & 답변 * #은 무엇인가? * putchar(), getchar()은 무엇인가? * 연산자에 대한 부가설명 * 반복문 * for문 * (반복문 제어 변수 ; 반복 범위 ; 반복문 제어 변수의 연산 ) * while문 * 조건문 * if, else if 그리고 else * if(조건 1) * else if(조건 2) * else (나머지 조건) * switch - case * if문과 달리 범위에 따른 조건은 불가능 * 나머지 조건들은 default 로 제어 * 각 case 끝 부분에 break; 필수 * 과제 * 국어, 수학, 영어 점수( 0점 ~ 100점 )을 입력받아서 rank를 출력하는 프로그램 * 90~100점 : A, 80~89점 : B, 70~79점 : C, 나머지 F * EX) {{{ 과목 점수 입력 ( 국어 수학 영어 순 ) : 90 85 27 국어 : A 수학 : B 영어 : F }}} === 4월 7일 화요일 === * 참가 : 강민승, 김석준, 이준석 * 수업 내용 * 반복문 및 조건문 복습 * 별찍기 * 이중 반복문의 사용법, 그리고 do while 반복문의 사용법 * 반복문 탈출 조건과 탈출 제어 {{{ #include #pragma warning ( disable : 4996 ) int main(){ int num; int i, j; do { printf("숫자 입력 ( 1 ~ 10 사이의 정수, 다른 수 입력시 종료. ) : "); scanf("%d", &num); if (num >= 1 && num <= 10) { for (i = 1; i <= num; i++) { for (j = 1; j <= i; j++) { printf("*"); } printf("\n"); } } else break; } while (1); return 0; } }}} *질문 & 답변 * 삼항 연산자의 사용법. === 4월 14일 화요일 === * 참가 : 강민승, 김석준, 이준석 * 수업 내용 * 중간고사 대비 문제 풀이 및 배운 것 정리 * 전위 연산자와 후위 연산자를 응용한 문제 * Visual Studio를 통해 소스코드가 컴파일 후 실행되기까지의 과정에 대한 문제 * 2중 반복문 문제 * 문법 문제 === 4월 28일 화요일 === * 참가 : 강민승, 김석준, 이준석 * 수업 내용 * 함수 * 함수는 무엇일까요? 사실 메인도 함수라고... * 반환형과 이름, 그리고 파라미터 * 두 수를 더하는 함수를 가르쳐주었습니다. * 재귀 * 재귀는 무엇일까요? 자기 자신을 호출함 * 예시 : fibonacci, factorial 함수 {{{ #include int fibo(int num) ; int main(void){ int num; int i; printf("\n피보나치 수 입력 : \n" ); scanf("%d" , &num) ; for(i = 0 ; i < num ; i++ ){ printf("%d " , fibo(i)); } printf("\n\n"); return 0; } int fibo(int num){ if(num == 0) return 0; else if(num == 1) return 1; else return fibo(num-1) + fibo(num-2); } }}} {{{ #include int factorial(int n); int factorial(int n) { if(n<=1) return 1; return n*factorial(n-1); } int main() { int n; scanf("%d",&n); printf("%d",factorial(n)); return 0; } }}} * 과제 : TowerOfHanoi 함수 만들어오기 (너무 어려운가...) === 5월 12일 화요일 === * 참가 : 강민승, 김석준, 이준석 * 수업 내용 * 숙제! * 역시 아무도 못풀어옴.. * 재귀를 어떤 방식으로 해야 할 지 감이 안잡힌다면 점화식을 세워보시길 * 배열 * 자료형을 나열 할 수 있는 구조 * 이름, [] <- 대괄호, 그리고 index로써 표현한다. * 선언 시 크기를 숫자로써 설정 * 배열 값 더하기 예제 * 2차원 배열 * 예제 : 별 찍기 {{{ #include int main() { int i, j; for(i = 0 ; i < 5 ; i++) { for(j = 0 ; j <= i ; j++) { printf("*"); } printf("\n"); } return 0; } }}} * 과제 ㄹ 모양으로 5*5 배열에 별찍어오기 === 5월 19일 화요일 === * 참가 : 강민승, 김석준, 이준석 * 수업 내용 * 포인터 * 변수의 주소 값을 보유하고 그 변수를 가리키고 있다. * 특정 자료형을 가리키려면 자료형이 같아야 한다. * 사실 배열의 이름도 포인터처럼 배열의 첫 번째 index를 가리킴 * 표기 방법 * index * 주소값에 직접 숫자 - 자료형의 크기만큼 자동으로 캐스팅이 됨 * 포인터를 이용한 두 변수 값 swap 함수 예제