Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

새싹교실/2012/AClass: Difference between revisions

From ZeroWiki
imported>hhr8701
No edit summary
imported>supia1990
No edit summary
Line 263: Line 263:
조금 헷갈리긴 했지만 과제를 하면서 개념을 정확하게 알아가야겠다.
조금 헷갈리긴 했지만 과제를 하면서 개념을 정확하게 알아가야겠다.
==== 한송이 ====
==== 한송이 ====
* 피라미드 모양 별찍기 쪽지셤, 2차원 배열, 포인터 를 배웠다.
  과제할 때 항상 디버기하고 고치고 했는데 앞으로는 머리로 생각 하고 해야겠다는것을 쪽지셤 보면서 느꼈다ㅜㅜ
    그리고 과제 빨리 올려주세요!! 
==== 곽길문 ====
==== 곽길문 ====



Revision as of 07:34, 23 May 2012

AClass

소개

  • 목표 : C부터 시작하여 자료구조까지 정ㅋ복ㅋ
  • 시간 : 매주 수요일 오후 3시~4시반.
  • 과제 : 과제는 월요일까지 jereneal20@네이버.컴으로 보내주세요.
  • 구성원 :
    • 멘토 : 김태진
    • 멘티 : 곽길문, 도상희, 한송이, 황혜림
  • 수업 계획 :
    • 1주차(5/9) - 실력 점검 및 별찍기(for문)
    • 2주차(5/16) - 함수, 배열 + Search
    • 3주차(5/23) - 다차원배열, 포인터 + Search, Sort
    • 4주차(5/30) - 구조체, 2중포인터 + Stack, Queue
    • 5주차(6/6) - C++ 기초, String + Linked list (쉬는 날도 진행)
    • 6주차(6/13) - 1~5주차를 소화하지 못 할 경우를 위한 한 주.
    • 방학 중에 스터디를 할 경우 - Class, Object + Tree, Graph
    • 일반적으론 거의 불가능한 진도입니다.. 어디까지 나가느냐는 얼마나 해오시냐의 열의에 달려있습니다.
    • 제가 하는 부분보다 스스로 해야하는 부분이 절대적으로 많습니다.

1회차(5/9)

수업내용

  • 이해도 테스트, if문 연습, for문 연습

과제

  • 코딩과제는 완전한 프로그램으로 써 주시고(에러나지 않도록), 서술하는 문제는 간단하게(1~3줄) 써 주세요.^^
  • 코딩한 것은 그냥 파일에 복사붙여넣어도 되고, .c파일을 보내주셔도 됩니다.
  • 완성하지 못해도 좋습니다. 꼭 자기 힘으로 해 주세요.(의견 교환은 가능)
    • 완성하지 못한 (코딩)문제는 어떤부분이 막혔는지 간단하게 써봐요~
  • 제가 과제 내면서 서술문제는 책에 있는걸 냈으니 꼭 C책 빌려서 읽어봐요~


  • 복습 및 생략한 기초 내용
    1. 컴파일(Compile), 빌드(Build), 링크(Linking)에 대해 책에서 찾아보고 써 주세요.
    2. 상수형, 변수형에 관해서 쓰고, 그 예를 2개만 들어주세요.
    3. char형에 관해 써 주세요. ASCII코드를 통해 나타낸다는 것이 무엇을 의미하는지도 써 주세요.
    4. #include, 전처리과정이 무엇인지 쓰고, include의 예를 들어주세요.
    5. #define이 무엇을 의미하는지 쓰고, 이것을 사용한 '간단한' 프로그램을 하나 작성해보세요.
    6. ++, --, &&, ||, +,-, !=, ==, = 이 무엇을 의미하는지 간단간단히 써 주세요.
    7. if, else, else if문을 이용한 프로그램을 하나 작성해주세요. else나 else if를 3번이상 써 주세요.
    8. switch-case문을 이용한 간단한 프로그램을 하나 짜 보세요.(eg. Grade계산기 A,B,C)
      • 성적 계산기의 경우 90점이상 A, 80점이상 B와 같은 구조입니다. 100점만점을 10으로 나누면 switch문으로 풀 수 있습니다.
    1. while문을 이용한 프로그램을 하나 작성해 주세요. C수업시간이나 과제에 나온 것을 새로 짜보아도 좋습니다.
    2. 위 프로그램을 do-while문으로 바꿔 '똑같은'프로그램이 되도록 해보세요.
    3. 위 프로그램을 for문으로 바꿔 풀어보세요.
    4. 2중 for문을 이용하여 다음 모양의 별찍기를 작성해주세요.
1.
*****
 ****
  ***
   **
    *
2.
*
**
***
****
*****
    1. 혜림이누나, 상희누나만 푸는 과제: 다음 별찍기를 만들어주세요.
    • n으로 일반화하여 입력받은 만큼 별찍기를 하도록 만들면 더욱 좋습니다.
1.
*******
 *****
  ***
   *
2.
   *
  ***
 *****
*******
 *****
  ***
   *
  • 위 과제가 너무 쉬웠던 분들을 위한 추가 과제
    1. 형변환에 관하여
    2. 삼항 연산자에 관하여
    3. 혜림이누나, 상희누나 과제를 for문을 각각 3개, 4개만 써서 해보세요.(hint 2*n-1)
  • 예습을 위한 과제
    1. 함수가 무엇인지 쓰고, 예제 프로그램을 하나 만들어 주세요.
    2. return이 무엇인지 써 주세요.
    3. 함수형이 무엇인지 쓰고, void타입은 왜 return하지 않는지 써주세요.
    4. 재귀함수가 무엇인지 써 주세요.
    5. 배열이 무엇인지 쓰고, 왜 배열이란 개념이 나타났는지(왜 쓰는지) 써 주세요.
    6. 배열을 사용한 간단한 프로그램을 하나 만들어보세요.
  • 위 과제가 너무 쉬웠던 분들을 위한 추가 과제
    1. 재귀함수를 이용한 프로그램을 하나 짜 보세요.(eg.1~n까지의 합, n!구하기등)
    2. 배열에 숫자를 넣고, 그 배열에 특정 값이 있는지 찾는 프로그램(Search)을 작성해 주세요.

후기

황혜림

  • 1.컴파일러란?
   --> 프로그래밍 언어를 어셈블리어로 변환하고 그 어셈블리언어를 기계가 읽을 수 있는 언어로 변환 시켜주는 것
    2.#include란?
   --> 라이브러리에서 우리가 사용하는 함수를 불러오기 위해써주는 것
    3.return 0?
   --> 프로그램의 종료를 위해
    4.정수하나를 입력 받아서 10보다 크면 입력받은 정수의 제곱 출력, 10보다 작으면 입력받은 정수의 두배를 출력
     --> 
#include <stdio.h>
        int main(){
            int a;
            scanf("%d",&a);

            if(a>10)
               printf("%d",a*a);
            else if(a<10)
               printf("%d",2*a);

            return 0;
        }
    1. 별 출력
     #include <stdio.h>

       int main(void)
      {
	int i;
	int j;
	int n;
	int k;

	scanf("%d",&n);


	for(i=n;i>=1;i--)
	{
		for(j=1;j<n+1-i;j++)
		{
				printf(" ");
		}
		for(j=1;j<=2*i-1;j++)
		{
			printf("*");
		}
		printf("\n");
	  }
	  return 0;
      }
         

도상희

-중복 for문 사용. -소감 : 눈높이교육 이해가 쏙쏙:*)

곽길문

  • 오늘 처음 시작한 새싹교실수업날이었습니다. 에공 ....-L-
  열심히 하겠습니다. ..ㅋㅋㅋ오늘 공백을 넣는 부분 여러번 설명해줘서 고마워요~
  과제 열심히 해서 매수업마다 실력쌓을게요.. 반성문되어가네요 ..ㅋㅋㅋ
    다음에는 반성문말고 씬나서 쓸게욤 

한송이

  • 내가 제일 못하는거 같아서 다른사람보다 더 열심히 해야겠다는 생각이 들어요
  앞으로 열심히 해서 이해도 잘하고 알아서 척척 할께요! 

2회차(5/16)

과제

  • 일요일 저녁까지 해 주시면 됩니다. 조금 어려울 수 있으니 못 풀겠다는 문제는 미리 말해주세요.
    • 출력해오실 과제는 코딩 과제 중 풀지 못한 과제의 코드와 글쓰는 과제만 출력해 오시면 됩니다.
  • 복습과제
 1.0과 1000 사이의 정수를 입력받아 모든 자릿수를 더하여 출력하는 프로그램을 짜 주세요.
    • /10, %10 등을 이용해서 해 보세요.
 2.소문자를 대문자로 바꾸는 프로그램을 작성해 주세요.
 3.다음 모양을 출력하는 프로그램을 작성해 주세요.
    • 한자리 숫자이다가 2자리 숫자이면서 깨지는 것은 예외처리해주셔도 되고 하지 않으셔도 됩니다.
    • 방법은 if(10>x) printf(" ");입니다.
 1
 2  3
 4  5  6
 7  8  9 10
11 12 13 14 15
16 17 18 19 20 21
 4.다음 모양을 출력하는 프로그램을 작성해 주세요.
                1
             2  3
          4  5  6
       7  8  9 10
   11 12 13 14 15
16 17 18 19 20 21
 5.위 두 프로그램을 일반화 시켜 입력받은 숫자만큼 출력해주는 프로그램을 작성해주세요.(위 프로그램은 21을 입력)
 6.위 프로그램처럼 숫자를 순서대로 출력하는 프로그램을 피라미드 형태로 작성해 주세요.
 7.위 프로그램처럼 숫자를 순서대로 출력하는 프로그램을 다이아몬드 형태로 작성해 주세요.
 8.아래 프로그램을 참고하여 60점 이하는 F, 61~70점 D, 71~80 C, 81~90 B, 90~ A인 프로그램을 작성해주세요.
#include <stdio.h>
int main(){
	int num;

	printf("성적 입력 : ");
	scanf("%d", &num);

	switch(num/10){
		case 10 :
		case 9 :
			printf("A\n");
			break;
		case 8 :
			printf("B\n");
			break;		
		default :
			printf("???\n");
			break;
	}
			
}
 9.101부터200까지의 모든 정수를 더해서 반환하는 '함수'를 작성해주세요.(main문에는 sum=Sum(); printf("%d",sum);이 있도록해주세요)
 10.재귀함수를 이용해 n!을 출력하는 프로그램을 작성해 주세요.
 11.n!을 출력하는 프로그램을 for문으로 작성해주세요.
 12.재귀함수를 이용해 1부터10까지를 더하는 프로그램을 작성해 주세요.
 13.배열에 {7,4,2,9,3,1,2}가 들어있습니다. 이 배열에서 3이 있는지 없는지를 찾아서 출력해주는 프로그램을 작성해주세요.
 14.배열에 {7,4,2,9,3,1,2}가 들어있습니다. 이 배열에서 1이 몇번째에 있는지를 찾아서 출력해주는 프로그램을 작성해주세요. (단, 7은 첫번째입니다)
 15.배열에 {7,4,2,9,3,1,2}가 들어있습니다. 이 배열에서 2가 있는지 없는지를 검사하고, 있다면 어디에 있는지 전부 출력해주는 프로그램을 작성해주세요.
 16.배열에 {7,4,2,9,3,1,2}가 들어있습니다. 이 배열을 정렬(오름차순으로)하고, 출력하는 프로그램을 작성해주세요.
  • 예습과제
    1. 2차원 배열이 무엇인지 쓰고, 어떻게 선언하는지도 작성한 뒤, 이를 이용한 간단한 프로그램을 작성해주세요.
    2. srand()함수가 무엇인지 찾아쓰고, time()을 이용해 랜덤으로 숫자를 하나 출력하는 프로그램을 작성해주세요.
    3. 포인터가 무엇인지 쓰고, 포인터를 선언하는 방법을 쓰세요.
    4. 배열과 포인터의 공통점과 차이점을 찾아보고, 써보도록 하세요.

후기

곽길문

  • 배열개념, 함수 배웠습니다. 과제 일요일까지 내기, 프린트 해오기. 수정 사항 이었습니다.

도상희

  • 함수, 재귀함수, 배열.
  • 예습, 복습 열심히! :-)

황혜림

  • 재귀함수 : 자기 자신함수를 다시 불러서 사용하는 함수
int fact(int n)
{
	int sum;

	if(n==1)
		return 1;
	else
		sum=fact(n-1)*n;

	return sum;


}

int main()
{
	int n;

	scanf("%d",&n);

	printf("%d\n",fact(n));

	return 0;

}

swap : 두 개의 숫자를 바꾸기 위해서
 배열 : 변수를 여러개 사용하지 않기 위해 사용

 느낀 점 : 전에 배웠던 내용이라서 아직 까지는 이해하기 쉬웠다. 코딩을 많이 해봤으면 좋겠다:-@ 
    • 제가 그 부탁을 드려드렸습니다.. 과제의 80%가 코딩인 현실! -김태진

한송이

    • 함수, 배열을 배웠는데 수업시간에 배웠던것 같은데 아직은 헷갈린다
   미리 예습을 해오니 수업듣기 훨씬 편했다.앞으로는 예습 복습을 철저히 해야겠다.
    • 제가 다음시간에 설명할 부분이 많을때는 예습을 해오는게 중요하거든요. 안그러면 시간내에 할당량을 소화하지 못하겠더라는.. -김태진

3회차(5/23)

후기

도상희

황혜림

  • 포인터변수에 대해서 배웠다.

조금 헷갈리긴 했지만 과제를 하면서 개념을 정확하게 알아가야겠다.

한송이

  • 피라미드 모양 별찍기 쪽지셤, 2차원 배열, 포인터 를 배웠다.
  과제할 때 항상 디버기하고 고치고 했는데 앞으로는 머리로 생각 하고 해야겠다는것을 쪽지셤 보면서 느꼈다ㅜㅜ
    그리고 과제 빨리 올려주세요!!  

곽길문


2012년활동지도,새싹교실/2012