개정판 누구나 즐기는 C언어 콘서트 제3장 변수와 자료형 출처: pixabay.

Slides:



Advertisements
Similar presentations
3. 자료형. 담당교수 : 이 성 우 C++ 프로그래밍 상수와 변수 (3) 1. 변수 (variable)  프로그램 수행 도중에 자료  변수를 위해 은 변하지 않음  선언 시에 반드시 그. ※ 저장 정보의 구성 ① 정보의 종류 ② 저장 값 ③ 저장 위치 int Num.
Advertisements

03 변수와 자료형 세종대학교 최옥경 교수 참고 : 한빛미디어 뇌를 자극하는 C, INFINITY Perfect C.
제6장 조건문.
데이터의 표현과 연산 (1) (Chapter 3)
제 3 장 변수와 자료형.
슬라이드 1~21까지는 각자 복습! 슬라이드 22부터는 수업시간에 복습
쉽게 풀어쓴 C언어 Express 제5장 수식과 연산자 C Express Slide 1 (of 34)
C++ Espresso 제1장 기초 사항.
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
C 프로그래밍.
제3장 추가 실습 3장 관련 C 언어 프로그래밍 실습.
4장: 자료형과 수식.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
컴퓨터의 기초 제 4강 - 표준 입출력, 함수의 기초 2006년 4월 10일.
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
6장. printf와 scanf 함수에 대한 고찰
누구나 즐기는 C언어 콘서트 제4장 수식과 연산자.
연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자
변수와 자료형.
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
기초C언어 제3주 C프로그램 구성요소, 변수와 자료형 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
컴퓨터 프로그래밍 기초 - 2nd : scanf(), printf() 와 연산자 -
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
누구나 즐기는 C언어 콘서트 제2장 기초 사항.
7장 배열 배열의 정의 배열의 초기화 1차원 배열 2차원 및 다차원 배열 문자 배열 배열과 구조.
Chapter 06. 선택문.
변수와 자료형.
제 3 장 상수와 변수
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
5장. 상수와 기본 자료형. 5장. 상수와 기본 자료형 5-1 C 언어가 제공하는 기본 자료형 자료형(data type) 기본 자료형 사용자 정의 자료형 int val; "선언할 변수의 특징을 나타내기 위한 키워드" 기본 자료형 기본적으로 제공이 되는 자료형 사용자.
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
2장 표준 입출력 표준 입출력 함수의 종류 형식화된 입출력 문자 입출력 문자열 입출력.
개정판 누구나 즐기는 C언어 콘서트 제6장 반복문 출처: pixabay.
제2장 데이터형과 표준 입출력문 문봉근.
자전거를 배우려면 안장에 올라가 페달을 밟아라.
컴퓨터 프로그래밍 기초 - 4th : 수식과 연산자 -
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 05. 상수와 기본 자료형.
함수와 변수 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
제어문 & 반복문 C스터디 2주차.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
컴퓨터 프로그램 제2,3장 간단한 C 프로그램 김 문 기.
Chapter 11. 배열과 포인터.
Chapter 05. 입출력 함수.
실습과제 1(조건문, ) 표준입력으로 수축기 혈압을 입력 받아 그에 따른 적당한 표현을 화면에 출력하는 프로그램을 if-else 문을 이용하여 작성.
학습목표 Chapter 2-1. 변수와 포인터 변수의 선언과 변수에 대한 메모리 할당을 살펴본다.
-Part2- 제1장 1차원 배열이란 무엇인가.
6장 반복제어문 for 문 while 문 do while 문 기타 제어문.
누구나 즐기는 C언어 콘서트 제2장 기초 사항 IT응용시스템공학과 김형진 교수.
-Part1- 제7장 반복문이란 무엇인가.
-Part1- 제6장 자료형이란 무엇인가.
-Part1- 제8장 조건문이란 무엇인가 (교재 199페이지 ~ 224페이지)
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express Slide 1 (of 25)
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express Slide 1 (of 28)
컴퓨터 프로그램은 여러 기능의 복합체이다. 라이브러리 함수와 사용자 정의 함수
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
C언어 프로그래밍의 이해 Ch03. 기본 자료형, 변수와 상수.
3주차: Control Flow and Others
박성진 컴퓨터 프로그래밍 기초 [03] 변수와 자료형 박성진
어서와 C언어는 처음이지 제16장.
개정판 누구나 즐기는 C언어 콘서트 제11장 구조체, 공용체, 열거형 출처: pixabay.
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
C.
printf("Global Korea\n");
C 프로그래밍은 매우 도전적인 작업이다. 도전의 이면에 철저한 준비와 체계적인 노력
3b장 구조체와 열거형 구조체의 정의 구조체 변수의 선언 구조체 초기화 및 사용 구조체 재정의 포인터를 이용해서 구조체 사용
Presentation transcript:

개정판 누구나 즐기는 C언어 콘서트 제3장 변수와 자료형 출처: pixabay

이번 장에서 학습할 내용 변수와 상수의 개념을 이해한다. C에서 사용가능한 변수의 종류를 알고 있다. 정수형 변수와 상수를 선언하고 사용할 수 있다. 부동 소수점형 변수와 상수를 선언하고 사용할 수 있다. 기호 상수를 사용할 수 있다. 오버플로우와 언더플로우를 이해한다.

이번 장에서 만들 프로그램

변수 프로그램에서 값들이 저장되는 공간을 변수(variable)라고 한다.

변수가 만들어지는 곳 변수는 메인 메모리에 만들어진다.

변수가 필요한 이유 (Q) 만약 메모리를 변수처럼 이름을 가지고 사용하자 않고 주소로 사용하다면? “219번지에 0을 대입하라” (A) 충분히 가능하지만 불편하다. 인간은 숫자보다는 기호를 더 잘 기억한다.

변수 선언 변수는 사용하기 전에 반드시 미리 선언(declare)하여야 한다.

자료형이 다양한 이유는 커피 전문점에 다양한 컵의 사이즈가 있는 것과 같습니다. 자료형(data type): 데이터의 타입(종류) 정수형 데이터(100) 실수형 데이터(3.141592) 문자형 데이터(‘A’)

자료형 char c; // 문자형 변수 c 선언 int i; // 정수형 변수 i 선언 double interest_rate; // 부동소수점형 변수 interest_rate 선언

변수의 초기화

변수의 이름 알파벳 문자와 숫자, 밑줄 문자 _로 이루어진다. 이름의 중간에 공백이 들어가면 안 된다. 첫 번째 문자는 반드시 알파벳 또는 밑줄 문자 _이여야 한다. 따라 서 이름은 숫자로 시 작할 수 없다. 대문자와 소문자를 구별하여 서로 다른 것으로 취급한다. 따라서 변 수 index와 Index, INDEX은 모두 서로 다른 변수이다. C언어에서 사용하고 있는 키워드와 똑같은 이름은 허용되지 않는다.

변수의 이름 sum // 영문 알파벳 문자로 시작 _count // 밑줄 문자로 시작할 수 있다. number_of_pictures // 중간에 밑줄 문자를 넣을 수 있다. King3 // 맨 처음이 아니라면 숫자도 넣을 수 있다. 2nd_base(☓) // 숫자로 시작할 수 없다. money# // #과 같은 기호는 사용할 수 없다. double // double은 C 언어의 키워드이다.

자료형의 종류 자료형 바이트수 범위 정수형 short 2 -32768~32767 int 4 -2147483648~2147483647 long  long long 8 –9,223,372,036,854,775,808~ 9,223,372,036,854,775,807 문자형 char 1 -128~127 부동소수점형 float 1.2E-38~3.4E38 double 2.2E-308~1.8E308 long double

왜 다양한 자료형을 사용할까?

자료형과 형식 지정자 int x; “%d” long x; “%ld” long long x; “%lld” float x; double x; “%lf”

상수 area = 3.14 * radius * radius;

정수형 가장 기본이 되는 것은 int CPU에 따라서 크기가 달라진다. 16비트, 32비트, 64비트 (Q) 왜 여러 개의 정수형이 필요한가? (A) 용도에 따라 프로그래머가 선택하여 사용할 수 있게 하기 위하여

정수 표현 방법 음수 보통은 첫 번째 비트를 부호 비트로 사용한다. 문제점이 발생한다.

정수형이 나타내는 정수의 범위 -32768에서 +32767까지의 정수

unsigned unsigned는 변수가 음수가 아닌 값만을 나타낸다는 것을 의미한다.

unsigned 수식자 #include <stdio.h> int main(void) { unsigned int speed; // 부호없는 int형 unsigned distance; // unsigned int distance와 같다. unsigned short players; // 부호없는 short형 unsigned long seconds; // 부호없는 long형 return 0; }

오버플로우 정수형이 나타낼 수 있는 범위를 넘어가는 것

오버플로우 #include <stdio.h> int main(void) { short s_money = 32767; // 최대값으로 초기화한다. s_money = s_money + 1; printf("s_money = %d\n", s_money); return 0; }

정수형 상수

16진수

10진수, 16진수, 8진수 출력 #include <stdio.h> int main(void) { printf("%d %#x %#o \n", 128, 128, 128); return 0; }

기호 상수 기호 상수(symbolic constant)는 상수에 이름을 붙인 것 리터럴 상수(literal)라고도 한다. #define EXCHANGE_RATE 1120 기호 상수의 장점 프로그램을 읽기가 쉬워진다. 변경을 쉽게 할 수 있다

기호 상수

Lab: 달러를 원화로 계산하기 변수를 선언하고 사용하는 예제로 달러화를 원화로 계산하는 프로 그램은 작성하여 보자.

Sol: 달러를 원화로 계산하기 #include <stdio.h> #define EXCHANGE_RATE 1120 // 기호 상수 정의 int main(void) { int usd; // 달러화 int krw; // 원화 printf("달러화 금액을 입력하시오: "); // 입력 안내 메시지 scanf("%d", &usd); // 달러화 금액 입력 krw = EXCHANGE_RATE * usd; // 원화로 환산 printf("달러화 %d달러는 %d원입니다.\n", usd, krw); // 계산 결과 출력 return 0; // 함수 결과값 반환 }

Lab: 재산 계산하기 한 달에 500만원씩 30년 동안 저금하면 얼마가 될까?

Sol: 재산 계산하기 #include <stdio.h> int main(void) { int property; int saving; printf("매달 저축 금액을 입력하시오: "); scanf("%d", &saving); property = saving * 12 * 30; printf("30년 후의 재산 = %d원 \n", property); return 0; }

Lab: 변수의 값 교환하기 변수 x 와 변수 y의 값을 서로 바꾸는 코드를 작성하여 보자. int a = 100; int b = 200; int tmp; tmp = a; // ① a = b; // ② b = tmp; // ③

Lab: 16진수로 하드웨어 제어하기 첫 번째 LED를 빛나게 하려면 어떤 값을 16진수로 하드웨어에 써야 하는가?

Sol: 16진수로 하드웨어 제어하기

부동소수점형 컴퓨터에서 실수는 부동소수점형으로 표현 소수점이 떠서 움직인다는 의미 과학자들이 많이 사용하는 과학적 표기법과 유사

부동소수점형

부동 소수점 상수

형식 지정자 float형의 값을 출력하거나 입력하려면 형식 지정자로 “%f”를 사용 한다. double형의 값을 입출력하려면 “%lf”을 사용한다. double radius; printf("반지름 값을 입력하시오: "); scanf("%lf", &radius); // 반드시 “%lf"을 사용하여야 한다.

예제 #include <stdio.h> int main(void) { float fvalue = 1234567890.12345678901234567890; double dvalue = 1234567890.12345678901234567890; printf("float형 변수=%30.25f\n", fvalue); printf("double형 변수=%30.25lf\n", dvalue); return 0; }

오버플로우와 언더플로우 #include <stdio.h> int main(void) { float x = 1e39; float y = 1.23456e-46; printf("x=%e\n", x); printf("y=%e\n", y); return 0; }

Lab: 태양빛 도달 시간 태양에서 오는 빛이 몇 분 만에 지구에 도착하는 지를 컴퓨터로 계 산해보고자 한다. 빛의 속도는 1초에 30만 km를 이동한다. 태양과 지구 사이의 거리는 약 1억 4960만 km이다.

실행 결과 빛의 속도는 300000.000000km/s 태양과 지구와의 거리 149600000.000000km 도달 시간은 8.311111초

힌트 문제를 해결하기 위해서는 먼저 필요한 변수를 생성하여야 한다. 여 기서는 빛의 속도, 태양과 지구 사이의 거리, 도달 시간을 나타내는 변수가 필요하다. 변수의 자료형은 모두 실수형이어야 한다. 왜냐하면 매우 큰 수들이 기 때문이다. 빛이 도달하는 시간은 (도달 시간 = 거리/ (빛의 속도))으로 계산할 수 있다. 실수형을 printf()로 출력할 때는 %f나 %lf를 사용한다.

소스 #include <stdio.h> int main(void) { double light_speed = 300000; // 빛의 속도 저장하는 변수 double distance = 149600000; // 태양과 지구 사이 거리 저장하는 변수 // 149600000km로 초기화한다. double time; // 시간을 나타내는 변수 time = distance / light_speed; // 거리를 빛의 속도로 나눈다. time = time / 60.0; // 초를 분으로 변환한다. printf("빛의 속도는 %fkm/s \n", light_speed); printf("태양과 지구와의 거리 %fkm \n", distance); printf("도달 시간은 %f초\n", time); // 시간을 출력한다. return 0; } 빛의 속도는 300000.000000km/s 태양과 지구와의 거리 149600000.000000km 도달 시간은 8.311111초

Lab: 온도 변환하기 사용자로부터 화씨온도를 받아서 섭씨온도로 바꾸는 프로그램을 작 성해보자.

Sol: 재산 계산하기 #include<stdio.h> int main(void) { double celsius, fahrenheit; // 변수 선언 printf("화씨온도="); scanf("%lf", &fahrenheit); // 부동소수점형으로 입력받는다. celsius = (fahrenheit - 32.0) * 5.0 / 9.0; printf("섭씨온도=%lf \n", celsius); return 0; }

Lab: 원의 면적 계산하기 사용자로부터 원의 반지름을 받아서 원의 면적을 계산하는 프로그 램을 작성해보자.

Sol: 원의 면적 계산하기 /* 원의 면적을 계산하는 프로그램*/ #include <stdio.h> #define PI 3.141592 int main(void) { double radius; // 원의 반지름 double area; // 원의 면적 printf("원의 반지름을 입력하시요:"); scanf("%lf", &radius); area = PI * radius * radius; printf("원의 면적: %f \n", area); return 0; }

문자형 문자는 컴퓨터보다는 인간에게 중요 문자도 숫자를 이용하여 표현

문자형 문자는 컴퓨터보다는 인간에게 중요 문자도 숫자를 이용하여 표현 공통적인 규격이 필요하다. 아스키 코드(ASCII: American Standard Code for Information Interchange) 8비트를 사용하여 영어 알파벳 표현 (예) !는 33, ‘A’는 65, ‘B’는 66, ‘a’는 97, ‘b’는 98 !"#$%&'()*+,-./0123456789:;<=>? @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ `abcdefghijklmnopqrstuvwxyz{|}~

아스키 코드

예제 #include <stdio.h> int main(void) { char c; // 변수 선언 printf("문자를 입력하시오: "); // 입력 안내문 scanf("%c", &c); printf("입력된 문자는 %c입니다\n", c); return 0; }

Quiz (Q) 1과 ‘1’의 차이점은? (A) 1은 정수이고 ‘1’은 문자 ‘1’을 나타내는 아스키코드이다. 1 49

제어 문자 인쇄 목적이 아니라 제어 목적으로 사용되는 문자들 (예) 줄바꿈 문자, 탭 문자, 벨소리 문자, 백스페이스 문자

제어 문자를 나타내는 방법 아스키 코드를 직접 사용 이스케이프 시퀀스 사용 char beep = 7; printf("%c", beep); char beep = ‘\a’; printf("%c", beep);

이스케이프 시퀀스

예제 #include <stdio.h> int main() { int id, pass; printf("아이디와 패스워드를 4개의 숫자로 입력하세요:"); printf("id: ____ \b\b\b\b"); scanf("%d", &id); printf("pass: ____ \b\b\b\b"); scanf("%d", &pass); printf(“\a입력된 아이디는 \”%d\”이고 패스워드는 \”%d\”입니다.", id, pass); return 0; }

Q & A