테스트

검색 :
RSS 구독 : 글 / 댓글 / 트랙백 / 글+트랙백

2일차 2/2 (연산자)

2008/12/17 16:11, 글쓴이 승냥이

1. 연산자

예제 1. 연산자(+, -)

#include "stdio.h"
void main()
{
 int x, y, z;
 x = 10;
 y = 20;
 z = x + y;
 printf("z=x+y\t| x=%d, y=%d, z=%d\n", x, y, z);
 printf("++x\t| x=%d, y=%d, z=%d\n", ++x, y, z);
 
 printf("x++\t| x=%d, y=%d, z=%d\n", x++, y, z);
 x++;
 y--;
 z = x + y;
 printf("z=x+y\t| x=%d, y=%d, z=%d\n", x, y, z);
}

결과 보기

+, - 등을 이용해 변수의 덧/뺄셈을 한다.



예제 2. 이항연산자
#include "stdio.h"
void main()
{
 int x = 10, y = 20, z = 0;
 z = x * y;
 printf("z = x * y\t| x=%d, y=%d, z=%d\n", x, y, z);
 z = y / 5;
 printf("z = y / 5\t| x=%d, y=%d, z=%d\n", x, y, z);
 z = y % 3;
 printf("z = y mod 3\t| x=%d, y=%d, z=%d\n", x, y, z);
 z *= 10;
 printf("z *= 10\t| x=%d, y=%d, z=%d\n", x, y, z);
}

결과 보기

*, /, % 를 이용해 변수의 곱/나눗셈, 나머지를 구한다.



예제 3. IF ~ Else
#include "stdio.h"
void main()
{
 int HeroHP = 10;
 int EnemyDamage = 100;
 HeroHP -= EnemyDamage;
 if(HeroHP < 0)
 {
  printf("주인공이 죽었습니다.\n");
 }
 else
 {
  printf("어라?\n");
 }
}

결과 보기

IF ~ Else 문을 이용해 분기를 줄 수 있다. 이 예제에서는 주인공의 HP가 10인 상태에서 적의 공격으로 인해 1000의 데미지를 입었고, HP상태를 계산하여 0 이하일 경우 사망한 것으로 처리한다.



예제 4. IF 조건 강화
#include "stdio.h"
void main()
{
 int LovePoint = 20;
 int EventPoint = 100;
 if (LovePoint >= 20 && EventPoint >= 100)
 {
  printf("해피엔딩\n");
 }
 else if (LovePoint >= 20 || EventPoint >= 100)
 {
  printf("굿엔딩\n");
 }
 else if (LovePoint >= 10 && EventPoint < 20)
 {
  printf("노멀엔딩\n");
 }
 else
 {
  printf("배드엔딩\n");
 }
}

결과 보기

IF문 내에 조건을 두개 이상 줄 수 있으며, Else If 문으로 IF 조건을 여러번 할 수 있다.



예제 5. 문자열 변환 연산자, Token 결합 연산자
#include "stdio.h"
#define TEXT(val) #val
#define PutValue(val) printf(#val " = %d\n", val);
#define PutValue2(val, i) printf("%s%s = %d\n", #val, #i, val##i);
//#define PutValue(val) printf(#val "%s = %d\n", #val, val);
//#define PutValue2(val, i) printf("%s%d = %d\n", #val, i, val##i);
int main(int argc, char* argv[])
{
 int Test1 = 10, Test2 = 20;
 PutValue(Test1);
 printf("%s = %d\n", TEXT(Test2), Test2);
 printf("---------------\n");
 PutValue2(Test, 2);
 return 0;
}

결과 보기

#define 을 이용한 문자열 변환/결합의 예
2008/12/17 16:11 2008/12/17 16:11

맨 위로

2일차 1/2(변수)

2008/12/17 10:08, 글쓴이 승냥이
1. 변수와 상수
  - 변수(Variables) : 데이터가 저장되는 메모리를 칭하는 것으로, 그 데이터 '값' 은  변경 될 수 있다.
  - 상수(Constant) : 데이터의 한 종류로 '프로그램 내부에서 변하지 않는 값'을 의미한다.'

2. 변수의 선언(Declaration)
  - 원하는 데이터를 저장하는 '공간:메모리' 를 확보하고 그 메모리의 이름을 결정하는 것.

3. 변수의 초기화(Initialize)
  - 변수의 선언 후 확보된 '공간:메모리' 에 우리가 원하는 '기준, 시작값'으로 초기화 하여 사용해야 한다.


예제 1. HP회복
#include "stdio.h"
void main()
{
 int HP = 100;
 float Exp = 2325.12f;
 HP++;
 printf("체력=%d, 경험치=%f\n", HP, Exp);
}

결과 보기

int HP = 100;
  - int(정수)형의 메모리를 HP라는 이름으로 확보 후 100의 값으로 초기화 한다.
float Exp = 2325.12f;
  - float(실수)형의 메모리를 Exp라는 이름으로 확보 후 2325.12f의 값으로 초기화 한다.
  - float형으로 선언되는 값은 뒤에 f가 붙어야 한다.
HP++
  - 변수 HP의 값에 1을 더한다. 이는 HP = HP + 1; 과 동일하다.



예제 2. 변수1
#include "stdio.h"
void main()
{
 int hp;
 int aLv;
 int dLv;
 hp = 40;
 aLv = 3;
 dLv = 3;
 printf("HP:%d, AttackLv:%d, DefenseLv:%d\n", hp, aLv, dLv);
 
 printf("저글링의 공격!\n");
 hp -= 10;
 printf("HP:%d, AttackLv:%d, DefenseLv:%d\n", hp, aLv, dLv);
}

결과 보기




예제 3. 변수 2(머드 게임형태)
#include "stdio.h"
#include "windows.h" // sleep() 사용을 위해
void main()
{
 int HeroLv = 1;
 int HeroExp = 0;
 printf("[info] 게임을 시작합니다.\n");
 Sleep(1000);
 printf("[info] Lv:%d   Exp:%d\n", HeroLv, HeroExp);
 Sleep(1000);
 printf("[info] 적 '일개미' 와 조우합니다!!!\n");
 Sleep(1000);
 printf("[info] 주인공의 선제공격!! 찌르기를 시도합니다.\n");
 Sleep(1000);
 HeroExp += 100;
 printf("[info] 적 '일개미' 를 쓰러트렸습니다. 경험치 +100\n");
 Sleep(1000);
 printf("[info] Lv:%d   Exp:%d\n", HeroLv, HeroExp);
 Sleep(1000);
 printf("[info] 보스 '거대 개미' 등장!\n");
 Sleep(1000);
 printf("[info] 하지만 보스는 잠들어있다.\n");
 Sleep(1000);
 printf("[info] 주인공 필살기 '컴배트 실버' 사용!\n");
 Sleep(1000);
 HeroExp += 1000;
 printf("[info] 보스 '거대 개미' 를 쓰러트렸습니다. 경험치 +1000\n");
 Sleep(1000);
 HeroLv++; // 경험치가 1000 이상이 되면 레벨업
 printf("[info] 주인공 레벨업!!\n");
 Sleep(1000);
 printf("[info] Lv:%d   Exp:%d\n", HeroLv, HeroExp);
 Sleep(1000);
}

결과 보기

Sleep(1000);
  - 1000밀리세컨드, 즉 1초동안 딜레이를 갖는다.



예제 4. 기호상수(예제 3 이용)
#include "stdio.h"
#include "windows.h" // sleep() 사용을 위해
#define SLEEP_TIME 100  // 기호상수 선언
void main()
{
 int HeroLv = 1;
 int HeroExp = 0;
 printf("[info] 게임을 시작합니다.\n");
 Sleep(SLEEP_TIME);
 printf("[info] Lv:%d   Exp:%d\n", HeroLv, HeroExp);
 Sleep(SLEEP_TIME);
 printf("[info] 적 '일개미' 와 조우합니다!!!\n");
 Sleep(SLEEP_TIME);
 printf("[info] 주인공의 선제공격!! 찌르기를 시도합니다.\n");
 Sleep(SLEEP_TIME);
 HeroExp += 100;
 printf("[info] 적 '일개미' 를 쓰러트렸습니다. 경험치 +100\n");
 Sleep(SLEEP_TIME);
 printf("[info] Lv:%d   Exp:%d\n", HeroLv, HeroExp);
 Sleep(SLEEP_TIME);
 printf("[info] 보스 '거대 개미' 등장!\n");
 Sleep(SLEEP_TIME);
 printf("[info] 하지만 보스는 잠들어있다.\n");
 Sleep(SLEEP_TIME);
 printf("[info] 주인공 필살기 '컴배트 실버' 사용!\n");
 Sleep(SLEEP_TIME);
 HeroExp += 1000;
 printf("[info] 보스 '거대 개미' 를 쓰러트렸습니다. 경험치 +1000\n");
 Sleep(SLEEP_TIME);
 HeroLv++; // 경험치가 1000 이상이 되면 레벨업
 printf("[info] 주인공 레벨업!!\n");
 Sleep(SLEEP_TIME);
 printf("[info] Lv:%d   Exp:%d\n", HeroLv, HeroExp);
 Sleep(SLEEP_TIME);
}

결과 보기




예제 5. 문자변수

#include "stdio.h"
void main()
{
 int HP;
 char Lv;
 char Name[80];
 HP = 40;
 Lv = 'F';
 Name[0] = 'S';
 Name[1] = ' ';
 Name[2] = 'o';
 Name[3] = ' ';
 Name[4] = 'n';
 Name[5] = ' ';
 Name[6] = 'g';
 Name[7] = '\0';
 printf("Name:%s\n", Name);
 printf("HP:%d\n", HP);
 printf("Lv:%c\n", Lv);
}

결과 보기




예제 6. 문자변수 2
#include "stdio.h"
#include "string.h"  // strcpy() 사용
void main()
{
 int HP = 40;
 char Lv = 'A';
 char Weapon[80] = "드래곤슬레이어";  // 일반 배열방식
 char HeroName[] = "Seong Gook";   // 크기 미지정 방식
 char* Armor = "풀 플레이트 메일";  // 포인터 방식
 printf("Name : %s\n", HeroName);
 printf("HP : %d\n", HP);
 printf("Lv : %c\n", Lv);
 printf("Weapon : %s\n", Weapon);
 printf("Armor : %s\n", Armor);
 strcpy(Weapon, "해골기사의 검");
 puts(".................");
 printf("Name : %s\n", HeroName);
 printf("HP : %d\n", HP);
 printf("Lv : %c\n", Lv);
 printf("Weapon : %s\n", Weapon);
 printf("Armor : %s\n", Armor);
}

결과 보기




예제 7. 문자변수3 (문자열 초기화)
#include "stdio.h"
#include "string.h"
void main()
{
 int HP = 50;
 char Lv = 'A';
 char HeroName[80] = "";
 char HeroinName[80] = "";
 puts("주인공의 이름을 입력하세요.");
 gets(HeroName);
 puts("여주인공의 이름을 입력하세요.");
 scanf("%s", HeroinName);
 puts("...............");
 printf("주인공 : %s\n", HeroName);
 printf("Lv : %c\n", Lv);
 printf("HP : %d\n", HP);
 printf("여주인공 : %s\n", HeroinName);
}

결과 보기



2008/12/17 10:08 2008/12/17 10:08

맨 위로

1일차(OT, 맛보기)

2008/12/17 09:13, 글쓴이 승냥이

교육계획 및 수료자 작품 소개

Visual Studio 2005 설치

기본 예제 작성 (맛보기)

#include "stdio.h"

void main()
{
 // 타이틀
 printf("*********************************************\n");
 printf("*                                           *\n");
 printf("* The Dragon's Lare                         *\n");
 printf("*                                           *\n");
 printf("*                                ver. 0.1   *\n");
 printf("*                                           *\n");
 printf("*                made by Seong-Gook, Song   *\n");
 printf("*                                           *\n");
 printf("*********************************************\n");

 printf("\n\n\n\n\n");

 // 초기메뉴
 printf("1. New Game\n");
 printf("2. Load Game\n");
 printf("3. bonus\n");
 printf("4. Credit\n");
 printf("5. Quit\n");
}

결과 화면

사용자 삽입 이미지

2008/12/17 09:13 2008/12/17 09:13

맨 위로

환영합니다

2008/12/16 16:59, 글쓴이 승냥이

텍스트큐브 사용을 환영합니다. 텍스트큐브(Textcube) 는 웹에서 자신의 생각이나 일상을 기록하고 표현하기 위한 도구입니다. 강력한 글 관리와 편집 기능을 통하여 쉽고 빠르게 글을 작성하고 알릴 수 있습니다. 또한 통합된 소통 기능및 RSS 바깥글 읽기 기능을 통하여 다양한 사람들과 간단하게 의견을 주고 받을 수 있습니다.

또한 텍스트큐브는 플러그인과 테마 시스템을 통하여 다양한 기능을 추가하거나 스킨을 바꾸고 편집할 수 있습니다. 뿐만 아니라 OpenID, microformat 지원 등의 기술적인 부분 및 다국어 지원을 포함한 강력한 저작 도구입니다.

사용하며 도움말이 필요할 때는 관리자 메뉴의 우측 상단의 도우미 링크를 누르시면 도움말을 보실 수 있습니다. 기타 자세한 정보는 http://www.textcube.org 를 방문해서 확인하실 수 있습니다.

이 글은 새 블로그에 자동으로 적힌 글입니다. 관리자 화면에서 언제든지 지우셔도 됩니다.

2008/12/16 16:59 2008/12/16 16:59

맨 위로