* 07/16/96 처음으로 배우는 C 프로그래밍 제1부 기초 제2장 데이터형, 선언 및 출력 *

Slides:



Advertisements
Similar presentations
연천 새둥지마을 체재형 주말농장 준공식 초청장 오시는 길 주제 일시 장소 21C 경기농촌희망심기 2005년 제1기 교육수료마을
Advertisements

SPARCS Wheel Seminar Mango X Sugoi
출석수업 자료 교과서 범위: 제1장-4장.
10월 충북노회 남선교회 순회 헌신예배 묵 도 기 도 성 경 봉 독 특 송 찬 양 설 교 찬양 / 봉헌 봉 헌 기 도
글에 나타난 시대적 사회적 배경을 파악할 수 있다. 배경 지식과 의미 해석의 관련성을 이해할 수 있다.
패널자료 분석
라오디게아 교회의 교훈 본문 계 3: ○라오디게아 교회의 사자에게 편지하라 아멘이시요 충성되고 참된 증인이시요 하나님의 창조의 근본이신 이가 이르시되 15. 내가 네 행위를 아노니 네가 차지도 아니하고 뜨겁지도 아니하도다 네가 차든지 뜨겁든지 하기를 원하노라.
한알Ⅱ「더불어 살기」전국대회 일정표 날짜 시간 7월 26일(목) 7월 27일(금) 7월 28일(토) 7월 29일(일)
2013학년도 전라북도고등학교신입생 입학전형 기본계획
선거관리위원회 위원 공개모집 4차 공고 제4기 선거관리위원회를 구성하는 위원 모집의
2015학년도 1학기 버디 프로그램 오리엔테이션 (목) 16:00.
열왕기하 1장을 읽고 묵상으로 예배를 준비합시다..
오늘의 학습 주제 Ⅱ. 근대 사회의 전개 4. 개항 이후의 경제와 사회 4-1. 열강의 경제 침탈 4-2. 경제적 구국 운동의 전개 4-3. 사회 구조와 의식의 변화 4-4. 생활 모습의 변화.
전도축제 계획서 *일시 : 2013년 4월 21, 28일 주일 (연속 2주)
2009학년도 가톨릭대학교 입학안내.
한국 상속세 및 증여세 과세제도 한국 국세공무원교육원 교 수 최 성 일.
중세시대의 의복 학번 & 이름.
다문화가정의 가정폭력의 문제점 연세대학교 행정대학원 정치행정리더십 2학기 학번 이름 홍 진옥.
이공계의 현실과 미래 제조업 立國 / 이공계 대학생의 미래 준비
신앙의 기초를 세우는 중고등부 1부 대 예 배 : 11 : 00 ~ 12 : 층 본당
신앙의 기초를 세우는 중고등부 1부 대 예 배 : 11 : 00 ~ 12 : 층 본당
◆ 지난주 반별 출석 보기 ◆ 제 56 권 26호 년 6월 26일 반 선생님 친구들 재적 출석 5세 화평 김성희 선생님
第1篇 자치입법 개론.
교직원 성희롱·성폭력·성매매 예방교육 벌교중앙초등학교 박명희
제5장 새로운 거버넌스와 사회복지정책 사회복지정책이 어떤 행위자에 의해 형성되고 집행되는지, 어떤 과정에서 그러한 일들이 이루어지는지, 효과적인 정책을 위해서는 어떤 일들이 필요한지 등을 본 장에서 알아본다 개인들이 생활을 개선하는 가장 효과적인고 궁극적인 방법은 개별적.
임상시험 규정 (최근 변경 사항 중심으로) -QCRC 보수 교육 과정 전달 교육
서울특별시 특별사법경찰 수사 송치서류 유의사항 서울특별시 특별사법경찰과 북부수사팀장 안   진.
특수학교용 아동학대! 제대로 알고 대처합시다..
사회복지현장의 이해 Generalist Social Worker 사회복지입문자기초과정 반포종합사회복지관 김한욱 관장
학교보건 운영의 실제 한천초등학교 이 채 금.
제 출 문 고용노동부 귀중 본 보고서를 ’ ~ ‘ 까지 실시한 “근로감독관 직무분석 및 교육프로그램 개발에 관한 연구”의 최종보고서로 제출합니다  연구기관 : 중앙경영연구소  프로젝트 총괄책임자 : 고병인 대표.
학습센터란? 기도에 관해 배울 수 있는 다양한 학습 코너를 통하여 어린이들이 보다 더 쉽게 기도를 알게 하고, 기도할 수 있게 하며, 기도의 사람으로 변화될 수 있도록 하는 체험학습 프로그램이다. 따라서 주입식이지 않으며 어린이들이 참여할 수 있는 역동적인 프로그램으로.
Digital BibleⅢ 폰속의 성경 디지털 바이블 2008년 12월 ㈜씨엔커뮤니케이션 ㈜씨엔엠브이엔오.
후에 70인역(LXX)을 좇아 영어 성경은 본서의 중심 주제인 “엑소도스”(출애굽기)라 하였다.
성 김대건 피츠버그 한인 성당 그리스도왕 대축일 공지사항
예배에 대하여.
말씀 듣는 시간입니다..
하나님은 영이시니 예배하는 자가 신령과 진정으로 예배할지니라.
지금 나에게 주신 레마인 말씀 히브리서 13장 8절.
예수의 제자들 담당교수 : 김동욱.
Lecture Part IV: Ecclesiology
KAINOS 날마다 더하여지는 Kainos News 이번 주 찬양 20 / 300 – 20개의 셀, 300명의 영혼
예배의 외부적인 틀II - 예배 음악 조광현.
영성기도회 렉시오 디비나와 묵상기도 2.
성인 1부 성경 공부 지도목사: 신정우 목사 부 장: 오중환 집사 2010년. 5월 9일
남북 탑승객 150명을 태운 디젤기관차가 2007년 5월 17일 오전 경의선 철길을 따라 남측 최북단 역인 도라산역 인근 통문을 통과하고 있다. /문산=사진공동취재단.
성경 암송 대회 한일교회 고등부 (일).
천주교 의정부교구 주엽동본당 사목협의회 사목활동 보고서
III. 노동조합과 경영자조직 노동조합의 이데올로기, 역할 및 기능 노동조합의 조직형태 노동조합의 설립과 운영
여수시 MICE 산업 활성화 전략 ( 중간보고 )
1. 단위사업 관리, 예산관리 사업설정 (교직원협의/의견수렴) 정책 사업 학교 정책 사업 등록 사업 기본정보 목표 설정
※과정 수료자에 한하여 수강료의 80~100% 차등 환급함
평생학습중심대학 프로그램 수강지원서 접수안내 오시는 길 관악구&구로구민을 위한 서울대학교 -- 접수 일정 및 방법 안내--
서비스산업의 선진화, 무엇이 필요한가? 김 주 훈 한 국 개 발 연 구 원.
기존에 없던 창업을 하고 싶은데, 누구의 도움을 받아야 할지 모르겠어요
전시회 개요 Ⅰ. 전시명칭 개최기간 개최장소 개최규모 주 최 참 관 객 현 지 파 트 너 General Information
Homeplus 일 家 양 득 프로그램 소개 2015년 12월.
Home Network 유동관.
통신이론 제 1 장 : 신호의 표현 2015 (1학기).
I. 기업과 혁신.
Chapter 4 – 프로그래밍 언어의 구문과 구현 기법

ESOCOM – IPIX 고정IP서비스 제안서 Proposer ㈜이소컴.
화장품 CGMP 한국콜마㈜.
초화류 종자 시장 규모 100억원 이상(추정, 생산액의 10%정도 차지)
COMPUTER ARCHITECTIRE
[ 한옥 실측 ] 1. 약실측 2. 정밀실측 조선건축사사무소.
14. 컴파일러 자동화 도구 스캐너 생성기 파서 생성기 코드 생성의 자동화
A제조용수/B환경관리/C시설관리 ㈜ 에이플러스 코리아
Introduction to Network Security
Presentation transcript:

* 07/16/96 처음으로 배우는 C 프로그래밍 제1부 기초 제2장 데이터형, 선언 및 출력 *

이 장의 강의 내용… 데이터 형 산술 연산자 수치 결과 출력 변수와 선언

시작하기 전에 #include <stdio.h> int main() { int year ; year = 2001; 기본용어 함수(Function)와 인자(Argument) 변수(Variable)와 데이터형(Data Type) 문장(Statement) 선행처리기(Preprocessor)와 헤더 파일(Header File) #include <stdio.h> int main() { int year ; year = 2001; printf(“Welcome to CNU,”); printf(“Chungbuk National University %d.\n”, year); return 0; } 실행 결과 ?

시작하기 전에 [해설] #include <stdio.h> /* 선행처리기가 stdio.h 화일을 포함시킴 */ int main() /* 실행은 항상 main 함수에서 시작*/ { /* main 함수의 정의(Definition) 시작 */ int year; /* 정수형 변수의 선언문 */ year = 2001; /* 정수형 변수에 대한 할당문(Assignment) */ printf(“Welcome to ICC,” ); /* 출력문 */ printf(“Information Culture Center %d.\n”, year); /* 출력문*/ return 0; /* main 함수의 반환문 */ } /* main 함수의 정의 끝 */

제 1 절. 기본 개념 상수 ( Constant ) 예) #define PI 3.14 변수 (Variable) 제 1 절. 기본 개념 상수 ( Constant ) 프로그램이 수행되기 전에 값이 결정된다. 프로그램이 수행되는 동안 값이 변하지 않고 유지된다. #define문으로 정의하며 선행처리기에 의해 확장된다. 가능하면 의미 있는 이름을 사용하도록 한다. 관습적으로 대문자를 사용한다. 예) #define PI 3.14 변수 (Variable) 프로그램의 수행 도중 새로운 값을 저장할 수 있다. 모든 변수는 사용하기 전에 적절한 데이터 형으로 선언되어야 한다. 관습적으로 소문자를 사용한다. 예) int sum; sum = 0;

데이터 형 C의 기본 데이터 형 문자형, 정수형, 실수형 (부동 소수점형, 배 정밀도형) char(1byte) 문자형 * 07/16/96 데이터 형 C의 기본 데이터 형 문자형, 정수형, 실수형 (부동 소수점형, 배 정밀도형) char(1byte) unsigned char(1byte) short int(2byte) unsigned char(2byte) int(4byte) unsigned int(4byte) long int(4byte) unsigned long int(4byte) float(4byte) double(8byte) 기본 데이터형 문자형 실수형 정수형 *

데이터 형 정수형(Integer Types) 예) 2, -23, 2456,…. 일반적으로 사용중인 컴퓨터의 워드(Word) 크기이다. 예) IBM PC의 경우 2 bytes(16 bits) -215 ~ +215 - 1 (즉, -32768 ~ +32767) 변수의 선언과 초기화 예) int sum; int rows, columns; 예) int sum = 0; int rows = 3, columns = 4; 비트(Bit), 바이트(Byte), 워드(Word) 비트(Bit) 바이트(Byte) : 1 byte = 8bit 워드(Word) : 8bit, 16bit, 32bit, …

데이터 형 정수형(Integer Types) 정수형 데이타의 출력 printf() 문 내에 형식 표시자(Format Specifier) 사용 %d 정수형 데이타를 10진수(Decimal)로 출력 %o 정수형 데이타를 8 진수(Octal)로 출력 %x 정수형 데이터를 16진수(Hexadecimal)로 출력 #include <stdio.h> int main() { int num = 23; printf(“Dec = %d, Oct = %o, Hex = %x\n”, num, num, num); return 0; } [실행결과] Dec = 23, Dct = 27, Hex = 17

데이터 형 정수형(Integer Types) 그 외의 정수형 short, long, unsigned와 같은 키워드를 int 앞에 붙임 short int 또는 short long int 또는 long unsigned int 또는 unsigned 부호를 무시함으로써 양수의 범위로 2배로 사용 예) 2-byte 정수형에서 unsigned int : 0 ~ 65535 short <= int <= long (2 bytes) (2 or 4 bytes) (4 bytes) 여러 가지 기종에서의 정수형 데이터의 크기 (단위 : 바이트) 데이터형 DEC VAX Macintosh (Think C) IBM PC (MSC, BC,VC) ANSI C Minimum short 2 int 4 2(4) long

데이터 형 정수 한정자 정수 한정자 long, short, unsigned : int 선언문 앞에 붙여 표현할 수 있는 정수 숫자의 크기를 정하는 것 2Bytes Data Type Storage Number Range Integer Unsigned -32768 to 32767 (a total of 65,536 numbers) 0 to 65,535

데이터 형 정수 한정자 저장 크기 알아내는 방법 : sizeof() 연산자 예제 #include <stdio.h> 데이터 형 정수 한정자 저장 크기 알아내는 방법 : sizeof() 연산자 예제 #include <stdio.h> void main(void) { long num0; int num1; printf(“Bytes of storage used by a long integer : %d”, sizeof(num0) ); printf(“\nBytes of storage used by an integer : %d”, sizeof(num1) ); }

데이터 형 오버플로우 에러 오버플로우 에러(Overflow Error) 데이터 형 오버플로우 에러 오버플로우 에러(Overflow Error) 프로그램 수행 시, 데이터 형이 허용하는 범위를 넘으면 발생 충분한 범위를 허용하는 데이터 형으로 선언해야 함 long 데이터 형은 큰 수를 저장할 수 있으나, 그만큼 많은 메모리 영역을 차지하므로, 사용할 데이터 형의 허용 범위와 메모리 공간이 효율성을 고려하여 데이터 형을 결정해야 함 [예제 ] 오버플로우 에러 #include <stdio.h> int main() { short i = 32767; printf(“%hd %hd %hd\n”, i, i+1, i+2); /* %hd : short int 형으로 출력 */ } [실행결과] 32767 -32768 -32767

데이터 형 오버플로우 에러 (예) 32767: 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -32768: 1 -32767: 1 1 각 비트별 가중치 : -215 214 213 212 211 210 29 28 27 26 25 24 23 22 21 20 7: -8: -7: 예) 1 1 1 = -23*0 + 22*1 + 21*1 + 20*1 = 4+2+1= 7 1 = -23*1 + 22*0 + 21*0 + 20*0 = -8 1 1 = -23*1 + 22*0 + 21*0 + 20*1 = -8+1= -7 -23 22 21 20

데이터 형 문자형(Character type) 문자를 저장하는데 사용 표준 ASCII 코드 : 0 ~ 127 알파벳 0에서 9까지 10개의 숫자 + $ . , - !와 같은 특수기호 문자상수 : 단일 따옴표 안에 포함된 문자나 숫자, 특수기호 (예) ‘A’ ‘$’ 1byte 크기 : ASCII 코드를 저장하는데 충분

데이터 형 문자형(Character type) 문자형의 선언과 할당 예) char c; char ch = ‘A’; 예) char grade; grade = 65; 옳음(‘A’의 ASCII 값이 65) grade = ‘A’; 옳음 grade = A; 틀림(A는 변수) grade = “A”; 틀림(A는 스트링)

데이터 형 문자형(Character type) 문자형의 출력 %c 문자로 출력 (%d 를 사용하면 ASCII 값을 출력) [예제] #include <stdio.h> int main() { char ch; printf(“Please enter a character.\n”); scanf(“%c”, &ch); printf(“ASCII code for %c is %d.\n”, ch, ch); return 0; } [실행결과 ] Please enter a character. A ASCII code for A is 65.

데이터 형 문자형(Character type) [예제 ] 각 문자의 아스키 코드 값을 출력하는 프로그램 #include <stdio.h> int main() { int ch; for (ch=0; ch < 128; ch++) printf(“ASCII code for %c is %d.\n”, ch, ch); return 0; } [실행결과]

데이터 형 문자형(Character type) 예외 문자 (Escape Sequence) 역슬래쉬, ’\’와 몇몇 문자들이 조합되어 특별한 의미를 가지는 문자를 표현 Sequence Meaning \n newline or line feed \t tab \b backspace \r carriage return \f form feed \\ backspace(\) itself \’ single quote(‘) \” double quote(“) \ ooo Octal value(o is an octal digit) \xhh Hexadec. Value(h is a hexadec. digit) [예제 ] 부분 프로그램 printf(“He said, \” a \\ is a backslach.\”\n”); [실행결과] He said, ” a \ is a backslash.”

데이터 형 부동소수점 및 배정밀도 수 지수 표현 소수점(.)이 있는 양수 또는 음수 +, - 부호를 포함할 수 있음 쉼표(,), 달러($) 표시와 같은 특수한 기호는 사용 불가 최대값과 최소값이 제한되어 있음 컴파일러가 확보하는 저장공간의 크기에 따라 다름 일반적으로 배정밀도 수의 크기는 부동소수점의 두 배 예 : +10.625, 5., -6.2, 3251.92, 0.0, -6.67, +2. 지수 표현 부동소수점 수와 배정밀도 수로 매우 큰 수나 매우 작은 수를 표현할 때 간결한 형태로 표현할 수 있도록 함 십진표현 지수표현 1625. 1.625e3 63421. 6.3421e4 .00731 7.31e-3 .000625 6.25e-4

데이터 형 부동소수점 형 데이타의 선언 부동소수점 형 데이타의 출력 float average = 0.0; double sdev = 0.0; 부동소수점 형 데이타의 출력 % f decimal notation 형태로 출력 % e exponential notation 형태로 출력 [예제] #include <stdio.h> main() { float average = 32000.0; printf(“%f can be written %e\n”, average, average); return 0; } [실행결과] 32000.00000 can be written 3.200000e+004

산술 연산자 덧셈, 뺄셈, 곱셈, 나눗셈에 사용되는 연산자 산술연산자는 두 개의 연산 항(operand)을 필요로 하는 이항 연산자 혼합형 수식 : 연산 항의 데이터 형이 다른 수식 혼합형 수식일 경우 결과 값의 데이터 형 모든 연산 항이 정수이면 정수 연산 항 중 어느 것이라도 부동소수점 또는 배정밀도 값이면 배정밀도 수 기 능 연산자 덧 셈 + 뺄 셈 - 곱 셈 * 나눗셈 /

산술 연산자 정수 나눗셈 모듈러(나머지) 연산자 : % 단항연산자 : - 정수와 정수의 나눗셈 연산 결과 값은 정수 결과 값이 정수이기 때문에 소수 부분은 버림 예) 15/2 = 7 17/5 = 3 모듈러(나머지) 연산자 : % 두 정수를 나눈 나머지를 구하는 산술 연산자 모듈러 연산자는 정수에서만 사용 9 % 4 = 1 17 % 3 = 2 1 % 2 = 1 단항연산자 : - 수치 연산 항 앞에 붙어 그 수의 반대 부호로 바꿈

산술 연산자 산술 연산자를 포함하는 식을 쓸 때 규칙 연산자 우선 순위 및 결합성 두 개 이상의 이항 산술 연산자 기호는 결코 이웃 하여 놓일 수 없음 괄호는 그룹을 형성하기 위해 사용되며, 괄호 안의 모든 식들이 먼저 계산됨 괄호는 곱셈을 대신할 수 없음. 예) 3(4+5)  3*(4+5) 연산자 우선 순위 및 결합성 예 8 + 5 * 7 % 2 * 4 8 + 35 % 2 * 4 8 + 1 * 4 8 + 4 = 12 Operator Associativity unary - right to left * / % left to right + - left to right 계산순서

수치 결과 출력 산술 연산을 계산하고 그 결과를 출력하는 방법 예제 printf()함수를 사용 제어 문자열 : 어디에 어떤 결과가 출력되도록 할 것인가를 함수에게 알려 줌 값 : 출력되기를 원하는 값 예제 printf(“6과 15의 합은 %d입니다.”, 6+15); 결과 : 6과 15의 합은 21입니다. printf(“%f와 %f의 합은 %f입니다.”, 12.2, 15.754, 12.2 + 15.754); 결과 : 12.200000와 15.754000의 합은 27.954000입니다. printf(“알파벳의 첫 번째 글자는 %c입니다.”, ‘a’); 결과 : 알파벳의 첫 번째 글자는 a입니다.

수치 결과 출력 프로그램 #include <stdio.h> void main(void) { printf(“%f plus %f equals %f\n”, 15.0, 2.0, 15.0 + 2.0); printf(“%f minus %f equals %f\n”, 15.0, 2.0, 15.0 - 2.0); printf(“%f times %f equals %f\n”, 15.0, 2.0, 15.0 * 2.0); printf(“%f divided by %f equals %f\n”, 15.0, 2.0, 15.0 / 2.0); }

수치 결과 출력 형식출력 : 필드 폭 변경자 프로그램 1 프로그램 2 #include <stdio.h> void main(void) { printf(“\n%d”, 6); printf(“\n%d”, 18); printf(“\n%d”, 124); printf(“\n-----”); printf(“\n%d”, 6+18+124); } 프로그램 2 #include <stdio.h> void main(void) { printf(“\n%3d”, 6); printf(“\n%3d”, 18); printf(“\n%3d”, 124); printf(“\n-----”); printf(“\n%3d”, 6+18+124); } 6 18 124 ----- 148 6 18 124 ----- 148 [결과] [결과]

변수와 선언 컴퓨터에서 데이터를 사용하는 방법 변수의 정의 단순히 프로그래머가 컴퓨터 저장 공간에 지어준 이름 메모리 주소 대신 기호 이름이 사용되며, 이 기호 이름을 변수라고 함 1321 1322 Address : Storage for one integer 2649 2650 1321 1322 Address : Storage for one integer 2649 2650 45 46 result num1 num2

변수와 선언 변수의 이름을 정하는 규칙 반드시 문자나 밑줄로 시작해야 하며, 문자나 밑줄, 숫자들을 포함할 수 있음 키워드를 사용해서는 안됨 길이가 31개의 문자를 넘어서는 안됨

변수와 선언 선언문 정의문으로 사용되는 선언문의 예 int distance = 26; 각 변수에 저장될 수 있는 데이터형을 정의하고 이름을 붙이는 것 함수 내에 있는 선언문은 함수의 시작을 알리는 중괄호 바로 다음에 나타나며 세미콜론으로 끝나야 함 선언문의 일반적인 형태 function name() { int distance; float firstnum; other statements; } 정의문으로 사용되는 선언문의 예 int distance = 26;

변수와 선언 프로그램 #include <stdio.h> void main(void) { float grage1; float grade2; float total; float average; grade1 = 85.5; grade2 = 97.0; total = grade1 + grade2; average = total/2.0; printf(“The average grade is %f\n”, average); }

변수와 선언 프로그램 #include <stdio.h> void main(void) { char ch; printf(“\nThe character stored in ch is %c.”, ch); ch = ‘m’; printf(“\nThe character now stored in ch is %c.”, ch); }

일반적인 프로그래밍 오류 프로그램에서 사용되는 모든 변수를 선언하는 것을 잊는 경우 선언된 것과 다른 형태의 데이터 형을 저장하는 경우 int i = 1.5; 변수에 값을 대입하기 전에 변수를 사용하는 경우 정수 값을 잘못 나누는 경우 i = 5/0; 동일한 수식에서 만들어 낼 효과를 완전히 이해하지 못한 채 여러 데이터 형을 섞어 사용하는 경우 printf()함수내의 제어문자열을 쉼표 앞에서 이중 따옴표로 닫지 않는 경우 printf(“Hello %d, j); printf()함수내의 인자들을 쉼표로 구분하는 것을 잊는 경우 printf(“%d %d”, i j);

요약 C의 기본 데이터 형(정수형, 부동소수점형, 배정밀도형, 문자형) printf()함수를 이용한 데이터 출력 변수의 선언 선언문의 역할 sizeof 연산자의 역할