Presentation is loading. Please wait.

Presentation is loading. Please wait.

03 변수와 자료형 세종대학교 최옥경 교수 참고 : 한빛미디어 뇌를 자극하는 C, INFINITY Perfect C.

Similar presentations


Presentation on theme: "03 변수와 자료형 세종대학교 최옥경 교수 참고 : 한빛미디어 뇌를 자극하는 C, INFINITY Perfect C."— Presentation transcript:

1 03 변수와 자료형 세종대학교 최옥경 교수 참고 : 한빛미디어 뇌를 자극하는 C, INFINITY Perfect C

2 변수와 자료 유형  변수 (variables)  프로그램에서 자료 값을 임시로 기억할 수 있는 저장 공간  변수 (Variables) 는 컴퓨터의 메모리인 RAM(Random Access Memory) 에 저장  물건을 담는 박스라고 생각한다면 박스의 크기에 따라 담을 물건 이 제한됨  자료유형  이 변수에 저장되는 값의 종류를 자료 유형 (data types) 또는 간단 히 자료형이라고도 함  C 언어에는 자료형을 크게 기본 자료형 (basic type) 과 유도 자료 형 (derived type) 으로 구분 기본 자료형 : 정수형, 문자형, 부동 소수형 유도 자료형 : 배열, 구조체, 공용체 등

3 자료유형의 종류와 크기  적당한 자료유형

4 자료유형의 종류  모두 12 가지  변수가 가질 값의 종류가 자료형  변수의 자료형에 따라 변수가 저장될 공간의 크기와 내부 저장 방식이 결정 괄호는 생략 가능하다는 것을 의미  문장 char c; 는 변수 이름 c 를 자료형 char 로 선언하는 문장 자료형 변수이름 ; char c;

5 입출력 보충 : 데이터의 표현과 연산 기본자료형

6

7  예제 소스 : Overflow (C_03-1.c) 여기서 day 변수의 상수 값으로 “32768” 을 입력하게 되면 그 결과는 어떻게 될 것인가 ? 1) 32768 2) -32768 3) Error

8  입력함수 이해하기 #1

9  scanf 함수 제대로 사용하기 함수 scanf() – 간단한 정수의 입력 –& 은 주소를 의미하는 연산자

10 scanf 함수의 첫번째 전달인자는 변환문자열이며 두 번째 전달인 자부터 입력 받을 변수를 차례로 나열한다.  scanf 함수 제대로 사용하기 scanf 함수의 변환문자열에는 불필요한 문자를 사용하지 않는다. scanf( “ %d %c\n ”, &age, &blood_type); 불필요한 문자 !!

11 입력에 사용되는 변환문자열은 기본적으로 printf 함수와 같다. ▶ scanf 함수의 기본적인 사용법 구분변환문자열 입력 형태 입력되는 변수의 자료형 정수형 %d, %u 10 진수 char, short, int, long 형 변수 %o 8 진수 %x 16 진수 실수형 %lf, %le 소수점 또는 지수형 double 형 변수 문자형 %c 하나의 문자 char 형 변수 문자열 %s 하나의 문자열 char 배열 scanf 함수는 값을 저장할 변수의 위치를 알아야 하므로 변수명에 ‘ & ’ 를 붙여 야 한다 ( 단, 배열명에는 붙이지 않는다 ).

12 scanf 함수는 입력 데이터의 구분을 화이트스페이스 ( 스페이스, 엔터, 탭 ) 으로 한다 (%d, %lf, %s 변환문자열 ). ▶ scanf 함수는 변환문자열을 정확히 사용해야 한다. scanf( “ %d%d ”, &a, &b); 10 20 ( 엔터 ) 공백으로 데이터를 구분 %c 변환문자열은 화이트스페이스도 하나의 데이터로 입력 받는다. scanf( “ %c%c ”, &a, &b); x y ( 엔터 ) 공백을 데이터로 입력 화이트스페이스를 구분문자로 사용하기 위해서는 %c 변환문자열 앞에 공백을 사용한다. scanf( “ %c %c ”, &a, &b); 공백을 사용하면 b 에 y 를 입력 받게 된다.

13  예제소스 (C_03-2.c) 생년월일과 혈액형을 입력 받아 그 결과를 출력 하는 문 장을 완성해 보시오.

14  예제소스 (C_03-2.c)

15  출력함수 이해하기 #2

16 상수의 형태에 따라 적절한 자료형의 변수를 사용해야 한다. 정수형 변수는 int, 실수형 변수는 double 로 선언한다. ▶ 정수형 변수와 실수형 변수 월급의 실 입금액 계산을 위한 변수 선언의 예 int bonbong, bonus, total; double tax, real_income; bonbong = 150; bonus = 60; total = bonbong + bonus; tax = total * 0.09; real_income = total – tax; // 본봉, 보너스, 총수입액 // 세금, 실수입액 // 본봉은 150 만원 // 보너스는 60 만원 // 총수입액은 본봉 + 보너스 // 세금은 총수입액의 9% // 실수입액은 총수입액 - 세금

17 출력하려는 정수 값의 필드 폭 (width) 지정 –%d 사이에 폭을 나타내는 정수를 기술  정수형 변수의 출력

18 실수형 값을 입출력 할 때는 %lf 변환문자열을 사용한다. - 실수형 값의 출력 ▶ 실수형 데이터의 입출력 - 실수형 값의 입력 double tax_rate; scanf( “ %lf ”, &tax_rate); // 세율을 저장할 실수형 변수 // 키보드로 세율 입력 double real_income;... printf( “ 실 수입액은 %lf 입니다. ”, real_income); // 실수형 변수 선언 // 실 수입액 계산 숫자 데이터 정리 데이터형상수의 표현법변수의 자료형데이터의 크기입출력 변환문자열 정수형 10int4 바이트 %d 실수형 10.0double8 바이트 %lf

19  실수형 변수의 입출력 부동소수형을 출력하는 경우 – 변환명세에서 필드 폭 (width) 을 지정하려면 %f 사이에 폭을 기술

20 문자상수는 문자를 작은따옴표로 묶어서 표현한다. ▶ 문자상수 - 문자상수의 크기는 1 바이트이다. - 아스키코드값으로 번역되므로 실제로는 정수형 상수와 같이 처리된다. printf(“ 정수형 상수값 : %d\n”, 65); printf(“ 문자형 상수값 : %d\n”, ‘A’); 정수형 상수값 : 65 문자형 상수값 : 65 전체 4 바이트 1 1 0000

21 문자상수는 1 바이트 크기의 char 형 변수에 저장한다. ▶ 문자변수 char A; A = ‘ A ’ ; // A 는 char 형 변수명 // 변수 A 에 문자상수 ‘ A ’ 를 저장 char 형 변수는 작은 범위의 정수값도 저장할 수 있다. - 문자상수 자체가 정수값으로 번역되므로 char 형 변수도 당연히 정수값을 저장할 수 있다. 단, 크기가 1 바이트이므로 값의 범위가 제한적이다. char ch; ch = 123; // ch 는 char 형 변수명 // char 형 변수에 정수값 저장

22 ▶ 문자의 입출력 문자를 입출력 할 때는 %c 변환문자열을 사용한다. 혈액형을 입력 받아 그대로 출력하는 코드 (AB 형 제외 ) char blood_type; printf( “ 혈액형을 입력하세요 : ” ); scanf( “ %c ”, &blood_type); printf( “ 당신의 혈액형은 %c 형입니다.\n ”, blood_type); // 문자 변수의 선언 // 입력 안내 메시지 출력 // 혈액형 입력 // 혈액형 출력 혈액형을 입력하세요 : B ( 엔터 ) 당신의 혈액형은 B 형입니다. char 형 변수라도 정수값을 입출력 할 때는 %d 를 사용한다.

23 문자열상수는 문자열을 큰따옴표로 묶어서 표현한다. 문자열상수는 연속적인 문자상수들의 집합이다. 문자열상수의 마지막에는 널문자가 포함되어 번역된다. ▶ 문자열상수 널문자 (null character) 는 ‘ \0 ’ 으로 표현하며 아스키코드값은 0 이다.

24 문자열은 char 형 변수들을 모아 놓은 배열에 저장한다. - 널문자를 포함한 문자열의 길이에 맞게 char 배열을 선언한다. - 문자열 “ Hani ” 를 저장하기 위한 char 배열 ▶ 문자열의 저장 char string[5] = “ Hani ” ; // 배열의 선언과 동시에 문자열을 저장한다. 문자열상수는 배열의 선언과 동시에 대입해야 한다. char string[5]; string = “ Hani ” ; 컴파일 에러 !

25 문자열을 입출력 할 때는 %s 변환문자열을 사용한다. - 배열은 입력되는 문자열이 모두 저장될 수 있도록 넉넉하게 선언한다. - 입력할 때 배열명 앞에는 & 를 붙이지 않는다. ▶ 문자열의 입출력 - 지하철 역 이름을 입력 받아 출력하는 코드 char subway[80]; printf( “ 역 이름을 입력하세요 : ” ); scanf( “ %s ”, subway); printf( “ 이번에 정차할 역은 %s 역입니다.\n ”, subway); // 배열명 앞에 & 가 없다 !!

26  예제소스 (C_03-5.c) 지하철역을 입력 받아 그 결과를 출력 하는 문장을 완성 해 보시오.

27 문자열을 입력할 때 중간에 빈칸을 두지 않는다. - scanf 함수는 “ 화이트 스페이스 ( 빈칸, 탭, 엔터 ) ” 를 입력 데이터를 구분 하는 문자로 활용하므로 문자열의 중간에 빈칸이 들어가면 빈칸의 앞 부분만 입력이 된다. ▶ 문자열의 입출력 역 이름을 입력하세요 : 을지로 3 가 ( 엔터 ) 이번에 정차할 역은 을지로입니다. // 문자열 중간에 빈칸 입력 // 을지로만 출력된다. 문자 데이터 정리 데이터형상수의 표현법변수의 자료형데이터의 크기입출력 변환문자열 문자형 ‘A’‘A’ char1 바이트 %c 문자열 “ Hani ” char 배열가변적임 %s

28 자료형에 따른 변환문자열의 사용은 다음과 같다. ▶ 변환문자열 정리 구분변환문자열 출력 형태 대상 자료형 정수형 %d 부호 있는 10 진수 signed 형의 정수형 변수, 상수 %u 부호 없는 10 진수 unsigned 형의 정수형 변수, 상수 %o 부호 없는 8 진수 signed, unsigned 구분 없이 정수형 데이터를 각 진법에 맞게 출력 %x 부호 없는 16 진수 실수형 %lf 부호 있는 소수점 형태실수형 변수, 상수 %le 부호 있는 지수 형태실수형 변수, 상수 문자형 %c 하나의 문자 char 형 변수, 문자상수 문자열 %s 문자열 char 형 배열의 이름, 문자열상수

29 ▶ 정리하기 : 다양한 변환문자열을 사용한 예제 : 예제소스 (C_03-4.c) #include int main() { char ch='A'; char name[80]=" 황금박쥐 "; int in=10; float ft=210; double db=16.8; printf(" 정수형 상수의 출력 : %d\n", -10); printf(" 정수형 변수의 출력 : %d\n", in); printf(" 정수형 수식의 출력 : %d\n", in/3); printf(" 정수형 -> 실수형 변환식의 출력 : %3.1f\n", (float)in/3); printf(" 실수형 수식을 소수점 형태로 출력 : %3.1lf\n", ft/4); printf(" 실수형 상수를 소수점 형태로 출력 : %lf\n", 2.5); printf(" 실수형 변수를 지수 형태로 출력 : %le\n", db); printf(" 실수형 수식을 소수점 형태로 출력 : %lf\n", db/4); printf(" 문자상수의 출력 : %c\n", 'F'); printf(" 문자변수의 출력 : %c\n", ch); printf(" 문자 배열의 출력 : %s\n", name); printf(" 문자열상수의 출력 : %s\n", " 날아라 태극호 "); return 0; } 출력 형태

30  금주의 실습 과제 #3 다음과 같은 문장을 출력하는 프로그램을 작성하여 레포트제출 전용 사이트에 파일을 올리기 바랍니다. 제목과 파일명은 반드시 “ 학번 _3.zip” (ex) “090203_3.zip” 로 업로드 하기 바랍니다. 프로그램 목적 – 변수 선언과 “ 표현식의 출력 ” 을 이해한다. 파일 구성 – 프로그램 저장 장소 : c(d):\ 자신의개인폴더 – 프로젝트 이름 : 학번 _3 ex) 090203_3 – 소스 파일 이름 : 학번 _3.c ex) 090203_3.c – 업로드할 파일명 : 학번 _3.zip ex) “090203_3.zip”

31  실행 결과 : 예제소스 (C_03-3.c)

32  금주의 홈 과제 #3 여러 개의 소스코드가 있습니다. => 이중 한 문제만 선택해서 코딩후 실행해 보면 됩니다. 레포트제출 전용사이트에 다음주 수업 전까지 완료 후 업로드 바람 Visual Studio download ( 강의 사이트에서 다운로드 가능 ) : 업로드할 파일명 : 학번 _ 홍길동.zip ex) “123456_ 홍길동.zip”


Download ppt "03 변수와 자료형 세종대학교 최옥경 교수 참고 : 한빛미디어 뇌를 자극하는 C, INFINITY Perfect C."

Similar presentations


Ads by Google