특정인의 점수에 대한 석차를 알려면 다른 사람들과 점수를 비교해 보면 된다. 다른 사람들과 점수를 비교하기 전에는 1등이고, 다른 사람의 점수와 비교하다가 점수가 높은 사람이 있으면 석차를 1씩 증가시키면 된다. 여러 사람의 석차를 계산한다면 이런 작업을 모든 사람에게 반복해 적용하면 된다. 점수 배열에 다음과 같이 자료가 들어 있을 때 석차를 구해 석차 배열에 저장해 보자.
10개의 1자리 양의 정수를 입력 받아 배열에 저장한 후 저장된 자료 중 7에 가장 가까운 자료를 찾는 순서도를 작성하시오. 단, 자료는 1자리 정수이고 근사값이 2개인 경우에는 나중에 찾은 값을 출력한다.
알고리즘의 이해
7에 가장 가깝다는 의미는 어떤 수와 7과의 차이가 가장 작다는 말과 같다. 7과 가장 가까운 수를 구하려면 7과 다른 수들의 차를 계산한 후 차이를 비교하여 차이가 가장 작은 수를 찾으면 된다. 주의할 점은 차이를 계산할 때 음수가 나오면 안 되므로 7과 어떤 수의 대ㆍ소를 비교한 후 큰 수에서 작은 수를 뺀다. 4, 2, 5, 6, 9가 있을 때 7과 가장 가까운 수를
어떤 정수를 5로 나누었을 때 나머지가 0이면 5의 배수이다. 1~100 사이에 있는 5의 배수의 개수와 합을 계산하려면 숫자를 1에서 100까지 증가시키면서 각각의 숫자를 5로 나누어 나머지가 0이면 5의 배수이므로 개수를 1 증가시키고, 그 때의 숫자를 합계에 누적하면 된다.
플로우차트
변수
CNT:5의 배수의 개수가 저장될 변수
HAP:5의 배수의 합계가 저장될 변수
I:1부터 100가지 1씩 증가하는 값이 저장될 변수, 즉 I는 1, 2, 3, …, 100
10개의 수치 자료를 입력 받아 배열에 저장한 후 저장된 자료 중 가장 큰 값을 찾는 순서도를 작성하시오
알고리즘의 이해
최대값은 자료 중에서 가장 큰 값을 찾는 것으로, 최대값을 찾는 방법 중 한 가지는 자료 중에서 나올 수 있는 임의의 가장 작은 값을 가지고 다른 자료들과 비교하는 것이다. 자료를 처음부터 차례대로 비교하여 더 큰 값이 나오면 그 값을 최대값으로 하고 다음 자료와 비교하는 과정을 모든 자료에 대해 반복한다. 점수배열에 다음과 같이 자료가 들어 있을 때 최대값을 찾아 보자.
점수A
70
80
60
90
70
최대값의 초기 값으로 비교할 숫자들보다 작은 값 0을 기억시키고 시작한다.
최대값:MAX=0
최대값이 가지고 있는 값 0을 첫 번째 자료인 70과 비교한다. 70이 크므로 70을 최대값에 대입한다.
최대값:MAX=70
최대값이 가지고 있는 값 70을 두 번째 자료인 80과 비교한다. 80이 크므로 80을 최대값이 대입한다.
최대값:MAX=80
위와 같은 방법으로 최대값은 MAX은 90이다.
플로우차트
변수
A(10):입력 받은 숫자가 저장될 배열
I:비교 대상 위치를 지정해 주는 변수, 즉 I는 1, 2, 3, …, 10까지 차례로 변경된다.