전기실험회로 2 (C언어)
강의 (11)
우석대학교 에너지전기공학과
이우금 교수
4-6. 수식과 연산 (계속) 논리 연산자: 여러 개의 조건을 조합하여 참인지 거짓인지 따질 때 사용함. 연산자의 결합규칙 연산자의 기능에 따른 우선순위 단항 > 이항 > 관계 > 논리 > 대입 같은 우선순위를 가지는 연산자들이 여러 개가 있을 때의 우선순위 • 이항 연산자 왼쪽 우선 • 단항 연산자 대부분 오른쪽 우선 연산자 연산 의미 AND
𝑥 && 𝑦 𝑥
와𝑦
가 모두 참이어야 참. 둘 중 하나라도 거짓이면 연산결과는 거짓 OR𝑥 || 𝑦
𝑥
나𝑦
중 하나만 참이면 참. 모두 거짓이면 연산결과는 거짓 NOT! 𝑥
𝑥
가 참이면 거짓,𝑥
가 거짓이면 참 (지난 시간 강의 복습) 지난 시간 강의 복습 <이항 연산자> <대입 연산자> (1) (2) (3)𝑦 = − + + − −𝑥;
<단항 연산자>예제2) 원의 면적을 구하는 프로그램 - scanf_s 연습 원의 면적을 구하려면, 실수형 계산: 실수형 변수 선언 형식 지정자: 『
%𝑓
』 변수: radius, area 계산 식 •𝑟𝑎𝑑𝑖𝑢𝑠 = 10.0
•
원의 면적:𝑎𝑟𝑒𝑎 = 3.14 ∗ 𝑟𝑎𝑑𝑖𝑢𝑠
24-7. 라이브러리 함수
반지름을 입력하시오: 10.0
원의 면적: 314.000000
/* 원의 면적을 구하는 프로그램 */
#include <stdio.h>
int main(void)
{
변수 선언
printf( );
scanf_s( );
계산식
printf( );
return 0;
}
반드시 scanf_s 사용
scanf_s
예제2 정답) 원의 면적을 구하는 프로그램 - scanf_s 연습 원의 면적을 구하려면, 실수형 계산: 실수형 변수 선언 형식 지정자: 『
%𝑓
』 변수: radius, area 계산 식 •𝑟𝑎𝑑𝑖𝑢𝑠 = 10.0
•
원의 면적:𝑎𝑟𝑒𝑎 = 3.14 ∗ 𝑟𝑎𝑑𝑖𝑢𝑠
24-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
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. 수식과 연산<아스키 코드표 (일부)>
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
4-6-3. 문자형 (계속) 제어문자 제어문자들은 인쇄될 수 없고 주로 제어 목적으로 이용되는 문자. (예시) 화면에 새로운 줄을 만드는 줄 바꿈 문자와 화면에 탭을 나타내는 문자, 벨소리 문자 등. 이들 제어문자들은 작은 따옴표를 붙여서 문자상수를 만들 수 없음. 제어문자들은 출력할 수 없기 때문. 제어문자를 프로그램 안에 표현하는 방법 해당 아스키코드 값을 직접사용 (예시) 경고음을 발생시키는 아스키코드 값 = 7 컴퓨터에『삐』하는 경고음이 나게 하려면
𝑐ℎ𝑎𝑟 𝑏𝑒𝑒𝑝 = 7;
𝑝𝑟𝑖𝑛𝑡𝑓("%𝑐", 𝑏𝑒𝑒𝑝);
특수문자열을 이용해서 표현하는 방법 (따옴표를 붙여 문자상수를 만들 수 있음) 역슬래시와 의미를 나타내는 하나의 글자로 기술됨. (예시) 줄바꿈 문자의 경우:『\』와 줄바꿈 (newline) 을 뜻하는 n을 붙여서 『\𝑛
』 수평탭의 경우:『\』와 탭(tab)을 나타내는 t를 붙여서 『\𝑡
』 경고음의 경우::『\』와 경고(alarm)을 나타내는 a를 붙여서 『\𝑎
』 ※𝑛𝑜𝑡𝑒:
특수 문자열로 표기된 제어문자 표 (교재 158 쪽 참조) 4-6. 수식과 연산<특수 문자열로 표기된 제어문자> (교재 158 쪽 참조) 예시) 특수 문자열을 사용하여 경고음을 내려면
𝑐ℎ𝑎𝑟 𝑏𝑒𝑒𝑝 = ′\𝑎′;
// 아스키코드 값 사용:𝑏𝑒𝑒𝑝 = 7
𝑝𝑟𝑖𝑛𝑡𝑓("%𝑐", 𝑏𝑒𝑒𝑝);
4-6. 수식과 연산 자료형 형식지정자 정수형으로서의 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
특수문자열의 사용 특정변수에 지정하여 사용: