360 likes | 547 Views
Chapter 5 Variable Data & Operator. SUCHADA PUNNOI Dept. of Computer Science & Information Technology http :// computer . pcru . ac . th / KuBo/. Variable : ตัวแปร.
E N D
Chapter5Variable Data &Operator SUCHADA PUNNOI Dept. of Computer Science & Information Technology http://computer.pcru.ac.th/KuBo/
Variable : ตัวแปร • ไม่ว่าโปรแกรมประยุกต์ใด ภาษาใด สิ่งที่ต้องรู้เป็นอันดับแรกๆ ก็คือ ตัวแปร ค่าคงที่และ ชนิดของข้อมูล ของภาษานั้น ๆ ซึ่งจะทำให้เห็นข้อจำกัดต่างๆ ในภาษานั้น ๆ ทำให้สามารถใช้งานได้อย่างถูกต้อง และมีประสิทธิภาพ เพราะตัวแปรและค่าคงที่ถือได้ว่าเป็นตัวแทนของข้อมูล ที่จะต้องนำไปใช้งาน ประมวลผล และแสดงสิ่งที่ได้จากการประมวลผล • ทำไมต้องประกาศตัวแปร • เพื่อการทำงานที่ถูกต้องของโปรแกรม • เมนู Tools Option… Editor • Require Variable Declaration • จะได้ Option Explicit ใน View Code
การประกาศตัวแปรและค่าคงที่การประกาศตัวแปรและค่าคงที่ Dim variable_name As Data_Type Const const_name = Value เช่น Dim data1 As Integer Const pi = “3.1414”
การประกาศตัวแปร (Declarations) การประกาศตัวแปรใน VB สามารถแยกได้ 2 แบบคือ 1.การประกาศตัวแปรแบบ Implicit Declaration หมายถึง VB ยอมให้คุณใช้งานตัวแปรได้ โดยไม่ต้องมีการประกาศตัวแปร ชนิดของข้อมูลที่ได้จะเป็นแบบ Variant 2.การประการตัวแปรแบบ Explicit Declaration หมายถึง คุณจะต้องมีการประกาศตัวแปรก่อนการใช้งานทุกครั้ง แล้วจึงสามารถนำตัวแปรนั้นๆ ไปใช้งานได้
ตัวอย่าง การประกาศ • กรณีที่ต้องการกำหนดให้มีการประกาศตัวแปรทุกครั้งก่อนที่จะมีการเรียกใช้ตัวแปร เพื่อหลีกเลี่ยงการใช้ตัวแปรชนิด Variant ให้พิมพ์คำสั่ง Option Explicit ไว้ข้างบนสุดก่อนพิมพ์คำสั่งอื่น ๆ
กฎการตั้งชื่อตัวแปร • ขึ้นต้นด้วยพยัญชนะเท่านั้น • ความยาวของชื่อที่ตั้งสูงสุดไม่เกิน 255 ตัวอักษร • ชื่อที่ตั้ง ต้องไม่ซ้ำกันคำสงวน (Keywords) คำสั่ง (Statements) ฟังก์ชัน (Functions) หรืออื่น ๆ ที่ Visual Basic กำหนดไว้ • ห้ามตั้งชื่อซ้ำกันในโพรซีเดอร์เดียวกัน หรือในขอบเขตเดียวกัน • ห้ามใช้เครื่องหมายทางคณิตศาสตร์, ตัวดำเนินการ (Operators) หรือ เครื่องหมายพิเศษ เช่น @, # มาตั้งชื่อ • ห้ามมีช่องว่างในชื่อตัวแปรถ้าต้องการเว้นว่างให้ใช้เครื่องหมาย _ (Underscore) เท่านั้น
การใช้งานตัวแปรแบบใช้สัญลักษณ์พิเศษกำกับการใช้งานตัวแปรแบบใช้สัญลักษณ์พิเศษกำกับ • คุณยังสามารถใช้งานตัวแปรได้ โดยการใช้สัญลักษณ์พิเศษต่อท้ายตัวแปรนั้นๆ ให้คุณดูตารางต่อไปนี้
การใช้งานตัวแปรแบบใช้สัญลักษณ์พิเศษกำกับการใช้งานตัวแปรแบบใช้สัญลักษณ์พิเศษกำกับ • การประกาศใช้งานตัวแปรแบบปกติ ถ้าคุณต้องการตัวแปรแบบ Integer คุณจะต้องประกาศ ดังนี้ Dim x As Integerหมายถึง ให้ตัวแปร x เก็บข้อมูลชนิดเลขจำนวนเต็ม แต่คุณสามารถใช้สัญลักษณ์พิเศษต่อท้ายตัวแปรเพื่อ กำหนดให้ตัวแปรแทนชนิดของข้อมูลที่คุณ ต้องการได้ ซึ่งถ้าคุณใช้วิธีนี้ คุณต้องใช้ตลอดทั้งโพรซีเดอร์ เช่น Dim x%หมายถึง ให้ตัวแปร x เก็บข้อมูลชนิดเลขจำนวนเต็ม Integer เช่นกันDim x&หมายถึง ให้ตัวแปร x เก็บข้อมูลชนิดเลขจำนวนเต็ม Long Dim x!หมายถึง ให้ตัวแปร x เก็บข้อมูลชนิดเลขทศนิยมแบบ Single (ความละเอียดต่ำ)Dim x#หมายถึง ให้ตัวแปร x เก็บข้อมูลชนิดเลขทศนิยมแบบ Double (ความละเอียดสูง)Dim x@หมายถึง ให้ตัวแปร x เก็บข้อมูลชนิดเลขทางการเงิน Currency Dim x$หมายถึง ให้ตัวแปร x เก็บข้อมูลชนิดข้อความ String
Operators : ตัวดำเนินการ • ตัวดำเนินการใน Visual Basic (Operators) คือ เครื่องหมายสำหรับกระทำกับข้อมูลอย่างน้อยที่สุด 2 ชุดมากระทำอย่างใดอย่างหนึ่ง เช่น บวก ลบ เชื่อมต่อ เปรียบเทียบ ทดสอบค่า เป็นต้น ซึ่งสามารถแบ่งได้ 4 ประเภท ดังนี้
Arithmetic Operators • ตัวดำเนินการด้านคณิตศาสตร์ (Arithmetic Operators) • คือเครื่องหมายทางคณิตศาสตร์ใช้สำหรับการคำนวณตัวเลข ดังตาราง
รายละเอียดของตัวดำเนินการทางคณิตศาสตร์รายละเอียดของตัวดำเนินการทางคณิตศาสตร์ การบวก, ลบ, คูณ, หาร เป็นไปตามกฏทางคณิตศาสตร์ ที่น่าสนใจคือ • การหารจำนวนเต็ม หมายถึง จะเอาแต่เฉพาะเลขที่เป็นจำนวนเต็มเท่านั้น ส่วนเศษ จะปัดทิ้ง เช่น 10\6=1.6666 แต่จะได้ผลลัพธ์เท่ากับ 1 แม้ว่า .6666 จะเกินครึ่งก็ตาม ไม่มีการปัดเศษแต่อย่างใด • การ Mod หมายถึง จะเอาแต่เศษที่เหลืออยู่จากการ Mod เช่น10 Mod 3 =1 เนื่องจาก 10 หาร 3 ไม่ลงตัว เหลือเศษ 1 จึงได้ผลลัพธ์ 1, 20 Mod 6 =2 (เหลือเศษ 2 นั่นเอง)
Logical Operator • ตัวดำเนินการทางด้านตรรกะ (Logical Operator)คือเครื่องหมายสำหรับตรวจสอบเงื่อนไขระหว่างกลุ่มนิพจน์ โดยจะให้ผลลัพธ์เป็นจริง (True) และเป็นเท็จ (False) หรือสร้างเงื่อนไขขึ้นมาเพื่อทดสอบกรณีต่าง ๆ ดังตาราง
ตัวดำเนินการทางด้านตรรกะ(Logical Operator)
Comparison Operators • ตัวดำเนินการทางด้านการเปรียบเทียบ (Comparison Operators)เครื่องหมายที่ใช้สำหรับเปรียบเทียบนิพจน์ 2 นิพจน์ เพื่อทดสอบ หรือสร้างเงื่อนไข โดยจะให้ผลลัพธ์เป็นจริง (True) และเป็นเท็จ (False) มักจะใช้คู่กับตัวดำเนินการทางด้านตรรกะ เพื่อตรวจสอบเงื่อนไขต่าง ๆ เสมอ ดังตาราง
Concentration Operators • ตัวดำเนินการทางด้านการเชื่อมข้อความ (Concentration Operators)เครื่องหมายที่ใช้สำหรับเชื่อมข้อความตั้งแต่ 2 ข้อความเข้าด้วยกัน แต่ยังมีกรณียกเว้นที่จะเป็นการบวกกันของนิพจน์ 2 นิพจน์ ซึ่งขึ้นอยู่กับชนิดของนิพจน์ที่จะมากระทำกัน ดังตาราง
ขอบเขตของตัวแปร(Scope ofvariable) • ใน Visual Basic สามารถแบ่งขอบเขตตัวแปรได้ 2 ประเภท คือ • ตัวแปรแบบโลคอล (Local) • ตัวแปรแบบโกลบอล (Global) • Private ใช้ได้ทุกโปรแกรมย่อยใน Form ที่ประกาศ • Public ใช้ได้ทุกโปรแกรมย่อยในโปรแกรม
Variable : ตัวแปร • ขอบเขตของตัวแปร (ต่อ) • ขอบเขต (Scope) หรือการมองเห็น ของตัวแปร เป็นการระบุเข้าถึงตัวแปร เช่น ตัวแปรที่กำหนดเป็น public สามารถอ่านและเขียนได้จากทุกส่วนของโปรแกรม แต่ถ้ากำหนดตัวแปรเป็น private จะเข้าถึงได้เฉพาะภายในโมดูล
ตัวแปร Global • หมายถึง ตัวแปร global สามารถอ่านและนำไปใช้จากทุกส่วนในโปรแกรม • ในส่วนการประกาศของ โมดูล BAS • Public UserCount as Long • ในส่วนการประกาศของฟอร์ม • Public CustomerName As String
ตัวแปร Local • เป็นการประกาศภายใน procedure และมีขอบเขตเฉพาะภายใน procedure อายุของตัวแปรขึ้นกับ procedure โดยทุกครั้งที่ประมวลผล procedure จึงจะมีการสร้างตัวแปร เมื่อออกจาก procedure ตัวแปรจะถูกลบหน่วยความจำ • เช่น Sub Print_Invoice ( )Dim text As String'…End Sub
ตัวแปร Public • หมายถึง ตัวแปรที่ประกาศขึ้นในส่วนบนหลัง Option Explicit ทำให้สามารถเรียกใช้งานได้ทุกโพรซีเดอร์ในฟอร์มนั้น กรณีที่ประกาศตัวแปรแบบ Public ใน Module จะทำให้ตัวแปรนั้นสามารถเรียกใช้งานได้จากทุกฟอร์ม • ตัวอย่าง Option Explicit Dim x as Integer Dim y as Integer Private Sub AddNum_Click( ) x = 5 y = 6 x = x + y End Sub Private Sub DelNum_Click( ) x = x - y End Sub จากตัวอย่าง ตัวแปร x และ y ถูกประกาศในถัดจาก Option Explicit ก่อน Sub AddNum ทำให้ตัวแปร x และ y ใน Sub AddNum และ Sub DelNum เป็นตัวแปรตัวเดียวกัน
ตัวอย่างแสดง Scope ของตัวแปรทุกชนิด คำอธิบาย
ตัวแปรอาร์เรย์ (Array) • ตัวแปรอาร์เรย์ เป็นกลุ่มของตัวแปรที่ประกาศขึ้นมา โดยใช้ชื่อของเดียวใช้ค่า Index ในการอ้างถึง ประโยชน์ของตัวแปรชนิดนี้คือ กรณีที่ต้องการมีการใช้ตัวแปรจำนวนมาก การประกาศตัวแปรสามารถประกาศเพียงชื่อเดียว ลดความซ้ำซ้อนของตัวแปร และทำให้ง่ายต่อการเรียกใช้ มีรูปแบบการประกาศดังนี้
รูปแบบการประกาศตัวแปรอาร์เรย์ (Array) Dim Varname(amount) as Datatype
ชนิดของตัวแปรอาร์เรย์ (Array) • ตัวแปรอาร์เรย์แบ่งออกได้ 2 ชนิด คือ 1. ตัวแปรอาร์เรย์แบบสแตติก (Static Arrays) 2. ตัวแปรอาร์เรย์แบบไดนามิก (Dynamic Arrays)
ตัวแปรอาร์เรย์แบบสแตติก (Static Arrays) • เป็นอาร์เรย์ที่มีการระบุจำนวนสมาชิกเมื่อมีการประกาศตัวแปร จะใช้อาร์เรย์ชนิดนี้ในกรณีที่ทราบจำนวนสมาชิกของอาร์เรย์ที่แน่นอน • ตัวอย่าง Dim vprint (10) as String จากตัวอย่างเป็นการประกาศตัวแปรอาร์เรย์ชื่อ vprint ให้มีจำนวนสมาชิกทั้งสิ้น 10 และ เป็นข้อมูลชนิดตัวอักษร ในการอ้างถึงตัวแปรให้ทำการระบุ Index หรือลำดับที่ของสมาชิก โดยสมาชิกตัวแรกให้ระบุ Index เป็น 0 เช่น เมื่อต้องการอ้างถึงสมาชิกตัวแรกสุดให้ระบุเป็น vprint(0)สมาชิกตัวที่ 7 ให้ระบุเป็น vprint(6) สมาชิกตัวสุดท้ายระบุเป็น vprint(9)
ตัวแปรอาร์เรย์แบบไดนามิก (Dynamic Arrays) • เป็นอาร์เรย์ที่ไม่มีการระบุจำนวนสมาชิกเมื่อมีการประกาศตัวแปร เนื่องจากไม่ทราบจำนวนสมาชิกที่แน่นอน • ตัวอย่าง Dim ccode( ) as String • จากตัวอย่างเป็นการประกาศตัวแปรอาร์เรย์ชื่อ ccode โดยไม่ระบุจำนวนสมาชิก และเป็นข้อมูลชนิดตัวอักษร เมื่อต้องการใช้งานตัวแปรจะต้องระบุจำนวนสมาชิกให้กับตัวแปรอาร์เรย์ โดยใช้คำสั่งดังนี้ Redim ccode(5) • จากตัวอย่างเป็นการกำหนดให้ตัวแปรอาร์เรย์ ccode ที่ได้ประกาศไว้แล้วให้มีจำนวนสมาชิก 5
ข้อดีของตัวแปรอาร์เรย์แบบไดนามิกคือ จำนวนสมาชิกของอาร์เรย์จะถูกกำหนดให้มีความเหมาะสมต่อการใช้งานเนื่อง เนื่องจากสามารถระบุจำนวนสมาชิกได้ภายหลัง แต่ตัวแปรอาร์เรย์แบบสแตติกจะต้องระบุจำนวนสมาชิกทันทีที่มีการประกาศตัวแปร การสร้างชนิดของตัวแปรขึ้นใช้เอง (User-defined data type) • กรณีที่ต้องการเก็บข้อมูลเป็นชุดแต่ประกอบด้วยข้อมูลหลาย ๆ ชนิด สามารถทำได้โดยการสร้างชนิดข้อมูลพิเศษขึ้นมา โดยนำชนิดของข้อมูลพื้นฐานดังกล่าวทั้งหมดมาสร้างตามที่ต้องการโดยมีรูปแบบดังนี้ [Public I Private] Type Varname elementname [([subscripts])] As type [elementname [([subscripts])] As type] …… End Type
ตัวอย่าง Type Customer CustName As String Address As String Age As Integer End Type • จากตัวอย่างเป็นการสร้างชนิดข้อมูลขึ้นมาใหม่ โดยให้ชื่อว่า Customer โดยมีตัวแปรย่อย Name Address และ Age เมื่อต้องการใช้งานชนิดข้อมูลดังกล่าวต้องทำการประกาศตัวแปรดังนี้ Dim newcust As Customer เมื่อต้องการเก็บค่าหรือนำค่าไปใช้ให้ใช้คำสั่งดังนี้ newcust.CustName = “ผลทิพย์ ปั้นน้อย" newcust.Address = “1381 ถ.นวมินทร์ คลองจั่น บางกะปิ กทม” newcust.Age = 15
การประกาศค่าคงที่ (Constant) • ค่าคงที่ (Constant) หมายถึงข้อมูลที่มีค่าคงที่ไม่มีการเปลี่ยนแปลง ในการประกาศค่าคงที่ต้องใช้คำสั่ง Const เพื่อสร้างค่าคงที่ มีรูปแบบดังนี้ [Public I Private] Const constname [As type] = expression
การประกาศค่าคงที่ (Constant) • ตัวอย่าง Option Explicit Const PI As Double = 3.141578 Private Sub cmdCalc_Click( ) Dim radius As Double Dim area As Double Radius = CDb(InputBox("กรุณาใส่ค่ารัศมี" , "ใส่ค่า") Area = PI * (radius) ^2 MsgBox "พื้นที่วงกลม = " & Area & " ตารางหน่วย " End Sub