문제가 'txt개수' 컨트롤에는 레코드의 개수가 [표시 예]와 같이 표시되도록 설정하시오.
▶ 레코드 개수의 1/10 만큼 "★"을 표시한 후 괄호 안에 실제 개수를 표시
▶ 표시 예: 100개 --> ★★★★★★★★★★(100개)
이것인데 궁금한 점이 두 개 있습니다. (밑에는 제가 작성한 엑세스에서 틀렸다고 채점된 부분입니다.)
(=String(Count(*)*0.1,"★") & "(" & Count(*) & "개)")이 정답(=String(Int(Count(*)/10),"★") & "(" & Count(*) & "개)")과 다릅니다.
첫번째는 정답은 10으로 나눴는데 차피 값의 10/1이랑 값의 0.1이랑 같으니 0.1을 해도 되는가 입니다.
두번째는 뭐 int를 써라, 정수로 나타내어라 이렇게 지지사항이 있는 것도 아니고 애초에 100개를 1/10 하면 10개라 소수점도 없는데 int를 꼭 써야되는가 입니다.
이거와는 별개로 앞에서 뭐 연습하고 할때는 뭐에 무슨 함수를 써라. 이렇게 많이 나오던데 모의고사를 푸니깐 함수를 딱히 지정해주진 않고 그냥 결과값보거나, 문제만 읽고 지정하는 경우가 많던데 시험에서도 이렇게 정확히 지정을 해주진 않는 경우가 많나요?/ 그리고 뭐 어떤 함수를 사용하여 적어라 이렇게 질문이 있으면 저 함수가 무조건 포함만 되면 되고 다른 함수도 사용해도 되는건가요? 아니면 꼭 지정해준 함수 하나만 써야하나요? 지정안해준 부분에서는 제 판단에 의하여 함수를 써야 되는 부분이면 함수를 써도 되나요?
안녕하세요.
질문하신 두 식은 100개처럼 10의 배수일 때는 결과가 같지만, 일반적으로는 완전히 같은 식이 아닙니다. 핵심은 String 함수에 들어가는 반복 횟수가 정수가 아닐 수 있다는 점입니다.
정답은
=String(Int(Count(*)/10),"★") & "(" & Count(*) & "개)"이고, 작성하신 식은
=String(Count(*)*0.1,"★") & "(" & Count(*) & "개)"입니다.
첫 번째 질문부터 보면, Count(*)/10과 Count(*)*0.1은 수학적으로는 같은 값입니다. 따라서 단순 산술 관점에서는 둘 다 사용할 수 있습니다. 예를 들어 100개면 둘 다 10이 됩니다.
하지만 문제는 레코드 개수가 100처럼 항상 10의 배수라는 보장이 없다는 것입니다. 예를 들어 레코드가 27개라면,
27 / 10 = 2.7
27 × 0.1 = 2.7로 둘 다 2.7이 됩니다. 여기서 문제 문장의 “레코드 개수의 1/10만큼 ★ 표시”를 실제 반복 횟수로 사용하려면 정수 개수로 만들어야 합니다. 별을 2.7개 표시할 수는 없기 때문입니다.
그래서 정답에서
Int(Count(*)/10)을 사용합니다. 27개라면
27 / 10 = 2.7
Int(2.7) = 2
→ ★★(27개)가 됩니다.
따라서 두 번째 질문인 “100개면 어차피 10인데 Int가 꼭 필요한가?”에 대해서는, 표시 예 100개만 놓고 보면 필요 없습니다. 하지만 표시 예는 하나의 예시일 뿐이고 실제 레코드 개수가 10의 배수가 아닐 수도 있으므로, 문제를 일반적으로 만족시키려면 정수화 처리가 필요합니다.
특히 Access의 String(반복횟수, 문자)에 소수를 그대로 넘기는 방식은 “소수점 아래를 그냥 버릴 것”이라고 전제해서 작성하는 것보다, 문제 의도를 명확하게 나타내는 Int를 사용하는 것이 안전합니다. 즉 정답은 단순히 현재 데이터에서 결과가 나오게 하는 식이 아니라 어떤 레코드 개수에서도 문제의 의도를 안정적으로 만족시키는 식입니다.
그래서 작성하신 식은 현재 데이터가 10의 배수라면 같은 결과가 나올 수 있지만, 정답식과 완전히 동등하다고 보기는 어렵습니다.
그리고 실제 컴활 문제에서 함수 지정 방식은 크게 세 가지로 생각하시면 편합니다.
문제에서 사용할 함수를 명시한 경우에는 그 함수는 반드시 사용해야 합니다. 예를 들어
String, Int, Count 함수와 & 연산자 사용
이라고 했다면 세 함수 모두 포함시키는 것이 원칙입니다. 이때 필요하다면 IIf, Left 등 다른 함수를 추가로 사용하는 것은 보통 가능하지만, 추가 함수 때문에 문제의 의도나 결과가 바뀌어서는 안 됩니다. 다만 “○○ 함수만 사용”처럼 제한적으로 표현했다면 다른 함수를 추가하면 안 됩니다.
반대로 문제에서
Count 함수를 사용
이라고만 했다면 Count는 반드시 들어가야 하지만, 문제 해결에 필요한 다른 함수까지 금지했다는 뜻은 아닙니다. 예를 들어 결과 형식을 맞추기 위해 Format 등을 추가해야 한다면 사용할 수 있습니다.
마지막으로 함수를 아예 지정하지 않은 문제에서는 문제의 조건과 표시 예를 보고 적절한 함수를 수험자가 판단해서 사용하면 됩니다. 모의고사나 실제 시험에서도 이런 유형이 충분히 나옵니다. 특히 Access의 컨트롤 원본, 쿼리 계산 필드, 이벤트 프로시저에서는 모든 함수를 일일이 지정하지 않고 결과와 조건만 제시한 뒤 적절한 함수를 선택하게 하는 문제가 있습니다.
시험용으로 가장 안전하게 정리하면 이렇습니다.
함수가 지정되어 있으면 → 지정된 함수는 반드시 포함
“~만 사용”이라고 제한하면 → 지정 함수 외 사용 금지
함수가 지정되지 않으면 → 조건과 표시 예에 맞게 적절한 함수 선택
표시 예 하나에서 결과가 같아도 → 다른 데이터에서도 같은 의미인지 확인
이번 문제에서는 100개라는 표시 예만 보고 판단하기보다는 17개, 27개, 105개일 때도 식이 어떻게 동작하는지 생각하면 왜 Int가 들어갔는지 이해하기 훨씬 쉽습니다.
즐거운 하루 되세요.
-
관리자2026-09-11 09:09:24
안녕하세요.
질문하신 두 식은 100개처럼 10의 배수일 때는 결과가 같지만, 일반적으로는 완전히 같은 식이 아닙니다. 핵심은
String함수에 들어가는 반복 횟수가 정수가 아닐 수 있다는 점입니다.정답은
=String(Int(Count(*)/10),"★") & "(" & Count(*) & "개)"이고, 작성하신 식은
=String(Count(*)*0.1,"★") & "(" & Count(*) & "개)"입니다.
첫 번째 질문부터 보면,
Count(*)/10과Count(*)*0.1은 수학적으로는 같은 값입니다. 따라서 단순 산술 관점에서는 둘 다 사용할 수 있습니다. 예를 들어 100개면 둘 다 10이 됩니다.하지만 문제는 레코드 개수가 100처럼 항상 10의 배수라는 보장이 없다는 것입니다. 예를 들어 레코드가 27개라면,
27 / 10 = 2.7 27 × 0.1 = 2.7로 둘 다 2.7이 됩니다. 여기서 문제 문장의 “레코드 개수의 1/10만큼 ★ 표시”를 실제 반복 횟수로 사용하려면 정수 개수로 만들어야 합니다. 별을 2.7개 표시할 수는 없기 때문입니다.
그래서 정답에서
Int(Count(*)/10)을 사용합니다. 27개라면
27 / 10 = 2.7 Int(2.7) = 2 → ★★(27개)가 됩니다.
따라서 두 번째 질문인 “100개면 어차피 10인데 Int가 꼭 필요한가?”에 대해서는, 표시 예 100개만 놓고 보면 필요 없습니다. 하지만 표시 예는 하나의 예시일 뿐이고 실제 레코드 개수가 10의 배수가 아닐 수도 있으므로, 문제를 일반적으로 만족시키려면 정수화 처리가 필요합니다.
특히 Access의
String(반복횟수, 문자)에 소수를 그대로 넘기는 방식은 “소수점 아래를 그냥 버릴 것”이라고 전제해서 작성하는 것보다, 문제 의도를 명확하게 나타내는Int를 사용하는 것이 안전합니다. 즉 정답은 단순히 현재 데이터에서 결과가 나오게 하는 식이 아니라 어떤 레코드 개수에서도 문제의 의도를 안정적으로 만족시키는 식입니다.그래서 작성하신 식은 현재 데이터가 10의 배수라면 같은 결과가 나올 수 있지만, 정답식과 완전히 동등하다고 보기는 어렵습니다.
그리고 실제 컴활 문제에서 함수 지정 방식은 크게 세 가지로 생각하시면 편합니다.
문제에서 사용할 함수를 명시한 경우에는 그 함수는 반드시 사용해야 합니다. 예를 들어
String, Int, Count 함수와 & 연산자 사용이라고 했다면 세 함수 모두 포함시키는 것이 원칙입니다. 이때 필요하다면
IIf,Left등 다른 함수를 추가로 사용하는 것은 보통 가능하지만, 추가 함수 때문에 문제의 의도나 결과가 바뀌어서는 안 됩니다. 다만 “○○ 함수만 사용”처럼 제한적으로 표현했다면 다른 함수를 추가하면 안 됩니다.반대로 문제에서
Count 함수를 사용이라고만 했다면
Count는 반드시 들어가야 하지만, 문제 해결에 필요한 다른 함수까지 금지했다는 뜻은 아닙니다. 예를 들어 결과 형식을 맞추기 위해Format등을 추가해야 한다면 사용할 수 있습니다.마지막으로 함수를 아예 지정하지 않은 문제에서는 문제의 조건과 표시 예를 보고 적절한 함수를 수험자가 판단해서 사용하면 됩니다. 모의고사나 실제 시험에서도 이런 유형이 충분히 나옵니다. 특히 Access의 컨트롤 원본, 쿼리 계산 필드, 이벤트 프로시저에서는 모든 함수를 일일이 지정하지 않고 결과와 조건만 제시한 뒤 적절한 함수를 선택하게 하는 문제가 있습니다.
시험용으로 가장 안전하게 정리하면 이렇습니다.
함수가 지정되어 있으면 → 지정된 함수는 반드시 포함
“~만 사용”이라고 제한하면 → 지정 함수 외 사용 금지
함수가 지정되지 않으면 → 조건과 표시 예에 맞게 적절한 함수 선택
표시 예 하나에서 결과가 같아도 → 다른 데이터에서도 같은 의미인지 확인이번 문제에서는
100개라는 표시 예만 보고 판단하기보다는 17개, 27개, 105개일 때도 식이 어떻게 동작하는지 생각하면 왜Int가 들어갔는지 이해하기 훨씬 쉽습니다.즐거운 하루 되세요.