SlideShare a Scribd company logo
1 of 62
Download to read offline
게임 프로그래밍 입문
기연아
printf()의 활용
게임 프로그래밍
printf()의 활용
 printf()는 화면(모니터)에 무언가를 보여주는 역할을 함
printf(“hello world!”); hello world!
printf(“100”);
printf(“%d”, 100);
100
90
숫자?문자?
숫자?문자?
printf()의 기본 활용
 결과 확인해보기
#include <stdio.h>
int main()
{
printf(“%d %d n”, 100, 10);
printf(“%d n”, 100, 10);
printf(“%d %d n”, 100);
printf(“%d - %d = %d n”, 100, 10, 90);
}
printf()의 활용
 궁금증 하나!
 에서, 괄호 안의 %d는 그대로
나오지 않는 것일까?
 프로그램에 미리 정의된 서식이기 때문이다!
printf(“%d - %d = %d n”, 100, 10, 90)
서식 예시 설명
%d 10, 100 정수
%f or %lf 0.5, 3.14 실수(소수점이 포함된 수)
%c ‘a’, ‘b’, ‘A’, ‘B’ 한 글자로 된 문자
%s “hello”, “안녕” 문자열
 서식의 종류
printf()의 기본 활용
 결과 확인해보기
#include <stdio.h>
int main()
{
printf(“%d n”, 100);
printf(“%f n”, 3.14);
printf(“%c n”, ‘a’);
printf(“%s n”, “hello”);
}
printf()의 기본 활용
 값이 정상적으로 출력되는가?
#include <stdio.h>
int main()
{
printf(“%d n”, 0.5);
printf(“%f n”, 100);
printf(“%c n”, “hello”);
printf(“%s n”, ‘a’);
}
printf()의 활용
 궁금증 둘!
 에서, n이 의미하는 것은?
 프로그램에 미리 정의된 서식으로, 줄 바꿈을 의미한다
printf(“%d - %d = %d n”, 100, 10, 90)
서식 설명
n 새로운 줄로 이동한다
t 다음 탭(tab)으로 이동한다
b 뒤로 한 칸 이동한다
r 줄의 맨 앞으로 이동한다
a beep 소리를 낸다
 를 출력한다
’ ‘를 출력한다
” “를 출력한다
 서식의 종류
printf()의 기본 활용
 결과 확인해보기
#include <stdio.h>
int main()
{
printf(“n 줄바꾸기 n 한 번 더 n”);
printf(“t 탭 연습하기 n”);
printf(“글씨쓰기r덮어쓰기n”);
printf(“a beep 소리내기 n”);
printf(“ 쌍 슬래시 출력하기 n”);
printf(“안녕하세요 ”hello” n”);
}
변수의 이해
게임 프로그래밍
변수란?
 프로그램이 실행되는 동안 데이터의 값을 저장해두는 박스
 변수 각각은 다른 박스에 담는다.
int num;
char name;
num을 담는 박스 name을 담는 박스
변수의 구성
int num;
변수의 자료형 변수의 이름
int num = 100;
변수 num을 담는 상자
100
변수 num을 담는 상자
?
변수의 선언
 변수 이름의 규칙
 알파벳 대문자, 소문자, 밑줄(_), 숫자로 표현할 수 있음
 명칭의 첫 글자는 반드시 대문자 또는 소문자 또는 밑줄이어야 함
 알파벳 대문자와 소문자는 서로 다른 문자로 인식함
 C언어의 문법을 위한 예약어는 변수명으로 사용할 수 없음
auto break case char const continue default do
double else enum extern float for goto if
int long register return short signed sizeof static
struct switch typedef union unsigned void volatile while
변수의 선언
 변수 별로 선언하기
int num;
int age;
char name;
float grade;
 동일한 자료형끼리 묶어서 선언하기
int num, age;
char name;
float grade;
변수 초기화하기
 선언 후 초기화하기
int num;
int age;
num = 100;
age = 20;
 선언과 동시에 초기화하기
int num = 100;
int age = 20;
int num = 100, age = 20;
변수의 기본
 결과 확인해보기
#include <stdio.h>
int main()
{
int num;
double pi;
num = 100;
pi = 3.14;
printf(“num is %d n”, num);
printf(“pi is %f n”, pi);
}
변수의 기본
 결과 확인해보기
#include <stdio.h>
int main()
{
int num;
double pi;
num = 3.14;
pi = 100;
printf(“num is %d n”, num);
printf(“pi is %f n”, pi);
}
변수의 크기
 변수에 따라 다른 크기의 박스가 할당됨
종류 서식 자료형 크기 값의 범위
작은 정수
%d
short 2바이트 -215 ~ 215 -1
부호 없는 작은 정수 unsigned short 2바이트 0 ~ 216 -1
정수 int 4바이트 -232 ~ 231 -1
부호 없는 정수 unsinged int 4바이트 0~ 232-1
큰 정수 long (int) 4바이트 -231 ~ 231 -1
부호 없는 큰 정수 unsinged long 4바이트 0 ~ 232 -1
실수 %f float 4바이트 약 -3.4x1038 ~ 3.4x1038
큰 실수 %lf double 8바이트 약 -1.79x10308 ~ 1.79x10308
문자 하나 %c char 1바이트 -27 ~ 27 -1
문자열 %s char* 4바이트
변수의 크기
 실제로 확인해보기
#include <stdio.h>
int main()
{
printf("%dbyte n", sizeof(int));
printf("%dbyte n", sizeof(float));
printf("%dbyte n", sizeof(double));
printf("%dbyte n", sizeof(char));
printf("%dbyte n", sizeof(char*));
}
할당된 크기를 알 수 있는 연산자
변수의 함정!
 ‘A’와 65는 같다?
#include <stdio.h>
int main()
{
int num1, num2;
char alpha1, alpha2;
num1 = 65;
num2 = ‘A’;
alpha1 = 65;
alpha2 = ‘A’;
printf(“num1 is %d num2 is %d n”, num1, num2);
printf(“alpha1 is %c alpha2 is %d n”, alpha1, alpha2);
}
변수의 함정!
 ‘A’와 65는 같다?
 어떤 출력을 사용하느냐에 따라 값이 다르다.
 아스키 코드를 사용하기 때문이다.
아스키 코드 10진수
0 ~ 9 48 ~ 57
A ~ Z 65 ~ 90
a ~ z 97 ~ 122
연산자의 기초
게임 프로그래밍
산술 연산자
 기본 산술 연산자
연산자 설명 사용 예
= 대입 연산자 a = 3
+ 더하기 a = 3 + 10
- 빼기 a = 4 – 10
* 곱하기 a = 3 * 10
/ 나누기 a = 10 / 3
% 나머지 a = 10 % 3
산술 연산자
 실제로 해보자
#include <stdio.h>
int main()
{
int a, b = 10, c = 3;
a = b + c;
printf(“10 + 3 = %d n”, a);
a = b - c;
printf(“10 - 3 = %d n”, a);
a = 10 * 3;
printf(“10 * 3 = %d n”, a);
a = 10 / 3;
printf(“10 / 3 = %d n”, a);
a = 10 % 3;
printf(“10 % 3 = %d n”, a);
}
산술 연산자
 대입 연산자와 증감 연산자
연산자 설명 사용 예 결과
+= 대입 연산자 a += 3 a = a + 3
-= 대입 연산자 a -=3 a = a – 3
*= 대입 연산자 a *=3 a = a * 3
/= 대입 연산자 a /=3 a = a / 3
%= 대입 연산자 a %=3 a = a % 3
++ 증감 연산자 a++, ++a a = a + 1 , a += 1
-- 증감 연산자 a--, --a a = a - 1, a -=1
산술 연산자
 실제로 해보자
#include <stdio.h>
int main()
{
int a = 10;
a += 5;
printf(“a+= %d n”, a);
a -= 5;
printf(“a -= %d n”, a);
a *= 5;
printf(“a *= %d n”, a);
a /= 5;
printf(“a /= %d n”, a);
a %= 5;
printf(“a %%= %d n”, a);
}
산술 연산자
 그럼 다음 결과는?
#include <stdio.h>
int main()
{
int a = 10;
a++;
printf(“a++ %d n”, a);
++a;
printf(“++a d n”, a);
a--;
printf(“a-- d n”, a);
--a;
printf(“--a %d n”, a);
}
산술 연산자
b = a++;
b = ++a;
①
①
②
②
① a를 b에 대입시킨다
② a의 값을 1 증가시킨다
① a의 값을 1 증가시킨다
② a를 b에 대입시킨다
관계 연산자
 양쪽을 비교하여 참 또는 거짓을 판별할 수 있음
 같으면 참(true, 1), 같지 않으면 거짓(false, 0)
 주로 조건식에 많이 사용
연산자 설명 사용 예 결과
== 같다 a == 10 a와 10은 같다
!= 같지 않다 a != b a와 b는 같지 않다
> 크다 a > 3 a는 3보다 크다
< 작다 a < 100 a는 100보다 작다
>= 크거나 같다 a >= 50 a는 50보다 크거나 같다
<= 작거나 같다 a <= 1 a는 1보다 작거나 같다
관계 연산자
 실제로 해보자
#include <stdio.h>
int main()
{
int a = 100, b = 200;
… ….
아래의 결과가 나오도록 직접 짜보자
}
논리 연산자
 그리고, 또는, 부정
 같으면 참(true, 1), 같지 않으면 거짓(false, 0)
 주로 조건식에 많이 사용
연산자 설명 사용 예 결과
&& 그리고 (a > 10) && (b <100) (a > 10)이고 (b<100)
|| 또는 (a > 10) || (b < 100) (a > 10) 또는 (b<100)
! 부정(아니다) !(a> 10) (a>10)이 아니다
논리 연산자
 실제로 해보자
#include <stdio.h>
int main()
{
int a = 100;
… ….
아래 내용이 참인지 거짓인지 직접 짜보도록 하자.
}
연산자 설명 사용 예 결과
&& 그리고 (a > 10) && (b <100) (a > 10)이고 (b<100)
|| 또는 (a > 10) || (b < 100) (a > 10) 또는 (b<100)
! 부정(아니다) !(a> 10) (a>10)이 아니다
비트 연산자
 정수나 문자 등을 2진수로 변환한 후에 각 자리의 비트끼리
연산을 수행하는 것
연산자 설명 결과
& 비트 논리곱 둘다 1이면 1이다
| 비트 논리합 둘 중 하나만 1이면 1이다
^ 비트 배타적 논리합 둘이 같으면 0, 둘이 다르면 1이다
~ 비트 부정 1은 0으로, 0은 1로 변경한다
<< 비트 왼쪽 시프트 비트를 왼쪽으로 shift한다
>> 비트 오른쪽 시프트 비트를 오른쪽으로 shift 한다
실습 1
 printf()와 다양한자료형을 활용한 학점 계산기 만들기
 5개의 과목을 변수로 만든다
 각각의 학점을 변수에 담는다
 5과목의 총점을 출력한다
 5과목의 평균을 출력한다
 실행결과
실습 2
 printf()와 다양한자료형을 활용한 학점 계산기 만들기
 실습 1의 결과를 소수점 한 자리까지 출력되도록 만든다
 실행결과
변수의 크기
 변수의 자료형에 따라 변수에 할당되는 크기가 달라짐
 예를 들어, 실수는 기본적으로 소수점 6자리까지 출력이 되는
데 수정하여 소수점 자리수를 변경할 수 있음
변수의 크기
출처 : C언어 for Beginner
scanf()의 이해
게임 프로그래밍
scanf()란?
 키보드로부터 값을 입력 받을 수 있는 표준 입력
 예시
 여러 개의 값을 한 번에 받을 수 있으며, 다양한 자료형에 대
해 입력 받을 수 있음
 예시
printf(“%d n”, 100);
scanf(“%d”, &num);
특정한 변수에 입력 받은 값을 담는다
scanf(“%d %d %d”, &num1, &num2, &num3);
scanf(“%lf %d”, &sosu, &jungsu);
scanf()에러 수정하기
 scanf()사용하기
 다음과 같은 에러 발생
#include <stdio.h>
int main()
{
int num;
scanf(“%d ”, &num);
}
scanf()에러 수정하기
 에러 수정하기
scanf()에러 수정하기
 _CRT_SECURE_NO_WARNINGS 추가
scanf()에러 수정하기
 scanf()를 그냥 사용하면 다음과 같은 오류 발생
실습 3
 printf()와 scanf(), 다양한자료형을 활용한 학점 계산기 만들
기
 5개의 과목을 변수로 만든다
 각각의 학점을 키보드로부터 입력 받는다
 5과목의 총점을 출력한다
 5과목의 평균을 출력한다
 실행결과
추가. Visual Studio 2015 설치하기
게임 프로그래밍
Community 2015 다운로드
https://www.visualstudio.com/ko-kr
Community 2015 다운로드
저장하고 싶은 위치에 .exe 파일 저장
Community 2015 설치
다운로드한 .exe 파일 실행
Community 2015 설치
여유공간이 8G가 안되어도 설치는 가능
Community 2015 설치
다운로드한 .exe 파일 실행
Blend for Visual Studio 2015 아님!!!!!
Community 2015 시작하기
개발환경 설정하기
본인이 원하는 스타일의
레이아웃으로 변경 가능
Community 2015 시작하기
추가 도구 설치하기
새 프로젝트 생성, 콘솔 설정
Community 2015 시작하기
추가 도구 설치하기
.exe 파일 생성(Win32 콘솔 응용프로그램)을
위한 추가 도구 설치
Community 2015 시작하기
추가 도구 설치하기
윈도우 PC에서 사용 시 필요한 추가 도구 설치,
사용 중이던 비주얼 스튜디오를 종료하고 작업을 진행할 것
Community 2015 시작하기
추가 도구 설치하기
Community 2015 시작하기
추가 도구 설치하기
프로그램 다시 시작
Community 2015 시작하기
“Win32 콘솔 응용프로그램”이 제대로 생성되었는지 확인
이렇게 보이면 정상적으로 생성된 것!
Community 2015 프로젝트 생성하기
새 프로젝트 생성하기
프로젝트명은 프로젝트명으로 어떤 프로젝트인지 이해할 수 있는 것으로 생성할 것
Community 2015 프로젝트 생성하기
설정을 위해 ‘다음’선택
Community 2015 프로젝트 생성하기
개발환경 설정하기
미리 컴파일된 헤더를 선택할 경우, 불필요한 내용이
소스코드에 기본으로 추가됨
Community 2015 프로젝트 생성하기
소스코드 작성을 위한 .c/.cpp 파일 추가하기
Community 2015 프로젝트 생성하기
.c파일 추가하기
파일 명도 프로젝트 명과 동일하게
이름으로 내용을 파악할 수 있도록 생성

More Related Content

What's hot

코딩인카페 C&JAVA 기초과정 C프로그래밍(2)
코딩인카페 C&JAVA 기초과정 C프로그래밍(2)코딩인카페 C&JAVA 기초과정 C프로그래밍(2)
코딩인카페 C&JAVA 기초과정 C프로그래밍(2)유익아카데미
 
RNC C++ lecture_4 While, For
RNC C++ lecture_4 While, ForRNC C++ lecture_4 While, For
RNC C++ lecture_4 While, Foritlockit
 
5 1. character processing
5 1. character processing5 1. character processing
5 1. character processing웅식 전
 
프로그래밍 대회: C++11 이야기
프로그래밍 대회: C++11 이야기프로그래밍 대회: C++11 이야기
프로그래밍 대회: C++11 이야기Jongwook Choi
 
Effective Modern C++ item 10
Effective Modern C++ item 10Effective Modern C++ item 10
Effective Modern C++ item 10진화 손
 
Python if loop-function
Python if loop-functionPython if loop-function
Python if loop-function건희 김
 
파이썬 스터디 2주차
파이썬 스터디 2주차파이썬 스터디 2주차
파이썬 스터디 2주차Han Sung Kim
 
파이썬 함수
파이썬 함수파이썬 함수
파이썬 함수Gibson Kim
 
03장 조건문, 반복문, 네임스페이스
03장 조건문, 반복문, 네임스페이스03장 조건문, 반복문, 네임스페이스
03장 조건문, 반복문, 네임스페이스유석 남
 
6장 표현식 및 문장
6장 표현식 및 문장6장 표현식 및 문장
6장 표현식 및 문장재정 이
 
2. c언어의 기본
2. c언어의 기본2. c언어의 기본
2. c언어의 기본SeonMan Kim
 
To quickly implementing RNN
To quickly implementing RNNTo quickly implementing RNN
To quickly implementing RNNBo Seop Kim
 
14장 - 15장 예외처리, 템플릿
14장 - 15장 예외처리, 템플릿14장 - 15장 예외처리, 템플릿
14장 - 15장 예외처리, 템플릿유석 남
 
Java mentoring of samsung scsc 0
Java mentoring of samsung scsc   0Java mentoring of samsung scsc   0
Java mentoring of samsung scsc 0도현 김
 
Ocaml internal (description of runtime system in Korean)
Ocaml internal (description of runtime system in Korean)Ocaml internal (description of runtime system in Korean)
Ocaml internal (description of runtime system in Korean)Hyungchul Park
 

What's hot (20)

코딩인카페 C&JAVA 기초과정 C프로그래밍(2)
코딩인카페 C&JAVA 기초과정 C프로그래밍(2)코딩인카페 C&JAVA 기초과정 C프로그래밍(2)
코딩인카페 C&JAVA 기초과정 C프로그래밍(2)
 
Python 1day
Python 1dayPython 1day
Python 1day
 
RNC C++ lecture_4 While, For
RNC C++ lecture_4 While, ForRNC C++ lecture_4 While, For
RNC C++ lecture_4 While, For
 
C++11
C++11C++11
C++11
 
5 1. character processing
5 1. character processing5 1. character processing
5 1. character processing
 
프로그래밍 대회: C++11 이야기
프로그래밍 대회: C++11 이야기프로그래밍 대회: C++11 이야기
프로그래밍 대회: C++11 이야기
 
Effective Modern C++ item 10
Effective Modern C++ item 10Effective Modern C++ item 10
Effective Modern C++ item 10
 
Python if loop-function
Python if loop-functionPython if loop-function
Python if loop-function
 
파이썬 스터디 2주차
파이썬 스터디 2주차파이썬 스터디 2주차
파이썬 스터디 2주차
 
파이썬 함수
파이썬 함수파이썬 함수
파이썬 함수
 
03장 조건문, 반복문, 네임스페이스
03장 조건문, 반복문, 네임스페이스03장 조건문, 반복문, 네임스페이스
03장 조건문, 반복문, 네임스페이스
 
6장 표현식 및 문장
6장 표현식 및 문장6장 표현식 및 문장
6장 표현식 및 문장
 
7장매크로
7장매크로7장매크로
7장매크로
 
2. c언어의 기본
2. c언어의 기본2. c언어의 기본
2. c언어의 기본
 
C review
C  reviewC  review
C review
 
To quickly implementing RNN
To quickly implementing RNNTo quickly implementing RNN
To quickly implementing RNN
 
Javascript기초
Javascript기초Javascript기초
Javascript기초
 
14장 - 15장 예외처리, 템플릿
14장 - 15장 예외처리, 템플릿14장 - 15장 예외처리, 템플릿
14장 - 15장 예외처리, 템플릿
 
Java mentoring of samsung scsc 0
Java mentoring of samsung scsc   0Java mentoring of samsung scsc   0
Java mentoring of samsung scsc 0
 
Ocaml internal (description of runtime system in Korean)
Ocaml internal (description of runtime system in Korean)Ocaml internal (description of runtime system in Korean)
Ocaml internal (description of runtime system in Korean)
 

Similar to 게임프로그래밍입문 3주차

C수업자료
C수업자료C수업자료
C수업자료koominsu
 
C수업자료
C수업자료C수업자료
C수업자료koominsu
 
2 3. standard io
2 3. standard io2 3. standard io
2 3. standard io웅식 전
 
2 1. variables & data types
2 1. variables & data types2 1. variables & data types
2 1. variables & data types웅식 전
 
C언어 연산자에 대해 간과한 것
C언어 연산자에 대해 간과한 것C언어 연산자에 대해 간과한 것
C언어 연산자에 대해 간과한 것jaypi Ko
 
프로그래밍 및 실습 Chap2
프로그래밍 및 실습 Chap2프로그래밍 및 실습 Chap2
프로그래밍 및 실습 Chap2dktm
 
(학생용)+프로그래밍+및+실습 Chap4 3
(학생용)+프로그래밍+및+실습 Chap4 3(학생용)+프로그래밍+및+실습 Chap4 3
(학생용)+프로그래밍+및+실습 Chap4 3guestc0587d1
 
Javascript개발자의 눈으로 python 들여다보기
Javascript개발자의 눈으로 python 들여다보기Javascript개발자의 눈으로 python 들여다보기
Javascript개발자의 눈으로 python 들여다보기지수 윤
 
배열과 포인터
배열과 포인터배열과 포인터
배열과 포인터영기 김
 
DEVIEW-FULL-감독판.pptx
DEVIEW-FULL-감독판.pptxDEVIEW-FULL-감독판.pptx
DEVIEW-FULL-감독판.pptxhanbeom Park
 
파이썬 기본 문법
파이썬 기본 문법파이썬 기본 문법
파이썬 기본 문법SeongHyun Ahn
 
포인터의기초 (2) - 포인터 사용하기1
포인터의기초 (2) - 포인터 사용하기1포인터의기초 (2) - 포인터 사용하기1
포인터의기초 (2) - 포인터 사용하기1Hoyoung Jung
 
[170327 1주차]C언어 A반
[170327 1주차]C언어 A반[170327 1주차]C언어 A반
[170327 1주차]C언어 A반arundine
 
C Language I
C Language IC Language I
C Language ISuho Kwon
 

Similar to 게임프로그래밍입문 3주차 (20)

C수업자료
C수업자료C수업자료
C수업자료
 
C수업자료
C수업자료C수업자료
C수업자료
 
2 3. standard io
2 3. standard io2 3. standard io
2 3. standard io
 
튜터링 #9 20120409
튜터링 #9 20120409튜터링 #9 20120409
튜터링 #9 20120409
 
2 1. variables & data types
2 1. variables & data types2 1. variables & data types
2 1. variables & data types
 
C언어 연산자에 대해 간과한 것
C언어 연산자에 대해 간과한 것C언어 연산자에 대해 간과한 것
C언어 연산자에 대해 간과한 것
 
프로그래밍 및 실습 Chap2
프로그래밍 및 실습 Chap2프로그래밍 및 실습 Chap2
프로그래밍 및 실습 Chap2
 
(학생용)+프로그래밍+및+실습 Chap4 3
(학생용)+프로그래밍+및+실습 Chap4 3(학생용)+프로그래밍+및+실습 Chap4 3
(학생용)+프로그래밍+및+실습 Chap4 3
 
Javascript개발자의 눈으로 python 들여다보기
Javascript개발자의 눈으로 python 들여다보기Javascript개발자의 눈으로 python 들여다보기
Javascript개발자의 눈으로 python 들여다보기
 
4. loop
4. loop4. loop
4. loop
 
DM_02
DM_02DM_02
DM_02
 
배열과 포인터
배열과 포인터배열과 포인터
배열과 포인터
 
06장 함수
06장 함수06장 함수
06장 함수
 
java_2장.pptx
java_2장.pptxjava_2장.pptx
java_2장.pptx
 
이산수학02
이산수학02이산수학02
이산수학02
 
DEVIEW-FULL-감독판.pptx
DEVIEW-FULL-감독판.pptxDEVIEW-FULL-감독판.pptx
DEVIEW-FULL-감독판.pptx
 
파이썬 기본 문법
파이썬 기본 문법파이썬 기본 문법
파이썬 기본 문법
 
포인터의기초 (2) - 포인터 사용하기1
포인터의기초 (2) - 포인터 사용하기1포인터의기초 (2) - 포인터 사용하기1
포인터의기초 (2) - 포인터 사용하기1
 
[170327 1주차]C언어 A반
[170327 1주차]C언어 A반[170327 1주차]C언어 A반
[170327 1주차]C언어 A반
 
C Language I
C Language IC Language I
C Language I
 

More from Yeonah Ki

게임프로그래밍입문 9
게임프로그래밍입문 9게임프로그래밍입문 9
게임프로그래밍입문 9Yeonah Ki
 
게임프로그래밍입문 7
게임프로그래밍입문 7게임프로그래밍입문 7
게임프로그래밍입문 7Yeonah Ki
 
게임프로그래밍입문 6주차 강의자료
게임프로그래밍입문 6주차 강의자료게임프로그래밍입문 6주차 강의자료
게임프로그래밍입문 6주차 강의자료Yeonah Ki
 
게임프로그래밍입문 2주차
게임프로그래밍입문 2주차게임프로그래밍입문 2주차
게임프로그래밍입문 2주차Yeonah Ki
 
게임프로그래밍입문 1주차
게임프로그래밍입문 1주차게임프로그래밍입문 1주차
게임프로그래밍입문 1주차Yeonah Ki
 
About raspberrypi
About raspberrypiAbout raspberrypi
About raspberrypiYeonah Ki
 
Start io t_with_raspberrypi
Start io t_with_raspberrypiStart io t_with_raspberrypi
Start io t_with_raspberrypiYeonah Ki
 
Circulus Raspberry Pi wifi setting guide
Circulus Raspberry Pi wifi setting guideCirculus Raspberry Pi wifi setting guide
Circulus Raspberry Pi wifi setting guideYeonah Ki
 
Circulus user guide
Circulus user guideCirculus user guide
Circulus user guideYeonah Ki
 
Circulus user guide
Circulus user guideCirculus user guide
Circulus user guideYeonah Ki
 

More from Yeonah Ki (10)

게임프로그래밍입문 9
게임프로그래밍입문 9게임프로그래밍입문 9
게임프로그래밍입문 9
 
게임프로그래밍입문 7
게임프로그래밍입문 7게임프로그래밍입문 7
게임프로그래밍입문 7
 
게임프로그래밍입문 6주차 강의자료
게임프로그래밍입문 6주차 강의자료게임프로그래밍입문 6주차 강의자료
게임프로그래밍입문 6주차 강의자료
 
게임프로그래밍입문 2주차
게임프로그래밍입문 2주차게임프로그래밍입문 2주차
게임프로그래밍입문 2주차
 
게임프로그래밍입문 1주차
게임프로그래밍입문 1주차게임프로그래밍입문 1주차
게임프로그래밍입문 1주차
 
About raspberrypi
About raspberrypiAbout raspberrypi
About raspberrypi
 
Start io t_with_raspberrypi
Start io t_with_raspberrypiStart io t_with_raspberrypi
Start io t_with_raspberrypi
 
Circulus Raspberry Pi wifi setting guide
Circulus Raspberry Pi wifi setting guideCirculus Raspberry Pi wifi setting guide
Circulus Raspberry Pi wifi setting guide
 
Circulus user guide
Circulus user guideCirculus user guide
Circulus user guide
 
Circulus user guide
Circulus user guideCirculus user guide
Circulus user guide
 

게임프로그래밍입문 3주차

  • 3. printf()의 활용  printf()는 화면(모니터)에 무언가를 보여주는 역할을 함 printf(“hello world!”); hello world! printf(“100”); printf(“%d”, 100); 100 90 숫자?문자? 숫자?문자?
  • 4. printf()의 기본 활용  결과 확인해보기 #include <stdio.h> int main() { printf(“%d %d n”, 100, 10); printf(“%d n”, 100, 10); printf(“%d %d n”, 100); printf(“%d - %d = %d n”, 100, 10, 90); }
  • 5. printf()의 활용  궁금증 하나!  에서, 괄호 안의 %d는 그대로 나오지 않는 것일까?  프로그램에 미리 정의된 서식이기 때문이다! printf(“%d - %d = %d n”, 100, 10, 90) 서식 예시 설명 %d 10, 100 정수 %f or %lf 0.5, 3.14 실수(소수점이 포함된 수) %c ‘a’, ‘b’, ‘A’, ‘B’ 한 글자로 된 문자 %s “hello”, “안녕” 문자열  서식의 종류
  • 6. printf()의 기본 활용  결과 확인해보기 #include <stdio.h> int main() { printf(“%d n”, 100); printf(“%f n”, 3.14); printf(“%c n”, ‘a’); printf(“%s n”, “hello”); }
  • 7. printf()의 기본 활용  값이 정상적으로 출력되는가? #include <stdio.h> int main() { printf(“%d n”, 0.5); printf(“%f n”, 100); printf(“%c n”, “hello”); printf(“%s n”, ‘a’); }
  • 8. printf()의 활용  궁금증 둘!  에서, n이 의미하는 것은?  프로그램에 미리 정의된 서식으로, 줄 바꿈을 의미한다 printf(“%d - %d = %d n”, 100, 10, 90) 서식 설명 n 새로운 줄로 이동한다 t 다음 탭(tab)으로 이동한다 b 뒤로 한 칸 이동한다 r 줄의 맨 앞으로 이동한다 a beep 소리를 낸다 를 출력한다 ’ ‘를 출력한다 ” “를 출력한다  서식의 종류
  • 9. printf()의 기본 활용  결과 확인해보기 #include <stdio.h> int main() { printf(“n 줄바꾸기 n 한 번 더 n”); printf(“t 탭 연습하기 n”); printf(“글씨쓰기r덮어쓰기n”); printf(“a beep 소리내기 n”); printf(“ 쌍 슬래시 출력하기 n”); printf(“안녕하세요 ”hello” n”); }
  • 11. 변수란?  프로그램이 실행되는 동안 데이터의 값을 저장해두는 박스  변수 각각은 다른 박스에 담는다. int num; char name; num을 담는 박스 name을 담는 박스
  • 12. 변수의 구성 int num; 변수의 자료형 변수의 이름 int num = 100; 변수 num을 담는 상자 100 변수 num을 담는 상자 ?
  • 13. 변수의 선언  변수 이름의 규칙  알파벳 대문자, 소문자, 밑줄(_), 숫자로 표현할 수 있음  명칭의 첫 글자는 반드시 대문자 또는 소문자 또는 밑줄이어야 함  알파벳 대문자와 소문자는 서로 다른 문자로 인식함  C언어의 문법을 위한 예약어는 변수명으로 사용할 수 없음 auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while
  • 14. 변수의 선언  변수 별로 선언하기 int num; int age; char name; float grade;  동일한 자료형끼리 묶어서 선언하기 int num, age; char name; float grade;
  • 15. 변수 초기화하기  선언 후 초기화하기 int num; int age; num = 100; age = 20;  선언과 동시에 초기화하기 int num = 100; int age = 20; int num = 100, age = 20;
  • 16. 변수의 기본  결과 확인해보기 #include <stdio.h> int main() { int num; double pi; num = 100; pi = 3.14; printf(“num is %d n”, num); printf(“pi is %f n”, pi); }
  • 17. 변수의 기본  결과 확인해보기 #include <stdio.h> int main() { int num; double pi; num = 3.14; pi = 100; printf(“num is %d n”, num); printf(“pi is %f n”, pi); }
  • 18. 변수의 크기  변수에 따라 다른 크기의 박스가 할당됨 종류 서식 자료형 크기 값의 범위 작은 정수 %d short 2바이트 -215 ~ 215 -1 부호 없는 작은 정수 unsigned short 2바이트 0 ~ 216 -1 정수 int 4바이트 -232 ~ 231 -1 부호 없는 정수 unsinged int 4바이트 0~ 232-1 큰 정수 long (int) 4바이트 -231 ~ 231 -1 부호 없는 큰 정수 unsinged long 4바이트 0 ~ 232 -1 실수 %f float 4바이트 약 -3.4x1038 ~ 3.4x1038 큰 실수 %lf double 8바이트 약 -1.79x10308 ~ 1.79x10308 문자 하나 %c char 1바이트 -27 ~ 27 -1 문자열 %s char* 4바이트
  • 19. 변수의 크기  실제로 확인해보기 #include <stdio.h> int main() { printf("%dbyte n", sizeof(int)); printf("%dbyte n", sizeof(float)); printf("%dbyte n", sizeof(double)); printf("%dbyte n", sizeof(char)); printf("%dbyte n", sizeof(char*)); } 할당된 크기를 알 수 있는 연산자
  • 20. 변수의 함정!  ‘A’와 65는 같다? #include <stdio.h> int main() { int num1, num2; char alpha1, alpha2; num1 = 65; num2 = ‘A’; alpha1 = 65; alpha2 = ‘A’; printf(“num1 is %d num2 is %d n”, num1, num2); printf(“alpha1 is %c alpha2 is %d n”, alpha1, alpha2); }
  • 21. 변수의 함정!  ‘A’와 65는 같다?  어떤 출력을 사용하느냐에 따라 값이 다르다.  아스키 코드를 사용하기 때문이다. 아스키 코드 10진수 0 ~ 9 48 ~ 57 A ~ Z 65 ~ 90 a ~ z 97 ~ 122
  • 23. 산술 연산자  기본 산술 연산자 연산자 설명 사용 예 = 대입 연산자 a = 3 + 더하기 a = 3 + 10 - 빼기 a = 4 – 10 * 곱하기 a = 3 * 10 / 나누기 a = 10 / 3 % 나머지 a = 10 % 3
  • 24. 산술 연산자  실제로 해보자 #include <stdio.h> int main() { int a, b = 10, c = 3; a = b + c; printf(“10 + 3 = %d n”, a); a = b - c; printf(“10 - 3 = %d n”, a); a = 10 * 3; printf(“10 * 3 = %d n”, a); a = 10 / 3; printf(“10 / 3 = %d n”, a); a = 10 % 3; printf(“10 % 3 = %d n”, a); }
  • 25. 산술 연산자  대입 연산자와 증감 연산자 연산자 설명 사용 예 결과 += 대입 연산자 a += 3 a = a + 3 -= 대입 연산자 a -=3 a = a – 3 *= 대입 연산자 a *=3 a = a * 3 /= 대입 연산자 a /=3 a = a / 3 %= 대입 연산자 a %=3 a = a % 3 ++ 증감 연산자 a++, ++a a = a + 1 , a += 1 -- 증감 연산자 a--, --a a = a - 1, a -=1
  • 26. 산술 연산자  실제로 해보자 #include <stdio.h> int main() { int a = 10; a += 5; printf(“a+= %d n”, a); a -= 5; printf(“a -= %d n”, a); a *= 5; printf(“a *= %d n”, a); a /= 5; printf(“a /= %d n”, a); a %= 5; printf(“a %%= %d n”, a); }
  • 27. 산술 연산자  그럼 다음 결과는? #include <stdio.h> int main() { int a = 10; a++; printf(“a++ %d n”, a); ++a; printf(“++a d n”, a); a--; printf(“a-- d n”, a); --a; printf(“--a %d n”, a); }
  • 28. 산술 연산자 b = a++; b = ++a; ① ① ② ② ① a를 b에 대입시킨다 ② a의 값을 1 증가시킨다 ① a의 값을 1 증가시킨다 ② a를 b에 대입시킨다
  • 29. 관계 연산자  양쪽을 비교하여 참 또는 거짓을 판별할 수 있음  같으면 참(true, 1), 같지 않으면 거짓(false, 0)  주로 조건식에 많이 사용 연산자 설명 사용 예 결과 == 같다 a == 10 a와 10은 같다 != 같지 않다 a != b a와 b는 같지 않다 > 크다 a > 3 a는 3보다 크다 < 작다 a < 100 a는 100보다 작다 >= 크거나 같다 a >= 50 a는 50보다 크거나 같다 <= 작거나 같다 a <= 1 a는 1보다 작거나 같다
  • 30. 관계 연산자  실제로 해보자 #include <stdio.h> int main() { int a = 100, b = 200; … …. 아래의 결과가 나오도록 직접 짜보자 }
  • 31. 논리 연산자  그리고, 또는, 부정  같으면 참(true, 1), 같지 않으면 거짓(false, 0)  주로 조건식에 많이 사용 연산자 설명 사용 예 결과 && 그리고 (a > 10) && (b <100) (a > 10)이고 (b<100) || 또는 (a > 10) || (b < 100) (a > 10) 또는 (b<100) ! 부정(아니다) !(a> 10) (a>10)이 아니다
  • 32. 논리 연산자  실제로 해보자 #include <stdio.h> int main() { int a = 100; … …. 아래 내용이 참인지 거짓인지 직접 짜보도록 하자. } 연산자 설명 사용 예 결과 && 그리고 (a > 10) && (b <100) (a > 10)이고 (b<100) || 또는 (a > 10) || (b < 100) (a > 10) 또는 (b<100) ! 부정(아니다) !(a> 10) (a>10)이 아니다
  • 33. 비트 연산자  정수나 문자 등을 2진수로 변환한 후에 각 자리의 비트끼리 연산을 수행하는 것 연산자 설명 결과 & 비트 논리곱 둘다 1이면 1이다 | 비트 논리합 둘 중 하나만 1이면 1이다 ^ 비트 배타적 논리합 둘이 같으면 0, 둘이 다르면 1이다 ~ 비트 부정 1은 0으로, 0은 1로 변경한다 << 비트 왼쪽 시프트 비트를 왼쪽으로 shift한다 >> 비트 오른쪽 시프트 비트를 오른쪽으로 shift 한다
  • 34. 실습 1  printf()와 다양한자료형을 활용한 학점 계산기 만들기  5개의 과목을 변수로 만든다  각각의 학점을 변수에 담는다  5과목의 총점을 출력한다  5과목의 평균을 출력한다  실행결과
  • 35. 실습 2  printf()와 다양한자료형을 활용한 학점 계산기 만들기  실습 1의 결과를 소수점 한 자리까지 출력되도록 만든다  실행결과
  • 36. 변수의 크기  변수의 자료형에 따라 변수에 할당되는 크기가 달라짐  예를 들어, 실수는 기본적으로 소수점 6자리까지 출력이 되는 데 수정하여 소수점 자리수를 변경할 수 있음
  • 37. 변수의 크기 출처 : C언어 for Beginner
  • 39. scanf()란?  키보드로부터 값을 입력 받을 수 있는 표준 입력  예시  여러 개의 값을 한 번에 받을 수 있으며, 다양한 자료형에 대 해 입력 받을 수 있음  예시 printf(“%d n”, 100); scanf(“%d”, &num); 특정한 변수에 입력 받은 값을 담는다 scanf(“%d %d %d”, &num1, &num2, &num3); scanf(“%lf %d”, &sosu, &jungsu);
  • 40. scanf()에러 수정하기  scanf()사용하기  다음과 같은 에러 발생 #include <stdio.h> int main() { int num; scanf(“%d ”, &num); }
  • 43. scanf()에러 수정하기  scanf()를 그냥 사용하면 다음과 같은 오류 발생
  • 44. 실습 3  printf()와 scanf(), 다양한자료형을 활용한 학점 계산기 만들 기  5개의 과목을 변수로 만든다  각각의 학점을 키보드로부터 입력 받는다  5과목의 총점을 출력한다  5과목의 평균을 출력한다  실행결과
  • 45. 추가. Visual Studio 2015 설치하기 게임 프로그래밍
  • 47. Community 2015 다운로드 저장하고 싶은 위치에 .exe 파일 저장
  • 49. Community 2015 설치 여유공간이 8G가 안되어도 설치는 가능
  • 50. Community 2015 설치 다운로드한 .exe 파일 실행 Blend for Visual Studio 2015 아님!!!!!
  • 51. Community 2015 시작하기 개발환경 설정하기 본인이 원하는 스타일의 레이아웃으로 변경 가능
  • 52. Community 2015 시작하기 추가 도구 설치하기 새 프로젝트 생성, 콘솔 설정
  • 53. Community 2015 시작하기 추가 도구 설치하기 .exe 파일 생성(Win32 콘솔 응용프로그램)을 위한 추가 도구 설치
  • 54. Community 2015 시작하기 추가 도구 설치하기 윈도우 PC에서 사용 시 필요한 추가 도구 설치, 사용 중이던 비주얼 스튜디오를 종료하고 작업을 진행할 것
  • 55. Community 2015 시작하기 추가 도구 설치하기
  • 56. Community 2015 시작하기 추가 도구 설치하기 프로그램 다시 시작
  • 57. Community 2015 시작하기 “Win32 콘솔 응용프로그램”이 제대로 생성되었는지 확인 이렇게 보이면 정상적으로 생성된 것!
  • 58. Community 2015 프로젝트 생성하기 새 프로젝트 생성하기 프로젝트명은 프로젝트명으로 어떤 프로젝트인지 이해할 수 있는 것으로 생성할 것
  • 59. Community 2015 프로젝트 생성하기 설정을 위해 ‘다음’선택
  • 60. Community 2015 프로젝트 생성하기 개발환경 설정하기 미리 컴파일된 헤더를 선택할 경우, 불필요한 내용이 소스코드에 기본으로 추가됨
  • 61. Community 2015 프로젝트 생성하기 소스코드 작성을 위한 .c/.cpp 파일 추가하기
  • 62. Community 2015 프로젝트 생성하기 .c파일 추가하기 파일 명도 프로젝트 명과 동일하게 이름으로 내용을 파악할 수 있도록 생성