วันอาทิตย์ที่ 8 กันยายน พ.ศ. 2556

Visual Basic 6.0 : Exercise แบบฝึกหัด วิชวลเบสิก 6.0

Visual Basic 6.0 : Exercise แบบฝึกหัด วิชวลเบสิก 6.0

     


Exercise 1

Calendar/Time Display

   SOURCE  :   www.kidwares.com

1 Design a window application that displays the current month, day, and year.  Also, display the current time, updating it every second (look into the Timer control).  Make the window look something like a calendar page.  Play with object properties to make it pretty.

ให้นักเรียนออกแบบหน้าต่างแอ็ปปลิเคชัน ที่แสดงเดือนปัจจุบัน วันที่ และปี  และยังแสดงเวลา ณ ปัจจุบัน ที่จะอัปเดตทุกวินาทีอีกด้วย (เหมือนกับนาฬิกาจับเวลา)  หน้าต่างแอ็ปปลิเคชันนี้จะคล้ายเหมือนใบปฏิทิน  และให้นักเรียนตกแต่งอ็อบเจ็กต์ต่างๆ ให้ดูดี




2 Configure the properties of the related objects like the followings.
 ทำการตั้งค่าต่างๆ ให้กับอ็อบเจ็กต์ที่เกี่ยวข้อง เหมือนค่าที่กำหนดมาให้ตามนี้

Configuration 1





Configuration2



Configuration3



3  Attach the source codes to the objects. There is only the Timer "timDisplay" object that we have to attach our source codes to.  Although there is no any variable declared, but we have to type the code "Option Explicit" at the General Declarations module.
 ทำการผูกซอร์สโค้ด (รหัสโปรแกรม) เข้ากับอ็อบเจ็กต์  สำหรับงานนี้จะมีเพียงอ็อบเจ็กต์ไทเมอร์ ที่ชื่อ timDisplayเท่านั้น ที่เราจะต้องใส่โค้ดผูกไว้

Source codes that we have to type.


This is the "Sample Special" output of our project ,
(according to our "date/time" format of our machine configuration)
ตัวอย่าง ผลการรันโปรแกรม
(การแสดงผล ขึ้นอยู่กับการตั้งค่า รูปแบบ "วัน/เวลา" ของเครื่องคอมพ์ที่นักเรียนใช้งานอยู่)

Visual Basic 6.0 : Exercise 2 " Pizza Order"

Visual Basic 6.0 : Exercise 2 " Pizza Order"


 
Exercise 2

Pizza Order Application

 We had just learned about programming with Microsoft Visual Basic 6.0 and tried to create two Windows applications (using Visual Basic 6.0), the first one was "Stop Watch" and the second was "Calendar/Time".  Some people have told me, the teacher, that it is interesting and challenging, while some other people have never said any word but have just thought that it is boring. Yes, the teacher realizes that programming is so valuable because it can develop anyone both systematic thinking and solvingWell, the teacher knows  that anybody can never hand on it if he is not interested in programming. But, now the teaching is not over, the show must go on! 
วกเราได้เรียนรู้เกี่ยวกับการโปรแกรมด้วยภาษาวิชวลเบสิก 6.0  และได้ลองพัฒนาแอ็ปปลิเคชันที่ทำงานในระบบวินโดวส์ 2 แอ็ป ด้วยกัน โดยแอ็ปแรกเป็นนาฬิกาจับเวลา แอ็ปที่สองเป็นแอ็ปบอกวันเวลา  นักเรียนหลายคนก็บอกกับครูว่า "น่าสนใจและท้าทายมาก"  ขณะที่นักเรียนอีกหลายคนไม่พูดอะไรสักแอ่ะ...คิดอยู่อย่างเดียวว่า "มันน่าเบื่อ"   ใช่เลย..ครูตระหนักดีอยู่เสมอว่า ความจริงแล้วนะ.. การเรียนรู้เรื่องการโปรแกรมมันมีคุณค่าในตัวของมันเองอยู่แล้ว  เพราะมันเป็นการพัฒนาผู้เรียนให้รู้จักการคิด/การแก้ปัญหาอย่างเป็นระบบ  ครู..ทราบดีว่า.. นักเรียนคนไหนก็ตามที่รู้สึกว่าตนเองไม่สนใจในเรื่องของการโปรแกรมแล้วละก็ คงยากนะที่จะเอาดีในเรื่องนี้ได้ ... แต่ช้าก่อน... การเรียนการสอนก็คงหยุดไม่ได้ ... ก็ต้องว่ากันต่อไป..



  "Pizza Order" Application
แอ็ปปลิเคชัน "สั่งพิซซ่า"

     SOURCE  :   www.kidwares.com

1. Start a new project.  We'll build a form where a pizza order can be entered by simply clicking on check boxes and option buttons.
ให้นักเรียนเข้าไปที่หน้าจอหลักของ Microsoft Visual Basic 6.0 เหมือนที่เราเคยทำ ด้วยการเลือก Standard EXE เพื่อสร้าง New project .... อย่าลืม Save นะ  ซึ่งการ Save ครั้งแรก จะเป็น Save As โดยนักเรียนต้อง Save ฟอร์มก่อน แล้วจึง save โปรเจ็กต์ ... เลือก Folder ให้เรียบร้อย  (เรื่องนี้ นักเรียนถูกย้ำมาจนเป็นทักษะดีอยู่แล้วจากครูผู้สอน)  ตอนนี้เรากำลังจะสร้างแอ็ปสั่งพิซซ่า  โดยผู้ใช้ก็แค่ทำการคลิกเลือกตัวเลือก และติ๊กรายการต่างๆ แล้วสั่งการผ่านปุ่มคำสั่ง..

2. Draw three frames.  In the first, draw three option buttons, in the second, draw two option buttons, and in the third, draw six check boxes.  Draw two option buttons on the form.  Add two command buttons.  Make things look something like this.
ให้นักเรียนวาดเฟรม (frame) 3 เฟรม  แล้ววาดปุ่มอ็อปชัน (option button) ใส่ไว้ในเฟรมแรก 3 ปุ่ม  ส่วนเฟรมที่สองวาดปุ่มอ็อปชันใส่ไว้ 2 ปุ่ม  ส่วนเฟรมที่สามวาด check box ใส่ไว้ 6 ช่อง ด้วยกัน  แล้ววาดปุ่มอ็อปชันอีกสองปุ่มใส่ไว้ในฟอร์ม (ดูโซน 4 ประกอบ)  และวาด command button (ปุ่มคำสั่ง) สองปุ่ม (ไว้ในโซน 5) 

Fig.1  The Form which is being designed by us.
นี่เป็นฟอร์มที่กำลังได้รับการออกแบบจากนักเรียน



3. Set the properties of the form and each control.
หลังจากออกแบบเสร็จแล้ว ต่อไปนักเรียนต้อง set the properties (ตั้งค่าคุณสมบัติ) ของฟอร์ม และคอนโทรล (control )แต่ละตัว  ดังนี้

 



  • Form1:
    BorderStyle    1-Fixed Single
    Caption          Pizza Order
    Name            frmPizza
  • Frame1:
    Caption    Size

  • Frame2:
    Caption    Crust Type

  • Frame3
    Caption    Toppings


  • Option1:
    Caption    Small
    Name      optSize
    Value      True

  • Option2:
    Caption    Medium
    Name      optSize (yes, create a control array)

  • Option3:
    Caption    Large
    Name      optSize

  • Option4:
    Caption    Thin Crust
    Name       optCrust
    Value       True

  • Option5:
    Caption    Thick Crust
    Name       optCrust (yes, create a control array)

  • Option6:
    Caption    Eat In
    Name    optWhere
    Value    True

  • Option7:
    Caption    Take Out
    Name       optWhere (yes, create a control array)

  • Check1:
    Caption    Extra Cheese
    Name      chkTop

  • Check2:
    Caption    Mushrooms
    Name       chkTop (yes, create a control array)

  • Check3:
    Caption    Black Olives
    Name       chkTop


  • Check4:
    Caption    Onions
    Name      chkTop

  • Check5:
    Caption    Green Peppers
    Name      chkTop

  • Check6:
    Caption    Tomatoes
    Name      chkTop

  • Command1:
    Caption    &Build Pizza
    Name      cmdBuild

  • Command2:
    Caption    E&xit
    Name      cmdExit





4. Declare the following variables in the general declarations area:
ให้นักเรียนเลือก View/Code   แล้วพิมพ์ Source codes ในส่วนของ  general declarations (ส่วนประกาศทั่วไป)     เพื่อประกาศตัวแปร (to declare the variables) 3 ตัว เป็นตัวแปรชนิด String (เก็บข้อมูลที่เป็นข้อความ)  ได้แก่  PizzaSize (เก็บข้อมูลขนาดของพิซซ่าที่ลูกค้าสั่ง),  PizzaCrust (เก็บข้อมูลว่า ลูกค้าสั่งพิซซ่าที่มีขอบบางหรือหนา),   PizzaWhere (เก็บข้อมูลว่า พิซซ่าที่ลูกค้าสั่งนั้น จะกินที่ร้าน หรือแพ็กห่อ)

    Option Explicit
      Dim PizzaSize As String
      Dim PizzaCrust As String
      Dim PizzaWhere As String




5. Attach this code to the Form_Load procedure.  This initializes the pizza size, crust, and eating location.
ให้นักเรียนผูกโค้ด (attach code) เข้ากับฟอร์ม  (โดยการทำดับเบิลคลิกที่ฟอร์ม  ก็จะเข้าสู่โมดูล หรือโพรซิเยอร์ (procedure) ที่ชื่อ Form_Load แล้วนักเรียนก็ใส่โค้ดเข้าไป  บรรดาโค้ดตรงนี้ จะเป็นการกำหนดค่าเริ่มต้น (initialization) ให้กับตัวแปรทั้งสามตัว ที่เราประกาศไว้ คือ PizzaSize, PizzaCrust และ PizzaWhere

Private Sub Form_Load()
  PizzaSize = "Small"
  PizzaCrust = "Thin Crust"
  PizzaWhere = "Eat In"
End Sub




6.  Attach this code to the three option button array Click events.  Note the use of the Index variable:
ให้นักเรียน attach code เข้ากับปุ่มอ็อปชันในแต่ละเฟรม (โดยดับเบิลคลิกที่ปุ่มอ็อปชันใดๆ ในเฟรมนั้น แล้วใส่โค้ด) 


Private Sub optSize_Click(Index As Integer)
[ดับเบิลคลิกที่ปุ่ม optSize (ใดก็ได้ในสามปุ่ม ของโซน 1) แล้วใส่โค้ดข้างล่างนี้เข้าไป ]
  PizzaSize = optSize(Index).Caption
  (โค้ดนี้ จะให้อ่านค่า จำนวนเต็ม 0, 1 หรือ 2 ซึ่งแทนขนาดเล็ก กลาง ใหญ่  ของขนาดถาดพิซซ่า เอาค่าไปเก็บไว้ในตัวแปร PizzaSize)
End Sub

Private Sub optCrust_Click(Index As Integer)
[ดับเบิลคลิกที่ปุ่ม optCrust (ใดก็ได้ในสองปุ่ม ของโซน 2) แล้วใส่โค้ดข้างล่างนี้เข้าไป ]  
  PizzaCrust = optCrust(Index).Caption
  (โค้ดนี้ จะให้อ่านค่า จำนวนเต็ม 0 หรือ 1 ซึ่งแทนขอบพิซซ่า อย่างบาง หรืออย่างหนา  เอาค่าไปเก็บไว้ในตัวแปร PizzaCrust)
End Sub


Private Sub optWhere_Click(Index As Integer)
[ดับเบิลคลิกที่ปุ่ม optWhere (ใดก็ได้ในสองปุ่ม ของโซน 4) แล้วใส่โค้ดข้างล่างนี้เข้าไป ] 
   PizzaWhere = optWhere(Index).Caption
    (โค้ดนี้ จะให้อ่านค่า จำนวนเต็ม 0 หรือ 1 ซึ่งแทนว่าจะกินพิซซ่าที่ไหน กินที่ร้าน หรือนำกลับบ้าน  เอาค่าไปเก็บไว้ในตัวแปร PizzaWhere)
End Sub



7. Attach this code to the cmdBuild_Click event.
ให้นักเรียน attach code ต่อไปนี้  เข้าไปที่ปุ่มคำสั่ง cmdBuild

Private Sub cmdBuild_Click()
  Dim Message As String
  Dim I As Integer
  Message = PizzaWhere + vbCr
  Message = Message + PizzaSize + " Pizza" + vbCr
  Message = Message + PizzaCrust + vbCr
        For I = 0 To 5
  If chkTop(I).Value = vbChecked Then Message = Message + chkTop(I).Caption + vbCr
      Next I
      MsgBox Message, vbOKOnly, "Your Pizza"
End Sub


This code forms the first part of a message for a message box by integrating the pizza size, crust type, and eating location (vbCr is a symbolic constant representing a ‘carriage return’ that puts each piece of ordering information on a separate line).  Next, the code cycles through the six topping check boxes and adds any checked information to the message.  The code then displays the pizza order in a message box.
โค้ดในส่วนนี้ จะทำการสร้าง message ในลักษณะของ message box  ที่จะบูรณาการเอา ขนาดของพิซซ่า  ขอบหนาหรือบาง และจะกินที่ร้านหรือแพ็กกล่อง (vbCr คือ symbolic constant หรือค่าคงที่ ในภาษาวิชวลเบสิกที่หมายถึงการสั่งให้ขึ้นบรรทัดใหม่ หรือ carriage return ก็คือ "การปัดแคร่" ซึ่งขอยืมศัพท์ของพิมพ์ดีดมาอีกทีนั่นเอง)



8.  Attach this code to the cmdExit_Click event.
ผูกคำสั่ง End เข้ากับปุ่มคำสั่ง cmdExit
Private Sub cmdExit_Click()
  End
End Sub




9.  Run the application, the message box will be appeared.
เมื่อรันโปรแกรม ก็จะได้ application ที่มี user interface แบบนี้



The Application User Interface
นี่คือหน้าตาของแอ็ปปลิเคชันของเรา



Message Box
เม็ซเสซบ็อกซ์ที่ได้

The Atmosphere of World Class Programming Competition

The Atmosphere of World Class Programming Competition

Here is the atmosphere of the World class Programming Competition that be held in St.Petersberg, European Russia.
บรรยากาศการแข่งขันการแข่งขันเขียนโปรแกรมระดับโลก ที่จัดขึ้นที่นครเซนต์ปีเตอร์สเบิร์กส์  ประเทศรัสเซียส่วนที่อยู่ในทวีปยุโรป

brains00 800x532 Brains


brains01 Brains
1. Sports arena. One hundred and twenty teams.Two cameras online broadcast.  .. absolute silence all five hours.
สถานที่แข่งขันการโปรแกรมระดับโลกนี้ต้องใช้สถานที่ขนาดยักษ์ล่ะนะ นั่นคือ สปอร์ตอารีน่า  มีทีมเข้าร่วมการแข่งขัน 120 ทีม  แข่งกันภายใต้บรรยากาศเงียบวังเวงอยู่ 5 ชั่วโมง
brains02 Brains
2. No action, just incredible mental work.  
ทำอะไรไม่ได้  อาศัยนั่งคิดอยู่ในใจ
brains03 Brains
3. 
brains04 Brains
4. This is the final of an international team championship on programming ACM ICPC. For the first time in history, it took place in Russia.
แข่งขันกันที่ประเทศรัสเซีย  เป็นการแข่งขันรอบสุดท้าย 
brains05 Brains
5. This is the steepest in the world team competition programmers.
นี่เป็นการแข่งขันเขียนโปรแกรมระดับโลก ที่จัดได้ว่าหินที่สุดแล้ว
brains06 Brains
6. 35,000 participants from 91 countries in 2322 universities have struggled to get into this room, and solve 11 challenging algorithmic problems 
มีผู้เข้าร่วมงานนี้ รวมกันก็กว่า 3 หมื่นคน  จาก 90 ประเทศ  สถาบันการศึกษา 2 พันกว่าแห่ง  
brains07 Brains
7. This is the best young brains in the world.
นี่แหละสุดยอดเยาวชนสมองเพชรของโลก 
brains08 Brains
8. Despite the fact that they are still studying in universities, those who reached the final are already employed
แม้ว่าพวกเขาจะกำลังศึกษาอยู่ก็จริง  แต่ถ้าใครเข้ามาถึงรอบสุดท้ายได้ ก็มีงานรออยู่แล้ว 
brains09 Brains

brains10 Brains
10. They are already guaranteed salary of 120,000 dollars per year and the proportion of shares in companies
มันสมองเหล่านี้ จะมีเงินเดือนปีละกว่า 120,000 เหรียญสหรัฐ (ตีเป็นเงินไทย ก็ประมาณ 3 ล้านกว่าบาท)

brains11 Brains
brains12 Brains

brains13 Brains

brains14 Brains

brains15 Brains
15. They are waiting for the company that you use every day - it's Google, Facebook, Yandex ... And of course a complex and interesting startups. Work in banks they consider "the floor."
เด็กพวกนี้อยากทำงานกับ Google, Facebook, Yandex  เป็นงานท้าทาย น่าสนใจ  ส่วนการทำงานแบ็งค์ ถือว่าเป็นงานบ้านๆ ธรรมดาๆ 
brains16 Brains

brains17 Brains

brains18 Brains
18.
brains19 Brains
19.
brains20 Brains
20.
brains21 Brains
21.
brains22 Brains
22. Balls are awarded for completed tasks as well as for other services such as "The first team to perform a task F"
brains23 Brains
23. After 5 hours, these guys in black T-shirts will be victorious. Before that, in different combinations, pererburgskaya team at the National Research University of Information Technologies, Mechanics and Optics (ITMO) became world champions four times.
ทีมชนะเลิศคือ ทีมของสาขาเครื่องกลและแสง มหาวิทยาลัยวิจัยเทคโนโลยีสารสนเทศแห่งชาติ(รัสเซีย) 
brains24 Brains
24. Second place went to the team of Shanghai University of Technology, the third - the University of Tokyo
อันดับสองคือ ทีมหาวิทยาลัยเทคโนโลยีเซี่ยงไฮ้ (ประเทศจีน)  อันดับสามคือ ทีมมหาวิทยาลัยโตเกียว ๖ประเทศญี่ปุ่น)
brains25 Brains



brains26 Brains
26. For those who know the basics of probability theory and is able to program the task may seem simple, but it is not - at the approach of the parameters of the assumed boundaries have serious problems ...
brains27 Brains


brains28 Brains
28.
brains29 Brains
29.
brains30 Brains
30.
brains31 Brains
31.
brains32 Brains
32.
brains33 Brains
33.
brains34 Brains
34.
brains35 Brains
35.
brains36 Brains
36.
brains37 Brains

Facebook Head Office

Facebook Head Office สำนักงานใหญ่เฟสบุ๊ก

                       



Well, let's look at the world class Information and Technology company, Facebook, that serves millions of people globally. But their Head office is so common like any other office.
เอาล่ะ... นักเรียน  อยากให้เรามาดูบริษัทระดับโลกอย่าง Facebook ที่ให้บริการคนหลายล้านคนทั่วทั้งโลกาใบใหญ่นี้ ดูอ็อฟฟิศสำนักงานใหญ่ของพวกเขาสิ  ธรรมดาๆ บ้านๆ ซะจริงๆ (พวกฝรั่งเขาจะทำอะไรเรียบง่าย ไม่มากพิธี ไม่มีอะไรยุ่งยาก  แต่คุณภาพงานของพวกเขาที่ออกมานั้น สุดยอด)


Head Office of Facebook is in Palo Alto, California. 
สำนักงานใหญ่เฟสบุ๊ก  ณ  เมืองพาโลอัลโต มลรัฐแคลิฟอร์เนีย

1309 Head office of Facebook 

We can see that their office is not sophisticated but very common.
นักเรียนคงเห็นแล้วนะว่า ออฟฟิศใหญ่ของ  Facebook ก็ไม่ได้เลิศหรูสลับซับซ้อนอะไร แบบบ้านๆ ธรรมดาๆ (เพราะความ Hitech  จะไปอยู่ที่ Data Center แทน)

1309 Head office of Facebook
1.
2247 Head office of Facebook
2. 

3198 Head office of Facebook
3. 

4163 Head office of Facebook
4. 

5143 Head office of Facebook
5. 
6135 Head office of Facebook
6.
7133 Head office of Facebook
7. 
8120 Head office of Facebook
8. .
9104 Head office of Facebook
9. .
1097 Head office of Facebook
10.
11129 Head office of Facebook
11.
12107 Head office of Facebook
12.
1385 Head office of Facebook
13.
1482 Head office of Facebook
14.
1578 Head office of Facebook
15. Their office is like any common office, nothing is superb.
 ออฟฟิศดูธรรมดาๆ บ้านๆ เหมือนออฟฟิศทั่วไปที่ไหนๆ นั่นเอง  ไม่มีสิ่งไหนเลยที่เลิศลอยเกินเลย
1673 Head office of Facebook
16. The employees has never ware any uniform.
พนักงานของเขา ก็แต่งตัวแบบง่ายๆ บ้านๆ ไม่ต้องมีเครื่องแบบอะไรให้มากพิธี 

1767 Head office of Facebook สำนักงานใหญ่เฟสบุ๊ก

                      
Well, let's look at the world class Information and Technology company, Facebook, that serves millions of people globally. But their Head office is so common like any other office.
เอาล่ะ... นักเรียน  อยากให้เรามาดูบริษัทระดับโลกอย่าง Facebook ที่ให้บริการคนหลายล้านคนทั่วทั้งโลกาใบใหญ่นี้ ดูอ็อฟฟิศสำนักงานใหญ่ของพวกเขาสิ  ธรรมดาๆ บ้านๆ ซะจริงๆ (พวกฝรั่งเขาจะทำอะไรเรียบง่าย ไม่มากพิธี ไม่มีอะไรยุ่งยาก  แต่คุณภาพงานของพวกเขาที่ออกมานั้น สุดยอด)


Head Office of Facebook is in Palo Alto, California. 
สำนักงานใหญ่เฟสบุ๊ก  ณ  เมืองพาโลอัลโต มลรัฐแคลิฟอร์เนีย

1309 Head office of Facebook 

We can see that their office is not sophisticated but very common.
นักเรียนคงเห็นแล้วนะว่า ออฟฟิศใหญ่ของ  Facebook ก็ไม่ได้เลิศหรูสลับซับซ้อนอะไร แบบบ้านๆ ธรรมดาๆ (เพราะความ Hitech  จะไปอยู่ที่ Data Center แทน)

1309 Head office of Facebook
1.
2247 Head office of Facebook
2. 

3198 Head office of Facebook
3. 

4163 Head office of Facebook
4. 

5143 Head office of Facebook
5. 
6135 Head office of Facebook
6.
7133 Head office of Facebook
7. 
8120 Head office of Facebook
8. .
9104 Head office of Facebook
9. .
1097 Head office of Facebook
10.
11129 Head office of Facebook
11.
12107 Head office of Facebook
12.
1385 Head office of Facebook
13.
1482 Head office of Facebook
14.
1578 Head office of Facebook
15. Their office is like any common office, nothing is superb.
 ออฟฟิศดูธรรมดาๆ บ้านๆ เหมือนออฟฟิศทั่วไปที่ไหนๆ นั่นเอง  ไม่มีสิ่งไหนเลยที่เลิศลอยเกินเลย
1673 Head office of Facebook
16. The employees has never ware any uniform.
พนักงานของเขา ก็แต่งตัวแบบง่ายๆ บ้านๆ ไม่ต้องมีเครื่องแบบอะไรให้มากพิธี 
1767 Head office of Facebook