• 검색 결과가 없습니다.

우석대학교 에너지전기공학과

N/A
N/A
Protected

Academic year: 2021

Share "우석대학교 에너지전기공학과"

Copied!
11
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

전기실험회로 2 (C언어)

강의 (11)

우석대학교 에너지전기공학과

이우금 교수

(2)

4-6. 수식과 연산 (계속)  논리 연산자: 여러 개의 조건을 조합하여 참인지 거짓인지 따질 때 사용함.  연산자의 결합규칙  연산자의 기능에 따른 우선순위 단항 > 이항 > 관계 > 논리 > 대입  같은 우선순위를 가지는 연산자들이 여러 개가 있을 때의 우선순위 • 이항 연산자 왼쪽 우선 • 단항 연산자 대부분 오른쪽 우선 연산자 연산 의미 AND

𝑥 && 𝑦 𝑥

𝑦

가 모두 참이어야 참. 둘 중 하나라도 거짓이면 연산결과는 거짓 OR

𝑥 || 𝑦

𝑥

𝑦

중 하나만 참이면 참. 모두 거짓이면 연산결과는 거짓 NOT

! 𝑥

𝑥

가 참이면 거짓,

𝑥

가 거짓이면 참 (지난 시간 강의 복습) 지난 시간 강의 복습 <이항 연산자> <대입 연산자> (1) (2) (3)

𝑦 = − + + − −𝑥;

<단항 연산자>

(3)

예제2) 원의 면적을 구하는 프로그램 - scanf_s 연습  원의 면적을 구하려면, 실수형 계산: 실수형 변수 선언 형식 지정자: 『

%𝑓

』  변수: radius, area  계산 식 •

𝑟𝑎𝑑𝑖𝑢𝑠 = 10.0

원의 면적:

𝑎𝑟𝑒𝑎 = 3.14 ∗ 𝑟𝑎𝑑𝑖𝑢𝑠

2

4-7. 라이브러리 함수

반지름을 입력하시오: 10.0

원의 면적: 314.000000

/* 원의 면적을 구하는 프로그램 */

#include <stdio.h>

int main(void)

{

변수 선언

printf( );

scanf_s( );

계산식

printf( );

return 0;

}

반드시 scanf_s 사용

scanf_s

(4)

예제2 정답) 원의 면적을 구하는 프로그램 - scanf_s 연습  원의 면적을 구하려면, 실수형 계산: 실수형 변수 선언 형식 지정자: 『

%𝑓

』  변수: radius, area  계산 식 •

𝑟𝑎𝑑𝑖𝑢𝑠 = 10.0

원의 면적:

𝑎𝑟𝑒𝑎 = 3.14 ∗ 𝑟𝑎𝑑𝑖𝑢𝑠

2

4-7. 라이브러리 함수

반드시 scanf_s 사용

반지름을 입력하시오: 10.0

원의 면적: 314.000000

/* 원의 면적을 구하는 프로그램 */

#include <stdio.h>

int main(void)

{

float radius, area;

printf(“반지름을 입력하시오: ");

scanf_s("%f", &radius);

area = 3.14*radius*radius;

printf(“원의 면적: %f\n", area);

return 0;

}

scanf_s

(5)

4-6-3. 문자형  문자  한글이나 영어에서의 하나의 글자 또는 숫자, 기호 등을 의미함.  문자는 컴퓨터에게는 중요하지 않지만 사람에게는 매우 중요함. 사람에게는 거의 모든 정보가 문자를 통해 전달되기 때문.  컴퓨터는 문자를 어떻게 표현하는가?  컴퓨터는 모든 것을 숫자로 표시 문자도 역시 숫자로 표시함. (예시) 영어『

𝐴

』는 숫자『

65

』,『

𝐵

』는 숫자『

66

』으로 표현함.

문자를 넣어두는 변수 값『

65

』에『

𝐴

』가 저장됨. ※

𝑛𝑜𝑡𝑒:

사람들 사이에서 컴퓨터를 통해 문자데이터를 서로 교환하기 위해 표준 규격이 필요함!

 아스키(ASCII: American Standard Code for Information Interchange)

 이 규격은 1967년 만들어진 것으로 영어의 알파벳에 기초를 둔 문자 엔코딩 방법.  아스키 코드는 0 ~ 127 까지의 숫자를 이용하여 문자를 표현한다. • 인쇄가 불가한 33개의 제어문자 코드 • 인쇄 가능한 95개의 문자코드 (예시) 문자‘

𝐴

’의 아스키 코드는 65 이고,‘

𝑎

’의 코드는 97. (자세한 것은 교제 155쪽 참조) ※ 주의: 아스키코드에서 문자 ‘1’의 값은 숫자 1이 아니고 49 ! 4-6. 수식과 연산

(6)

<아스키 코드표 (일부)>

(7)

4-6-3. 문자형 (계속)  프로그램에서 문자를 저장하려면 『

𝑐ℎ𝑎𝑟

』형의 변수를 선언 해야 함. (예시1) 변수 code의 문자형 변수 선언

𝑐ℎ𝑎𝑟 𝑐𝑜𝑑𝑒;

(예시2) 변수 code에 문자 A를 저장하려면?  문자 A의 아스키코드 값은 65 이므로

𝑐𝑜𝑑𝑒 = 65;

 각 문자의 아스키코드 값을 외우기 어려움.  편리한 방법 작은 따옴표를 사용하여 해당 문자를 표시함. (예시3) 변수 code에 문자 A를 저장하려면?

𝑐𝑜𝑑𝑒 = 65; 𝑜𝑟 𝑐𝑜𝑑𝑒 = ′𝐴′;

𝑛𝑜𝑡𝑒:

작은 따옴표로 감싸인 문자를 문자상수 (character constant) 라 함. (예제1) 문자변수 선언  아스키코드 값 초기화  문자상수로 초기화 7 4-6. 수식과 연산

#include <stdio.h>

int main(void)

{

char code1 = 65; // 아스키코드 값 초기화

char code2='A'; // 문자상수로 초기화

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

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

return 0;

}

code1=A

code2=A

(8)

4-6-3. 문자형 (계속)  제어문자  제어문자들은 인쇄될 수 없고 주로 제어 목적으로 이용되는 문자. (예시) 화면에 새로운 줄을 만드는 줄 바꿈 문자와 화면에 탭을 나타내는 문자, 벨소리 문자 등.  이들 제어문자들은 작은 따옴표를 붙여서 문자상수를 만들 수 없음. 제어문자들은 출력할 수 없기 때문.  제어문자를 프로그램 안에 표현하는 방법  해당 아스키코드 값을 직접사용 (예시) 경고음을 발생시키는 아스키코드 값 = 7 컴퓨터에『삐』하는 경고음이 나게 하려면

𝑐ℎ𝑎𝑟 𝑏𝑒𝑒𝑝 = 7;

𝑝𝑟𝑖𝑛𝑡𝑓("%𝑐", 𝑏𝑒𝑒𝑝);

 특수문자열을 이용해서 표현하는 방법 (따옴표를 붙여 문자상수를 만들 수 있음) 역슬래시와 의미를 나타내는 하나의 글자로 기술됨. (예시) 줄바꿈 문자의 경우:『\』와 줄바꿈 (newline) 을 뜻하는 n을 붙여서 『

\𝑛

』 수평탭의 경우:『\』와 탭(tab)을 나타내는 t를 붙여서 『

\𝑡

』 경고음의 경우::『\』와 경고(alarm)을 나타내는 a를 붙여서 『

\𝑎

』 ※

𝑛𝑜𝑡𝑒:

특수 문자열로 표기된 제어문자 표 (교재 158 쪽 참조) 4-6. 수식과 연산

(9)

<특수 문자열로 표기된 제어문자> (교재 158 쪽 참조) 예시) 특수 문자열을 사용하여 경고음을 내려면

𝑐ℎ𝑎𝑟 𝑏𝑒𝑒𝑝 = ′\𝑎′;

// 아스키코드 값 사용:

𝑏𝑒𝑒𝑝 = 7

𝑝𝑟𝑖𝑛𝑡𝑓("%𝑐", 𝑏𝑒𝑒𝑝);

4-6. 수식과 연산 자료형 형식지정자

(10)

 정수형으로서의 char형  char형은 8비트의 정수를 저장하는 자료형으로 문자뿐 아니라 작은 정수도 저장 가능함.

char형 변수에 아스키코드를 대입한 상태에서도 정수처럼 여러 가지 연산이 가능함.  변수의 자료형이 char형으로 선언된 경우  형식지정자의 선택에 따라 • 정수형 형식 지정자 선택: %d 해당 숫자 출력 • 문자형 형식 지정자 선택: %c 해당 문자 출력 예시) 정수형으로서의 char형 4-6. 수식과 연산

#include <stdio.h>

int main(void)

{

char code = 'A'; // 아스키코드 값: A = 65

printf("%d, %d, %d \n", code, code+1, code+2);

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

return 0;

}

형식 지정자: 정수형 형식 지정자: 문자형

65, 66, 67

A, B, C

(11)

 특수문자열의 사용  특정변수에 지정하여 사용:

𝑐ℎ𝑎𝑟 𝑏𝑒𝑒𝑝 = ′\𝑎′;

// 아스키코드 특수문자열

『\𝑎』

알람

𝑝𝑟𝑖𝑛𝑡𝑓("%𝑐", 𝑏𝑒𝑒𝑝);

 변수에 지정하지 않고 직접 사용: 아스키코드 특수문자열『

\𝑏

』 백스페이스 4-6. 수식과 연산

#include <stdio.h>

int main(void)

{

int id, pass;

char beep = '\a'; // 알람

printf("%c", beep);

printf("아이디와 패스워드를 4개의 숫자로 입력 \n");

printf("id:_ _ _ _\b\b\b\b");

scanf_s("%d", &id);

printf("pass:_ _ _ _\b\b\b\b");

scanf_s("%d", &pass);

printf("\a입력 id=%d 이고, pass=%d 입니다. \n", id, pass);

return 0;

}

변수 beep에 특수문자열

\𝑎

지정 변수에 지정하지 않고 직접사용 변수에 지정하지 않고 직접사용

아이디와 패스워드를 4개의 숫자로 입력

id: 1234

pass: 5678

입력 id=1234 이고, pass=5678 입니다.

참조

관련 문서

메모리 저장 중지(용량 초과) 내부 메모리에 용량이 초과되어 저장이 중지되었습니다.. 메모리 저장 중지(파일수 초과) 내부

ISO (International Standard Organization) 표준: 세계 각국 언어 에서 사용되는 대부분의 기호들을 표현하기 위한 32 비트 패턴.. Hello 문자열의 경우..

비행기가 추락해서, 외딴 섬에 홀로 떨어져서, 생활을 해야 한다.. 필기도구도 없고

우석대학교 공자아카데미 又石大学孔子学院.

 컴퓨터는 계산을 효율적으로 하기 위해 실수와 정수를 다르게 표현하며, 계산 방식도 다르다..  수학적으로는 정수도 실수이지만,

var cannonindex = everything.length; // 나중 사용을

 기억장치에 쓰여질 데이터 혹은 기억장치로부터 읽혀진 데이터를 일시적으로 저장하는 버퍼 레지스터.. 실행

 CPU 내에 데이터가 담겨 있는 메모리 주소를 임시 저장하는 장소.  CPU 내에 데이터가 담겨 있는 메모리 주소를