slide1
Download
Skip this Video
Download Presentation
제 2 장 데이터형과 표준 입출력문

Loading in 2 Seconds...

play fullscreen
1 / 46

제 2 장 데이터형과 표준 입출력문 - PowerPoint PPT Presentation


  • 239 Views
  • Uploaded on

제 2 장 데이터형과 표준 입출력문. 2.1 상수의 표현 2.2 변수의 표현 2.3 수식과 대입문 2.4 데이터형 2.5 데이터의 형 변환 2.6 표준 입출력 함수 2.7 키보드 입력함수. C 언어에서 데이터는 상수 (constant) 와 변수 (variable) 로 나눈다 . 상수와 변수는 크게 문자형 , 정수형과 실수형의 데이터형을 가진다 . 일반적으로 상수는 프로그램이 실행되기 전에 데이터형과 값을 미리 선언한 후에 실행 중에 그 값이 바뀌어지지 않는다 .

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' 제 2 장 데이터형과 표준 입출력문' - kalare


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

제2장 데이터형과 표준 입출력문

2.1 상수의 표현

2.2 변수의 표현

2.3 수식과 대입문

2.4 데이터형

2.5 데이터의 형 변환

2.6 표준 입출력 함수

2.7 키보드 입력함수

slide2
C 언어에서 데이터는 상수(constant)와 변수(variable)로 나눈다.
  • 상수와 변수는 크게 문자형, 정수형과 실수형의 데이터형을 가진다.
  • 일반적으로 상수는 프로그램이 실행되기 전에 데이터형과 값을 미리 선언한 후에 실행 중에 그 값이 바뀌어지지 않는다.
  • 반면 변수는 프로그램이 수행되기 전에 데이터형을 미리 선언을 한 후에 프로그램 실행 중에 변수에 값을 대입하여 프로그램이 수행할 수 있도록 허용하는 것을 말한다.
slide3
2.1 상수의 표현
  • 상수는 프로그램 중에 그 값이 명시되어 변하지 않는 것으로서 문자(character) 상수, 정수형 상수, 실수형 상수, 문자열(character string) 상수가 있다.
  • 실수형 상수에는 십진형 표기와 지수형 표기가 있다.
  • 문자 상수는 ‘A’와 같이 ‘’(작은따옴표)로 묶어서 문자를 표현한다.
  • 문자열 상수는 “ ”(큰따옴표)로 나타내는데, “1234”는 숫자가 아니라 문자열로 다룬다.
  • 변수와 상수는 프로그램 시작부분의 선언부에 선언한다.
2 1 1
2.1.1 문자 상수
  • 문자상수는 아스키(ASCII)코드의 한 문자를 표현을 위해 작은 따옴표로 묶어 나타낸다.
  • 문자 상수는 한 바이트로 표현된다.
    • ① 작은 따옴표로 묶인 문자이다.
      • (예) ‘a’
    • ② 코드 값을 직접 작은 따옴표로 묶어서 표현한다
      • (예) ‘\246’, ‘\x9B’
      • 여기서, ‘\x’, ‘\X’ 16진 표현이다.
slide5
③ 아스키코드에서 특수문자, 제어문자 영역(0x00~0x19)은 문자상수 표현이 어려우므로 기능코드를 사용하여 문자 상수로 프로그램 중에 표현할 수 있다.
  • 기능 코드들을 escape 문자라 하며 표 2.1과 같다.
2 1 2
2.1.2 정수 상수

① 소수점이 없는 수치, 기본형은 signed int이다.

② 부호가 없는 정수 상수인 경우 수치 뒤에 ‘u’, ‘U’의 태그(tag)를 붙인다.

③ 수치의 크기가 int의 한계를 넘으면 자연히 long int로 인식한다.

④ 절대값이 작은 수치에 태그를 붙여 long int로 명시 가능하다.

⑤ unsigned long int형 상수에는 끝에 ‘ul’혹은 ‘UL’을 붙인다.

⑥ 정수표현에서 ‘0’은 8진 표현이고 ‘0x’이나 ‘0X’는 16진 표현이다.

2 1 3
2.1.3 실수 상수

① 기본형은 double형이다.

② float형 상수는 ‘f’혹은 ‘F’의 태그를 사용한다.

③ long double형은 ‘l’나 ‘L’의 태그를 붙인다.

④ 십진형 표기와 지수형 표기가 있다.

2 1 4
2.1.4 문자열 상수

문자열상수(character string constant)는 일련의 문자들의 모임을 말하며, 다음과 같이 표현된다.

① 문자열은 “”(큰따옴표)로 표현한다.

② 문자열은 아스키 문자들의 끝에 널(Null) 문자가 첨가된다. 예를 들어 “abc"는 3개의 문자와 문자열의 알리는 널 문자를 포함하므로 실제 크기는 4바이트이다.

③ “"는 문자열의 길이가 0인 널 스트링(null string)이다. 실제 문자열의 크기는 1바이트이다.

slide13
2.2 변수의 표현

2.2.1 변수의 선언

  • 프로그램 상의 명령문이 실행됨에 따라 값이 바뀔 수 있는 것을 변수(variable)라 한다.
  • 변수는 항상 프로그램의 본문이 실행되기 전에 정의를 한 후 사용해야 한다.
  • 변수 선언은 변수를 위한 기억공간을 할당하고 변수명과 변수가 가질 데이터형을 지정하는 것을 말한다.
slide14
변수를 정의하는 방법
  • 문법
    • 데이터형 변수명[=초기값], [ 변수명[=초기값] ...] ;
  • 변수 정의는 변수가 가질 데이터형과 변수명을 위한 식별자를 지정한다.
  • 변수에 초기값을 지정하려면 ‘=’다음에 초기값이나 수식을 쓴다.
  • 데이터형이 같은 변수들을 연속적으로 한꺼번에 정의할 수 있다.
slide15
변수명이나 상수명, 함수명 등으로 사용하는 식별자를 지정하는 규칙

① 첫 문자는 영문자로 시작해야 된다.

② 변수명의 길이는 31자까지 유효하다.

③ 언더바(_)는 변수명의 일부로 사용할 수 있으며 첫 글자에도 올 수 있다.

④ 키워드(if, int, for, do....)는 변수명으로 사용할 수 없다.

⑤ 대문자와 소문자는 다른 문자로 구분한다.

slide17
변수명을 붙일 때 신경쓰자

① 좋지 않은 예

int i, j;

char a, b, c;

char *n, *q, *r;

float x, y z;

② 좋은 예

char *CurrentDirectory;

int TotalFileNumber;

③ 함수 예

int Factorial(int n)

{

if( n==0)

return 1;

else

return (Factorial(n-1)*n);

}

slide18
변수명을 붙일 때 신경쓰자(계속)

④ 접두사

접두사와 접미사를 사용하는 것은 의미를 명확하게 하고 또한 프로그램의 일관성을 부여할 수 있다.

PutImage, SetColor, GetCurrenFileName, ....

⑤ 기타

■ 의미가 어렵거나 분명하지 않은 단어는 사용을 되도록 피하도록 한다.

HandleCalculation, ProcessData, ...

■ 루틴이 하는 일을 모두 설명할 수 있어야 한다. 루틴 이름과 관련이 없는 연산들은 그 루틴에 포함되어서는 안된다.

slide19
변수명을 붙일 때 신경쓰자(계속)

■ 루틴명의 길이는 최적의 평균 길이는 9~15자이다. 그러나 평균적으로 현실적인 이름은 15~20자가 적당하다.

■ 이름짓기를 위한 규칙을 정한다. 특히 여러 사람이 프로그래밍 프로젝트에 참가할 경우 이름짓기에 관한 규칙을 제정해야 한다.

=> 프로그램의 표준화 및 일관성

2 2 2
2.2.2 변수의 초기화
  • 선언한 변수는 프로그램 실행도중에 수식에 따라 값이 변할 수 있다.
  • 처음에 변수를 미리 초기화하여 사용할 수도 있다.
slide21
예제 2.6 다음 프로그램은 문자 변수를 선언하고, 계산하는 프로그램이다. 실행 결과를 분석하시오.

#include <stdio.h>

#include <conio.h>

void main(void)

{

char c =\'y\';

int i, a=97;

printf(" %c \n",c);

printf(" %d \n",c);

printf(" %d \n",\'A\'+\'C\');

printf(" %c %c \n",c,c+1);

printf("%c\n",a);

for(i=a;i<=122;i++)

printf("%c",i);

}

slide22
2.3 수식과 대입문
  • 변수명에 값을 기억시키는 방법
    • 변수 선언시 초기값을 지정하는 방법
    • 대입문에 의한 방법
    • 입력함수에 의한 방법
  • 대입문에 의한 방법은 상수, 변수, 함수로 구성된 연산의 수식을 미리 지정한 변수에 대입하는 것을 말한다.
  • 예)
    • y=x+1;
    • 변수 x가 갖고 있는 값에 1을 더해서 그 결과를 y에 대입하라는 의미이다.
    • ‘=’은 대입연산자이다.
slide23
예제 2.8 다음은 대입문을 변형하여 프로그램 한 예이다. 프로그램을 분석하시오.

#include <stdio.h>

#include <conio.h>

void main(void)

{

int i, j, k;

i=j=k=10;

printf("i = %d, j = %d, k = %d\n",i, j, k);

k = (i=20) + (j=40); /* 대입문 변형 */

printf("i = %d, j = %d, k = %d\n",i, j, k);

}

2 4 data type
2.4 데이터 형(data type)
  • C언어에서 제공하는 기본데이터형
    • 정수형
    • 실수형(부동소수점형, 浮動小數点形)
    • 문자형
  • 각 데이터형은 그 표현 범위가 제한되어 있으며 컴파일러에 따라서 제한 범위가 다를 수도 있다.
2 4 1
2.4.1 정수 데이터형
  • 정수는 2byte로 표현되는 signed int형을 기본으로 한다.
  • int 보다 큰 범위의 정수를 다루기 위한 signed long int형도 있다.
  • long으로 간단히 표현할 수 있다.
  • 음수가 사용되지 않는 카운터와 같은 데이터에서는 unsigned int형을 사용한다.
2 4 3
2.4.3 실수 데이터형
  • 실수는 float, double, long double형이 있으며 기본형은 double형이다.
  • float형은 전체 32bit로 구성되어 있으며, 부호 1비트 지수 8비트, 가수 23비트의 3부분으로 구분된다.
  • float형의 정확도는 10진수의 7.2자리로 표현하며 수치의 크기는 10+38까지 나타낸다.
  • float형에서 지수부와 가수부를 확장한 double형과 long double형이 있다.
ieee 754 float
IEEE 754에 정의된 float형의 내부표현

표 2.8 부동소수점(float)형의 표현 범위

slide30
예제 2.9 컴파일러가 제공하는 변수의 크기를 알아보는 프로그램이다.

#include <stdio.h>

void main()

{

int n;

char c;

long p;

float f;

double d;

printf("%d \n", sizeof(char));

printf("%d \n", sizeof(int));

printf("%d \n", sizeof(long));

printf("%d \n", sizeof(float));

printf("%d \n", sizeof(double));

}

slide31
2.5 데이터 형 변환
  • 데이터의 형 변환
    • 자동 형 변환
    • 강제 형 변환
  • 자동 형 변환
    • 대입 연산시 우측의 수식 결과값을 좌측의 데이터형으로 변환하여 배정할 때 발생
    • 산술 연산시 두 오퍼랜드의 데이터의 형이 다른 경우에 발생
    • 데이터형이 큰 쪽으로 변환
  • 강제 형 변환
    • cast 변환 :
      • (형) 수식;
      • (형) 변수;
slide32
예제 2.11 자동 형 변환과 강제 형 변환

#include <stdio.h>

void main(void)

{

char a=\'A\';

int b=20, c, d=50, e=30;

float f;

c=a+b; /* 자동 형변환 */

f=(float)d+(float)e; /* 강제 형변환 */

printf("c=%d \n", c);

printf("f=%f \n", f);

}

slide33
2.6 표준 입출력 함수
  • 입력 : 데이터를 컴퓨터 내부에 기억시키는 것
  • 출력 : 내부에 기억된 내용을 컴퓨터 외부에 나타내는 것
  • C언어에서 표준 입출력 함수 : printf, scanf
  • 표준 입출력 함수기 있는 헤더 파일
    • #include <stdio.h>
  • 헤더 파일 : 함수의 프로토 타입을 정의해 두고, 인수의 개수와 형(type)을 검사하여 프로그램의 안정성을 보장한다.
2 6 1 printf
2.6.1 printf
  • printf 함수는 화면에 문자열이나 변수 값을 일정한 형식으로 출력하는 함수이다.
  • 형식
    • printf("형식지정 문자열", 변수1, 변수2, 변수3,...);
    • 예)
      • printf("%5d", a);
2 12 printf
예제 2.12 printf예

#include <stdio.h>

void main() {

int i=100, j;

j = &i;

printf("%d\n",123);

printf("%5d\n",345);

printf("%05d\n",345);

printf("%13u\n",4239109949);

printf("%0d\n",567);

printf("%05x\n",507);

printf("%5x\n",507);

printf("%#5x\n",507);

printf("%6o\n",507);

printf("%#6o\n",507);

printf("%0x\n",507);

printf("%-5d\n",678);

printf("%6.1f\n",789.38);

printf("%10.1e\n",789.38);

printf("%7.1f\n",789.45);

printf("%p\n",&i);

printf("%20s\n","abcdefg789.45");

}

2 6 2 scanf
2.6.2 scanf
  • scanf 함수는 키보드로부터 데이터를 직접 입력하는 기능을 가진 함수
  • 형식
    • scanf("형식지정 문자열", 변수1, 변수2, 변수3,........);
    • 예)
      • scanf("%d", &a);
2 13 scanf
예제 2.13 scanf예

#include <stdio.h>

void main( void )

{

int i, result;

float fp;

char c, s[81];

printf( "정수 실수 문자 문자열을 입력하시오\n");

result = scanf( "%d %f %c %s",&i,&fp,&c,s );

printf( "\n입력된 데이터의 개수 = %d\n",result);

printf( "입력결과 : %d %f %c %s\n",i,fp,c,s);

}

2 14 scanf
예제 2.14 scanf예

#include <stdio.h>

void main(void)

{

int a;

float b; /* 정수, 실수, 문자형 선언 */

char c;

printf(" input(integer)==>");

scanf("%d",&a); /* 정수입력 */

printf("\n input(float)==>");

scanf("%f",&b); /* 실수입력 */

printf(" a = %d, b = %f\n", a, b); /* 출력 */

}

slide42
2.7 키보드 입력 함수
  • 키보드로부터 한 문자 또는 문자열을 입력받고 이를 출력하는 함수들이다.
  • getchar()함수 : 한 문자를 입력
  • putchar()함수 : 한 문자를 출력
  • gets()와 puts()는 문자열을 입력 또는 출력
slide43
int getchar( );
    • 키보드로 하나의 문자를 입력하는 함수
    • 리턴값은 키보드의 읽은 문자
    • 화일 종료시 EOF 반환
  • int putchar( );
    • 화면에 하나의 문자를 출력하는 함수
    • 오류시 EOF 반환
  • int *gets(char *str );
    • 키보드로 1행을 읽어서 str에 저장
    • 리턴값 : str내용 반환
    • 파일 종료나 오류시에 NULL 반환
  • int puts(char *str );
    • 화면에 한 행을 출력하고, 출력 행을 바꾼다.
    • 정상 처리시 : 0이 아닌 값 반환
    • 오류시 : EOF 반환
2 20 getchar putchar
예제 2.20 getchar, putchar를 이용한 한 문자 입출력.

#include <stdio.h>

void main(void)

{

char c;

c = getchar(); /* 키보드에서 한 문자 입력 */

putchar(); /* 화면에 한 문자 출력 */

}

2 21 get s puts
예제 2.21 gets, puts를 이용한 문자열 입출력.

#include <stdio.h>

void main(void)

{

char c[100];

gets(c); /* 키보드에서 문자열 입력 */

puts(c); /* 화면에 문자열 출력 */

}

slide46
예제 2.23 소문자로 입력된 문자를 대문자로 출력하는 프로그램

#include <stdio.h>

void main(void)

{

char c;

printf("소문자 한 개를 입력하시오\n“);

c=getchar();

c= c - 32; /* 소문자를 대문자로 변환 */

putchar(c);

putchar(\'\n\');

}

ad