ภาษาเบสิก และกรณีศึกษา
เว็บเพจสำรอง (Backup webpages) : thaiall.com | thaiabc.com
ปรับปรุง : 2557-01-16 (ส่วนรายละเอียดของวีบี)
กลับสารบัญ (Back to Content)
ภาษาโปรแกรม (Program Language) # คือ วิธีการมาตรฐานในการสื่อสารสำหรับแสดงคำสั่งไปยังคอมพิวเตอร์ ภาษาโปรแกรมกำหนดไวยากรณ์และการตีความหมายจากโปรแกรมคอมพิวเตอร์ที่เขียนขึ้น ภาษาโปรแกรมทำให้โปรแกรมเมอร์สามารถระบุอย่างชัดเจนถึงข้อมูลที่คอมพิวเตอร์จะทำงาน และวิธีการที่คอมพิวเตอร์จะประมวลผลข้อมูลเหล่านั้น
ภาษาเบสิค (Basic Language) คือ ภาษาคอมพิวเตอร์ที่พัฒนาโดยจอห์น เคมเมนี (John Kemeny) และ ธอมัส เคิรตส์ (Thomas Kurtz) แห่งวิทยาลัยดาร์ทเมิร์ท (Dartmouth College) ในปีค.ศ. 1963
วิชวลเบสิก (Visual Basic) คือ ภาษาคอมพิวเตอร์สำหรับสร้างโปรแกรมประยุกต์ (Application) ที่ใช้งานได้อย่างหลากหลายบนระบบปฏิบัติการวินโดว์ และสามารถเรียกใช้วัตถุที่ตัวแปลภาษาเตรียมไว้ให้บริการ
Programming :: VB :: VB.NET :: ASP.NET :: GWBasic :: ASP ::

ตอนที่ 1 :
ใช้ general component ที่ระบบเตรียมมาให้แต่แรก
Download : chap001.zip
บทที่ 1 : สร้าง form และปุ่ม close
เมื่อเริ่มต้น ผู้เรียนลองสร้างฟอร์มง่าย ๆ ขึ้น 1 ฟอร์ม และสร้างปุ่มขึ้น 1 ปุ่ม โดยปุ่มนั้นได้มาจาก General componets, Command button จากนั้นให้ Double click เหนือปุ่ม Command button จะเข้าสู่ส่วน code ให้ใส่คำสั่งว่า Unload me ซึ่งเป็นคำสั่งปิดฟอร์มปัจจุบัน จากนั้นสั่งจัดเก็บจะได้แฟ้ม chap001.vbp สำหรับการอ้างอิงแฟ้มทั้งหมด ส่วน chap001.frm จะหมายถึงฟอร์มรวมทั้ง code ที่พิมพ์เข้าไปในฟอร์ม ตัวอย่างนี้ได้แฟ้มสำคัญเพียง 2 แฟ้มดังกล่างเท่านั้น
    คำสั่งควรทราบ
    unload me
แบบฝึกหัด
? สร้างฟอร์ม และเพิ่มปุ่มปิดฟอร์มอีกปุ่มหนึ่ง
? สร้าง command button ใหม่โดยใส่คำสั่ง msgbox("x")
? สร้าง command button ใหม่โดยใส่คำสั่ง x = InputBox("abc", "def")

Download : chap002.zip
บทที่ 2 : ปุ่มควบคุมบวก และลบของ textbox
สร้างปุ่ม 2 ปุ่ม เพื่อควบคุมการแสดงผลใน text box โดยปกติแล้ว text box ใช้รอรับค่า เป็นส่วนใหญ่ แต่ในที่นี้ใช้สำหรับการแสดงผลที่เกิดจากการกดปุ่ม บวก หรือลบ โดยทำให้ค่าจำนวนเปลี่ยนแปลงไป
    คำสั่งควรทราบ
    Text1 = Text1 + 1
แบบฝึกหัด
? สร้างปุ่มคูณสอง
? สร้างปุ่มบวกสอง
? สร้าง text box อีก 1 และทำให้การบวก ลบ นำ text box ใหม่มาร่วมใช้

Download : chap003.zip
บทที่ 3 : เปลี่ยนคุณสมบัติของ shape เป็นรูปทรงต่าง ๆ
กำหนดรูปร่างให้กับ Shape ซึ่งเป็น general component หนึ่ง โดยค่าของ shape เป็น 0 = rectangle, 1 = square, 2 = oval, 3 = circle, 4 = rounded rectangle, 5 rounded square โดยการเลือกจากปุ่ม Option button ซึ่งใช้ร่วมกับ frame จะทำให้สามารถเลือกได้ครั้งละ 1 ปุ่ม
    คำสั่งควรทราบ
    Shape1.Shape = 1
    Shape1.Shape = 2
แบบฝึกหัด
? ให้เพิ่ม frame ให้และเลือกกำหนด backcolor หรือ bordercolor หรือ fillcolor
? ให้เพิ่มช่อง สำหรับกำหนดขนาด width และ height ของ shape

Download : chap004.zip
บทที่ 4 : การใช้ menu editor สร้าง menu bar ส่วนตัว
Right click บนพื้นฟอร์ม จะมีตัวเลือก Menu editor ให้เลือกเพื่อสร้างระบบ menu แบบ แบบ pulldown menu ได้โดยง่าย จากนั้นเข้าสู่ฟอร์มอีกครั้ง เมื่อ click ที่ตัวเลือกจะสามารถใส่คำสั่งที่ต้องการให้กับตัวเลือกได้ ตัวอย่างนี้จะเลือกตัวเลือกเพื่อเปลี่ยนขนาดของ Label ที่อยู่ในฟอร์ม
    คำสั่งควรทราบ
    Label1.FontSize = 10
แบบฝึกหัด
? เพิ่ม label และเปลี่ยนขนาดได้ 2 label พร้อมกัน
? เพิ่มตัวเลือก และสั่ง msgbox

Download : chap005.zip
บทที่ 5 : สร้างหลาย form และสั่งเปิดปิดตามต้องการ
สร้างฟอร์ม 3 ฟอร์มให้ project นี้ แต่ละฟอร์มมีปุ่มใช้เปิดฟอร์มใหม่ แต่ฟอร์มที่ 3 ปิดตนเองและฟอร์มที่ 2 แต่เปิดฟอร์ม 1 ขึ้นมา สำหรับ code ของแต่ละฟอร์มจะเก็บอยู่ในฟอร์มนั้น ๆ มิได้แยกเก็บต่างหาก
    คำสั่งควรทราบ
    Unload Me
    Unload Form2
    Form1.Show
แบบฝึกหัด
? สร้างฟอร์มที่ 4 ขึ้น แต่มีปุ่มสั่งเปิดปิดฟอร์มอื่น
? สร้างฟอร์มที่ 5 ให้มีคำสั่ง msgbox ประจำปุ่ม

Download : chap006.zip
บทที่ 6 : ควบคุม visible ของแต่ละ object
สร้าง frame และปุ่มควบคุมการเปิดปิด แต่ละ frame โดยปกติแล้ว frame สามารถบรรจุ component ได้มากมาย การสั่งแสดงหรือไม่ จะเป็นการรวบไปถึง component ทั้งหมดใน frame นั้นด้วย
    คำสั่งควรทราบ
    Frame1.Visible = False
    Frame1.Visible = True
แบบฝึกหัด
? สร้าง frame ใหม่ และปุ่มใหม่เป็นปุ่มต่อไป
? สร้าง frame ใหม่ และให้มีปุ่มอยู่ใน frame นั้น

Download : chap007.zip
บทที่ 7 : สุ่มเลข เพื่อทดสอบการควบคุม list box
สุ่มเลขส่งเข้า list box 20 จำนวน แล้วสร้างปุ่ม clear ค่าทั้งหมด ปุ่มลบบางค่า มี text ที่แสดงว่าปัจจุบัน cursor อยู่ใน list บรรทัดที่เท่าใด และมีค่าใด
    คำสั่งควรทราบ
    Randomize (Timer)
    For i = 1 To 20
    List1.AddItem Int(Rnd * 100)
    Next

    List1.Clear

    List1.RemoveItem (Text2)

    Text1 = List1
    Text2 = List1.ListIndex
แบบฝึกหัด
? ให้ทำแบบที่ผมทำนี้ให้ได้
? ให้สุ่มเลขมากกว่า 20 จำนวน และมีค่ามากกว่า 2 หลัก

Download : chap008.zip
บทที่ 8 : สุ่มเลข ส่งเข้า list box และส่งเข้า combo box อีกครั้ง
เพิ่มจากบทที่ 7 แต่สามารถคัดลอกค่าจาก list box ส่งเข้า combo box พร้อมนับจำนวนใน combo box ที่รับเข้ามา
    คำสั่งควรทราบ
    List1.SetFocus
    List1.ListIndex = 5

    Combo1.AddItem List1
    Text1 = Combo1.ListCount
แบบฝึกหัด
? สร้าง combo box มารับค่าอีกตัวหนึ่ง คู่กันกับของเดิม
? หาผลรวมของทุกค่าใน combo box แสดงพร้อมจำนวน

Download : chap009.zip
บทที่ 9 : สุ่มเลขจำนวนมาก ส่งเข้า list box, combo box และตรวจคู่คี่
List box รับจำนวนได้สูงสุด 32736 จำนวน แต่ละบรรทัดมีสองค่าคั่นด้วย , จากนั้นนำทั้ง 2 ค่ามารวมกัน แล้วย้ายค่าไปยัง combo box จากนั้นเปรียบเทียบค่าที่ได้ว่าเป็นเลขคู่(Even) หรือเลขคี่(Odd) เพื่อแสดงผล
    คำสั่งควรทราบ
    y = Split(List1, ",", -1, vbTextCompare)
    z = Int(y(0)) + Int(y(1))
    Combo1.AddItem z
    Combo1.Text = z
    List1.RemoveItem List1.ListIndex
    Text2 = "Even"
    If z Mod 2 = 1 Then Text2 = "Odd"
    Text1 = Combo1.ListCount
    List1.SetFocus
    List1.ListIndex = z
แบบฝึกหัด
? เดิมหาผลรวม 2 ค่าแล้วย้ายไป ให้เปลี่ยนเป็นผลคูณ
? เดิมมี 2 ค่า ในแต่ละบรรทัด ให้เพิ่มเป็น 3

Download : chap010.zip
บทที่ 10 : เพิ่ม ลบ แก้ไขจาก list box โดยคุม visible และ enabled
จำลองการทำงานของแฟ้ม โดยมีปุ่ม สร้างข้อมูลให้ตาราง เพิ่ม ลบ และแก้ไข โดยแต่ละปุ่มทำงานควบคู่กับการสั่งแสดง text box ได้อย่างเหมาะสม ไม่สับสน
    คำสั่งควรทราบ
แบบฝึกหัด
? ให้เพิ่มเขตข้อมูล
? ให้เปลี่ยนเป็นภาษาไทย

Download : chap011.zip
บทที่ 11 : ค้นหาส่วนหนึ่งส่วนใดของระเบียนก็ได้
จำลองการทำงานของแฟ้มเช่นกัน แต่แสดงการทำงานเฉพาะส่วนของ filter เพื่อเลือกข้อมูลที่ต้องการ จากจุดใดก็ตามของแต่ละระเบียน แล้วแสดงระเบียนที่มีอักษรตามที่ต้องการบรรจุอยู่
    คำสั่งควรทราบ
    List1.ListIndex = -1
    For i = 1 To List1.ListCount
    List1.ListIndex = List1.ListIndex + 1
    If InStr(1, List1, Text1, vbTextCompare) > 0 Then
    List2.AddItem List1
    End If
    Next
แบบฝึกหัด
? เพิ่มเขตข้อมูล
? รวมเพิ่ม ลบ แก้ไข เข้ากับโปรแกรมนี้

Download : chap012.zip
บทที่ 12 : ค้นหาข้อมูลแบบเลือกมากกว่า และตาม primary key
จำลองการทำงานของแฟ้มเช่นกัน แต่เป็นการคนหาในอีก 2 วิธี คือเลือกระเบียนที่มีบางเขตข้อมูลมีค่าจำนวนมากกว่าที่กำหนด หรือเลือกแสดงตามเขตข้อมูลที่เป็น primary key
    คำสั่งควรทราบ
    For i = 1 To List1.ListCount
    List1.ListIndex = List1.ListIndex + 1
    y = Split(List1, ",", -1, vbTextCompare)
    If y(0) = Val(Text2) Then
    Text3 = y(1)
    Text4 = y(2)
    End If
    Next

    List1.ListIndex = -1
    For i = 1 To List1.ListCount
    List1.ListIndex = List1.ListIndex + 1
    y = Split(List1, ",", -1, vbTextCompare)
    If y(2) > Val(Text1) Then
    List2.AddItem List1
    End If
    Next
แบบฝึกหัด
? เพิ่มเขตข้อมูล
? ทำให้มีการค้นหาได้ทั้ง 3 แบบ
? เพิ่มการ เพิ่ม ลบ แก้ไข

Download : chap013.zip
บทที่ 13 : เปิดปิดฟอร์ม และภาพในจุดต่าง ๆ
แสดงการเปิดปิดฟอร์มด้วย form1.show หรือ form1.visible = true และการใส่ภาพใน picture ของพื้น ปุ่ม และ image สำหรับการใส่ภาพในปุ่มต้องกำหนดให้ style เป็นแบบ graphic จึงจะมีภาพออกในปุ่ม ส่วนภาพพื้นจะต้องทำภาพต้นแบบให้กว้างเท่าที่ต้องการก่อนส่ง
    คำสั่งควรทราบ
    form2.visible = true
    '
    form2.show
    '
    end
    '
    unload form1
แบบฝึกหัด
? ทำแบบที่ผมทำ โดยเปลี่ยนภาพ
? ทำ game จับผิดภาพเหมือน ถ้าถูกจึงเปิด form ใหม่

โปรแกรมนี้ง่าย ไม่จำเป็นต้อง Download
บทที่ 14 : นาฬิกา Ditital
โปรแกรมแสดงนาฬิกา เดินเร็วตามต้องการ สามารถนำไปประยุกต์กับโปรแกรมต่าง ๆ ได้ โดยใช้ Timer component ช่วยจัดการด้านเวลา สิ่งที่ต้องทำ คือปรับ properties ของ timer ในส่วนของ interval ให้เป็น 1000 คือ 1 วินาที
    คำสั่งควรทราบ
    Private Sub Timer1_Timer()
    Text1 = Format(Time, "long time")
    End Sub
แบบฝึกหัด
? ทำแบบที่ผมทำ ปรับรูปแบบให้สวยงาม
? เติมปุ่มต่าง ๆ และนำไปประยุกต์ให้ใช้งานตามต้องการ

Download : photoword.zip | photoword.exe
บทที่ 15 : เกมคลิ๊กภาพ
เป็นการควบคุม object ต่าง ๆ ให้เปิดปิดคุณสมบัติ ตามต้องการ เป็นการเขียนที่ง่าย แต่ยากในการวางแผน และการหาภาพ คุณสมบัติที่เกี่ยวข้องเช่น enabled visible transparent width height backstyle caption windowstate
    Source code ที่ใช้งาน
แบบฝึกหัด
? ทำแบบที่ผมทำ ปรับรูปภาพเป็นภาพอื่น
? นำไปทำเกมด้านภาษาก็ได้
? นำไปประยุกต์ทำเกมจับผิดภาพ

Download : ballrun.exe
บทที่ 16 : บอลวิ่งในจอภาพ
โปรแกรมตรวจสอบตำแหน่งของวัตถุที่วิ่งในจอภาพ การใช้ width กับ height ความยาก หรือความต้องการให้ฝึกฝน คือการเรียนรู้การควบคุมวัตถุ ขณะเปลี่ยนแปลงตำแหน่ง ทำให้เคยชินกับการควบคุม width height left top และการแสดงผล
    Source code ที่ใช้งาน
แบบฝึกหัด
? ทำแบบที่ผมทำ ปรับขนาดรูป หรือเปลี่ยนเป็น image
? เพิ่ม object ในการวิ่ง
? ให้ประยุกต์ โดยเปลี่ยนภาพ เพิ่มฟอร์ม และ object ให้ดูดีขึ้น

Download : dif.zip | dif.exe

ตัวอย่างคำสั่งเกี่ยวกับเวลา ที่น่าสนใจ
Text1 = Time - CDate(Form2.Text1)
Text1 = Format(Text1, "long time")
บทที่ 17 : จับผิดภาพเหมือน
โปรแกรมนี้แสดงการควบคุมวัตถุ นำบทที่ 15 มาปรับปรุง แต่เพิ่มการเชื่อมฟอร์มหลายฟอร์ม มีการส่งค่าระหว่างฟอร์ม การใช้คำสั่ง end หยุดโปรแกรม สิ่งที่ยากในการเขียนโปรแกรมนี้คือ การหาภาพที่น่าสนใจ มาสร้างเป็นตัวเลือก ส่วนโปรแกรมก็เน้นการควบคุมวัตถุ และการส่งค่าระหว่างฟอร์มเป็นหลัก
    Source code ที่ใช้งาน
แบบฝึกหัด
? ทำแบบที่ผมทำ เปลี่ยน image และปรับให้ดูดีมากขึ้น
? เพิ่ม level หรือเพิ่มฟอร์มให้มากขึ้น แทนที่จะมีเพียง 3
? ให้ประยุกต์ โดยออกแบบเกมต่าง ๆ ไว้เล่นเอง

Download : numtxt.exe
บทที่ 18 : เปลี่ยนจำนวนเงินเป็นตัวอักษร
โปรแกรมนี้นำ source code มาจากเว็บของ อ.ถนอม คณิตปัญญาเจริญ thanom.net โดยนำตัวเลขจาก text1 มาแปลงเป็นตัวอักษร แล้วเก็บลง text2 โปรแกรมนี้จะเปลี่ยนตัวเลขทันทีเพื่อเปลี่ยน เพราะใช้คุณสมบัติ on change ผู้เรียนสามารถนำไปประยุกต์กับระบบทางธุรกิจได้ทันที และเป็นโปรแกรมแรกที่ผมแสดงการเขียน function ขึ้นใช้งาน ที่ต่างไปจาก sub เพราะ function นี้จะคือค่าจากการประมวลผล
    Source code ที่ใช้งาน
แบบฝึกหัด
? ทำแบบที่ผมทำ เปลี่ยนรูปแบบ และไม่ใช้คุณสมบัติ on change แต่ใช้ command_click แทน
? ลองนำไปใช้ร่วมกับ object ต่าง ๆ ให้ดูมีประโยชน์ขึ้น
? ให้ประยุกต์ โดยสร้างกรณีศึกษาประกอบการใช้ function นี้

Download : slide.exe
บทที่ 19 : สไลด์ นำเสนอข้อมูลพร้อมภาพ
โปรแกรมนี้จะเลื่อน slide ต้องกดปุ่ม next หรือ previous โปรแกรมมีการใช้ อาเรย์ ของ image1 เมื่อสร้าง image1 แล้วให้ copy image1 เพื่อสร้าง array อีก 3 object ส่วน text1 ผมพยายามจะเปลี่ยนคุณสมบัติ multiline แต่โปรแกรมบอกว่าเป็น readonly จึงต้องเปลี่ยนแบบ manual ส่วนภาพ ได้ลองเขียนโปรแกรมส่งชื่อภาพเข้าคุณสมบัติ picture แต่ไม่ได้ครับ พอใช้ msgbox ดูคุณสมบัติ ปรากฎว่าเป็นตัวเลข ทำให้ทราบว่าส่งแค่ชื่อ ภาพคงไม่เข้าไปใน image แน่
    Source code ที่ใช้งาน
แบบฝึกหัด
? ทำแบบที่ผมทำ โดยเพิ่มจำนวน slide เปลี่ยนภาพ และเปลี่ยนข้อมูลดูนะครับ
? ลองตั้งเวลาให้ slide เลื่อนเองดู
? ลองเพิ่ม slide ใน 1 form พร้อมกับ เพิ่มฟอร์มไปด้วย ให้มีข้อมูลหลายรูปแบบ

บทที่ 20 : เครื่องคิดเลขอย่างง่ายมีเฉพาะปุ่ม +
สร้าง 1 textbox กับ command1 แบบ array 0 ถึง 13 ให้ปุ่ม 10 คือ + ปุ่ม 11 คือ = ปุ่ม 12 คือ C ปุ่ม 13 คือ Backspace โดยนักศึกษาต้องเติมข้อมูลใน Caption ด้วยตนเองนะครับ แล้วก็จัดตำแหน่งให้สวยงาม เพราะถ้าใช้ code จัดจะเปลืองพื้นที่ source code จากนั้นก็ใช้ source code นี้ได้เลย มีความสามารถตามปุ่มเหมือนเครื่องคิดเลขใน windows ทุกประการ .. (เฉพาะปุ่มที่ผมสร้างนะครับ)
    Source code ที่ใช้งาน
แบบฝึกหัด
? ทำแบบที่ผมทำ มีปุ่ม + ปุ่มเดียว
? เพิ่มปุ่มลบ คูณ หาร
? เพิ่มปุ่มแปลงเลขฐาน

บทที่ 21 :
มาจากตัวอย่าง 18 เปลี่ยนจำนวนเงินเป็นตัวอักษร แต่เพิ่มเสียงอ่านตัวอักษรเข้าไป
    Source code ที่ใช้งาน
แบบฝึกหัด
? ทำแบบที่ผมทำ มีปุ่ม + ปุ่มเดียว
? เปลี่ยนเป็นนับเลขเหมือน Bank


แนะนำเว็บใหม่ : ผลการจัดอันดับ
รักลำปาง : thcity.com : korattown.com : topsiam.com : มหาวิทยาลัยโยนก
ศูนย์สอบ : รวมบทความ : ไอทีในชีวิตประจำวัน : ดาวน์โหลด : yourname@thaiall.com
ติดต่อ ทีมงาน ชาวลำปาง มีฝันเพื่อการศึกษา Tel.08-1992-7223