U E D R , A S I H C RSS

새싹�실/2011/�미안반

1. 참여� 명단

�름3/163/233/303/314/74/275/45/115/185/256/8
강소현 O O O O O O O O O O O
박성국 O O O O O O O O X O O
�준� O O △ O O O O O O O O

2. 수업

2.1. 1회차(3/16)

  • 수업시간 - 10:00 ~ 12:00

2.1.1. 수업내용

  • C언어ì�˜ 역사
  • C언어ì�˜ 장&단ì �
  • 프로그램 완성과정
  • 실습

/* Hello.c */
#include <stdio.h>
int main(void) 
{
  printf("Hello, World!\n");
  return 0;
}

2.1.2. QnA

  • 선형대수학ì�„ 배우는 ì�´ìœ ?
    • ApplicationDB그래픽스네트워í�¬
      컴공 core�료구조알고리즘
      수학선형대수학�산수학수치해�
      으로 위쪽으로 갈 수� �위개��� 합니다. 선형대수학 때 배운 내용� �부가 수치해�(3-1학기)� 들어있습니다. 그리고 그래픽스(4-1학기) 수업�서 수치해�� 전제로 수업� 합니다. 수업시간�는 선형대수학� �기하�했었는�, C��브러리로 그래픽� 만드는 �� 컴퓨터 그래픽스 수업� 관심� 있으신 분� 절대 �기하지 마세요 ㅎㅎ
  • í…… 빈 공간ì—� ; 를 í•´ë�„ 오류 ì—†ì�´ 실행ë�˜ëŠ” ì�´ìœ ?
    • ; 는 문장ì�˜ ë��ì�„ 나타내므로, printf("Hello World"); 처럼 어디까지 ë‚´ìš©ì�´ 있다 나타내는 것처럼 빈 공간ë�„ 빈 공간 그대로 ì�¸ì‹�ì�´ ë�˜ì§€ 않았나 ì‹ì–´ìš”.
  • C언어ì�˜ 단ì � 중 low-levelì � 특성으로 프로그래ë°�ì�„ 하는ë�° ë§Žì�€ 주ì�˜ë¥¼ 요한다 했는ë�°, 실제로 잘못 사용한 사례는?
    • 나중ì—� í�¬ì�¸í„°ë¥¼ 사용하는 실습ì�„ 하다 ë³´ë©´ ë§Žì�€ 깨달ì�Œì�„ ì–»ì�„ 수 있지 않ì�„까 ì‹ìŠµë‹ˆë‹¤...
  • printf를 왜 ì œì�¼ 처ì�Œ 배우나요?
    • 아무래ë�„ 성과가 바로바로 눈ì—� ë³´ì�´ê²Œ ìœë ¥í•˜ì—¬ 확ì�¸í•  수 있는 함수ì�´ë‹¤ 보니, 초보ìž�ê°€ 바로 ì�´í•´í•˜ê¸° 어려움ì—�ë�„ 불구하고 처ì�Œì—� 배우게 ë�˜ëŠ” 듯 합니다.
  • C언어 ì „ì�´ B언어 였는ë�° A언어ë�„ 있나요?
    • A언어 : ALGOLì�„ ë§�합니다. 고급 프로그래ë°� 언어(어셈블리나 기계어를 저급 프로그래ë°� 언어ë�¼ê³  합니다)로 ê°�ê´‘ë°›ë�˜ í�¬íŠ¸ëž€ForTranì—� 대항하기 위해 유럽ì�„ 중심으로 개발ë�œ 프로그래ë°� 언어입니다. ALGOLì�€ Algorithm Languageì�˜ 약ìž�로서, ì�´ë¦„ 그대로 알고리즘 연구개발ì�„ 위해 만들어졌습니다. 하지만 ALGOLì�€ 특정한 프로그래ë°� 언어를 지칭하기 보다는 C언어나 파스칼과 ê°™ì�´ 구조화ë�œ 프로그래ë°� 언어를 지칭하는 ë§�(ALGOL-like programming language)로 쓰입니다. ìœì²˜ ë§�í�¬! í�´ë¦­í•˜ì„¸ìš”:)
  • 기계어로 번역ë�œ 파ì�¼ì�´ .obj 파ì�¼ì�¸ë�° 왜 ì�´ìƒ�한 ì˜�어들로 ë�˜ì–´ìžˆë‚˜ìš”?
    • 메모장으로 열어서 글ì�´ 깨졌어요 ã… ã…  연결프로그램ì�„ Visual Studio로 하면 번역ì�´ ì •ìƒ�ì �으로 ë�˜ì–´ìžˆì�„ê±°ì—�ìš”. 숫ìž�ê°€ 010100 하면 너무 길어서 16진수로 표현ì�´ ë�˜ì–´ìžˆëŠ”ë“¯ 합니다.

2.1.3. 후기

  • ì�´ì¤€ì˜� - C언어ì�˜ 기초ì �ì�¸ ë‚´ìš©ì—� 대해 다시 배울 수 있었습니다. ìƒ�ê°�나는거로는 %dê°€ ìƒ�ê°�나네요.
    아� 어렵지만 열심히 배우�� 하겠습니다. 소현누나 고마워요.
  • 강소현 - 열성ì �으로 질문ì�„ 해주어서 좋았습니다. A언어ë�„ 있는지ì�˜ 여부를 물었었는ë�° 저는 몰ëž�었는ë�° 실제로 존재하ë�”ë�¼êµ¬ìš” ã…Žã…Ž 가벼운 ë‚´ìš©ì�´ë�¼ë�„ ì�˜ë¬¸ì�´ 드는 사항ì�´ë�¼ë©´ 언제든지 위키나 문ìž�로 질문해주면 최대한 답변ì�„ 달ë�„ë¡� 노력하겠습니다. 다ì�Œ 시간ì—�는 ì�´ì „ì—� 실습했ë�˜ 것ì�˜ 복습과 scanf ì�´í›„로 나갈 예정입니다. PPT 준비ì—� ë””ìž�ì�¸ë�„ ì—†ì�´ 급하게 만든 í‹°ê°€ 났었는ë�°, 다ì�Œ 시간ì—�는 조금 ë�” 준비를 해가겠습니다:)
  • 박성국 - ì�´ 수업ì�´ C프로그래ë°� ê°•ì�˜ì—�서 ì�´í•´ 안ë�˜ì—ˆë�˜ 부분ì�„ ì�´í•´ í•  수 있게 ë�„와졌어요^^ 앞으로ë�„ 모르는것 ë§Žì�´ 알려주세요~.

2.2. 2회차(3/23)

  • 수업시간 : 10:00 ~ 12:00

2.2.1. 수업내용

  • ìž…, ìœë ¥ 함수 - printf, scanf
  • redirection
  • ì—°ì‚°ìž�
    • 산술연산ìž� 사용 예


#include <stdio.h> //printf 함수 사용
int main(void)
{
  int val1 = 4;
  int val2 = 2;

  printf("� 수� �셈: %d\n", val1+val2);
  printf("� 수� 뺄셈: %d\n", val1-val2);

  return 0;
  • 기타 대입 ì—°ì‚°ìž� 사용 예

#include <assert.h> //assert 함수 사용
int main(void)
{
  int val1 = 4, val2 = 2;
  val1 += 3;
  val2 *= 2;
  assert(val1 == 7); //val1ì�´ 7ì�¸ 경우 ì •ìƒ� 종료, 아닌 경우 오류 ìœë ¥
  assert(val2 == 4); //val2ì�´ 4ì�¸ 경우 ì •ìƒ� 종료, 아닌 경우 오류 ìœë ¥

  return 0;
}
  • ì¦�ê°€, ê°�소 ì—°ì‚°ìž� 사용 예

#include <assert.h> //assert 함수 사용
int main(void)
{
  int val = 10;

  assert(val++ == 10); //val++한 ê°’ì�´ 10ê³¼ 같으면 ì •ìƒ�ìž‘ë�™. 아니면 오류 ìœë ¥
  assert(++val == 12); //++val한 ê°’ì�´ 12ê³¼ 같으면 ì •ìƒ�ìž‘ë�™. 아니면 오류 ìœë ¥

  return 0;
}
  • 관계 ì—°ì‚°ìž� 사용 예

#include <assert.h> //assert 함수 사용
int main(void)
{
  int val1 = 10;
  int val2 = 12;

  assert(val1 <= val2); //val2ê°’ì�´ val1값보다 í�¬ê±°ë‚˜ 같으면 ì •ìƒ�ìž‘ë�™. 아니면 오류 ìœë ¥

  return 0;
}
  • 논리 ì—°ì‚°ìž� 사용 예

#include <assert.h> //assert 함수 사용
int main(void)
{
  int val1 = 10;
  int val2 = 12;

  assert(val1 < val2 && val2 == 12); //val2ê°’ì�´ val1값보다 í�¬ê³ , val2ê°’ì�´ 12와 같으면 ì •ìƒ�ìž‘ë�™. 아니면 오류 ìœë ¥
  assert(val1 > val2 || val2 != 11); //val2ê°’ì�´ val1값보다 í�¬ê±°ë‚˜, val2ê°’ì�´ 11ì�´ 아니면 ì •ìƒ�ìž‘ë�™. 아니면 오류 ìœë ¥

  return 0;
}

2.2.2. 과제

  • 산술 ì—°ì‚°ìž� 사용 예ì—�서 val1ê³¼ val2를 곱셈, 나눗셈, 나머지를 구하는 것ì�„ 추가하여 ìœë ¥í•´ë³´ìž�.
  • 기타 대입 ì—°ì‚°ìž� 사용 예ì—�서 assert(val1 == 7); 를 assert(val1 != 7); 로 바꾸어 실행해보기.
  • 기타 대입 ì—°ì‚°ìž� 사용 예ì—�서 -= , /= , %= 한 결과를 assert(val1 == 7); 와 ê°™ì�´ assert함수 안ì—� 넣어 확ì�¸í•˜ì‹œì˜¤.
  • ì¦�ê°€ ê°�소 ì—°ì‚°ìž� 사용 예ì—�서 ê°�소연산ìž�를 사용한 예를 추가해보ìž�.
  • 관계 ì—°ì‚°ìž� 사용 예ì—�서 >= , != ê°€ 사용ë�˜ëŠ” 사례를 만들어보ìž�(변수 val3 만들어서).
  • 실수(float)를 2ê°œ 입력받아(scanf), 앞서 ë°›ì�€ ê°’ì�´ ë’¤ì�˜ 값보다 í�¬ë©´ ì •ìƒ�ìž‘ë�™, 아니면 오류를 ìœë ¥í•˜ë�„ë¡� í•´ë³´ìž�(assert)

2.2.3. 과제제ìœ


#include <stdio.h>

int main()
{
	int val1 = 4;
	int val2 = 2;
   
	printf ("%d\n",val1*val2);
	
	system("pause");

	return 0;
}
#include <stdio.h>

int main()
{
	int val1 = 4;
	int val2 = 2;

	printf ("%d\n", val1/val2);

	system("pause");

	return 0;
}
#include <stdio.h>

int main()
{
	int val1 = 3;
	int val2 = 2;

	printf("%d\n", val1%val2);

	system("pause");

	return 0;

}
#include <assert.h>

int main()
{
	int val1 = 4, val2 = 2;
	val1 += 3;
	val2 *= 2;
	assert(val1 != 7);//printf ë�„ 안쓰고 ê°’ì�„ ìœë ¥í•  수 있다니 assertì�˜ ì •ì²´ê°€ ê¶�금 하네요.
	assert(val2 != 4);//수업시간� �세히 알려주세요~
//� 그리고 �거 실행하면 �러가 나는� 값� 7과4 맞으니까 �러 안뜨지 안나요???
	return 0;
}
#include <assert.h>

int main()
{
	int val1 = 10, val2 = 8;
	val1 -= 3;
	val2 /= 2;
	assert(val1 != 7);
	assert(val2 != 4);

	return 0; //�것� 오류 아닌거 같�� 오류가 나네요 (수업시간때 잘못�것좀 지�해 주세요)
}
#include <assert.h>

int main()
{
	int val1 = 4, val2 = 2;
	val1 %= 3;
	val2 %= 2;
	assert(val1 != 1);
	assert(val2 != 0);

	return 0; // �것� 오류가;;
}
#include <assert.h>
int main()
{
	int val = 15;

	assert(--val == 14);
	assert(val-- == 14);

	system("pause");

	return 0;
}
#include <assert.h>

int main()
{
	int val1 = 13;
	int val2 = 12;
	int val3 = 13;

	assert(val1 >= val2);
	assert(val1 != val3);

	return 0; //�게 왜 오류가 뜨는지 알 수 없네요 ;; 그리고 main() 괄호 안� void 넣든 안넣든
	//별�관 없는것 같�� 왜 void를 쓰죠???
}
#include <assert.h>

int main()
{
	float val1,val2;

	scanf("%d %d", &val1, &val2);

	assert(val1 < val2 && val2 == 12);
	assert(val1 < val2 || val1 != 11);

	return 0; //아 �것� 오류가 안나야 �는� 오류가 나네요 � 근본�� 무언가가 틀린거 같아요.
	// 그리고 float�란 실수를 정�해 주는건가요???
	// �경우엔 int를 안 �주는게 맞나요???
}

2.2.4. QnA

  • assert 문ì—�서 오류가 난 ì�´ìœ ?

#include <assert.h>
int main()
{
	int val1 = 10, val2 = 8;
	val1 -= 3;
	val2 /= 2;
	assert(val1 != 7);
	assert(val2 != 4);

	return 0;
}
  • assert는 강하게 주장하다ë�¼ëŠ” ì�˜ë¯¸ë¡œ 위와 ê°™ì�€ 경우 val1ì�´ 7ì�´ 아니다! val2ê°€ 4ê°€ 아니다! ë�¼ê³  주장한다는 ì�˜ë¯¸ìž…니다. 하지만 val1ê°’ì�€ 7ì�´ê³ , val2ì�˜ ê°’ì�€ 4니까 ì—�러창ì�„ ë�„워 주장ì�´ 잘못ë��다고 알려주는 ê±°ì—�ìš”. ì „ì²´ì �으로 ì�˜ë¬¸ì‚¬í•­ì�€ assert문보다는 !=ì�˜ ì�˜ë¯¸ë¥¼ 잘 몰ë�¼ì„œ 그런 듯 합니다. == 는 같다, !=는 아니다ë�¼ëŠ” ì�˜ë¯¸ì�˜ 관계연산ìž�입니다.
  • int main(void) 안ì—� void를 넣든 안넣든 ìƒ�관없는 ì�´ìœ ?
    • ì›�래는 ì›�ì¹™ìƒ�으로 voidë�¼ê³  명시해서 매개변수를 사용하지 않고 비어있다!!ê³  알려야하지만, 아무것ë�„ 안 쓰는 것ë�„ 비어있다는 ì�˜ë¯¸ë¡œ 허용해서 그렇습니다.

2.2.5. 후기

  • 박성국 - 오늘 다양한 ì—°ì‚°ìž�ì—� 대해 ë°°ìš°ê³  printf 와 scanf ì—� 대해 잘 ì�´í•´ í•  수 있었어요. ê°�사합니다.^^
  • ì�´ì¤€ì˜� - 수업시간ì—� ì�´í•´ê°€ 잘안가ë�˜ printfëž‘ scanf를 배울 수 있어서 유ì�µí•œ 시간ì�´ì—ˆìŠµë‹ˆë‹¤. 기타 ì—°ì‚°ìž�ë�„ 배울 수 있었습니다.ê°�사합니다.
  • 강소현 - 4피ì—�서 수업ì�´ 없는 줄 알고 괜히 ì�´ë�™í–ˆë‹¤ê°€ 다시 6피로 ì�´ë�™í•˜ëŠ” 번거로운 ì�¼ì�„ 했었는ë�°, 앞으로는 얌전히 6피ì—�서만 수업ì�„ 해야겠어요. 수요ì�¼ 11시부터 12시까지 ë”± 새싹 시간ì—� 다른 수업ì�´ 있는 줄 몰ëž�었어요 ã… ã…  printf와 scanfì—�서 시간ì�„ ë§Žì�´ 투ìž�해서, 급하게 ì—°ì‚°ìž�를 쭉쭉- 설명하고 ë��ë‚´ëŠ�ë�¼ 기억ì—� 남지 않ì�„ 것 같습니다. ë”°ë�¼ì„œ ì—°ì‚°ìž�ì—� 관한 간단한 과제를 ë‚´ì–´ ì�µížˆë�„ë¡� 하겠습니다.(?!) 준비를 잘 해와야하는ë�°, 계ì†� 부족한 ê°•ì�˜ë�¼ê³ ë§Œ 하는 것ì�€ 겸ì†�ì�´ 아니ë�¼ 그냥 ìž�기비하란 ìƒ�ê°�ì�´ 문ë“� 들었습니다. ê·¸ ë�™ì•ˆ 푸ë…�ì�„ 들어주어 미안했고, 앞으로는 그런 ì�¼ì�´ ì—†ë�„ë¡� í•  것입니다.

2.3. 3회차(3/30)

  • 수업시간 - 11:00 ~ 12:00

2.3.1. 수업내용

  • #define ì�´ëž€?
    • 실행파ì�¼ì�˜ ìƒ�성순서
    • 전처리기
    • 심볼릭(Symbolic) ìƒ�수
  • ë�°ì�´í„° 저장ì�„ 위한 변수
    • 변수란?
    • 변수 ì„ ì–¸ 시 주ì�˜ì‚¬í•­
    • ìž�료형

�세한 내용� PPT� 있습니다:)

2.3.2. QnA

  • 2ì�˜ 보수는 ë­�ê³ , 왜 사용하나요?
    • 2ì�˜ 보수ì—� 2ì�˜ 보수ì—� 대한 설명ì�´ 있습니다. 왜 0000 0010 ì�˜ ì�Œìˆ˜ 형태를 1000 0010 으로 하지 않고, 2ì�˜ 보수 형태ì�¸ 1111 1110 ì�„ 사용했ëƒ�! ì�´ê±´ 컴퓨터가 ì�Œìˆ˜ì™€ 양수를 ì�´ìš©í•œ 계산ì�„ 편리하게 하기 위해 그런듯합니다. 2-2를 우리야 바로 0ì�´ë�¼ê³  계산할 수 있지만, 컴퓨터는 2+(-2)형태로 바꿔서 0000 0010 ê³¼ 1111 1110ì�„ ë�”í•´ 0000 0000 ì�´ 나오게 합니다. 컴퓨터ì—�서 가산기를 사용하여 뺄셈ì�„ 하기 위해 ì�Œìˆ˜ì�˜ 표현으로 ìž�주 사용ë�œë‹¤ë�¼ê³  사전ì—� 나오네요ㅠㅠㅋ

2.3.3. 후기

  • 박성국 - 오늘ì�€ 전산처리기와 ìž�료형ì—� 대해서 배웠습니다. ìž�세히 몰ëž�ë�˜ #include<stdio.h> 등 ì�´ ì–´ë–¤ 역활ì�„ 하는지
알 수 있었어요. � int, char 등� �미와 역활� 대해 알 수 있었습니다. 오늘 전산처리기와 �료형� 대해 배웠으니 다�� 본격�으로 프로그램� 짜는것� 배우겠다.^^
  • ì�´ì¤€ì˜� - 오늘 심볼릭 ìƒ�수를 배웠습니다. constëž‘ defineì�„ ë°°ì› ì–´ìš”. 먼지는 모르겠지만 나중ì—� 암기하ë�„ë¡� 하겠습니다.
그리고 �료형� 실수형/정수형 등등� 표현법� 배웠습니다. �소 취약하� 부분�었는� 오늘 해결� 수 있었습니다.
변수� 선언과 초기화시 유�할�� 알 수 있어서 유�했습니다. 무엇보다 앞으로 �주 쓰�는 �료형�
char, int, float, double� 서�문�를 암기하�� 노력하겠습니다.
  • 강소현 - 1시간 늦췄지만, í•™êµ� 수업 ì�´ì „ì—� 새싹 êµ�실ì�„ 하는 것ì�´ ë§Žì�´ 부담ì�´ ë�˜ëŠ” 듯 합니다. ë‚´ì�¼ 오후ì—� 수업ì�„ 하면서 다시 시간ì�„ ì •í•  계íš�입니다. 오늘 ë°°ìš´ 전처리기와 변수, ë�°ì�´í„° 타입ì�„ ë��으로 ì�´ë¡  위주ì�˜ 수업ì�€ ê±°ì�˜ ì—†ì�„ ê±°ì—�ìš”! 앞으로 ê·¸ ë�™ì•ˆ ë°°ì› ë�˜ 기본ì �ì�¸ 것ì�„ 활용하여 열심히 실습ì�„ 해봅시다ㅋㅋ

2.4. 4회차(3/31)

  • 수업시간 - 18:00 ~ 19:00

2.4.1. 수업내용

  • 반복문
    • while

#include <stdio.h>
int main()
{
  int i = 1;
  while(i<=10)
  {
    printf("%d번째 ìœë ¥\n",i);
    i++;
  }
  return 0;
}
  • do~while

#include <stdio.h>
int main()
{
  int i = 1;
  do
  {
    printf("%d번째 ìœë ¥\n",i);
    i++;
  }while(i<=10);
  return 0;
}
  • for

#include <stdio.h>
int main()
{
  int i;
  for(i=1; i<=10; i++)
  {
    printf("%d번째 ìœë ¥\n",i);
  }
  return 0;
}
  • 중첩 반복문
    • for

#include <stdio.h>
int main()
{
  int i, j;
  for(i=0; i<2; i++)
  {
     printf("j for문 실행 전 i값=%d\n",i);
     for(j=0; j<3; j++)
     {
        printf("여기는 안쪽 for문! j=%d\n",j);
     }
     printf("j for문 실행 후 i값=%d\n",i);
  }
  return 0;
}

2.4.2. 후기

  • 박성국 - 오늘ì�€ printf 를 ì“°ì§€ 않고 for ê³¼ while or do whileì�„ 사용하여 어떻게 문장ì�„ 반복하는지ì—� 대하여 ìž�세히 배웠다. ì�´í•´ê°€ 차근차근 잘ë�˜ì–´ì„œ 좋ì�€ 수업 ì�´ì—ˆë‹¤.
  • ì�´ì¤€ì˜� - 반복문ì�„ 배웠습니다. for문과 while, do while ì�„ 배웠는ë�° 다 비슷한 문법 같습니다.
while� 중첩하는 방법� 배웠는� 매우 복잡한것 같습니다.
매우 유�한 시간�었어요. �사합니다.
  • 강소현 - 반복문ì�€ 괜찮지만, 중첩ì�„ 하면서 안드로메다로 ê°„ 듯 합니다. 다ì�Œ 시간ì—� 다시 중첩ì�„ í•´ë³´ë�„ë¡� 하겠습니다. 좀 ë�” 쉽게 설명할 방법ì�´ ì—†ì�„까 고민ë�˜ë„¤ìš” @ã…�@;; 그리고...준ì˜�ì�´ê°€ 콩나물 잘 못먹는다는 ì�˜ê²¬ì�„ 무시하고 콩불ì�„ 먹으러 가서 죄송합니다ㅠㅠ 소수ì�˜ ì�˜ê²¬ì�„ 묵살하지 마세요!하면서ë�„ 가길래 ã…‹ã…‹ ì•„...성국ì�´ëŠ” 매운 ê±° 잘 못 먹는 줄 몰ëž�ê³ ..저는 ë˜� 늦게 먹었다고 ì†�쓰리고 ã…‹ã…‹ã…‹ã…‹ã…‹ã…‹ã…‹ ì�´ëž˜ì„œ ì�˜ê²¬ì�€ 존중해줘야 하는 거였군요!!(?!) 앞으로는 모ë‘�ì�˜ ì�˜ê²¬ì�„ 종합하여 í•´ê²°ë´�야겠어요 ã… ã… ã… ã… ã…‹

2.5. 5회차(4/7)

  • 수업시간 - 18:30 ~ 20:30

2.5.1. 수업내용

  • if, else if, else
  • switch, break, continue
  • if, switch, while 활용 사례

#include <stdio.h>
#include <stdlib.h>
int main()
{
	int choice=0;//int형 변수 선언 � 초기화
	char day;//char형 변수 선언
	while(1)
	{
		printf("아침 기�\n");
		printf("성국�는 아침으로(1:밥 2:김치 3:�부 4:삼겹살 0:다먹�) ");
		do
		{
			scanf("%d",&choice);//정수형 숫� 입력 받�
			switch(choice)
			{
			case 1:
				printf("ë°¥, ");
				break;
			case 2:
				printf("김치, ");
				break;
			case 3:
				printf("�부, ");
				break;
			case 4:
				printf("삼겹살, ");
				break;
			case 0:
				printf("�(를) 먹었다.\n");
				break;
			default:
				printf("물, ");
				break;
			}
		}while(choice != 0);

		printf("그리고 학�� 갔다.\n");
		printf("수업� 대충 듣다 빠져나와서 성국�는(1:당구장 2:PC방 3:술집) ");
		scanf("%d",&choice);//정수형 숫�를 입력받�
		switch(choice)
		{
		case 1:
			printf("당구장� 갔다.");
			break;
		case 2:
			printf("PC방� 갔다.");
			break;
		case 3:
			printf("술집� 갔다.");
			break;
		default:
			printf("어딜 가려하였으나 그냥 다시 수업� 하러 갔다.");
			break;
		}

		printf("다 �나고 하숙집� �아가 저�� 먹고 잤다.\n");
		printf("다� 날� ���었나?(y:yes n:no) ");
		fflush(stdin);//입력버�를 비워준다. '\n'� 문�로 ��하니까.
		scanf("%c",&day);//'%c'는 문�를 입력받�.
		if(day == 'n')
		{
			printf("주��니 집으로 내려갔다.\n");
			break;
		}
		system("pause");//�시정지
		system("cls");//clear screen
	}
}
  • 별ì°�기 예시

#include <stdio.h>
int main()
{
	int i,j,h;
	for(i=1;i<=10;i++)//10번 ìœë ¥
	{
		for(j=1;j<=i;j++)//별 갯수
		{
			printf("*");
		}
		printf("\n");
	}
	return 0;
}

2.5.2. 과제

  • 높ì�´ h를 입력받아 별ì�„ ìœë ¥í•˜ì„¸ìš”.
(ex)h=5ì�¼ 때 ìœë ¥ 형태.
*****
****
***
**
*
  • 높ì�´ h를 입력받아 Oì�„ ìœë ¥í•˜ì„¸ìš”.
(ex)h=5ì�¼ 때 ìœë ¥ 형태.
    O
   OO
  OOO
 OOOO
OOOOO

2.5.3. 과제제ìœ


#include <stdio.h>

int main()
{
	int i,j;

	for(i=1;i<=5;i++)
	{
		for(j=5;i<=j;j--)
			printf("*");
		printf("\n");
	}
	return 0;
}
#include<stdio.h>

int main()
{
	int i,j,h;

	scanf("%d",&h);

	for(i=0;i<h;i++)
	{
		for(j=1;h-i>j;j++) 
			printf(" ");
		for(j=0;i>=j;j++)
			printf("o");
		
	printf("\n");
	}
	return 0;
}//한글 ㅇ를 치니까 피�미드가 나오��요 ㅇㅅㅇ �건 어떤 현��지 ㅋ?

2.5.4. QnA

  • 한글 ㅇ를 치니까 피ë�¼ë¯¸ë“œê°€ 나옵니다.
    • 한글 ㅇ가 칸 수를 ë§Žì�´ 차지해서 그렇습니다.

2.5.5. 후기

  • 박성국 - 오늘ì�€ if를 활용하는 방법ì—� 대해서 ìž�세히 ë°°ì› ì–´ìš”^^ 그리고 if와 비슷한 switch를 ì�´ìš©í•˜ì—¬ 다양한 경우를 ìœë ¥í•´ 보는것 ë˜�한 ë°°ì› ì–´ìš”:)
  • ì�´ì¤€ì˜� - ì�´ì œ 본격ì �으로 줄 수가 많아지니 í�¥ë¯¸ê°€ ìƒ�ê¹�니다. ifì—� 대해 ìž�세히 배울 수 있었습니다.
유�한 시간�었습니다.
  • 강소현 - if,for,while,switch를 ë°°ìš°ê³ , 실습ì�„ 병행하였습니다. 구구단ì—�서 홀수만 ìœë ¥í•˜ëŠ” 경우 i+=2 를 하거나, continue를 활용하는 사례ë�„ 시행해보았습니다. 다ì�Œ 주는 시험 ì�¼ì£¼ì�¼ ì „ì�¸ 관계로 수업ì�„ 휴강하겠습니다. 시험 ë��나고 ë´�ìš”~ã…�~

2.6. 6회차(4/27)

  • 수업시간 - 10:00 ~ 11:30

2.6.1. 수업내용

  • rand()를 ì�´ìš©í•´ì„œ up-down 게임 만들기

#include <stdio.h>
#include <stdlib.h> //srand, rand
#include <time.h> //time
int main()
{
	int num, i;
	srand((unsigned)time(NULL));  
	printf("%u\n",(unsigned)time(NULL));
	for(i=0; i<10;i++){
		num=rand()%5;
		printf("%d ",num);
	}
	return 0;
}

2.6.2. 실습


#include <stdio.h>
#include <stdlib.h> //srand, rand
#include <time.h> //time
int main()
{
	int num,i,min=0,max=99;
	srand((unsigned)time(NULL));
	num=rand()%100;

	
	while(1){
		scanf("%d",&i);
		if(num>i){
			printf("up\n");
			if(min<i){
				min=i;
				}
			printf("%d�서 %d 사�\n",min,max);	
		}else if(num<i){		
			printf("down\n");
			if(max>i){
				max=i;
				}
			printf("%d�서 %d 사�\n",min,max);
		}else break;
	}
	

	return 0;

}


#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
	int n,a,min=0,max=99;

	srand((unsigned)time(NULL));
	n = rand()%100;
	

	while(1)
	{
		scanf("%d",&a);
		if(a<n){
			if(a>min) min=a;
			printf("up (%d<n<%d)\n",min,max); 
		}
		else if(a>n){
			if(max>a) max=a;
			printf("down (%d<n<%d)\n",min,max);
		}
		else
			break;
	
	}
	return 0;
}


2.6.3. 과제

  • ë‘� ê°œì�˜ 1~9 사ì�´ì�˜ 정수를 입력받아 구구단 문제 푸는 게임ì�„ 만드세요.
    • ìœë ¥ 예시

3 * 5 => // 13 입력(내가 입력한 값)
틀렸습니다.
3 * 5 => // 15 입력(내가 입력한 값)
맞았습니다.
그만하시겠습니까?(y: yes, n: no) => n
7 * 9 => // 63 입력(내가 입력한 값)
맞았습니다.
그만하시겠습니까?(y: yes, n: no) => y

2.6.4. 과제제ìœ


#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
	int a,b,c,i;
	srand((unsigned)time(NULL));
	while(1){a=(rand()%9)+1;
	b=(rand()%9)+1;
	printf("%d*%d=",a,b);

	while(1){
		scanf("%d",&i);
		if(i==a*b) break;
		else printf("틀렸�\n");
	}
	printf("잘했어요.\n");
	printf("그만하시겠습니까?(0:quit 1:continue)\n");
	scanf("%d",&c);
	if(c==0) break;
	else system("cls");
	}
	return 0;
}

* 박성국
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
	int n,m,a;
	char d,y='y';

	srand((unsigned)time(NULL));
	
	
	while(1)
	{
		n = rand()%9+1;
		m = rand()%9+1;	
		
		while(1)
		{
		printf("%d*%d=?",n,m);
		scanf("%d",&a);
		
		if(n*m==a) 
		{
			printf("%d*%d => // %d\n맞았습니다\n그만하시겠습니까?(y: yes, n: no)",n,m,a);
			fflush(stdin);
			scanf("%c",&d);

			if(d==y) 
			{
				printf(" => y\n"); 
				exit(0);
		    }
			else printf(" => n\n");
			break;
		}
		else
		{
			printf("%d*%d => // %d 입력(내가 입력한 값)\n틀렸습니다.)",n,m,a);
		}
		}
	}
	
	return 0;
}

2.6.5. 후기

  • 박성국 - ^srand 와 rand를 배워 ëžœë�¤ê°’ì�„ 만드는 방법ì�„ ë°°ì› ê³  그것으로 up down 게임ì�„ 만드는 유ì�µí•œ 시간ì�´ì—ˆìŠµë‹ˆë‹¤.^
  • ì�´ì¤€ì˜� - rand와 srand를 ë°°ìš°ê³  ê·¸ë�™ì•ˆ ë°°ì› ë�˜ 반복문과 조건문ì�„ 활용해 간단한 게임ì�„ 만들어보았습니다. 문장ì�´ 조금 길어져서 복잡했어요.
  • 강소현 - while, if, break, continue 등 예전ì—� ë°°ì› ë�˜ 것들ì�„ 게임ì�„ 통해 복습ì�„ 하는 시간ì�„ 가졌습니다.

2.7. 7회차(5/4)

  • 수업시간 - 10:30 ~ 12:30

2.7.1. 수업내용

  • 함수
    • 타입 4 가지
  • variable
    • global, local, static, register
  • call by value

2.7.2. 후기

  • 박성국 - ^오늘ì�€ 함수ì—� 대해서 ìž�세히 ë°°ìš°ê³  ê·¸ì—� 필요한 ì§€ì‹�ì�¸ 지역변수 전역변수 static변수ì—� 대해 ìž�세히 배웠습니다.^ 하나하나 배우면서 C언어어ì—� 대한 ìž�ì‹ ê°�ì�„ 가졌습니다. 특히 Recursive functionì—� 대해 정확한 ì�´í•´ë¥¼ 통하여 활용할 수 있게 ë�˜ì—ˆìŠµë‹ˆë‹¤. í•­ìƒ� 스펀지같ì�´ ì�™ì�™ 머리ì†�ì—� 들어오는 수업 ê°�사합니다.
  • ì�´ì¤€ì˜� - 수업시간ì—� 제대로 집중ì�„ 못해서 잘 못들ì�€ 부분ì�„ ìž�세히 배울 수 있어서 다행ì�´ì—ˆìŠµë‹ˆë‹¤. 재귀함수랑 변수ì�˜ 유형ì�„ ìž�세히 배웠습니다. 앞으로ë�„ ë�” ë§Žì�€ 걸 ë°°ìš°ê³  ì‹ì–´ìš”.
  • 강소현 - 함수ì�˜ 형태를 반환형ì�´ 있는 ì§€ì�˜ 여부와 매개변수가 있는 ì§€ì�˜ 여부ì—� 따른 4 가지를 실습하여 ì°¨ì�´ë¥¼ 알아보았습니다. 그리고 재귀함수ì—� 대한 ì§„ë�„ë�„ 나갔으나, 아무래ë�„ 그냥 함수 한번 호ìœí•˜ê³  ë��낼 때보다 ì�´í•´ê°€ 잘 가지 않는 듯 합니다. 다ì�Œ 시간ì—� 한번 ë�” 복습할 예정입니다. 재귀함수로 만드는 factorialì�´ë‚˜ gcd ê°™ì�€ 것ì�„ ì �í™”ì‹�ì�„ 설명하고 보여주면 좀 ë�” ì�´í•´ê°€ 쉽지 않ì�„까 ì‹ì—ˆìŠµë‹ˆë‹¤.

2.8. 8회차(5/11)

  • 수업시간 - 11:00 ~ 12:00

2.8.1. 수업내용

  • 재귀함수 복습
  • 봉봉 êµ�수님 hw2 문제 í’€ì�´

2.8.2. 후기

  • 강소현 - 한 시간ì�€ ì •ë§� 금방 가네요. ê·¼ë�° 왜 í•™êµ� 수업 들ì�„ 때는 그리 길었ë�˜ê±°ì§€!? 재귀함수를 사용할 경우 í•­ìƒ�! 빠져나올 수 있는 ì¡°ê±´ì�„ 걸어야 한다는 것ì�„ 복습했습니다. 뭔가 ë�„미노 ì›�ì¹™ 어쩌구 하긴 했지만 정확한 게 아니ë�¼ 비슷하다-ê³  í–ˆë�˜ê±°ì—�ìš”. 정확한 ê±´ 3학년 알고리즘 시간ì—� divide&conquerì�„ ë°°ìš°ë©´...<< 간단히 설명하ìž�ë©´ 한번ì—� 풀기 힘드니까 나눠서 í’€ìž�는 내용입니다.
  • 박성국 -
  • ì�´ì¤€ì˜� -

2.9. 9회차(5/18)

  • 수업시간 - 10:00 ~ 11:00

2.9.1. 수업내용

  • Function Call Stack
    • 함수 í˜¸ìœ ì‹œ, stackì—� ë�Œì•„올 주소를 넣어ë‘�ê³  함수가 종료ë�˜ë©´ stackì—�서 빼와서 ë�Œì•„간다. LIFO(Last In First Out)ì�˜ 순으로..
  • ë°°ì—´
    • 둘 ì�´ìƒ�ì�˜ 변수를 ë�™ì‹œì—� 선언하는 효과
    • ë§Žì�€ ì–‘ì�˜ ë�°ì�´í„°ë¥¼ ì�¼ê´„ì � 처리할 때 유용하다
  • 1ì°¨ì›� ë°°ì—´
    • ë°°ì—´ 길ì�´: ë°°ì—´ì�„ 구성하는 변수ì�˜ 개수
    • ë°°ì—´ 요소 ìž�료형: ë°°ì—´ì�„ 구성하는 변수ì�˜ ìž�료형
    • ë°°ì—´ ì�´ë¦„: ë°°ì—´ì—� 접근할 때 사용ë�˜ëŠ” ì�´ë¦„
  • 문ìž�ì—´ 변수
    • 문ìž�ì—´ì�€ ë„�(null) 문ìž�를 ë��ì—� 지닌다.
    • ë„�(null) 문ìž�: ‘\0’ (아스키코드 값으로 0)
    • ë„�(null) 문ìž�를 지녀야 하는 ì�´ìœ 
      • 문ìž�ì—´ì�˜ ë��ì�„ 표현하기 위해서
      • 쓰레기 ê°’ê³¼ 실제 문ìž�ì—´ì�˜ 경계를 나타내기 위해
      • Printf함수는 ë„� 문ìž�를 통해서 ìœë ¥ì�˜ 범위를 ê²°ì • 짓는다.

2.9.2. 실습

  • 실습(2): 문ìž�ì—´ì�„ ìž…ë ¥ 받는다. ìž…ë ¥ ë°›ì�€ 문ìž�ì—´ì�„ 구성하고 있는 문ìž� 중ì—�서 아스키코드 ê°’ì�´ 가장 í�° 문ìž�를 찾아서 ìœë ¥í•˜ëŠ” 프로그램ì�„ 구현해보ìž�.

#include <stdio.h>

int main()
{
	char array[20],max;
	int i;
	scanf("%s", &array);
	max=array[0];
	for(i=0;i<20;i++){
		if(array[i+1]>array[i]) max=array[i+1];
		if(array[i]==NULL) break;
						
	}
	printf("%c", max);

	return 0;
}

2.9.3. 후기

  • 강소현 - ë°°ì—´ì�´ 쉬워서 그런가(?) 예ìƒ�외로 금방 수업ì�´ ë��났습니다. 다ì�Œ 시간ì—�는 시간 ì¡°ì ˆì�„ ë�” 잘 해야겠습니다.
  • 박성국 -
  • ì�´ì¤€ì˜� - 수업 시간ì—� ë°°ì—´ì�„ 제대로 집중ì�„ 안해서 몰ëž�는ë�° 오늘 ë°°ì—´ì�´ 무엇ì�¸ì§€ 알게 ë�˜ì—ˆìŠµë‹ˆë‹¤. 무엇보다 제가 실습2를 ì§�ì ‘ 풀어서 ì •ë§� ì�˜ë¯¸ìžˆì—ˆë�˜ 새싹êµ�실ì�´ì—ˆìŠµë‹ˆë‹¤.

2.10. 10회차(5/25)

  • 수업시간 - 10:30 ~ 11:30

2.10.1. 수업 내용

  • 다차ì›� ë°°ì—´

2.10.2. 후기

  • 박성국 - ë°°ì—´ì—� 대해 í�‰ì†Œ ê°œë…�ê³¼ 실습ì�´ ì �었는ë�° 오늘 ê°œë…�ë�„ ìž�세히 ë°°ìš°ê³  실습ë�„ 충분히 한 시간ì�´ì—ˆì–´ìš”. :) ë˜�한 과제ë�„ 하면서 ë�”ìš± ìž�세히 ì�´í•´ í•  수 있었습니다.!!! 그리고 오늘 수업중 다같ì�´ 나가서 루카스 옷ë�„ 받아온 ì •ë§� 유ì�µí•œ 시간ì�´ì—ˆìŠµë‹ˆë‹¤. ã…‹ã…‹
    • ì�Œ ì�Œ 여러 모로 유ì�µí–ˆì§€ ~ã…�~ã…‹ã…‹ 40ë¶„ì�´ë‚˜ 기다렸지만 만족스러움!ã…‹ã…‹ -강소현
  • 강소현 - 다차ì›� ë°°ì—´ì�˜ ì„ ì–¸ ë°� 초기화와 2ì°¨ì›� ë°°ì—´ì�„ ì�´ìš©í•œ 행렬 계산ì�„ 실습항였습니다. ì�´í›„ì—� sort와 search 부분ë�„ 나가려 하였으나...올 해는 ê¼­ 티셔츠를 받고 ë§�겠다!ë�¼ëŠ” ì�˜ìš•으로 함께 줄 서서 기다렸습니다 /ã…�/ ì•„ 줄ì�´ 안ë�Šê²¨ì„œ 다행ì�´ì—�요ㅎㅎ

2.11. 11회차(6/8)

  • 수업시간 - 10:30 ~ 12:00

2.11.1. 수업 내용

  • í�¬ì�¸í„°
  • 문ìž�ì—´ 조금?

2.11.2. 후기

  • 강소현 - ì�´í›„ì�˜ ë‚´ìš©ì�€... ë°°ìš°ê³  ì‹ì�€ 사람ì—� 한해 ë°©í•™ 때 하기로 했습니다.ì§„ë�„를 너무 ëŠ�리게 나가면 안ë�˜ê² êµ¬ë‚˜í•˜ê³  ëŠ�ë‚€.. ;ã……; 작년ì—�는 3번 수업으로 í�¬ì�¸í„°ê¹Œì§€ 나갔는ë�°, 올해는.. 대ìƒ�ì�´ 다르기는 하지만, ì¡°ì ˆì�„ 잘 못하기ë�„ 했네요. ã… ã… 

  • 위키 정리가 매우 알차네요!! 그런ë�° 한편으론 ì�´ë ‡ê²Œ 정리하려면 위키ì—� ì �는 것ì�´ 새싹êµ�실 ì„ ìƒ�님ì—�게 너무 부담스럽지 않ì�„까 ì‹ì�€ 걱정ë�„ 듭니다. ì¦�ê²�게 정리하고 있다면 ì •ë§� 좋ì�€ ì�¼ì�´ì§€ë§Œ 혹시 너무 부담스럽다면 ë�œ 꼼꼼히 ì �ì–´ë�„ 괜찮ì�„ 것 같아요~ - 김수경
    • 네ㅎㅎ ì�´ì œ 슬슬 시험ì�´ 다가오니까 실습 위주로 나가면서 ì �당히 하려구요 ã…‹ã…‹ã…‹ - 강소현


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