Presentation is loading. Please wait.

Presentation is loading. Please wait.

Chapter 03. 데이터의 표현과 연산(Ⅰ).

Similar presentations


Presentation on theme: "Chapter 03. 데이터의 표현과 연산(Ⅰ)."— Presentation transcript:

1 chapter 03. 데이터의 표현과 연산(Ⅰ)

2 숫자상수에는 정수 외에도 실수가 있다. 숫자상수를 저장하는 변수의 선언 숫자 데이터의 기본적인 연산과 형변환
숫자 데이터의 처리 숫자상수에는 정수 외에도 실수가 있다. 숫자상수를 저장하는 변수의 선언 숫자 데이터의 기본적인 연산과 형변환 실수형 데이터의 입출력

3 ▶ 숫자상수 숫자 데이터를 프로그램 안에서 직접 표현한 것이 숫자상수이다. 정수형 상수의 표현 - 일반적인 정수값 표현방식과 같다. 실수형 상수의 표현 - 정수값 표현방법에 소수점을 붙인다. 정수형 상수와 실수형 상수는 다른 형태로 번역된다.

4 상수의 형태에 따라 적절한 자료형의 변수를 사용해야 한다. 정수형 변수는 int, 실수형 변수는 double로 선언한다.
▶ 정수형 변수와 실수형 변수 상수의 형태에 따라 적절한 자료형의 변수를 사용해야 한다. 정수형 변수는 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% // 실수입액은 총수입액 - 세금

5 ▶ 기본적인 연산과 연산과정 피연산자는 상수 또는 변수가 된다. 덧셈, 뺄셈, 곱셈 연산자 연산 결과는 일단 임시 기억공간에 저장된다.

6 연산과정에서 피연산자의 형태는 하나로 통일된다.
▶ 자동 형변환 연산과정에서 피연산자의 형태는 하나로 통일된다. - 정수형과 실수형 값이 연산될 때는 정수형이 실수형으로 자동 형변환 되어 연산되며 그 결과값 또한 실수형이 된다.

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

8 문자 데이터의 처리 문자상수의 표현법 문자상수의 저장 문자의 입출력

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

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

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

12 문자열 데이터의 처리 문자들을 모아서 문자열을 만든다. char배열에 문자열을 저장한다. 문자열의 입출력

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

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

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

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

17 형변환과 여러 가지 연산자 형변환 규칙 몫 연산자와 나머지 연산자 형변환 연산자

18 ▶ 형변환 규칙 int result; result = 2.5; 서로 다른 형태의 값이 연산될 때는 형태가 하나로 통일된다.
형변환은 데이터의 손실을 최소화하는 방향으로 수행된다. 문자 op 정수 정수 op 정수 정수 op 실수 실수 op 실수 문자 op 실수 문자 데이터끼리 연산 할 때는 둘 다 정수형으로 변환된다. 문자 op 문자 정수 op 정수 대입문에서는 왼쪽 변수의 형태에 따라 변환된다. int result; result = 2.5; 소수부분은 버려지고 정수값만 저장된다.

19 ▶ 형변환 규칙 연산의 결과값은 피연산자의 형태와 같다. 따라서 두 정수값으로 나눗셈 연산을 수행하면 결과값은 정수가 된다. 나눗셈 결과가 실수값이 되려면 피연산자 중의 하나는 실수값이어야 한다. (실수) ;

20 나눗셈 연산자(/)의 피연산자가 모두 정수형이면 몫을 구한다. 나머지 연산자(%)의 피연산자는 모두 정수형이어야 한다.
▶ 몫 연산자와 나머지 연산자 나눗셈 연산자(/)의 피연산자가 모두 정수형이면 몫을 구한다. 나머지 연산자(%)의 피연산자는 모두 정수형이어야 한다. 몫과 나머지 연산자는 어떤 값을 일정한 단위로 걸러낼 때 유용하다. - 거스름돈 850원에 필요한 동전의 최소 개수를 구하는 예

21 ▶ [예제 3-2] 자판기 잔돈 계산 프로그램 #include <stdio.h> int main() {
int input, change; int w500, w100, w50, w10; printf("돈을 입력하세요 : "); scanf("%d", &input); change = input - 150; w500 = change / 500; change = change % 500; w100 = change / 100; change = change % 100; w50 = change / 50; change = change % 50; w10 = change / 10; printf("500원짜리 동전 %d개\n", w500); printf("100원짜리 동전 %d개\n", w100); printf("50원짜리 동전 %d개\n", w50); printf("10원짜리 동전 %d개\n", w10); return 0; } // 커피값이 150원일 때 잔돈 계산 // 500원 동전의 개수 // 아직 지급하지 못한 남은 잔돈 // input은 투입액, change는 잔돈을 저장할 변수 // 각 동전의 개수를 저장할 변수

22 형변환 연산자는 피연산자의 형태를 명시적으로 변환시킨다.
▶ 형변환 연산자 형변환 연산자는 피연산자의 형태를 명시적으로 변환시킨다. - 취업자 수와 졸업생 수를 입력 받아서 취업률을 계산하는 예 int employed, graduation; double percentage; scanf(“%d%d”, &employed, &graduation); // 취업자수와 졸업생수를 저장할 변수 // 취업률을 저장할 변수 // 취업자수와 졸업생수 입력 * 형변환하지 않는다면 취업률은 항상 0%이다.

23 실수를 정수형으로 형변환하면 정수값만 계산된다.
▶ 형변환 연산자 실수를 정수형으로 형변환하면 정수값만 계산된다. 시간은 몇 분, 몇 초인가? double time = 0.375; int min; time = time * 60; min = (int)time; time = time – min; printf(“분 : %d\n”, min); printf(“초 : %d\n”, (int)(time *60)); // 분 출력 // 초 단위로 환산한 후에 형변환하여 출력 // 분 단위로 환산, time은 22.5 // 정수값 22만 추려서 min에 저장 // time에는 분 단위 값 0.5만 남긴다. // 단위는 시간 // 분을 저장하기 위한 변수


Download ppt "Chapter 03. 데이터의 표현과 연산(Ⅰ)."

Similar presentations


Ads by Google