U E D R , A S I H C RSS

새싹교실/2015/과탑반


1. 참가자


강사 반페이지 학생
강민승 /과탑반 석준 대한 준석

2. 진행

  • c언어 프로그래밍
  • 매주 화요일 17시 ~ 19시 208관 6층 PC 실
  • 노트북 있으면 가져오시길

3. 수업 일지

3.1. 3월 12일 목요일

  • 참가 : 강민승, 김석준, 이대한, 이준석
  • 오리엔테이션
    • 튜티들의 수준이 어느정도인지 파악
    • 시간 및 장소를 정하였습니다.

3.2. 3월 17일 화요일

  • 참가 : 강민승, 김석준, 이대한, 이준석
  • 첫 수업
    • "Hello, world!"를 출력하는 소스코드를 분석
      • #include<stdio.h>
      • header과 return
      • 위의 것을 설명하면서 function과 parameter에 대해서도 잠깐...
      • printf와 scanf함수
      • 변수형
    • 그 외 튜티들이 수업을 들으며 이해되지 않았던 부분이나 궁금한 부분에 대한 설명을 했습니다!
  • 과제 : 1. 숫자 두 개를 입력받아 덧셈, 뺄셈, 곱셈, 나눗셈을 한 뒤, 출력하기
    1. 문자(char) '한 글자'를 입력받아 그 대로 출력하기.


3.3. 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

3.4. 4월 7일 화요일

  • 참가 : 강민승, 김석준, 이준석
  • 수업 내용
    • 반복문 및 조건문 복습
      • 별찍기
        • 이중 반복문의 사용법, 그리고 do while 반복문의 사용법
        • 반복문 탈출 조건과 탈출 제어

#include<stdio.h>
#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;
}
  • 질문 & 답변
    • 삼항 연산자의 사용법.

3.5. 4월 14일 화요일

  • 참가 : 강민승, 김석준, 이준석
  • 수업 내용
    • 중간고사 대비 문제 풀이 및 배운 것 정리
      • 전위 연산자와 후위 연산자를 응용한 문제
      • Visual Studio를 통해 소스코드가 컴파일 후 실행되기까지의 과정에 대한 문제
      • 2중 반복문 문제
      • 문법 문제

3.6. 4월 28일 화요일

  • 참가 : 강민승, 김석준, 이준석
  • 수업 내용
    • 함수
      • 함수는 무엇일까요? 사실 메인도 함수라고...
      • 반환형과 이름, 그리고 파라미터
      • 두 수를 더하는 함수를 가르쳐주었습니다.
    • 재귀
      • 재귀는 무엇일까요? 자기 자신을 호출함
      • 예시 : fibonacci, factorial 함수

#include <stdio.h>


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 <stdio.h> 
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 함수 만들어오기 (너무 어려운가...)


3.7. 5월 12일 화요일

  • 참가 : 강민승, 김석준, 이준석
  • 수업 내용
    • 숙제!
      • 역시 아무도 못풀어옴..
      • 재귀를 어떤 방식으로 해야 할 지 감이 안잡힌다면 점화식을 세워보시길
    • 배열
      • 자료형을 나열 할 수 있는 구조
      • 이름, [] <- 대괄호, 그리고 index로써 표현한다.
      • 선언 시 크기를 숫자로써 설정
      • 배열 값 더하기 예제
    • 2차원 배열
      • 예제 : 별 찍기

#include<stdio.h>
int main() {
	int i, j;
	for(i = 0 ; i < 5 ; i++) {
		for(j = 0 ; j <= i ; j++) {
			printf("*");
		}
		printf("\n");
	}
	return 0;
}
  • 과제 ㄹ 모양으로 5*5 배열에 별찍어오기

3.8. 5월 19일 화요일

  • 참가 : 강민승, 김석준, 이준석
  • 수업 내용
    • 포인터
      • 변수의 주소 값을 보유하고 그 변수를 가리키고 있다.
      • 특정 자료형을 가리키려면 자료형이 같아야 한다.
      • 사실 배열의 이름도 포인터처럼 배열의 첫 번째 index를 가리킴
      • 표기 방법
        • index
        • 주소값에 직접 숫자 - 자료형의 크기만큼 자동으로 캐스팅이 됨
    • 포인터를 이용한 두 변수 값 swap 함수 예제
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2015-05-31 07:25:37
Processing time 0.0938 sec