U E D R , A S I H C RSS

새싹교실/2011/Noname

1. 참여자

선생박정근1회차2회차3회차4회차5회차6회차
학생이하늘OX드랍
이동혁OOOOOO
최승민OX드랍
김창욱없음XOOOO

2. 후기


  • 후기 작성 요령 : 후기는 F4(ThreeFs + Future Action Plan)에 맞게 작성해주세요.
    • 관련 페이지 : ThreeFs, ThreeFs(노스모크), FiveFs(노스모크)
    • 링크를 눌러보기조차 귀찮은 당신을 위한 간단한 설명
      • Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
      • 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"

3. 수업

3.1. 1회차

3.1.1. 내용

  • Hello World! 프로그램 짜보기
  • 이스케이프 시퀀스의 사용
  • 서식문자의 사용과 이유
  • 주석

3.2. 2회차

3.2.1. 내용

  • 변수에 대한 설명 : 메모리의 할당과 이름의 설정.
    • 변수와 상수의 차이
    • 변수 이름 설정의 규칙.
  • 키보드로부터의 입력받기 : scanf함수
  • 자료형
    자료형크기표현범위
    정수형char1 byte(8 bit)-128 이상 +127 이하
    int4 byte(32 bit)-2,147,483,646 이상 +2,147,483,647 이하
    short int2 byte(16 bit)-32,768 이상 +32,767 이하
    long int4 byte(32 bit)-2,147,483,646 이상 +2,147,483,647 이하
    실수형float4 byte(32 bit)10^-37 이상 10^38 이하
    double8 byte(64 bit)10^-307 이상 10^308 이하

3.2.2. 후기

  • 모이는 시간을 잘못 알려주어서 한사람 밖에 오지 못 하였습니다. 한 사람밖에 오지 못 하여서 진도를 많이 빼지 못 하고 복습과 질문 위주로 공부를 하였습니다. 시간을 확실하게 정하고, 다음부터는 애들이 나오지 못 하여도 진도를 위주로 공부를 해야겠습니다. - 박정근

3.2.3. 비고

  • 하늘이가 새싹교실을 그만두게 되었습니다.

3.3. 3회차

3.3.1. 내용

  • 연산자의 종류 : 산술, 대입, 관계, 증감, 논리, 비트, 삼항조건 연산자
    • 산술연산자 - (+, -, *, /, %)
    • 대입연산자 - (=, +=, -=, *=, /=, %=)
    • 관계연산자 - (<, >, <==, >==, ==, !=)
    • 증감연산자 - (a++, a--, ++a, --a)
    • 논리연산자 - (&&, ||)
    • 비트연산자 - (&, |, ^, ~, <<, >>)
    • 삼항조건연산자 - ( 건식? 명령어1:명령어 )
  • 함수 #define함수와 일반함수
    • 일반함수
      자료형 함수명(배개변수){
      함수몸체
      }
      int add(int a, int b){
          int add = a + b;
          return add
      }
      

    • #define함수
      #define ADD(x,y) (x)+(y)

3.3.2. 후기

  • 연산자의 종류들과 #define함수의 활용법에 대해서 배웠습니다. 아직 C프로그래밍이 익숙지 않아서 간단한 함수도 어렵게 느껴졌다. 여러 예재로 우선 C프로그래밍에 익숙해 져야 겠다. 수업이 끝난 후 복습을 꼭 해야겠다. - 창욱
  • 학생들이 이해력이 좋은건지 제가 못 가르치는 건지 금방금방 할 이야기가 다 다르네요;; 다음부터는 좀 더 열심히 공부하고 와서 가르치도혹 해야겠습니다. 또 피드백으로 과제같은 것을 내는것도 괜찮을 것 같네요 준배해 봐야겠습니다. - 박정근

3.4. 4회차

3.4.1. 내용

  • 제어문(if문, switch문)
    • if문
      • Syntax

if (expression) {  	
 	statement1;
 	statement2;
	:
}
else {
	statement1;
	statement2;
         :
}
  • else if의 경우에는 if-else와 다음 if-else를 합쳐놓은것!!
  • Switch문
    • Syntax

switch ( expression ){
	case constant-expression :
		statements
	case constant-expression :
		statements
	case constant-expression :
		statements
	………………..
	default :
		statements
	}

  • switch의 경우 statement 에 break의 사용을 까먹지 맙시다.

3.4.2. 후기

  • 저번에 제어문 할 때에는 창욱이가 없었지만 오늘은 창욱이만 나왔기 때문에 제어문 수업을 다시 했습니다.생각보다 이해가 빠르네요. 예제라던가 문제등을 좀더 준비해가야겠습니다. 또 진도를 더 빨리빨리 빼서 중간고사에 맞출 수 있도록 맞추어 봐야겠습니다. 이제 제어문 끝냈고 드디어 반복분을 할 차레입니다. 개인적으로 별찍는 문제가 가장 재미있었기에 다음번에는 그 문제를 풀어보도록 합시다ㅎㅎ - 박정근

  • If구문,If-Else구문,Switch구문에 대해서 배웠습니다. 역시 처음 배우는거라 예제들에 잘 적용하지 못했습니다. 하나하나 배워가면서 코딩하는게 너무 신기하게 느껴지고 수업시간이 너무 짧아 아쉽습니다. 수업시간이 길거나 자주 수업을 할 수 있으면 좋겠습니다. If구문으로 해야하는 예제들과 Switch구문으로 해야하는 예제들의 차이점을 조금 깨달았습니다. Switch구문으로 코딩해야 더 쉬운 예제들과 If구문으로 코딩해야 더 쉬운 예제들을 구별할 수 있는 능력을 키워야 겠습니다. - 창욱

3.5. 4회차

3.5.1. 내용

  • 반복문(for문, while문, do while문)
    • for문
      • Syntax

for(expr1; expr2; expr3){
	statement1;
	statement2;
	:
}
  • expr1 에는 변수 초기화. expr2에 조건. expr3에 조건문을 탈출하기 위한 문장.
  • expr1 ->
expr2조건 확인 -> 조건에 충족될때 statement실행 -> expr3 ->
expr2조건 확인 -> 조건에 충족될때 statement실행 -> expr3 ->
:
expr2조건 확인 -> 조건에 충족되지 않을겨우 for문을 빠져나옴.
위의 과정으로 for문이 실행된다는 것을 유의.

  • While 문
    • Syntax

while(expression){
	statement1;
	statement2;
	:
}
  • while문의 expression에는 for문과 다르게 조건만 들어간다.
  • expression이 충족될 경우 statement를 실행한다.
  • 원치않는 무한루프를 피하기 위해 while문 안에 조건문을 탈출 할 수 있는 문장을 만든다.
  • Do-While 문
    • Syntax

do{
	statement1;
	statement2;

}while(expression);
  • while문과 비슷하지만 do_while문은 statement를 무조건 한번은 출력한다.(그 뒤에 조건확인.)


3.5.2. 후기

  • 반복문을 공부하면서 별찍기를 해보았는데 생각보다 많이 어려우 하더라구요. 그래서 반복문에 대한 문제를 좀 더 준비해 왔습니다.(별찍기가 오래걸려 풀어보지는 못 했지만..ㅠ) 아무래도 문제를 더 많이 풀어보도록 해 봐야 겠습니다. 반복문은 많이 써보는게 좋으니까요ㅎㅎ - 박정근

  • 여러가지 종류의 반복문에 대해서 배웠습니다. 여러가지 형태의 별을 찍어 보았는데 재밌는 것 같습니다. 상황에 따라서 편한 반복문을 사용해야 겠습니다. 다양한 별을 찍으면서 반복문에 대해 익숙해 져야겠습니다. 저번주에 배운 내용인데도 불구하고 많이 까먹어서 복습을 해야 겠습니다.



3.6. 5회차

3.6.1. 내용

  • 시험기간을 대비하여 많은 문제들을 풀었습니다. 반복문을 이용한 달력출력과 별찍기, 기출문제들을 풀었습니다.
  • 별 출력하기

*
**
***
****
*****
 ****
  ***
   **
    *

3.7. 6회차

3.7.1. 내용

  • 함수만들기
  • 재귀함수의 사용
    • Factorial 함수만들기

#include <stdio.h>

int factorial(int n);

int main()
{
	int a;
	printf("몇 팩토리얼을 구할까요? ");
	scanf("%d", &a);
	printf("%d",factorial(a));

} 
int factorial(int n){
	if(n==1){
		return 1;
	}else
		return n*factorial(n-1);
}
  • 피보나치 수열 함수만들기

#include<stdio.h>
int fibo(int x);
int main()
{
	int x;
	printf("몇번째 피보나치수열을 원하십니까? ");
	scanf("%d",&x);
	printf("%d",fibo(x));			

return 0;
}

int fibo(int x)
{
	if(x==2)
		return 1;
	else if
		(x==1)
		return 1;
	else
		return fibo(x-1)+fibo(x-2);
}


  • 하노이탑 함수 만들기

#include<stdio.h>

int hanoi(int n,char,char,char);
int main()
{
    int n;
	printf("하노이탑에서 옮기려는 원반의 개수는?");
    scanf("%d",&n);
    hanoi(n,'a','c','b');
    return 0;
}
int hanoi(int n,char from,char to, char temp)
{
    if(n==1)  {
		printf("%d번째 원반을 %c에서 %c로 옮기시오\n",n,from,to);
		return 0;
	}
    hanoi(n-1,from,temp,to);
    printf("%d번째 원반을 %c에서 %c로 옮기시오\n",n,from,to);
    hanoi(n-1,temp,to,from);
 }

3.7.2. 후기

  • 재귀함수의 사용법을 익숙하게 하기 위하여 여러가지 예제를 풀어보았습니다. 처음 두가지 예제는 비슷해서 그런지 금방 끝냈는데 하노이탑은 힘들어 하더라구요. 저도 작년에 이 문제를 풀기위해 온갖 노력을 하다가 그때 선생님의 도움으로 간신히 풀었는데 그 기분이 짱이더라구요. 하노이탑까지는 꼭 풀고 다음을 배워야겠습니다. - 박정근
    • 근데 저거 int를 return하라고 헤더를 만들어 줘서 문제생기지 않냐? - 윤종하
    • 아.. 그러고보니 그거때문에 경고생기네ㅜ 작년에 만든거 그데로 썼음ㅋㅋ - 박정근

3.8. 7회차

3.8.1. 내용

  • 배열의 개념
    • 동일한 자료형의 여러개의 변수를 일괄되게 선언한다.
    • index를 이용하여 자료들에게 접근한다.
  • 배열의 초기화
    • 선언시에 바로 배열을 초기화 할때에는 중괄호 {}를 사용한다.
    • 배열을 선언한 후에 배열의 각 원소에 값을 저장하러면 index를 이용한다.
    • ex) a1 = 10;

3.8.2. 후기

  • 배열만을 공부하려니까 자꾸 포인터쪽으로 연결되네요ㅠㅠ 포인터는 나중에 따로하려고 했는데 배열을 하면서 같이 공부해야겠습니다. - 박정근

3.9. 8회차

3.9.1. 내용

  • 다차원배열
    • 연속적인 저장공간을 만드는 배열에서 1차원 뿐만이 아니라 2차원 또는 그 이상의 배열도 생각할 수 있다.
    • 2차원 배열의 경우 행과 열로 나누어 생각하면 편하지만 사실은 1차원의 연속된 저장공간에 저장되는 배열이다.
  • 다차원 배열을 이용하여 성적과 학번을 출력하기

#include <stdio.h>

int main(){

	int stu[2][3]={{20114231,20116849,20113837},{47,85,76}};
	int i,max=0,h=0;
	for(i=0;i<=2;i++){

		if(stu[1][i]>max){
			max=stu[1][i];
			h=i;
		}
	}
	printf("%d",stu[0][h]);
	return 0;
}

3.9.2. 후기

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:29:42
Processing time 0.0836 sec