• 검색 결과가 없습니다.

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
12
0
0

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

전체 글

(1)

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

강의 (7)

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

이우금 교수

(2)

4-3. 전처리기

 전처리기 지시어:

#𝑖𝑛𝑐𝑙𝑢𝑑𝑒 』

전처리기 지시어는

#

기호로 시작, 첫 째 열부터 시작함.

 헤더파일(header file): 코드의 일부분이 들어있는 텍스트파일로서 『

. ℎ

』의 확장자를 가짐.

 『

𝑠𝑡𝑑𝑖𝑜. ℎ

』 는 “standard input output”의 준말로 표준 입출력을 위한 헤더파일. 4-4. 함수  C프로그램에서 가장 먼저 실행되는 함수가 바로

𝑚𝑎𝑖𝑛( )

 다른 함수들은 직접적 또는 간접적으로

𝑚𝑎𝑖𝑛( )

으로 부터 호출 됨.  함수

𝑚𝑎𝑖𝑛( )

을 정의하는 문장: 『

𝑖𝑛𝑡

𝑚𝑎𝑖𝑛

(𝑣𝑜𝑖𝑑)』

 함수의 중괄호 안에는 작업의 세부 단계들이 나열되어 있음. 세부 단계를 문장이라고 함.  C에서는 함수 안에만 문장들을 입력할 수 있음.  문장의 끝은 항상 세미콜론(;)으로 끝나게 된다. 4-5. 변수 (variable)  변수란 데이터를 일시적으로 저장할 목적으로 사용하는 메모리 공간.  변수선언 및 초기화  변수선언: 일반적으로 함수의 첫 부분에 선언 된다. (지난 시간 강의 복습)

(3)

4-6. 수식과 연산  산술연산: 컴퓨터의 가장 기본적인 연산.  산술연산자: 사칙연산을 수행하는 연산자. ※ C에서는 거듭제곱의 연산자는 없음:

𝑦 = 𝑎𝑥

2

+ 𝑏𝑥 + 𝑐 𝑦 = 𝑎 ∗

𝑥 ∗ 𝑥

+ 𝑏 ∗ 𝑥 + 𝑐

 나머지 연산자: 첫 번째 피 연산자를 두 번째 피 연산자로 나누었을 때의 나머지를 계산. 예시) 

10%2 = 0 10 ÷ 2 = 5

… 나머지 = 0 

29%9 = 2 29 ÷ 9 = 3

… 나머지 = 2 

5%7 = 5 5 ÷ 7 = 0

… 나머지 = 5 연산자 기호 사용예 결과값 덧셈 + 7+4 11 뺄셈 - 7-4 3 곱셈 * 7*4 28 나눗셈 / 7/4 1 or 1.25 나머지 % 7%4 3 (지난 시간 강의 복습) 지난 시간 강의 복습

(4)

 증감 연산자: 변수의 값을 하나 증가시키거나 감소시키는 연산자.  증가연산자: 『

++

』  감소연산자: 『

--

』 예시 1)

𝑥 = 10

일 때

+ +𝑥 = 11

𝑦 = 10

일 때

− −𝑦 = 9

예시 2) 증감연산자에 대한 코드

x=10

++x의 값=11

x=11

y=10

--y의 값=9

y=9

#𝑖𝑛𝑐𝑙𝑢𝑑𝑒

< 𝑠𝑡𝑑𝑖𝑜. ℎ >

𝑖𝑛𝑡

𝑚𝑎𝑖𝑛(

𝑣𝑜𝑖𝑑

)

{

𝑖𝑛𝑡

𝑥 = 10, 𝑦 = 10;

𝑝𝑟𝑖𝑛𝑡𝑓(

"𝑥 = %𝑑\𝑛",

𝑥);

𝑝𝑟𝑖𝑛𝑡𝑓(

" + +𝑥의 값 = %𝑑\𝑛",

+ +𝑥);

𝑝𝑟𝑖𝑛𝑡𝑓(

"𝑥 = %𝑑\𝑛",

𝑥);

𝑝𝑟𝑖𝑛𝑡𝑓(

"𝑦 = %𝑑\𝑛",

𝑦);

𝑝𝑟𝑖𝑛𝑡𝑓(

" − −𝑦의 값 = %𝑑\𝑛",

− −𝑦);

𝑝𝑟𝑖𝑛𝑡𝑓(

"𝑦 = %𝑑\𝑛",

𝑦);

𝑟𝑒𝑡𝑢𝑟𝑛

0;

(5)

 『

+ +𝑥

』과 『

𝑥 + +

』의 차이

𝑦 =+ +𝑥;

증가된

𝑥

의 값이

𝑦

에 대입됨.

𝑦 = 𝑥 + +;

먼저

𝑥

𝑦

에 대입된 후, 증가함.

(6)

예제) 『

+ +𝑥

』과 『

𝑦 + +

』의 값 계산  정수

𝑥 = 10 & 𝑦 = 10

일 때,

+ +𝑥 & 𝑦 + +

를 구하는 코드를 작성하라.

x=10

++x의 값=11

x=11

y=10

y++의 값=10

y=11

#𝑖𝑛𝑐𝑙𝑢𝑑𝑒

< 𝑠𝑡𝑑𝑖𝑜. ℎ >

𝑖𝑛𝑡

𝑚𝑎𝑖𝑛(

𝑣𝑜𝑖𝑑

)

{

𝑖𝑛𝑡

𝑥 = 10, 𝑦 = 10;

𝑝𝑟𝑖𝑛𝑡𝑓(

"𝑥 = %𝑑\𝑛",

𝑥);

𝑝𝑟𝑖𝑛𝑡𝑓(

" + +𝑥의 값 = %𝑑\𝑛",+ +

𝑥);

𝑝𝑟𝑖𝑛𝑡𝑓(

"𝑥 = %𝑑\𝑛",

𝑥);

𝑝𝑟𝑖𝑛𝑡𝑓(

"𝑦 = %𝑑\𝑛",

𝑦);

𝑝𝑟𝑖𝑛𝑡𝑓(

"𝑦 + +의 값 = %𝑑\𝑛",

𝑦 + +);

𝑝𝑟𝑖𝑛𝑡𝑓(

"𝑦 = %𝑑\𝑛",

𝑦);

𝑟𝑒𝑡𝑢𝑟𝑛

0;

}

(7)

 대입 연산자  대입연산자 『

=

』 예시)  『

𝑧 = 𝑥 + 𝑦

𝑥

𝑦

의 합이

𝑧

에 대입이 됨.  대입연산의 결과 값 4-6. 수식과 연산

𝑦 = 12 + ( 𝑥 = 2 + 7 );

2+7의 덧셈연산의 결과값은 9 대입연산의 결과값은 9

𝑥

의 값은 9 대입연산의 결과값은 21

𝑦

의 값은 21 12+9의 덧셈연산의 결과값은 21

(8)

 대입 연산자 (계속)  대입연산자 주의점 • 『

𝑥 = 𝑥 + 1

』 수학적으로 올바르지 않지만 C에서는 올바른 문장 •

𝑦 = 𝑥 = 3』 𝑥

와 𝑦 모두 3 으로 대입 됨.

𝑦 = 𝑥 = 3;

대입연산의 결과값은 3

𝑥

의 값은 3 대입연산의 결과값은 3

𝑦

의 값은 3

(9)

(예제) 대입 연산자 프로그램 4-6. 수식과 연산

#𝑖𝑛𝑐𝑙𝑢𝑑𝑒

< 𝑠𝑡𝑑𝑖𝑜. ℎ >

𝑖𝑛𝑡

𝑚𝑎𝑖𝑛(

𝑣𝑜𝑖𝑑

)

{

𝑖𝑛𝑡

𝑥, 𝑦;

𝑥 = 1;

𝑝𝑟𝑖𝑛𝑡𝑓(

"수식 𝑥 + 1의 값은 %𝑑\𝑛",

𝑥 + 1);

𝑝𝑟𝑖𝑛𝑡𝑓(

"수식 𝑦 = 𝑥 + 1의 값은 %𝑑\𝑛",

𝑦 = 𝑥 + 1);

𝑝𝑟𝑖𝑛𝑡𝑓(

"수식 𝑦 = 12 + (𝑥 = 2 + 7)의 값은 %𝑑\𝑛",

𝑦 = 12 + (𝑥 = 2 + 7));

𝑝𝑟𝑖𝑛𝑡𝑓(

"수식 𝑦 = 𝑥 = 3의 값은 %𝑑\𝑛",

𝑦 = 𝑥 = 3);

𝑟𝑒𝑡𝑢𝑟𝑛

0;

}

수식 x+1의 값은 2

수식 y=x+1의 값은 2

수식 y=12+(x=2+7)의 값은 21

수식 y=x=3의 값은 3

(10)

(퀴즈 2) 검토 1) C에서 %는 나머지 연산자이다. 다음을 계산하라 (2점). (1-1)

7%(3 + 1) = 3

(2-1)

2%6 = 2

2) 아래 코드의 결과가 화면에 출력되는 그대로 답안지에 적으시오 (2점).

𝑥 = 2,

수식

𝑦 = 𝑥 + 1

의 값은

3

𝑛𝑒𝑥𝑡𝑦

의 값

= 4

#𝑖𝑛𝑐𝑙𝑢𝑑𝑒 < 𝑠𝑡𝑑𝑖𝑜. ℎ >

𝑖𝑛𝑡 𝑚𝑎𝑖𝑛(𝑣𝑜𝑖𝑑)

{

𝑖𝑛𝑡 𝑥 = 2, 𝑦;

𝑝𝑟𝑖𝑛𝑡𝑓("x = %d,

수식

y = x + 1

의 값은

%d\n", 𝑥, 𝑦 = 𝑥 + 1);

𝑝𝑟𝑖𝑛𝑡𝑓("nexty

의 값

= %d\n", + +𝑦);

𝑟𝑒𝑡𝑢𝑟𝑛 0;

}

(11)

3) 사칙연산 프로그램 작성 및 결과 출력 (6점) (3-1) 코드 앞부분에 반드시 프로그램명과 작성자의 이름 및 작성 일시를 주석으로 표시 할 것 (2점). <주석 예시> 프로그램 명: 사칙연산 프로그램 작성자: 홍길동 작성 일시: 2019년 10월14일 (3-2) 변수

𝑥 = 20 &

𝑦 = 10

을 각각 저장하고,

𝑥 + 𝑦, 𝑥 − 𝑦, 𝑥 ∗ 𝑦, 𝑥/𝑦

의 계산결과를 아래 지시된 변수에 저장하고, 이를 화면에 출력하는 프로그램을 작성하라 (4점).

𝑠𝑢𝑚 = 𝑥 + 𝑦;

// 변수

𝑠𝑢𝑚

(𝑥 + 𝑦)

의 결과를 저장

𝑑𝑖𝑓𝑓 = 𝑥 − 𝑦

// 변수

𝑑𝑖𝑓𝑓

(𝑥 − 𝑦)

의 결과를 저장

𝑚𝑢𝑙 = 𝑥 ∗ 𝑦

// 변수

𝑚𝑢𝑙

(𝑥 ∗ 𝑦)

의 결과를 저장

𝑑𝑖𝑣 = 𝑥/𝑦

// 변수

𝑑𝑖𝑣

(𝑥/𝑦)

의 결과를 저장  코드를 완성한 후, 완성된 코드를 아래한글 파일에 복사하고, 프로그램결과 화면 또한 같은 파일에 캡쳐하여, 다음 이름으로 이우금 교수에게 메일([email protected]) 로 보내기 바람. • 아래한글 파일 이름 예시: 『퀴즈2_홍길동』 • 코드 및 켭쳐 화면이 아래한글에 첨부되어 있지 않으면 정답으로 인정하지 않음! 퀴즈 2 검토

(12)

3) 사칙연산 프로그램 작성 및 결과 출력 모범 답안 (6점) /* 프로그램 명: 사칙연산 작성자: 홍길동 작성 일시: 2019년 10월14일*/

#𝑖𝑛𝑐𝑙𝑢𝑑𝑒 < 𝑠𝑡𝑑𝑖𝑜. ℎ >

𝑖𝑛𝑡 𝑚𝑎𝑖𝑛(𝑣𝑜𝑖𝑑)

{

𝑖𝑛𝑡 𝑥 = 20, 𝑦 = 10;

𝑖𝑛𝑡 𝑠𝑢𝑚 = 𝑥 + 𝑦;

𝑖𝑛𝑡 𝑑𝑖𝑓𝑓 = 𝑥 − 𝑦;

𝑖𝑛𝑡 𝑚𝑢𝑙 = 𝑥 ∗ 𝑦;

𝑖𝑛𝑡 𝑑𝑖𝑣 = 𝑥/𝑦;

𝑝𝑟𝑖𝑛𝑡𝑓("𝑥 = %𝑑, 𝑦 = %𝑑 \𝑛", 𝑥, 𝑦);

𝑝𝑟𝑖𝑛𝑡𝑓("𝑠𝑢𝑚 = %𝑑 \𝑛", 𝑠𝑢𝑚);

// 변수 𝑠𝑢𝑚에 (𝑥 + 𝑦) 의 결과를 저장

𝑝𝑟𝑖𝑛𝑡𝑓("𝑑𝑖𝑣 = %𝑑 \𝑛", 𝑑𝑖𝑣);

// 변수 𝑠𝑢𝑚에 (𝑥 + 𝑦) 의 결과를 저장

𝑝𝑟𝑖𝑛𝑡𝑓("𝑠𝑢𝑚 = %𝑑 \𝑛", 𝑠𝑢𝑚);

// 변수 𝑠𝑢𝑚에 (𝑥 + 𝑦) 의 결과를 저장

𝑝𝑟𝑖𝑛𝑡𝑓("𝑑𝑖𝑣 = %𝑑 \𝑛", 𝑑𝑖𝑣);

// 변수 𝑠𝑢𝑚에 (𝑥 + 𝑦) 의 결과를 저장

𝑟𝑒𝑡𝑢𝑟𝑛 0;

}

𝑥 = 20, 𝑦 = 10

𝑠𝑢𝑚 = 30

𝑑𝑖𝑓𝑓 = 10

𝑚𝑢𝑙 = 200

𝑑𝑖𝑣 = 20

참조

관련 문서

• 독립변수와 종속변수가 실제 인과관계가 있는데 없는 것처럼 보이게

최종으로

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

™ 선언된 이름의 바인딩 정보를

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

mark 동일한 메모리 참조,

일시적으로 사용하는 재료, 시설, 설비 등의 비용으로서 공기 가 연장됨에 따라 사용기간이 연장되어 추가 발생한 비용.. ③ 유휴장비비 : 공기가 연장됨에 따라 건설장비의

변수란 프로그램에서 값들이