• 검색 결과가 없습니다.

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
28
0
0

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

전체 글

(1)

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

강의 (14)

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

이우금 교수

(2)

5-4. 다중 if 문  다중 if 문의 개념: if 문 안에 다른 if 문이 들어갈 수 있음  다중 if 문  다중 if-else 문  연속적인 if 문 2 if( score>=80) if(score>=90) printf(“A 학점입니다\n”); A학점입니다 참 거짓 𝑠𝑐𝑜𝑟𝑒 ≥ 80 𝑠𝑐𝑜𝑟𝑒 ≥ 90 참 거짓 (지난 시간 강의 복습) 지난 시간 강의 복습 A학점 참 거짓 𝑠𝑐𝑜𝑟𝑒 ≥ 80 𝑠𝑐𝑜𝑟𝑒 ≥ 90 참 거짓 B학점 if( score>=80) if(score>=90) printf(“A 학점입니다\n”); else printf(“B 학점입니다\n”) if( 조건식 1) printf(“문장1\n”); else if(조건식 2) printf(“문장2\n”); ⋮ else printf(“문장 \n”) <다중 if 문 흐름도> <다중 if-else 문 흐름도>

(3)

 해석상의 혼동을 방지하기 위해, else절은 무조건 가까운 if와 매치 되도록 정함.

 else절을 첫 번째 if와 매치 시키는 방법: 중괄호를 사용하여, else절을 첫 번째 if에 매치 시킴

if( score>=80)

if(score>=90)

printf(“A 학점입니다\n”);

else

printf(“B 학점입니다\n”)

if( score>=80)

{

if(score>=90)

printf(“A 학점입니다\n”);

}

else

printf(“C 학점입니다\n”)

A학점 참 거짓

𝑠𝑐𝑜𝑟𝑒 ≥ 80

𝑠𝑐𝑜𝑟𝑒 ≥ 90

참 거짓 C학점 A학점 참 거짓

𝑠𝑐𝑜𝑟𝑒 ≥ 80

𝑠𝑐𝑜𝑟𝑒 ≥ 90

참 거짓 B학점

<else절이 두 번째 if와 매치> <else절이 첫 번째 if와 매치>

(4)

(예제2) 이차방정식의 근을 구하는 프로그램을 작성하라  이차방정식의 기본형:

𝑎𝑥

2

+ 𝑏𝑥 + 𝑐 = 0

 조건식 (1)

𝑎

0

이면, 주어진 방정식의 근

𝑥 = −

𝑐 𝑏

𝑎

0

이므로

𝑏𝑥 = 𝑐

(2) 판별식 <0 이면, 실근은 존재하지 않음

𝑏

2

− 4𝑎𝑐 < 0

(3) 위의 2가지 조건에 해당되지 않으면, 근의 공식 적용

𝑥 =

−𝑏± 𝑏2−4𝑎𝑐 2𝑎

5-4. 다중 if 문

if (a == 0)

printf(“방정식의 근 \n");

else

if (판별식>=0)

printf("방정식의 근 \n");

else

printf(“실근이 존재하지 않음 \n");

print (x) 참 거짓

𝑎 = 0

참 판별식

≥ 0

거짓 print (x) print (x) <flow chart> <조건문>

(5)

(예제2 계속) 이차방정식의 근을 구하는 프로그램을 작성하라  변수지정 (이차방정식의 계수) 변수(실수):

𝑎, 𝑏, 𝑐

(scanf_s 사용) //

𝑎𝑥

2

+ 𝑏𝑥 + 𝑐 = 0

 변수지정 (판별식) 변수(실수):

𝑑𝑖𝑠

// 판별식:

𝑑𝑖𝑠 = 𝑏

2

− 4𝑎𝑐

 조건식 (1)

𝑎

0

이면, 주어진 방정식의 근

𝑥 = −

𝑐 𝑏

𝑎

0

이므로

𝑏𝑥 = 𝑐

(2) 판별식 <0 이면, 실근은 존재하지 않음:

𝑏

2

− 4𝑎𝑐 < 0

(3) 위의 2가지 조건에 해당되지 않으면, 근의 공식 적용:

𝑥 =

−𝑏± 𝑏2−4𝑎𝑐 2𝑎

※note:

𝑏

2

− 4𝑎𝑐

𝑠𝑞𝑟𝑡 𝑏

2

− 4𝑎𝑐

5-4. 다중 if 문 계수 a, b, c를 입력하시오: 0 1 2 일차방정식:

1.000𝑥 + 2.000 = 0

𝑥 = −2.000000

#include <stdio.h>

#include <math.h>

int main(void)

{

double a, b, c, dis;

return 0;

}

계수 a, b, c를 입력하시오: 1 1 -2 이차방정식:

1.000𝑥 ^^2 + 1.000𝑥 − 2.000 = 0

판별식

> = 0

𝑥1 = −1.000000

𝑥2 = −1.000000

계수 a, b, c를 입력하시오: 1 1 1 이차방정식:

1.000𝑥^^2 + 1.000𝑥 + 1.000 = 0

판별식

< 0

헤더 파일 (수학관련)

(6)

(예제2 검토) 이차방정식의 근을 구하는 프로그램을 작성하라  변수지정 (이차방정식의 계수) 변수(실수):

𝑎, 𝑏, 𝑐

(scanf_s 사용) //

𝑎𝑥

2

+ 𝑏𝑥 + 𝑐 = 0

 변수지정 (판별식) 변수(실수):

𝑑𝑖𝑠

// 판별식:

𝑑𝑖𝑠 = 𝑏

2

− 4𝑎𝑐

 조건식 (1)

𝑎

0

이면, 주어진 방정식의 근

𝑥 = −

𝑐 𝑏

𝑎

0

이므로

𝑏𝑥 = 𝑐

(2) 판별식 <0 이면, 실근은 존재하지 않음:

𝑏

2

− 4𝑎𝑐 < 0

(3) 위의 2가지 조건에 해당되지 않으면, 근의 공식 적용:

𝑥 =

−𝑏± 𝑏2−4𝑎𝑐 2𝑎

5-4. 다중 if 문

#include <stdio.h>

#include <math.h>

int main(void)

{

double a, b, c, dis;

printf("계수 a, b, c 를 입력: ");

scanf_s("%lf%lf%lf", &a, &b, &c);

if (a == 0)

{

printf("일차방정식: (%lfx) + (%lf) = 0\n", b, c);

printf("x = %lf", -c / b);

}

else

print (x) 참 거짓 𝑎 = 0 참 판별식 > 0 거짓 print (x) print (x)

(7)

(예제2 검토) (1)

𝑎

0

이면, 주어진 방정식의 근

𝑥 = −

𝑐 𝑏

𝑎

0

이므로

𝑏𝑥 = 𝑐

(2) 판별식 <0 이면, 실근은 존재하지 않음:

𝑏

2

− 4𝑎𝑐 < 0

(3) 위의 2가지 조건에 해당되지 않으면, 근의 공식 적용:

𝑥 =

−𝑏± 𝑏2−4𝑎𝑐 2𝑎

𝑠𝑞𝑟𝑡 𝑏

2

− 4𝑎𝑐

5-4. 다중 if 문

if (a == 0)

else

{

printf("이차방정식: (%lfx^^2) + (%lfx) + (%lf) = 0\n", a, b, c);

dis = (b*b - 4.0*a*c);

if (dis >= 0)

{

printf("판별식>=0\n");

printf("x1 = %lf \n", (-b + sqrt(dis)) / (2.0*a));

printf("x2 = %lf \n", (-b - sqrt(dis)) / (2.0*a));

}

else

{

printf("판별식<0\n");

printf("실근이 존재하지 않음");

}

}

return 0;

계수 a, b, c를 입력: 0 1 2 일차방정식: ⋯

𝑥 = −2.000000

계수 a, b, c를 입력: 1 1 -2 이차방정식:

판별식

> = 0

𝑥1 = 1.000000

𝑥2 = −2.000000

계수 a, b, c를 입력: 1 1 1 이차방정식:

판별식

< 0

실근이 존재하지 않음

(8)

5-5. switch 문  switch 문의 개념  if 문에서는 참이냐 거짓이냐에 따라 실행할 문장이 둘 중에서 하나로 결정됨.  만약, 프로그램상에서 어떤 식의 값에 따라 선택할 수 있는 경로가 여러 개가 필요한 경우? if-else 문으로 표현이 가능하나 번거로움.  C언어에서는 제어식의 값에 따라 여러 경로 중에서 하나를 선택할 수 있는 switch문이 제공됨.  switch 문의 실행  제어식을 계산하여 c1, c2, … 등과 비교. c1, c2,… 은 모두 정수.  제어식과 c1, c2, … 중 일치하는 값이 있으면 관련문장 차례로 실행. break 문에 도달하면, switch 문은 종료 ※ break 문이 없으면, 계속해서 다음 절의 문장을 실행함 !!!  만약, 제어식과 일치하는 정수 값을 찾지 못하면 default 절이 실행. default문은 생략 가능하나, 가급적 포함시키는 것 바람직함. 5-5. switch 문

switch( 제어식)

{

case c1:

문장1;

break;

case c2:

문장2;

break;

default:

문장d;

break;

}

<흐름도> <형식> 제어식 문장1 문장2 문장3 문장4 𝐶1 𝐶2 𝐶3 해당사항 없는 경우

(9)

 switch 문 Vs. if-else 문  switch 문은 if-else 문으로 바꿀 수 있음.  선택해야 하는 경우의 수가 많아 지면 (대략 5개 이상) switch문을 사용하는 것이 간결해 보임. 5-5. switch 문 <if-else 문> <switch 문>

𝑖𝑛𝑡

𝑚𝑎𝑖𝑛(

𝑣𝑜𝑖𝑑

)

{

𝑖𝑛𝑡

𝑛𝑢𝑚𝑏𝑒𝑟;

𝑠𝑐𝑎𝑛𝑓

%d

, &𝑛𝑢𝑚𝑏𝑒𝑟 ;

𝑖𝑓

( 𝑛𝑢𝑚𝑏𝑒𝑟 == 0 )

𝑝𝑟𝑖𝑛𝑡𝑓(

"없음\n

");

𝑒𝑙𝑠𝑒 𝑖𝑓

( 𝑛𝑢𝑚𝑏𝑒𝑟 == 1 )

𝑝𝑟𝑖𝑛𝑡𝑓(

"하나\n

");

𝑒𝑙𝑠𝑒 𝑖𝑓

( 𝑛𝑢𝑚𝑏𝑒𝑟 == 2 )

𝑝𝑟𝑖𝑛𝑡𝑓(

"둘\n");

𝑒𝑙𝑠𝑒

𝑝𝑟𝑖𝑛𝑡𝑓(

"많음\n");

}

𝑠𝑤𝑖𝑡𝑐ℎ

(𝑛𝑢𝑚𝑏𝑒𝑟)

{

𝑐𝑎𝑠𝑒

0:

𝑝𝑟𝑖𝑛𝑡𝑓(

"없음\n");

𝑏𝑟𝑒𝑎𝑘;

𝑐𝑎𝑠𝑒

1:

𝑝𝑟𝑖𝑛𝑡𝑓(

"하나\n");

𝑏𝑟𝑒𝑎𝑘;

𝑐𝑎𝑠𝑒

2:

𝑝𝑟𝑖𝑛𝑡𝑓(

“둘\n");

𝑏𝑟𝑒𝑎𝑘;

𝑑𝑒𝑓𝑎𝑢𝑙𝑡

:

𝑝𝑟𝑖𝑛𝑡𝑓(

"많음\n");

𝑏𝑟𝑒𝑎𝑘;

}

(10)

(예시) 달의 일수를 출력하는 프로그램을 작성하라.  변수지정 변수(정수):

𝑚𝑜𝑛𝑡ℎ, 𝑑𝑎𝑦𝑠

 1, 3, 5, 7, 8, 10,12월 = 한 달이 31일 & 2월: 한 달이 28일 & 4, 6, 9, 11월: 한 달이 30일 의도적으로 break문 생략 달을 입력하시오: 2 2월의 일수는 28입니다 달을 입력하시오: 7 7월의 일수는 31입니다. 달을 입력하시오: 11 11월의 일수는 30 입니다

int month, days;

printf("달을 입력하시오: ");

scanf_s("%d", &month);

switch (month)

{

case 2 :

days = 28;

break;

case 4:

case 6:

case 9:

case 11:

days = 30;

break;

default:

days = 31;

break;

}

printf("%d월의 일수는 %d입니다.\n", month, days);

return 0;

}

1, 3, 5, 7, 8, 10, 12월을 처리함

(11)

 switch 문에서 주의사항. 5-5. switch 문

switch

(number)

{

case x:

// 변수는 사용할 수 없다.

printf(

"x와 일치합니다. "

);

break

;

case (x+2):

// 변수가 들어간 수식은 사용할 수 없다.

printf(

"수식과 일치합니다. "

);

break

;

case 0.001:

// 실수는 사용할 수 없다.

printf(

"실수"

);

break

;

case “001”:

// 문자열은 사용할 수 없다.

printf(

"문자열"

);

break

;

}

(12)

Ch. 6. 반복문 6-1. 반복(iteration)의 개념  반복: 같은 처리과정을 여러 번 되풀이 하는 것.  반복구조  반복 구조란 아래와 같이 프로그램 진행 중에 어떤 조건이 만족될 때까지 루프를 계속 도는 구조.  C에서 지원하는 반복문은 크게『while』과 『for』로 나누어 짐.  『for』: 반복횟수 이미 정해져 있어, 정해진 횟수 만큼 반복  『while』: 반복 횟수 대신 조건이 주어지며, 주어진 조건이 만족 할 때까지 반복 6-1. 반복의 개념

(13)

 『while』Vs. 『for』

 『while』- 계속 반복하다가 주어진 조건을 만족하면, 루프를 빠져나감.  『for』- 계속 반복하다가 정해진 횟수를 만족하면, 루프를 빠져나감.

(14)

6-2. 『while』문  주어진 조건이 만족되는 동안 문장들을 반복 실행하는 문장 구조. (예시) “Hellow World!”를 화면에 반복하여 출력하는 프로그램 6-2.『while』문

while (i < 10)

printf(“Hello World\n");

문장 거짓 참 조건 조건식 조건식이 충족될 때까지 반복실행

<flow chart> <while 문의 형식>

#include <stdio.h>

int main(void)

{

int i=0;

while (i < 5)

{

printf("Hello World!\n");

i++;

}

return 0;

}

반복내용 반복조건:

𝑖

가 5 이상이면 빠져나감 Hello World! Hello World! Hello World! Hello World! Hello World!

(15)

(예시 2) 숫자를 입력하고, 입력된 숫자에 해당하는 구구단을 출력하는 프로그램을 작성하라  변수지정 변수(정수):

𝑛, 𝑖

 조건식 (1)

𝑖 ≤

9

이면, 반복에서 빠져나감. (2) 식

𝑥 = 𝑛 ∗ 𝑖

<flow chart> 문장 참 거짓 𝑖 ≤ 9

#include <stdio.h>

int main(void)

{

int n, x;

int i=0;

printf("출력하고 싶은 단을 입력:");

scanf_s("%d", &n);

while (i <=9)

{

x = n * i;

printf("%d*%d=%d\n", n,i,x);

i++;

}

return 0;

}

3 ∗ 0 = 0

3 ∗ 1 = 3

3 ∗ 8 = 24

3 ∗ 9 = 27

6-2.『while』문

(16)

 if 문과 while 문의 비교  if 문: 조건이 만족되면 문장이 단 한번만 실행.  while 문: 조건이 만족 될 때가지 문장을 계속 실행.  while 루프 사용시 주의사항 (1) (예시) 아래 코드 수행의 결과는? 한번 반복은 if 문, 두 번 이상은 while 사용

int n;

Int i=1;

while (i <3)

printf("%d*%d=%d\n", n,i,x=n*1);

i++;

return 0;

프로그램은 무한 루프상태

∵ 𝑖 = 1

로 고정 6-2.『while』문

int n;

Int i=1;

while (i <3)

{

printf("%d*%d=%d\n", n,i,x=n*1);

i++;

}

return 0;

3 ∗ 1 = 3

3 ∗ 2 = 6

(17)

 while 루프 사용시 주의사항 (2)  반복 조건식에서『

! =

』또는 『

==

』을 사용하는 것은 상당히 위험하므로 주의해야 함. 실수로 무한 루프를 만들 수 있음. (예시) 아래 코드 수행의 결과는?

Int i=0;

while (i <9)

{

printf("%d\n", i);

i+=2;

}

return 0;

프로그램은 무한 루프상태

∵ 𝑖 = 9

가 되지 않음 6-2.『while』문

0

2

4

6

8

Int i=0;

while (i !=9)

{

printf("%d\n", i);

i+=2;

}

return 0;

(18)

 while 루프 사용시 주의사항 (3)  참과 거짓: while문의 조건식에서 0이 아닌 모든 값들은 모두 참이고, 0은 거짓! ※ note: 관계수식 또는 논리수식의 결과값은 참이면 1, 거짓이면 0 (예시1)  while문의 조건식에서 예시2) 반복조건을 나타내는 수식에서『

==

』대신『

=

』을 사용하면?

while (i = 2)

{

}

𝑖

값이 2 이므로 항상 참 이되어 무한 루프상태 6-2.『while』문

3:

참입니다.

2:

참입니다.

1:

참입니다.

0:

거짓입니다. 0이면 거짓 0이 아닌 모든 수 참 #include <stdio.h> int main(void) { int i=3; while (i != 0) { printf("%d: 참입니다.\n", i); i--; } printf("%d: 거짓입니다", i); return 0; }

(19)

(예제1) 입력된 성적의 평균을 구하는 프로그램을 작성하라  변수지정 (성적 및 입력 수) 변수(정수):

𝑔𝑟𝑎𝑑𝑒, 𝑖

 변수지정 (합계 및 평균) 변수(실수):

𝑠𝑢𝑚, 𝑎𝑣𝑒𝑟𝑎𝑔𝑒

 흐름도 및 조건식 (1) 입력된 성적의 합계를 구하고 성적의 개수를 센다. 조건식:

𝑤ℎ𝑖𝑙𝑒

(성적이

0

이상 이면) • 성적입력 • 입력된 성적을

𝑔𝑟𝑎𝑑𝑒

에 저장 •

𝑠𝑢𝑚

에 입력된 점수를 누적 • 성적의 수

𝑛

을 하나씩 증가 (2) 평균을 계산하고 화면에 출력 조건식 •

𝑠𝑢𝑚

𝑛

으로 나누어서

𝑎𝑣𝑒𝑟𝑎𝑔𝑒

에 저장 •

𝑎𝑣𝑒𝑟𝑎𝑔𝑒

를 화면에 출력 <flow chart> 성적 입력 참 거짓

𝑔𝑟𝑎𝑑𝑒 ≥ 0

𝑠𝑢𝑚 += 𝑔𝑟𝑎𝑑𝑒

𝑛 + +

𝑎𝑣𝑒𝑟𝑎𝑔𝑒 = 𝑠𝑢𝑚/𝑛

𝑎𝑣𝑒𝑟𝑔𝑒

출력 6-2.『while』문

(20)

(예제1 계속) 입력된 성적의 평균을 구하는 프로그램을 작성하라  변수지정 (성적 및 입력 수) 변수(정수):

𝑔𝑟𝑎𝑑𝑒, 𝑖

 변수지정 (합계 및 평균) 변수(실수):

𝑠𝑢𝑚, 𝑎𝑣𝑒𝑟𝑎𝑔𝑒

종료 시 음수입력 성적 입력:

10

성적 입력:

20

성적 입력:

30

성적 입력:

-1

성적의 평균

= 20.000000

#include <stdio.h>

int main(void)

{

변수지정 및 초기화

printf("종료 시 음수 입력\n");

while (grade >= 0)

{

}

sum = sum - grade;

n--;

평균을 계산하고 화면에 출력한다.

return 0;

}

<flow chart> 성적 입력 참 거짓 𝑔𝑟𝑎𝑑𝑒 ≥ 0 𝑠𝑢𝑚 += 𝑔𝑟𝑎𝑑𝑒 𝑛 + + 𝑎𝑣𝑒𝑟𝑎𝑔𝑒 = 𝑠𝑢𝑚/𝑛 𝑎𝑣𝑒𝑟𝑔𝑒 출력 마지막 데이터 제거

𝑔𝑟𝑎𝑑𝑒 ≥ 0

이면 반복 보초값 6-2.『while』문

(21)

(예제1 검토) 입력된 성적의 평균을 구하는 프로그램을 작성하라  변수지정 (성적 및 입력 수) 변수(정수):

𝑔𝑟𝑎𝑑𝑒, 𝑖

 변수지정 (합계 및 평균) 변수(실수):

𝑠𝑢𝑚, 𝑎𝑣𝑒𝑟𝑎𝑔𝑒

종료 시 음수입력 성적 입력:

10

성적 입력:

20

성적 입력:

30

성적 입력:

-1

성적의 평균

= 20.000000

𝑔𝑟𝑎𝑑𝑒 ≥ 0

이면 반복

#include <stdio.h>

int main(void)

{

int grade, n;

float sum, average;

n = 0;

sum = 0;

grade = 0;

printf("종료 시 음수 입력\n");

while (grade >= 0)

{

printf("성적 입력");

scanf_s("%d", &grade);

sum += grade;

n++;

}

<flow chart> 성적 입력 참 거짓 𝑔𝑟𝑎𝑑𝑒 ≥ 0 𝑠𝑢𝑚 += 𝑔𝑟𝑎𝑑𝑒 𝑛 + + 𝑎𝑣𝑒𝑟𝑎𝑔𝑒 = 𝑠𝑢𝑚/𝑛 𝑎𝑣𝑒𝑟𝑔𝑒 출력 변수지정 및 초기화 6-2.『while』문

(22)

(예제1 검토) 입력된 성적의 평균을 구하는 프로그램을 작성하라  변수지정 (성적 및 입력 수) 변수(정수):

𝑔𝑟𝑎𝑑𝑒, 𝑖

 변수지정 (합계 및 평균) 변수(실수):

𝑠𝑢𝑚, 𝑎𝑣𝑒𝑟𝑎𝑔𝑒

종료 시 음수입력 성적 입력:

10

성적 입력:

20

성적 입력:

30

성적 입력:

-1

평균 성적

= 20.000000

마지막 데이터 제거

#include <stdio.h>

int main(void)

{

변수지정 및 초기화

printf("종료 시 음수 입력\n");

while (grade >= 0)

{

}

sum = sum - grade;

n--;

average = sum / n;

printf("평균 성적 = %f\n", average);

return 0;

}

𝑔𝑟𝑎𝑑𝑒 ≥ 0

이면 반복 <flow chart> 성적 입력 참 거짓

𝑔𝑟𝑎𝑑𝑒 ≥ 0

𝑠𝑢𝑚 += 𝑔𝑟𝑎𝑑𝑒

𝑛 + +

𝑎𝑣𝑒𝑟𝑎𝑔𝑒 = 𝑠𝑢𝑚/𝑛

𝑎𝑣𝑒𝑟𝑔𝑒

출력 6-2.『while』문

(23)

6-3. 『do...while』문  『do...while』문은 『while』문과 비슷하나, 반복조건을 루프의 처음이 아니라 루프의 끝에서 검사.  조건식은 참, 거짓을 가릴 수 있은 수식이고, 문장은 단일문 또는 복합문  『do...while』문에서는 조건이 반복이 되지 않아도 루프 안의 문장이 한번은 실행됨. ※

𝑛𝑜𝑡𝑒:

『do...while』 문에서는 while 위에『

;

』 6-3.『do...while』문

do

{

문장

}

while (조건);

조건식에 관계없이 최소한 1번은 실행 조건식이 참이면 반복실행 <do...while 문> <while 문> 참 거짓 조건 문장 1 do 문장 2 문장 3 문장 참 거짓 조건

(24)

(예제) 보초값 0 이 입력될 때까지 입력된 숫자를 더하는 프로그램을 작성하라  변수지정 (숫자의 합 및 입력되는 숫자) 변수(정수):

𝑠𝑢𝑚, 𝑛𝑢𝑚𝑏𝑒𝑟

 흐름도 및 조건식 (1) 입력된 숫자의 합계를 구하고 숫자의 개수를 센다. • 입력된 숫자를

𝑠𝑢𝑚

에 저장 •

𝑠𝑢𝑚

에 입력된 숫자를 누적 (2) 조건식 •

𝑛𝑢𝑚𝑏𝑒𝑟! = 0

가 참이면, 계속『do』를 수행. •

𝑛𝑢𝑚𝑏𝑒𝑟! = 0

거짓이면

𝑠𝑢𝑚

을 화면에 출력. <flow chart> 참 거짓 조건

𝑠𝑢𝑚 += 𝑛𝑢𝑚𝑏𝑒𝑟

do

𝑝𝑟𝑖𝑛𝑡(𝑠𝑢𝑚)

#include <stdio.h>

int main(void)

{

int number, sum = 0;

do

while

return 0;

}

종료 시 0 입력 정수 입력: 1 정수 입력:

2

정수 입력:

3

입력 정수의 합

= 6.000000

6-3.『do...while』문

(25)

(예제 검토) 보초값 0 이 입력될 때까지 입력된 숫자를 더하는 프로그램을 작성하라  변수지정 (숫자의 합 및 입력되는 숫자) 변수(정수):

𝑠𝑢𝑚, 𝑛𝑢𝑚𝑏𝑒𝑟

 조건식 •

𝑛𝑢𝑚𝑏𝑒𝑟! = 0

가 참이면, 계속『do』를 수행. •

𝑛𝑢𝑚𝑏𝑒𝑟! = 0

거짓이면,

𝑠𝑢𝑚

을 화면에 출력. <flow chart> 참 거짓 조건

𝑠𝑢𝑚 += 𝑛𝑢𝑚𝑏𝑒𝑟

do

𝑝𝑟𝑖𝑛𝑡(𝑠𝑢𝑚)

#include <stdio.h>

int main(void)

{

int number, sum = 0;

printf("종료 시 0 입력\n");

do

{

printf("정수 입력: ");

scanf_s("%d", &number);

sum += number;

}

while (number != 0);

printf("입력 정수의 합 = %d \n", sum);

return 0;

}

종료 시 0 입력 정수 입력: 1 정수 입력:

2

정수 입력:

3

입력 정수의 합

= 6.000000

6-3.『do...while』문 마지막 데이터 제거과정 없이 바로 출력 보초값

(26)

6-4. 『for』문

 『for』문은 정해진 횟수만큼 반복할 때 사용하는 반복 구조.

 『for』문은 초기식(initialization), 조건식(expression), 증감식(increment) 의 3부분으로 구성됨. 이들 3부분은 세미콜론『

;

』으로 분리되어 있음.  초기식: 반복 루프를 시작하기 전에 한번만 실행 됨 주로 변수 값을 초기화 하는 용도  조건식: 반복 조건을 검사하는 식 • 수식의 값이 거짓이면, 반복이 중단 이 수식은 반복을 하기 전에 계산되어 값이 거짓이면, 한번도 반복되지 않음.  증감식: 한번의 루프실행이 끝나면 증감식이 실행됨 변수 i값을 증가시키는 역할 6-4.『for』문 <flow chart> <형식> 문장 참 거짓 조건 초기식 증감식

for ( i = 0; i < 5; i++)

printf(“Hello World\n");

조건식 조건식이 참이면 반복실행 증감식 초기식

(27)

(예시1) 1부터 3까지의 정수를 더하여 합을 구하는 프로그램을 작성하라  변수지정 (숫자의 합 및 숫자의 수) 변수(정수):

𝑠𝑢𝑚, 𝑖

 흐름도 및 조건식 • 초기식:

𝑖 = 0

• 조건식:

𝑖 ≤ 3

• 증감식:

𝑖 + +

1부터3까지 정수의 합 = 6 6-4.『for』문 <flow chart>

#include <stdio.h>

int main(void)

{

int number, sum;

sum = 0;

for (inumber= 1; number <= 3; number++)

sum +=number;

printf("1부터 3까지의 정수의 합= %d\n", sum);

return 0;

}

𝑠𝑢𝑚 += 𝑖

참 거짓

𝑖 ≤ 0

𝑖 = 0

𝑖 + +

(28)

 Do...while Vs. for (예시2) 1부터 3까지의 정수를 더하여 합을 구하는 프로그램 비교. 28 6-4.『for』문 Do...while for 변수

𝑠𝑢𝑚, 𝑛𝑢𝑚𝑏𝑒𝑟

𝑠𝑢𝑚 , 𝑛𝑢𝑚𝑏𝑒𝑟

조건식

𝑛𝑢𝑚𝑏𝑒𝑟 ! = 0

이면 계속 반복

𝑛𝑢𝑚𝑏𝑒𝑟 <= 3

까지 계속 반복 『for』문 『do...while』문

#include <stdio.h>

int main(void)

{

int number, sum = 0;

printf("종료 시 0 입력\n");

do

{

printf("정수 입력: ");

scanf_s("%d", &number);

sum += number;

}

while (number != 0);

printf("입력 정수의 합 = %d \n", sum);

return 0;

}

보초값

#include <stdio.h>

int main(void)

{

int number, sum=0;

for (number = 1; number <= 3; number++)

sum += number;

printf("정수의 합= %d\n", sum);

return 0;

참조

관련 문서

학생들이 우리 학교의 공간을 직접 탐색해보고 학교 공간 중에서 자 신이 바꾸고 싶은 공간을 선택할 수 있도록 한다.. 공통된 아이디를 가진 학생들이 모여서 학교

학교 주변에서 찾아볼 수 있는 식물을 채집해보고 채집한 여러 가지 식물의 잎을 자세히 관찰하여 생김새를 구체적으로 그려볼 수 있다.. 식물의

개인의 신원을 인증할 수 있는 여러 방법에 대해 알아보고, 이 방 법들 중에서 최근에 홍채인식 기술을 활용하는 이유와 홍채인식 기술에서 정보를

: 두 지점 사이의 최단경로(가장 작은 비용 또는 가장 짧은 거리나 시간에 도착할 수 있는 경로)를 찾는 문제.. -

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

② 매체는 정보를 전달하는 수단이므로, 매체를 활용할 때에는 전달하고자 하는 내용을 효과적으로 설명할 수 있는 매체를 선택할 수 있어야 한다.. ③ 빔

● 중소기업이 ①「중소기업기본법」의 규정에 따른 중소기업 외의 기업과 합병하는 경우 ②유예 기간 중에 있는 기업과 합병 ③독립성기준의 요건을 충족하지 못하게

개별 농민들이 생산중립 고정직접지불(fixed decoupled payment)이나 가 격보전직접지불(counter-cyclical payment) 대상 품목을 신청하기 위해서는 두 선택권 중에서