0
 35   4   1
  View Articles

Name  
   손병목  (2002-02-10 11:34:22, Hit : 17284, Vote : 1202)
Homepage  
   http://www.itmembers.net
Subject  
   예제로 익히는 비베 기초(4)-구구단
벌써 수요일입니다. 늘 느끼는 것이지만, 시간의 속도에 점점 가속도가 붙는 것 같습니다. 예쁜 딸 동주가 새벽에 우유 달라고 우는 바람에 일찍 잠이 깼습니다.
예제로 익히는 비베 기초, 그 네번째 강좌를 신선한 새벽에 시작합니다.

오늘은 For ∼ Next 문을 사용하여 구구단을 출력하는 프로그램을 만들어 볼 예정입니다.


위 화면을 보면 벌써 감이 오겠지만, 지난 강좌에서 다룬 메뉴 프로그램에 구구단을 출력하는 폼을 하나 추가하고, 메뉴에도 구구단 메뉴를 하나를 추가하면 됩니다.
따라서, 오늘 강좌를 위해서는 지난 시간에 만들어 둔 소스 파일이 필요합니다.(만약 없으신 분은 바로 앞 강좌에서 소스를 다운로드하여 압축을 해제한 다음 따라하시면 됩니다.)

시작합니다.

  1. 지난 시간에 만든 프로젝프 파일을 엽니다.
    어떻게 여냐구요? 지난 시간에 만든 "메뉴.vbp" 파일을 더블클릭하면 됩니다.

  2. [프로젝트] 메뉴의 [폼 추가]를 클릭하여 새로운 폼을 엽니다.
    [폼 추가] 대화 상자에서 기본적으로 선택되어 있는 그냥 '폼'을 열면 됩니다.

  3. 새로 추가한 폼의 속성을 다음과 같이 수정합니다.


    • (이름) : frmGugu
      지난 시간에 말씀드렸죠? 일단 폼을 만들면 폼의 성격에 맞는 이름을 부여하라고... 그냥 Form1과 같이 무의미한 상태로 놓아두면 나중에 굉장히 헤깔리게 됩니다.
    • BorderStyle : 1 - 단일고정
      테두리의 크기를 고정합니다.
    • Caption : 구구단
      제목 표시줄에 표시될 창 제목입니다. Titlebar의 타이틀.
    • MDIChild : True
      새로 추가된 폼이 지난 시간에 만든 전체 메뉴를 실행하는 화면(MDI창) 안에서 실행되도록 하는 것입니다. 이것을 기본 값인 False 상태로 놓아두면.... (궁금하시면 직접 한번 해보세요!)


  4. 오른쪽 프로젝트 창이 다음과 같은 모습이면 정상입니다.


  5. 이제 본격적으로 구구단 프로그램을 만들어 보도록 하죠.

    • 먼저 새로 만든 폼에 다음과 같이 컨트롤을 배열합니다.


    • 각 컨트롤의 속성을 다음과 같이 변경합니다.


  6. 커맨드 버튼을 더블클릭하여 cmdGuguResult의 Click 이벤트 함수가 보이도록 코드 창을 엽니다.
    말은 복작하게 했지만, 그냥 "구구단 출력"이라는 버튼을 더블클릭하란 말입니다.

  7. 지금부터 코드를 입력합니다.


    • 다음과 같이 변수를 먼저 선언합니다.
      여기서 작은 따옴표(')로 시작하는 것은 설명문이라고 했습니다. 굳이 입력하지 않는다고 프로그램에 오류가 생기는 건 아니지만 항상 주석을 다는 습관도 중요합니다.

      Dim intGuGu As Integer '텍스트박스에서 입력받은 문자를 숫자로
      Dim intTemp As Integer 'For Next 문에서 반복할 변수
      Dim strResult As String '구구단 결과 문자를 저장할 변수

    • 다음 줄부터는 텍스트 박스를 통해 입력한 숫자에 해당되는 구구단을 출력하는 코드입니다. 아래와 같이 정확하게 입력하시기 바랍니다.단, 원으로 된 숫자는 입력하면 안됩니다...설명하기 위해 달아놓은 것이니까요.

      ① lblGuguResult.Caption = "" '레이블을 문자열을 초기화합니다.

      ② intGuGu = Val(txtGuguInput.Text)

          For intTemp = 1 To 9

               'Chr$(10) -> 줄을 끝까지 채우는 역할
               'Chr$(13) -> Return 줄을 바꾸는 역할

      ④        strResult = Val(intGuGu) & " * " & Val(intTemp) & " = " & Val(intGuGu * intTemp) & Chr$(13)

               '기존 레이블 caption에 새로운 문자열을 추가함
      ⑤        lblGuguResult.Caption = lblGuguResult.Caption + strResult

          Next

    • 풀어서 설명드리죠...
      • 만약 정말로 정말로 프로그래밍에 대해 생짜 초보인 사람은 위의 코드를 이해하기 매우 어려울 수 있습니다. 그러나 몇 가지 힌트만 제공할테니 한번 자신의 논리력을 테스트한다고 생각하고 이해가될 때까지 보고 또 보세요...
      • ①의 코드는 레이블의 값을 초기화합니다. 이 프로그램은 입력한 숫자에 해당하는 구구단을 출력하는 프로그램입니다. 따라서 처음에 3단을 입력했다가, 다시 5단을 입력했을 때 처음 3단에 해당하는 구구단을 출력한 그 결과를 싹 지우고 5단을 출력해야 됩니다. 이 문장은 기존의 결과를 싸~악 지우는 역할을 합니다.
      • ②는 텍스트 박스에서 입력한 숫자를 받아들이는 기능입니다. 여기서 Val() 함수는 문자열을 숫자로 바꾸는 기능을 합니다. 텍스트 박스로 입력된 것은 그것이 숫자든 문자든 모두 문자열로 인식하므로, 예를 들어 문자 "3"을 입력했다면 그 값을 숫자 3으로 바꾸어 주는 것입니다.
      • ③에서 ⑥까지는 For ∼ Next 반복문입니다. 그 뜻을 살펴보자면,
      • ③ intTemp 라는 변수를 1에서 9까지 하나씩 증가시키면서 반복하라는 것입니다.
      • 이번 프로그램 코드의 핵심은 바로 ④,⑤번이죠. strResult 변수는 실제 출력하는 문자열을 저장하고 있는 변수인데, 등호(=) 뒤의 여러 값들을 연결(&)하여서 하나의 변수(strResult)에 저장한 것입니다. 이 strResult 변수의 내용을 또 누적해서 최종적으로 9번까지 누적해서 저장해 놓은 것이 바로 ⑤번에 있는 lblGuguResult.Caption입니다. 선뜻 이해하기 힘들죠? 그러나 본인이 스스로 이 코드를 몇번이고 뚫어져라 보면서 이해하는 수밖에 없습니다. 말로 풀면 풀수록 더 헤깔릴 수 있으니까요. 프로그래밍은 프로그래머 자신의 머리로 사고한 내용을 풀어내어야 합니다. 아무리 숙달된 프로그래머도 남이 만들어 놓은 코드를 쉽게 이해하기는 힘듭니다. 언제나 자신의 방식이 있으니까요. (물론 지금 우리가 하고 있는 것을은 기본 중의 기본이라 프로그래밍을 하는 사람은 누구나 알고 있는 기초적인 것입니다. 그러나 어떠한 프로그래머도 이와 같은 초보 시절이 있었으니... 기죽지 말고 끝까지 찬찬히 코드를 읽어보시기 바랍니다. 이해될 때까지...)


  8. 이로써 구구단을 출력하는 프로그램이 완성되었습니다. 이제 메뉴에 구구단 폼(창)을 불러오는 메뉴를 추가해야겠죠?


    • MDI 폼(frmMenu)을 선택한 다음 [도구] 메뉴에서 [메뉴 편집기(Ctrl+E)]를 실행합니다.
      [메뉴 편집기]가 흐리게 보인다구요? 그건 frmMenu 폼(MDI 폼)이 열려있지 않기 때문입니다. 오른쪽 프로젝트 창에서 frmMenu를 더블클릭하여 폼을 열고 난 다음에 다시 해보세요.
    • 위의 그림과 같이 가장 아래에 '구구단' 메뉴를 추가합니다.


  9. frmMenu 폼의 [비베 입문(A)]의 하위 메뉴에 '구구단'이 추가되었으면, '구구단' 메뉴를 클릭합니다.(그러면 아래와 같은 코드 창이 열립니다.)


    • mnuGugu1_Click() 함수에 위 그림과 같이
      frmGugu.Show 코드를 입력합니다. 즉 '구구단' 메뉴를 클릭하면 frmGugu라는 폼(창)을 열라는 뜻입니다.


  10. 이제 다 됐습니다. [F5] 키를 눌러 프로그램을 실행해 보세요. 그리고 [비베입문(A)] 메뉴의 하위 메뉴인 [구구단]을 클릭해 보세요. 그리고 텍스트 박스에 원하는 숫자를 입력하고 '구구단 출력' 단추를 눌러 보세요. 제대로 출력이 됩니까?
    흐흑~ 안된다구요? 그럼 어딘가 잘못 따라하신 것이 있을 겁니다. 처음부터 다시 찬찬히 해보세요. 다시 천천히...


  11. 정상적으로 되었으면 저장을 하세요. 새로 만든 폼의 이름은 '구구단'으로 하는 것이 좋겠네요.
    실제로 프로그래밍을 할 때는 작업 중간에 틈틈이 저장하는 습관을 들이세요. 나중에 후회하지 않습니다.


글 쓰는데 두시간 정도가 걸리네요... 벌써 출근 시간이 가까워지고 있습니다. 행복한 하루 되세요...
그리고 오늘 실습한 내용 소스입니다. 참고하세요....


이상 동주아빠 손병목이었습니다.


손병목
위의 설명 중에서 chr$(10)과 chr$(13)의 의미가 다소 부정확하게 표현되었습니다.
관련 설명은 [질문 답변 게시판]의 103번 게시물을 참조하세요.
어떤 분이 질문하셔서 답변을 하다가 보니 위 설명이 다소 부정확하다는 것을 발견했습니다.
 2002/08/08 09:17:16    

손병목
게시물 번호가 바뀌었네요.
http://www.itmembers.net/board/view.php?id=qna&no=126
 2003/04/03 08:38:49    
Prev
   예제로 익히는 비베 기초(5)-구구단2

손병목
Next
   예제로 익히는 비베 기초(3)-메뉴만들기

손병목


Copyright 1999-2021 Zeroboard / skin by Zetyx