logo

한국어

지식나눔

한국아마추어천문학회 한국천문연구원 회원가입안내



  • 389
  • 1921389
컴퓨터천문학
2010.10.07 21:17

[컴퓨터 천문학] 02. YESNO 함수 작성

댓글 0 조회 수 8623 추천 수 0
?

단축키

이전 문서

다음 문서

+ - Up Down Comment Print Files
?

단축키

이전 문서

다음 문서

+ - Up Down Comment Print Files

 

이 글은 독일우주운영센터(GSOC)의 과학자인 Oliver Montenbruck와 Thomas Pfleger가 공동 출판한 Astronomy with your Personal Computer를 번역 후, 제 나름의 해석을 더하여 작성된 것임을 알리며, 원저의 베이직 코드를 웹 환경에서 쉽게 실행해 볼 수 있도록 자바스크립트로 변경하여 작성하였음을 밝힙니다.

 

YESNO 함수는 질문에 대해 YES와 NO로 간단하게 응답을 하는 기능입니다.


이 함수가 호출될 때 앞서 작성한 DEFAULT 함수에서 YESNO 함수로 질문을 전달할 수도 있고 전혀 다른 함수에서 질문을 전달할 수도 있습니다. 어쨋든 사용자는 질문을 본 후 YESNO로 대답을 하게 됩니다.


이 때 사용자는 YES의 경우 "Y" or "y"로 입력할 수 있고, NO의 경우 "N" or "n"의 형태로 입력할 수 있습니다.

입력 유형 두 가지를 모두 고려하여 모듈을 설계합니다. 


끝으로 사용자는 YES, NO가 아닌 전혀 다른 형태의 대답을 할 수도 있습니다.

이럴 경우에는 "무엇?" 이라는 메세지를 출력하고 다시 질문을 하도록 만들어 나갑니다.


정리하면

1. 질문에 대해 사용자는 YESNO의 단일 문자인 Y/N으로 대답한다.

2. 사용자 입력 사항을 고려하여 예외 처리로 "무엇?" 이라는 메세지를 출력하고 다시 질문한다.

3. 질문에 대한 답이 주어지면 변수 E에 1과 2를 할당한다.


그럼 PseudoCode를 작성해 보겠습니다.

1. 변수 p에 사용자의 입력값을 저장한다.

2. 변수 p가 Y 이거나 변수 py이라면 변수 E1을 할당하고 메세지를 출력한다.

3. 변수 p가 N 이거나 변수 pn이라면 변수 E0을 할당하고 메세지를 출력한다.

4. 그 외에 다른 형태의 문자가 입력되면 "무엇인가요?"라는 메세지를 보여준 후 다시 질문을 출력하여 값을 입력 받는다.


실제 코드는 다음과 같습니다.

<script type="text/javascript" language="javascript">

       //YESNO 함수

        YESNO = function(q)

{

                //질문을 보여준다.

var p = prompt( q );


                //입력값이 YES라면

if ( (p == "Y") || (p=="y") ) {

E = 1

alert(p+"를 선택했으며 변수 E에 할당된 값은 "+ E + " 입니다.");

                //입력값이 NO라면

                else if ( (p == "N") || ( p=="n" ) ) {

E = 0

alert(p+"Y를 선택했으며 변수 E에 할당된 값은 "+ E + " 입니다.");

                //입력값이 YES / NO가 아니라면

                else {

alert("무엇인가요?");

p = prompt( q );

}

}


        //YESNO 함수를 실행하며 질문을 전달한다.

YESNO("질문이 잘 보입니까?");

</script> 


YES / NO의 형태가 아닌 값을 입력한 경우

etc.PNG 


출력값

etc_ans.PNG 


NO에 해당하는 값을 입력했을 때

NO.PNG 


NO에 해당하는 답

NO_ans.PNG 


YES 형태의 답을 입력했을 때

YES.PNG 


YES 입력값에 대한 출력값

YES_ans.PNG


이상 가장 기본적인 형태의 함수를 만들어 보았습니다.

다음에는 각/시간, 분 그리고 초를10진수 형태의 각/시간 으로 변환하고 그 반대로도 변환이 가능한 함수를 만들어 보겠습니다.


게시물 이용시 출처 및 저작자 반드시 표시, 게시물을 이용한 영리행위 비허용, 저작자와의 협의 없이 내용에 대해 임의 변경, 수정 비허가


Computer Astrology

번호 제목 글쓴이 날짜 조회 수
20 Optical SETI (1) [1]  image [레벨:12]박종현 부지부장 2019.03.16 373
19 [SETI] 10. 성간 전파 프로젝트와 페이퍼 프로젝트 [1]  fileimage [레벨:12]박종현 정보부장 2011.11.10 16721
18 [SETI] 9. SETI Net [1]  fileimage [레벨:12]박종현 정보부장 2011.11.09 11555
17 [SETI] 8. Allen Telescope Array [1]  fileimage [레벨:12]박종현 정보부장 2011.11.08 11943
16 [SETI] 7. SETI@home [2]  image [레벨:12]박종현 정보부장 2011.11.07 12157
15 [SETI] 6. The SETI League and Project Argus [1]  image [레벨:12]박종현 정보부장 2011.11.01 12006
14 [SETI] 5. MOP and Project Phoenix [2] [1]  fileimage [레벨:4]정보부차장(유환용) 2011.07.13 10488
13 [SETI] 4. Sentinel, META, and BETA  image [레벨:12]박종현 2011.06.16 9972
12 [SETI] 3. Early work [1]  image [레벨:12]박종현 2011.06.15 9025
11 [SETI] 2. Radio experiments [1]  image [레벨:12]박종현 2011.06.15 8917
10 [SETI] 1. SETI [1]   [레벨:12]박종현 2011.06.15 11510
9 [컴퓨터 천문학] 05. julian day를 CALDAY로(1) [1]   [레벨:12]박종현 2011.04.25 10295
8 [컴퓨터 천문학] 04. 1900년 1월 0.5 이후 달력날짜를 율리우스 ... [1]  file [레벨:12]박종현 2010.11.04 9265
7 [컴퓨터 천문학] 04. 1900년 1월 0.5 이후 달력날짜를 율리우스 ...  image [레벨:12]박종현 2010.11.04 13289
6 [컴퓨터 천문학] 03.MINSEC 함수(3) [1]  fileimage [레벨:12]박종현 2010.10.19 9045
5 [컴퓨터 천문학] 03.MINSEC 함수(2) [1]   [레벨:12]박종현 2010.10.13 8661
4 [컴퓨터 천문학] 03.MINSEC 함수(1)   [레벨:12]박종현 2010.10.13 8964
» [컴퓨터 천문학] 02. YESNO 함수 작성 [1]  fileimage [레벨:12]박종현 2010.10.07 8623
2 [컴퓨터 천문학] 01. DEFAULT 함수 [6]  fileimage [레벨:12]박종현 2010.10.07 9409
1 컴퓨터 천문학 [2] [1]   [레벨:12]박종현 2010.10.05 34796
Board Pagination ‹ Prev 1 Next ›
/ 1
Designed by hikaru100

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

SketchBook5,스케치북5

SketchBook5,스케치북5

SketchBook5,스케치북5

SketchBook5,스케치북5