책 내용 질문하기
1권 기출문제 따라하기 문제1 - 3 (페이지 255쪽)
도서
2021 시나공 컴퓨터활용능력 1급 실기
페이지
255
조회수
247
작성일
2022-03-11
작성자
탈퇴*원
첨부파일

안녕하세요! 페이지 255쪽(section18 프로시저 작석 부분에서 기출문제 따라하기 문제1 정답부분)에서 궁금한 것이 있어 문의드립니다!

 

 

 

 

 

1) 문제 1-3 부분에서 4번부분이 Cells(입력행, 2) = 입력행-3 & txt이름.Value

 

로 되어있습니다! 

저는

Cells(입력행, 2) = [b3].CurrentRegion.Rows.Count & txt이름.Value

로 적었는데 이것도 정답에 해당하는지 궁금합니다!

 

 

 

 

 

 

2) 문제1-3 부분(폼의 자료를 워크시트에 입력하는 프로시저 작성하기)의 5번 마지막 부분이

 

Cells(입력행, 6) = Format((val(txt국어) + val(txt영어) + val(txt수학)) / 3, "0.00") 

 

라고 되어있는데요.

 

저는

 

Cells(입력행, 6) = Format((txt국어.Value + txt영어.Value + txt수학.Value) / 3, "#.00") 

 

라고 했더니 이상한 값이 나왔습니다!

 

txt국어.value 랑 val(txt국어) 둘다 값을 숫자로 입력되게 도와주는 것들인데 왜 txt국어.value는 이상한 값이 나오는지 모르겠습니다!

 

페이지 244쪽 보면 12번에는 cells(입력행, 6) = format(txt수량.value * txt단가.value , "currency) 로 되어있는데 이건 또 값이 잘나와서 더 헷갈리는 것 같습니다...

 

값을 계산하는 계산식에서 어떤건 .value가 쓰이고 어떤건 val()가 쓰이는 이유를 알고 싶습니다!

 

 

 

 

 

3) 문제 1-3부분의 format 형식을 "0.00" 말고 "#.00" 이라고 적었는데 두개 모두 정답으로 인정되는지도 궁금합니다!

 

 

 

언제나 감사합니다 선생님!

답변
2022-03-15 11:02:15

안녕하세요.

 

1) 정상적으로 실행된다면 상관 없습니다. 코드는 작성하는 사람마다 다를 수 있습니다. 문제의 지시사항을 모두 만족하고 결과가 정상적으로 실행되면 코드가 교재와 달라도 실제 시험에서는 모두 맞는 것으로 채점됩니다. 

2) 더하기의 경우는 값을 더하는 것이 아니라 &처럼 값을 연결하기 때문입니다. 즉 국어, 영어, 수학에 각각 100을 입력하면 txt국어.Value + txt영어.Value + txt수학.Value의 결과는 100100100으로 되기때문입니다. 그러므로 val 함수를 사용한 것입니다. 곱하기의 경우는 값이 정상적으로 계산됩니다. 두 경우를 구분하여 알아두세요.

3) 문제에서 소수 2자리까지 표시하라고 했으므로 문제 지시사항을 만족하므로 채점 결과는 맞는 것으로 채점될 듯 합니다. 하지만 #.00 으로 지정하면 값이 0일 경우 .00 으로 표시됩니다. 이상하지 않나요? 

 

즐거운 하루 되세요.

  • 관리자
    2022-03-15 11:02:15

    안녕하세요.

     

    1) 정상적으로 실행된다면 상관 없습니다. 코드는 작성하는 사람마다 다를 수 있습니다. 문제의 지시사항을 모두 만족하고 결과가 정상적으로 실행되면 코드가 교재와 달라도 실제 시험에서는 모두 맞는 것으로 채점됩니다. 

    2) 더하기의 경우는 값을 더하는 것이 아니라 &처럼 값을 연결하기 때문입니다. 즉 국어, 영어, 수학에 각각 100을 입력하면 txt국어.Value + txt영어.Value + txt수학.Value의 결과는 100100100으로 되기때문입니다. 그러므로 val 함수를 사용한 것입니다. 곱하기의 경우는 값이 정상적으로 계산됩니다. 두 경우를 구분하여 알아두세요.

    3) 문제에서 소수 2자리까지 표시하라고 했으므로 문제 지시사항을 만족하므로 채점 결과는 맞는 것으로 채점될 듯 합니다. 하지만 #.00 으로 지정하면 값이 0일 경우 .00 으로 표시됩니다. 이상하지 않나요? 

     

    즐거운 하루 되세요.

  • 관리자
    2022-03-15 11:21:51

    1. 지시사항에 맞게 지정하고 정확한 결과가 나온다면 정답으로 인정 됩니다. 

     

    2. 일반 적으로 값을 받으면 문자 값으로 받게 됩니다. 

     

    간혹 프로그램 상에서 판단하여 숫자는 숫자로 받는 경우도 있긴 합니다. 

     

    되도록이면 해당 값이 숫자인지 문자인지를 확실 하게 해 주는 것이 좋겠죠.  

     

    (txt국어.Value + txt영어.Value + txt수학.Value)/3 

     

    와 같이 입력하면 

     

    국어 80

    영어 90

    수학 100

     

    으로 입력한 경우

     

    8090100 으로 값을 연결해서 표시하게 됩니다. 

     

    이 값을 3으로 나누면 2696700 로 표시가 되네요. 


    컨토롤명.value 라는 해당 컨트롤의 값을 뜻하는 것인데 + 가 연결로 처리가 되어 그렇게 표시되는 것입니다. 


    val 은 받은 값을 숫자로 나타내기 위해 사용하는 것으로 


    숫자값으로 변경 된 후에는 


    80+90+100 으로 계산한 후 /3 을 수행 할 수 있는 것입니다. 


    아래 설명을 참고해 주세요. 


    val은 문자로 받은 데이터을 숫자로 나타낼때 쓰이는 것입니다.


    하지만 수량이나 단가는 대부분 숫자로 입력을 받습니다. 

     

    문자로 입력이 된다 하더라도 숫자의 형식을 가지고 있기 때문에 계산이 가능 합니다.


    만약 val을 쓰지 않고도 계산이 가능 하다면 val을 사용 하지 않으 셔도 됩니다.

    물론 사용 하셔도 되구요.

    지시사항에 val를 꼭 사용 하라고 되어 있지 않고, val을 사용 하지 않아도 계산이 가능 하다면 val를 사용 하시지 않으셔도 됩니다.

     

    value 는 값을 뜻하는 것입니다. 

     

    VALUE를 붙이지 않아도 정상적으로 실행된다면 붙이지 않아도 됩니다. 

     

    폼에 입력된 데이터를 워크시트에 입력할 때 VALUE를 붙이면 숫자는 수치 데이터, 텍스트는 텍스트 형식, 날짜는 날짜 형식으로 입력되는데, 붙이지 않으면 모두 텍스트 형식으로 입력 되기때문에 데이터 형식을 맞춰주는 작업을 해야 합니다. 

     

    실제 시험에서 지시사항에 별다른 설명이 없었다면 둘 중 어느것을 사용하시든 정확한 결과가 나오면 정답으로 인정 될 것 입니다.

     

    프로시저에서 사용하는 함수와 엑셀에서 사용하는 함수가 달라 작동되지 않을 수 있으므로 잘 확인 한 후 사용하세요. 

     

     

    3. 결과가 정확히 나온다면 상관 없지만 0.2 라는 값이 표시될 땐 #.00 은 .20 으로 0. 이 표시되지 않을 수 있습니다. 

     

    좋은 하루 되세요. 

· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.