• 검색 결과가 없습니다.

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
11
0
0

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

전체 글

(1)

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

강의 (10)

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

이우금 교수

(2)

4-6. 수식과 연산자 (계속)  복합대입 연산자: 산술연산자와 대입연산자 『

=

』를 합쳐 놓은 연산자. 예시)

𝑥 += 𝑦

𝑥 = 𝑥 + 𝑦

 관계연산자 (두 개의 피 연산자를 비교) : 참

𝑜𝑟

거짓: 참 『

1

』, 거짓 『

0

』 4-7. 라이브러리 함수: 프로그래머가 사용할 수 있도록 컴파일러에 의해 제공되는 함수. 4-7-1. printf( ) : 모니터에 출력을 하기 위한 표준 출력 함수.  문자열 출력: printf( )의 괄호 안에 출력을 원하는 문자를 나열.  변수 값 출력 : printf( )의 괄호 안에 필요한 데이터를 넣는다. 예시)

𝑝𝑟𝑖𝑛𝑡𝑓 "𝐻𝑒𝑙𝑙𝑜 𝑊𝑜𝑟𝑙𝑑" ; 𝑜𝑟 𝑝𝑟𝑖𝑛𝑡𝑓("

두수의 합:

%𝑑", 𝑠𝑢𝑚);

4-7-2. scanf( ) : 사용자가 키보드에 입력한 데이터를 변수에 저장하는 라이브러리 함수.  함수 scanf( )가 호출되면, 컴퓨터는 사용자가 데이터 입력을 마칠 때까지 기다린다. 예시)

𝑠𝑐𝑎𝑛𝑓

"%

𝑑", &𝑥 ;

사용자가 키보드로 입력한 데이터가 변수

𝑥

에 저장됨. ※

𝑛𝑜𝑡𝑒:

출력형식 지정자와 변수의 자료형은 반드시 일치 하여야 함! (지난 시간 강의 복습) 지난 시간 강의 복습 형식 지정자

𝐼𝑛𝑡

𝑓𝑙𝑜𝑎𝑡

𝑑𝑜𝑢𝑏𝑙𝑒

𝑐ℎ𝑎𝑟

변수의 자료형

%𝑑

%𝑓

%𝑙𝑓

%𝑐

(3)

예제) 월 수령액 계산 프로그램 - scanf_s 연습  사용자가 연봉을 입력하면, 월 수령액을 계산하는 프로그램.

𝑦𝑠𝑎𝑙𝑎𝑟𝑦 = 5000

만원

𝑚𝑠𝑎𝑙𝑎𝑟𝑦 = 𝑦𝑠𝑎𝑙𝑎𝑟𝑦/12

연봉을 입력하시오(만원): 5000

월 수령액(만원): 466

/* 월 수령액을 계산하는 프로그램 */

#include <stdio.h>

int main(void)

{

int ysalary; // 연봉

int msalary; // 월 수령액

printf("연봉을 입력하시오(만원):");

scanf_s("%d", &ysalary);

msalary = ysalary / 12;

printf("월 수령액(만원):%d\n", msalary);

return 0;

}

(지난 시간 강의 복습) 지난 시간 강의 복습

(4)

4-6. 수식과 연산 (계속)  논리 연산자: 여러 개의 조건을 조합하여 참인지 거짓인지 따질 때 사용함.  AND 연산자: 두 개의 피 연산자의 결과가 모두 참일 때만 연산의 결과가 참이 됨.  OR 연산자: 두 개의 피 연산자 중 하나만 참이면 연산의 결과는 참이 됨.  NOT 연산자: 피연자의 결과 참이면 거짓으로, 거짓이면 참으로 만든다. 예시 1) 회사 신입사원 채용시 나이가 30살 이하이고, 토익 성적이 700점 이상의 조건의 경우  AND 연산자: 위의 수식에서 age가 30이하 이고 toeic이 700 이상인 경우에 만 참이 됨. 만약 두 개의 조건 중 하나라도 거짓이면, 전체수식의 값은 거짓이 됨.  OR 연산자: age가 30살 이하 이거나, 토익성적이 700점 이상인 경우 참이 됨. 연산 의미

𝑥 && 𝑦 𝑥

𝑦

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

𝑥 || 𝑦

𝑥

𝑦

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

! 𝑥

𝑥

가 참이면 거짓,

𝑥

가 거짓이면 참 4-6. 수식과 연산 참(1) 참(1) 참(1)

𝑎𝑔𝑒 < = 30 && 𝑡𝑜𝑒𝑖𝑐 > = 700

참(1) 거짓(0) 참(1)

𝑎𝑔𝑒 < = 30||𝑡𝑜𝑒𝑖𝑐 > = 700

28 750 28 650 <AND 연산자> <OR 연산자>

(5)

예시 2) AND, OR, NOT 연산자  다음의 연산결과를 출력하는 프로그램을 작성하라. (단,

𝑥 = 1, 𝑦 = 2

) •

𝑥 > 0 && 𝑦 > 0

참(1) •

𝑥 > 0 && 𝑦 < 0

거짓(0) •

𝑥 > 0 || 𝑦 < 0

참(1) •

! 𝑥 < 𝑦

거짓(0)

// AND, OR, NOT 연산결과를 출력하는 프로그램

#include <stdio.h>

int main(void)

{

int x , y;

printf("두개의 정수를 입력하시오: ");

scanf_s("%d%d", &x, &y);

printf("%d>0 && %d>0의 결과값: %d\n", x, y, (x>0) && (y>0));

printf("%d>0 && %d<0의 결과값: %d\n", x, y, (x > 0) && (y < 0));

printf("%d>0 || %d<0의 결과값: %d\n", x, y, (x > 0) || (y < 0));

printf("!%d<%d 의 결과값: %d\n", x, y, !(x<y));

return 0;

반드시 scanf_s 사용

두개의 정수를 입력하시오: 1 2

1> 0 && 2 > 0 의 결과값: 1

1> 0 && 2 < 0 의 결과값: 0

1> 0 || 2 < 0 의 결과값: 1

! 1 < 2 의 결과값: 0

scanf_s

4-6. 수식과 연산

(6)

순위 1 2 3 연산자 『

+ +

』, 『

− −

』 『

』, 『

/

』 , 『

%

』 『

+

』, 『

』 <연산자의 우선순위 및 결합규칙>  연산자의 우선순위  하나의 수식에 2개 이상의 연산자가 있는 경우, 어떤 연산자가 먼저 수행되는가? 예시)

𝑥 + 𝑦 ∗ 𝑧

수학에서 배웠듯이 곱셈과 나눗셈이 덧셈과 뺄셈보다 우선 수행.  주요 연산자 우선 순위 요약  위의 순서를 무시하고 다른 순서로 계산 해야 될 때 괄호 사용 예시)

𝑥 + 𝑦 ∗ 𝑧

𝑥 + 𝑦 ∗ 𝑧

𝑛𝑜𝑡𝑒:

우선 순위가 생각 나지 않으면 괄호를 사용! (1) (2) (1) (2) 4-6. 수식과 연산

(7)

 연산자의 결합규칙  연산자의 기능에 따른 우선순위 단항 > 이항 > 관계 > 논리 > 대입  같은 우선순위를 가지는 연산자들이 여러 개가 있을 때의 우선순위 • 이항 연산자 왼쪽 우선 • 단항 연산자 대부분 오른쪽 우선  결합규칙 예시

y = a % b / c + d * (e - f);

<이항 연산자> <단항 연산자> (1) (2) (3)

𝑦 = − + + − −𝑥;

4-6. 수식과 연산

(8)

예시) 연산자의 우선순위에 따른 결과 예측  연산자의 기능에 따른 우선순위 단항 > 이항 > 관계 > 논리 > 대입 8

#include <stdio.h>

int main(void)

{

int x=0 , y=0;

int result;

result = 2 > 3 || 6 > 7;

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

result = 2<1 || 4>3 && 3 > 2;

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

result = x = y = 2;

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

result = - ++x + y--;

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

return 0; // note: y-- 는 감소되지 않은 원래의 y 값

} // note: --y 는 감소된 y 값

관계 연산자

result=0

result=1

result=2

result=-1

논리 연산자

거짓 || 거짓

거짓(0)

관계 연산자 논리 연산자 대입 연산자

result=2

단항 연산자 이항 연산자 4-6. 수식과 연산

거짓 || 참 && 참

참(1)

- 3 + 2

result=-1

(9)

예제1) 거스름돈 계산 프로그램 (소스파일: project.c) - scanf_s 연습  편의점에서 물건을 구입하고 만원을 냈을 때, 거스름돈의 액수 및 화폐와 동전의 수를 계산하는 프로그램. <변수 선언 및 변수의 초기화> 사용자가 낸 돈:

𝑢𝑠𝑒𝑟 = 1000

원 물건값 :

𝑝𝑟𝑖𝑐𝑒 = 250

원 최종 거스름돈:

𝑐ℎ𝑎𝑛𝑔𝑒1 = 𝑢𝑠𝑒𝑟 − 𝑝𝑟𝑖𝑐𝑒

거스름 돈:

𝑐ℎ𝑎𝑛𝑔𝑒

, 500원 동전 수:

𝑐500

, 100원 동전 수:

𝑐100

, 10원 동전 수:

𝑐50

<동전 수의 계산>

4-7. 라이브러리 함수

change = user - price; // 거스름돈을 변수 change에 저장

change1 = change;

c500 = change / 500; // 500 원의 갯수 계산

change = change % 500; // 나머지 연산자를 사용하여 남은 잔돈 계산

c100 = change / 100; // 100 원의 갯수 계산

change = change % 100; // 나머지 연산자를 사용하여 남은 잔돈 계산

c50 = change / 50; // 50 원의 갯수 계산

change = change % 50; //나머지 연산자를

반드시 scanf_s 사용

(10)

10 4-7. 라이브러리 함수 /* 거스름 돈을 계산하는 프로그램 */ #include <stdio.h> int main(void) {

int user, change=0, change1; int price, c500, c100, c50;

printf( )

scanf_s( ) printf( )

scanf_s( )

change = user - price; // 거스름돈을 변수 change에 저장 change1 = change; c500 = change / 500; // 500 원의 갯수 계산 change = change % 500; // 나머지 연산자를 사용하여 남은 잔돈 계산 c100 = change / 100; // 100 원의 갯수 계산 change = change % 100; // 나머지 연산자를 사용하여 남은 잔돈 계산 c50 = change / 50; // 50 원의 갯수 계산 change = change % 50; //나머지 연산자를 printf( ); printf( ); printf( ); printf( ); return 0; }

물건 값을 입력하시오(원): 250

사용자가 낸 돈(원): 1000

거스름돈: 750원

오백원: 1개

백원: 2개

오십원: 1개

scanf_s

(11)

4-7. 라이브러리 함수

/* 거스름 돈을 계산하는 프로그램 */ #include <stdio.h>

int main(void) {

int user, change=0, change1; int price, c500, c100, c50;

printf("물건 값을 입력하시오(원): ");

scanf_s("%d", &price); // 물건 값을 입력 받음 printf("사용자가 낸돈(원): ");

scanf_s("%d", &user);

change = user - price; // 거스름돈을 변수 change에 저장 change1 = change; c500 = change / 500; // 500 원의 갯수 계산 change = change % 500; // 나머지 연산자를 사용하여 남은 잔돈 계산 c100 = change / 100; // 100 원의 갯수 계산 change = change % 100; // 나머지 연산자를 사용하여 남은 잔돈 계산 c50 = change / 50; // 50 원의 갯수 계산 change = change % 50; //나머지 연산자를 사용하여 남은 잔돈 계산 printf("거스름돈: %d원\n", change1); printf("오백원: %d개\n", c500); printf("백원: %d개\n", c100); printf("오십원: %d개\n", c50); return 0; }

물건 값을 입력하시오(원): 250

사용자가 낸 돈(원): 1000

거스름돈: 750원

오백원: 1개

백원: 2개

오십원: 1개

scanf_s

참조

관련 문서

 정수값 x의 y승을 구하는 power 함수를 만들어 보라... 함수와 라이브러리

김영철이 어떻게든 고국으로 돌아가려 할 것이라는 점 을 분명하게 알고 있으면서도, 그의 누이동생을 김영철과 혼인시키는 전유년의 행위는 전유년 나 름대로

인간의 사고 ( 지능 및 인식체계 ) 를 이해 할 수 있도록 설명하고 표현하기 위해 연 구하는 학문.. 인간의 사고에 대하여 증명된 현상들을 실

본 논문을 통해 건강증진을 위한 프로그램의 개발과 함께 현장에서 적절하 게 사용할 수 있는 전문 프로그램의 효율성 등을 가늠해 볼 수 있도록 사용되고 있는

미발행 석사학위논문, 중앙대학교 교육대학원.. 미발행 석사학위논문,

한국해양대학교 환경공학과 강원대학교 환경과학과. 우석대학교

하나의 자바 프로그램을 작성하고 나면, 소스 문장은 자바 컴파일러에 의해 바이트코드로 변환되는데, 이는 특정 하드웨어 플랫폼의 프로세서(예를 들면,

3) 입학원서 기재사항 정정은 본인의 인장으로 날인하여야 하며, 제출된 서류나 전형료는 반환하지 않음 4) 학기 개시일 이후에는 자퇴 신청 하여야 하며, 자퇴