U E D R , A S I H C RSS

새싹교실/2013/라이히스아우토반/3회차 (rev. 1.21)

새싹교실/2013/라이히스아우토반/3회차


  • Template를 만들어 보려 했으나 실패?... 단순히 갱신이 느린건지.. 아니면 내가 권한이 없는 건지... - 고한종(13/04/02)

1. 출석체크

이름 1회2회3회
임지훈 o o 지각
이명면 o o o
지영민 o o o
박경준 o o o
고한종 o o o

2. 수업 내용

2.1. 계획

  • 쓰레기 값에 대해 알아 봅시다.
  • int에서 탈출해 봅시다.
    • 문자 받기.
      • 지난 과제 입력 받아서 하지 않은 사람 입력 쓰는거 해보기.
    • 실수형 가지고 계산하기
      • 원의 넓이 계산.
  • 또 다른 반복문인 while, do while을 배워 봅시다.
    • 과제 필살기(...)인 for-> while, while -> for를 해봅시다.
      • 근데 이런거 배워봐야 좋을거 없어(....)
  • 논리 연산자
    • >,<,!,==,!=,>=,<=,&&,||
  • 조건문을 배워봅시다.
    • if문
      • 대수비교
    • switch문
      • 적절한 예제가 떠오르지 않으므로 ㅇㅈㅎ게임 부활시켜야 겠음(..)

  • 이 모든 연습을 위해 이론은 하지 않는다. 빠른 실습 빠름빠름

2.2. 결과


2.3. 내용

  • 문자 받기
    • 입력을 위한 함수를 써야 합니다. C언어의 콘솔을 위한 입력용 함수는 이런것들이 있습니다.
    • scanf()
    • getchar()
    • gets
    • getch()

  • 원의 넓이 계산
    • 원의 지름을 받아서 넓이를 계산해서 출력.

  • #include<stdio.h>
    int main()
    {
     	char *asdf = "원의 넓이 =";
    	// 변수가 여기 있어야 겠지요?
    	// 뭐가 필요할까요? 직접 채워 넣어 봅시다.
    	puts("원의 넓이를 구합니다. 지름을 입력 해주세요.");
    	
    	// 이 밑에 3개는 무슨 차이 일까?
    	scanf("%f",&ZiLm); // 이걸 보고 위에 변수를 정할 수 있다. 이게 문제.
    	//scanf("%lf",&ZiLm);
    	//scanf("%d",&ZiLm);
    	
    	// 이 밑으로 계산을 해야 겠지요?
    	NulbI = (/*여기는 직접 채워 보자.*/)*3.14;
    	
    	// 출력문은 뭘로 해야 할까?
    	printf("%s%f",asdf,NulbI);
    	printf("%s%lf",asdf,NulbI);
    	printf("%s%d",asdf,NulbI);
    	
    	return 0;
    }
     

  • 대수 비교
    #include<stdio.h>
    int main()
    {
    	char q='q';
    	puts("뺄셈 문제를 물어 볼거에요!");
    	do {
    		int num1 = rand()%10000; //rand()는 임의의 수를 돌려주는 함수.
    		int num2 = rand()%10000;
    		int sub = num1-num2;
    		int ans;
    		
    		printf("%d-%i는 뭘까요? : ",num1,num2);
    		scanf("%d",&ans);
    		//getchar();
    		
    		if(/*여기에 뭘 넣어야 할까?*/)
    		{
    			puts("맞았어요!");
    		}
    		else
    		{
    			puts("틀렸어요");
    		}
    		puts("프로그램을 끄려면 q 아니면 다른거 :");
    		q=getchar();
    	} while (q!='q');
    	puts("프로그램 끝!");
    	
    	return 0;
    }
     

  • ㅇㅈㅎ게임
    #include<stdio.h>
    #include<stdlib.h>
    #include<Windows.h>
    
    #define TURN_GAP 500
    
    int main()
    {
    	int myHP = 10000;
    	int GwaJaeHP = 10000;
    	int GwaJaeDem;
    	char key;
    	
    	puts("야생의 C과제가 나타났다!!!!");
    	while(TRUE)
    	{
    		puts("---------------------------------");
    		puts("무엇을 할까?");
    		puts("a:몸통박치기!! s:튀어오르기!!");
    		
    		key=getchar();
    		
    		// '나'의 차례
    		switch (key) {
    			case 'a':
    				puts("나(은)는 몸통박치기!!를 사용했다.");Sleep(TURN_GAP);
    				GwaJaeHP -= 100;
    				printf("과제는 100의 피해를 입었다!\n");Sleep(TURN_GAP);
    				break;
    			case 's':
    				puts("나(은)는 튀어오르기!!를 사용했다.");Sleep(TURN_GAP);
    				puts("그러나 아무 일도 일어나지 않았다.");Sleep(TURN_GAP);
    				break;
    			default:
    				continue;
    		}
    		
    		//과제의 차례
    		
    		switch (rand()%2) {
    			case 0:
    				puts("과제가 어려워 졌다!");Sleep(TURN_GAP);
    				GwaJaeDem = rand()%100 + 100;
    				myHP -= GwaJaeDem;
    				printf("나(은)는 %d의 mental 피해를 입었다!\n",GwaJaeDem);Sleep(TURN_GAP);
    				break;
    			case 1:
    				puts("과제가 그저 있을 뿐이다.");Sleep(TURN_GAP);
    				puts("아무일도 일어나지 않았다.");Sleep(TURN_GAP);
    				puts("그런데 기분이 나쁘다.");Sleep(TURN_GAP);
    				break;
    			default:
    				break;
    		}
    		Sleep(2000);
    		fflush(stdout);
    		fflush(stdin);
    		system("cls");
    		if(myHP<0)
    		{
    			puts("과제가 너무 강력하다!");Sleep(TURN_GAP);
    			break;
    		}
    		if(GwaJaeHP <0)
    		{
    			puts("과제를 이겼다!");Sleep(TURN_GAP);
    		}
    	}
    	return 0;
    }
     
     

2.4. 과제

학생들의 멘탈을 고려하여 내지 않음.

3. 후기 작성 요령


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

4. 후기

  • Internet Explorer를 제외한 다른 브라우저 (Chrome,FireFox, Opera)로 위키에 들어오면 편집하기 쉬워요.
  • Can't Save가 떴을 땐 당황하지 말고, 작성한 내용을 클립보드에 보존한 뒤(Ctrl+C) 새로고침을 한 뒤 붙여넣고 저장할 것.

4.1. 지훈

오늘은 실수를 표시해주는 float 이란 함수와
rand() 함수 등 여러가지를 배웠습니다.
그래서 정말 재미있었고, 그 다음이 포켓몬스터 같은 형식의 게임이었는데 시간이 없다는 게 너무 억울했습니다.
음... 깨달은 점은 정말 함수같은것은 되게 많구나.. 라고 깨달았고
앞으로는 더 열심히 해야겠습니다.

4.2. 명연

사실, 느낀 점, 깨달은 점, 앞으로의 계획

float do while 등등 많이 배웠다
여태 배운것들이랑 비슷한데 더 많이 알게되서 좋았다
C언어란 언어구나...
또 열심히 담시간에도 열심히 참여해야겠다!

4.3. 지영민


오늘 여러가지를 배웠어요 대수비교도 배웠고, 소수는 float 쓴다는것도 알게됬구요
getchar도 써보고 등등 해봤어요
앞에 부분도 재밌었지만 마지막에 포캣몬이 최고였어요 과제와의 싸움이라니 ㅋㅋㅋㅋ
과제와의 싸움에서 이길때의 쾌감이란 ㅎㅎㅎ
깨달은 점은 역시 노력이 부족함을 깨달았어요 ㅠㅠ
앞으로도 더 노력하고 심심할때 포켓몬 만들어보는 연습도 해보려구요~
지영민/ㅇㅈㅎ게임

4.4. 경준

오늘 if문과 ==,||,&& 등 여러 기호를 배웠다.
또한 getchar() 과 scanf()등 여러 함수를 배우는 활동이었다.
그리고 case를 이용하여 재밌는 게임을 실행해 보았다.

4.5. 고한종

하하 내가 후기를 안써놓다니 미안해. 모범을 못 보이고 있네 ㅠㅠㅠ
지난주에 뭘 느꼈는지 다 까먹어서 후기는 제대로 못쓰겠다.
이래서 후기는 바로바로 써야 하는 겁니다.



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