diagrams.net Link

 

Flowchart Maker & Online Diagram Software

Flowchart Maker and Online Diagram Software draw.io is free online diagram software. You can use it as a flowchart maker, network diagram software, to create UML online, as an ER diagram tool, to design database schema, to build BPMN online, as a circuit d

app.diagrams.net

 

 

 

 

연습문제

 

 

예제 17

1부터 10까지 출력하기(1)

 

1로 시작되는 변수 i 값을 1씩 증가하면서,

i 값이 10보다 작거나 같을때까지 반복하며 i 값을 출력한다.

 

더보기


분석 (설명)

  1. i가 10이하인지 판별한다.
  2. i 값을 출력한다.
  3. i 값을 1 증가시킨다

 


 

설계 (순서도)

 

구현

 

/* 실행결과
1 2 3 4 5 6 7 8 9 10 
*/



 

 


 

예제 18

1부터 10까지 출력하기(2)

 

i가 1부터 1씩 증가하며 10이 될 때까지 반복하며 i 값을 출력한다.

 

더보기


분석 (설명)

  1. i 값이 1부터 1씩 증가하며 10이 될 때까지 반복한다

 


 

설계 (순서도)

 

구현

 

/* 실행결과
1 2 3 4 5 6 7 8 9 10 
*/



 

 


 

예제 19

10부터 1까지 출력하기

 

i가 10부터 1씩 감소하며 1이 될 때까지 반복하며 i 값을 출력한다.

 

더보기


분석 (설명)

  1. i 값이 10부터 1씩 감소하며 1이 될 때까지 반복한다

 


 

설계 (순서도)

 

구현

 

/* 실행결과
10 9 8 7 6 5 4 3 2 1
*/



 

 


 

예제 20

1부터 100까지의 합 구하기

 

0으로 초기화되어 있는 변수 sum에 1부터 100까지 1씩 증가하는 변수 i 값을 더해 1부터 100까지의 합을 구한다.

 

더보기


분석 (설명)

  1. sum을 0으로 초기화한다.
  2. i 값이 1부터 1씩 증가하며 100이 될 때까지 반복한다.
  3. sum에 i 값을 누적한다

 


 

설계 (순서도)

 

구현

 

/* 실행결과
5050
*/



 

 


 

예제 21

1부터 100까지의 수 중 짝수의 합 구하기(1)

 

i가 2부터 2씩 증가하며 100이 될 때까지 반복하며 sum에 i 값을 더한다.

 

더보기


분석 (설명)

  1. i 값이 2부터 2씩 증가하며 100이 될 때까지 반복한다.
  2. sum에 i 값을 누적한다

 


 

설계 (순서도)

 

구현

 

/* 실행결과
2550
*/



 

 


 

예제 22

1부터 100까지의 수 중 짝수의 합 구하기(2)

 

i가 1부터 100까지 1씩 증가하면서 i가 짝수인 경우 sum에 i를 누적한다.

 

더보기


분석 (설명)

  1. i 값이 1부터 1씩 증가하며 100이 될 때까지 반복한다.
  2. i를 2로 나눈 나머지가 0인지 판별한다.
  3. sum에 i 값을 누적한다.

 


 

설계 (순서도)

 

구현

 

/* 실행결과
2550
*/



 

 


 

예제 23

1, -2, 3, -4, ..., 99, -100의 합 구하기

 

i가 1부터 1씩 증가하며 100이 될 때까지 반복하며 i가 홀수면 sum에 i 값을 더하고, i가 짝수면 sum에서 i 값을 뺀다.

 

더보기


분석 (설명)

  1. i를 2로 나눈 나머지가 0인지 판별한다.
  2. i가 짝수면 sum에서 i 값을 뺀다.
  3. i가 홀수면 sum에 i 값을 더한다

 


 

설계 (순서도)

 

구현

 

/* 실행결과
-50
*/



 

 


 

예제 24

계승 구하기

 

계승이란 1부터 임의의 양의 정수 n까지의 수를 모두 곱한 것을 말하며 n!로 나타낸다.

예를 들어 5의 계승은 5!로 표시하며 1*2*3*4*5 이다. 그런데, 여기서 0!은 1로 정의한다.

 

더보기


분석 (설명)

  1. fact를 1로 초기화한다.
  2. i 값이 5부터 1씩 감소하며 1이 될 때까지 반복한다.
  3. fact에 i를 곱한 값을 fact에 저장한다.

 


 

설계 (순서도)

 

구현

 

/* 실행결과
120
*/



 

 


 

예제 25

약수 구하기

 

임의의 수를 나누었을 때 나누어떨어지게 하는 수를 임의의 수의 약수라 한다.

즉, n의 약수는 1부터 n까지의 수 중 n을 나누어떨어지게 하는 수가 된다. 

예를 들면, 10의 약수는 1부터 10까지 수들로 10을 나누었을 때 나머지가 0이 되게 하는 수, 즉 1, 2, 5, 10이 된다.

 

더보기


분석 (설명)

  1. i는 1부터 n까지 1씩 증가하며 반복한다.
  2. n을 i로 나눈 나머지가 0인지 판별한다.
  3. n의 약수인 i를 출력한다.

 


 

설계 (순서도)

 

구현

 

/* 실행결과
정수: 10
약수: 1 2 5 10
*/



 

 


 

예제 26

약수 구하기

 

공약수란 0이 아닌 두 정수의 공통되는 약수를 말한다. 즉, 두 정수를 나누어떨어지게 하는 공통의 수를 의미한다.
n1과 n2의 공약수는 1부터 n1까지 1씩 증가하는 i로 n1과 n2 모두를 나누어떨어지게 하는수가 된다. 

단, n1이 n2보다 작다고 가정한다.

 

더보기


분석 (설명)

  1. i 값이 1부터 1씩 증가하며 n1까지 반복한다.
  2. n1을 i로 나눈 나머지가 0이고 n2를 i로 나눈 나머지가 0인지 판별한다.
  3. 공약수 i를 출력한다

 


 

설계 (순서도)

 

구현

 

/* 실행결과
정수(2개) : 10 20
1 2 5 10
*/



 

 


 

예제 27

최대공약수 구하기

 

두 정수의 공약수 중 가장 큰 것을 최대공약수라 한다. 

그러므로 n1과 n2의 최대공약수는 n1부터 1까지 1씩 감소하는 i로 n1과 n2 모두를 나누어떨어지게 하는 첫 번째 수가 된다. 단, n1이 n2보다 작다고 가정한다.

 

더보기


분석 (설명)

  1. i 값이 n1부터 1씩 감소하며 1까지 반복한다.
  2. n1을 i로 나눈 나머지가 0이고 n2를 i로 나눈 나머지가 0인지 판별한다.
  3. 최대공약수 i를 출력하고 반복구조를 빠져나온다.

 


 

설계 (순서도)

 

구현

 

/* 실행결과
정수(2개) : 12 16
4
*/



 

 


 

예제 28

소수 판별하기

 

소수란 2, 3, 5, 7 …과 같이 1과 자기 자신 이외의 양의 약수를 가지지 않는 1보다 큰 자연수를 말한다.

임의의 수를

2부터, 자기 자신보다 1 작은 수까지의 수로

차례로 나누어서 나누어떨어지는 경우가 생기면 소수가 아니고, 

나누어떨어지는 경우가 생기지 않으면 소수이다.

 

더보기


분석 (설명)

  1. i 값이 2부터 1씩 증가하며 n-1이 될 때까지 반복한다.
  2. n을 i로 나눈 나머지가 0인지 판별한다.
  3. chk에 0을 저장하고 반복구조를 빠져나온다.
  4. chk가 1인지 판별한다.

 


 

설계 (순서도)

 

구현

 

/* 실행결과
정수 : 7
소수임
*/



 

 


 

예제 29

피보나치수열 구하기

 

다음과 같은 수열이 있다.

 

이 수열의 두 번째 항 이후의 항들은 이전의 두 항을 더해 구해진다. 즉, 첫 번째 항과 두번째 항을 더한 값이 세 번째 항이 되고, 두 번째 항과 세 번째 항을 더한 값이 네 번째 항이 된다. 이와 같은 수열을 피보나치수열이라 한다.

 

피보나치수열을 구하는 과정은 다음과 같다.
전전 항을 저장하는 변수를 a, 전 항을 저장하는 변수를 b, 현재 항을 저장하는 변수를 c라 하고,

a에 첫 번째 항인 1을, b에 두 번째 항인 1을 저장하고 시작한다.

 

현재 항 c는 a 값과 b 값을 더한 값이 된다.

그 후 전 항 b값을 a에, 현재 항 c 값을 b 저장하고 현재 항 c를 새롭게 구하는 과정을 반복하며 피보나치수열을 구한다.

 

더보기


분석 (설명)

  1. i 값이 3부터 1씩 증가하며 20이 될 때까지 반복한다.
  2. 전전항 a와 전항 b를 더해 현재항 c에 저장한다.
  3. 현재항 c를 출력한다.
  4. 전항 b 값을 전전항 a에 저장한다.
  5. 현재항 c 값을 전항 b에 저장한다.

 


 

설계 (순서도)

 

구현

 

/* 실행결과
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
*/



 

 


 

예제 30

최댓값 구하기

 

max 값과 새롭게 입력받은 a 값을 비교하여 큰 값을 max에 저장하는 동작을 반복해 최댓값을 구한다.

 

더보기


분석 (설명)

  1. a가 0이 아닌지 판별한다.
  2. a가 max보다 큰지 판별한다.
  3. a 값을 max에 저장한다.

 


 

설계 (순서도)

 

구현

 

/* 실행결과
정수 : 5
정수 : 7
정수 : 30
정수 : 9
정수 : 8
정수 : 0
최댓값: 3
*/



 

 


 

예제 31

직각 삼각형 모양으로 수 출력하기

 

바깥쪽 반복문은 i 값을 1부터 5까지 반복하고, 안쪽 반복문은 j 값을 1부터 i까지 반복하며 j 값을 출력하면 다음과 같이 된다. 단, 안쪽 반복문을 마치면 “\n”을 이용해서 다음줄로 넘긴다.

 

더보기


분석 (설명)

  1. i 값이 1부터 1씩 증가하며 5가 될 때까지 반복한다.
  2. j 값이 1부터 1씩 증가하며 i가 될 때까지 반복한다.
  3. 다음 줄로 넘긴다

 


 

설계 (순서도)

 

구현

 

/* 실행결과
1 
1 2 
1 2 3 
1 2 3 4 
1 2 3 4 5 
*/



 

 


 

예제 32

1부터 10까지의 정수에 대한 약수 구하기

 

1부터 10까지의 정수에 대한 약수를 구한다.

 

더보기


분석 (설명)

  1. i 값이 1부터 1씩 증가하며 10이 될 때까지 반복한다.
  2. i 값을 출력한다.
  3. j 값이 1부터 1씩 증가하며 i가 될 때까지 반복한다.
  4. i를 j로 나눈 나머지가 0인지 판별한다

 


 

설계 (순서도)

 

구현

 

/* 실행결과
1의 약수: 1 
2의 약수: 1 2 
3의 약수: 1 3 
4의 약수: 1 2 4 
5의 약수: 1 5 
6의 약수: 1 2 3 6 
7의 약수: 1 7 
8의 약수: 1 2 4 8 
9의 약수: 1 3 9 
10의 약수: 1 2 5 10
*/



 

 


 

예제 33

2부터 100까지의 소수 구하기

 

i가 2부터 1씩 증가하며 100이 될 때까지 반복하며 각 i 값이 소수인지 판별한다. 소수를 판별하는 방법은 예제 28에서 살펴보았다.

 

더보기


분석 (설명)

  1. i 값이 2부터 1씩 증가하며 100이 될 때까지 반복한다.
  2. chk에 1을 저장한다
  3. j 값이 2부터 1씩 증가하며 i-1이 될 때까지 반복한다. 
  4. i를 j로 나눈 나머지가 0인지 판별한다.
  5. 소수가 아니면 chk에 0을 저장한다.
  6. chk가 1인지 판별한다.

 


 

설계 (순서도)

 

구현

 

/* 실행결과
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
*/



 

 


 

예제 34

1, (1+2), (1+2+3), …, (1+2+…+10)의 합 구하기

 

i가 1부터 1씩 증가하며 10이 될 때까지 반복하며 n은 i 값을 누적하고, sum은 n 값을 누적하면서 원하는 값을 구한다.

 

더보기


분석 (설명)

  1. n에 i 값을 누적한다.
  2. sum에 n 값을 누적한다

 


 

설계 (순서도)



 

구현

 

/* 실행결과
220
*/



 

 


 

예제 35

구구단

 

다음과 같은 형식으로 출력되는 구구단 순서도와 프로그램을 작성한다.

 

단에 해당하는 2부터 9까지의 수는 변수 i로, 곱하여지는 수 1부터 9까지는 변수 j로, 곱한 결과는 j*j로 나타낸다.

 

더보기

 

분석 (설명)

  1. i 값이 2부터 1씩 증가하며 9가 될 때까지 반복한다.
  2. j 값이 1부터 1씩 증가하며 9가 될 때까지 반복한다.
  3. i, j, i*j의 값을 출력한다

 


 

설계 (순서도)

 

구현

 

/* 실행결과
2*1= 2 2*2= 4 2*3= 6 2*4= 8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18 
3*1= 3 3*2= 6 3*3= 9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27 
4*1= 4 4*2= 8 4*3=12 4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36 
5*1= 5 5*2=10 5*3=15 5*4=20 5*5=25 5*6=30 5*7=35 5*8=40 5*9=45 
6*1= 6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 6*7=42 6*8=48 6*9=54 
7*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 7*8=56 7*9=63 
8*1= 8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 8*9=72 
9*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 
*/



 

 


 

과제

 

과제16

1부터 10까지 출력하는 다음 순서도의 ①과 ②를 채우고 C 프로그램을 작성하여라.

 

 

 

 

과제17

5부터 15까지 출력하는 순서도와 C 프로그램을 작성하여라.



 

 

과제18

5부터 15까지 과제 출력하는 순서도와 C 프로그램을 작성하여라.

 

 

 

 

과제19

while형 반복 구조를 이용해서 10부터 1까지 출력하는 순서도와 C 프로그램을 작성하여라.

 

 

 

 

과제20

while형 반복 구조를 이용해서 1부터 100까지의 합을 구해 출력하는 순서도와 C 프로그램을 작성하여라.

 

 

 

 

과제21

1부터 입력받은 수까지의 합을 출력하는 순서도와 C 프로그램을 작성하여라.

 

 

 

 

과제22

while형 반복 구조를 이용해서 1부터 100까지의 수 중 짝수의 합을 구해 출력하는 순서도와 C 프로그램을 작성하여라.

 

 

 

 

과제23

1부터 100까지의 수 중 3의 배수의 합을 구해 출력하는 순서도와 C 프로그램을 작성하여라.

 

 

 

 

과제24

1부터 100까지의 수 중 3의 배수의 합을 출력하는 순서도와 C 프로그램을 작성하여라.

 

 

 


과제25

while형 반복 구조를 이용해서 1, -2, 3, -4, ..., 99, -100의 합을 구해 출력하는 순서도와 C 프로그램을 작성하여라.

 

 

 

 

과제26

1, 2, -3, 4, 5, -6, ..., -99, 100의 합을 구해 출력하는 순서도와 C 프로그램을 작성하여라.

 

 

 

 

과제27

while형 반복 구조를 이용해서 계승을 구하는 순서도와 C 프로그램 작성하여라.

 

 

 

 

과제28

약수와 약수의 개수를 출 과제 력하는 순서도와 C 프로그램을 작성하여라.

 

 

 

 

과제29

세 수의 공약수를 출 과제 력하는 순서도와 C 프로그램을 작성하여라.



 

 

과제30

1부터 자기 자신까지의 수로 차례로 나누어서 나누어떨어지는 경우 2번 발생하면 이 수는 소수이고,

그렇지 않으면 소수가 아니다.

이 방법을 이용해서 소수를 판별하는 순서도와 C 프로그램을 작성하여라.

 

 

 

 

과제31

피보나치수열의 20번째 항까지의 합을 구하는 순서도와 C 프로그램을 작성하여라.

 

 

 

 

과제32

최솟값을 구하는 순서도와 C 프로그램을 작성하여라.

 

 

 

과제33

다음과 같이 과제 출력하는 순서도와 C 프로그램을 각각 작성하여라.

 

 

 

 

 

과제34

1!, 2!, 3!, 4!, 5!의 합을 출 과제 력하는 순서도와 C 프로그램을 작성하여라.

 

 

 

 

과제35

다음과 같은 형식으로 출력되는 구구단 순서도와 C 프로그램을 작성하여라.