380 likes | 642 Views
บทที่ 4 การใช้ข้อมูลและตัวแปรในโปรแกรม. กำหนดให้นักศึกษาคลิกปุ่ม Show แล้วแสดงชื่อนักศึกษาในช่อง Text Box. การใช้ข้อมูลและตัวแปรในโปรแกรม
E N D
บทที่ 4 การใช้ข้อมูลและตัวแปรในโปรแกรม
กำหนดให้นักศึกษาคลิกปุ่ม Show แล้วแสดงชื่อนักศึกษาในช่อง Text Box
การใช้ข้อมูลและตัวแปรในโปรแกรมการใช้ข้อมูลและตัวแปรในโปรแกรม ตัวแปร (Variable) หมายถึง ชื่อของหน่วยเก็บข้อมูลหรือตำแหน่งในหน่วยความจำของคอมพิวเตอร์ที่ใช้เก็บค่าต่างๆที่เปลี่ยนแปลงได้ระหว่างการประมวลผลในเครื่องคอมพิวเตอร์ ตารางแสดงประเภทของข้อมูล (Data Type)
1. String ใช้เก็บข้อความต่างๆ เช่น “Hello, World!” หรือ John Fitzquatle” เป็นต้น หรือชุดของตัวเลขในรูปของข้อความ เช่น “1234” หรือทั้ง 2 อย่างรวมกัน เช่น “1234 Main Street” 2. Integer และ Long ใช้เก็บค่าของเลขจำนวนเต็ม ซึ่ง Long จะใช้เก็บเลขจำนวนเต็มที่มีขนาดใหญ่ 3. Single และ Double ใช้เก็บค่าของเลขจำนวนจริงซึ่ง Double จะใช้กับเลขจำนวนจริงที่มีขนาดใหญ่ 4. Currency ใช้เก็บค่าที่เป็นจำนวนเงิน 5. Variant ใช้เก็บค่าประเภทใดก็ได้โดยจะแปรเปลี่ยนไปตามข้อมูลที่จัดเก็บ
6. Boolean ใช้เก็บค่าทางตรรกะ ที่มีค่าเป็นจริง (True) หรือเท็จ (False) 7. Date ใช้เก็บข้อมูลในรูปวันที่ 8. Object ใช้อ้างถึง Object ใดๆ 9. Byteใช้เก็บข้อมูลในรูป Binary กฎในการตั้งชื่อตัวแปร 1. ชื่อของตัวแปรจะยาวได้ไม่เกิน 40 ตัวอักษร 2. ตัวอักษรตัวแรกของชื่อจะต้องเป็นตัวอักษร A-Z 3. ตัวอักษรตัวถัดไปจะเป็นตัวอักษร A-Z ตัวเลข 0-9 หรือขีด(-) 4. ตัวอักษรตัวสุดท้ายอาจเป็นเครื่องหมายที่ใช้แสดงถึงประเภทของตัวแปร ได้แก่ %,&,$,#,!,@ หรืออาจไม่มีเครื่องหมายใดๆ ก็ได้ ในกรณีที่ Declare ตัวแปรด้วย คำสั่ง Dim 5. ชื่อของตัวแปรจะต้องไม่ซ้ำกับค่าเฉพาะ (Reserved Word) 6. ตัวอักษรในชื่อสามารถเป็นได้ทั้งตัวอักษรใหญ่ และ ตัวเล็ก
ให้พิจารณาการตั้งชื่อตัวแปรใดถูกต้องและชื่อใดไม่ถูกต้อง เช่น • Integer • curPrice • *NoSignFirst • Fourty%andA_Half • No$Number • Trucks#cars • traveler88 • Provision • Circle_Area • StateY2K • Dim • 2NoNumber • Menu&File • Score1
การ Declare ค่าตัวแปร วิธีที่ 1 Explicit Declaration Dim Varname [As Type][,Varname[As Type]]... Varname หมายถึง ชื่อตัวแปร และ Type หมายถึง ประเภทข้อมูล เช่น Dim Vradius As Single Dim Varea As Single วิธีที่ 2 Impicit Declaration Varname <Type Identifier> เช่น Mradius!, Vamount@
ตัวอย่างการกำหนดตัวแปรของ ราคาสินค้า,วันเกิด,ชื่อพนักงาน, ควรเป็นตัวแปรชนิดใด Dim PriceProduct as integer Dim PriceProduct% Dim Birthday as Date Dim NameEmployee as String Dim NameEmployee$
ตัวอย่าง การเขียนตัวแปร Dim Score1 as Integer Dim Score2 as Integer Dim Score3 as Integer Dim Score1 ,Score2 ,Score3 as Integer Dim A as String * 10 Dim B as String * 5
ตัวอย่าง การเขียนตัวแปร เปลี่ยนชนิดตัวแปร (Variable) จาก Integer ให้เป็น Single Dim a as Integer Dim a as Single Dim result as Integer Dim result as Single Dim b as Integer Dim b as Single เปลี่ยนชนิดตัวแปร (Variable) จาก Integer ให้เป็น String Dim a as Integer Dim a as String Dim result as Integer Dim result as String Dim b as Integer Dim b as String
ตัวอย่างเขียนโปรแกรมแสดงพื้นที่วงกลมตัวอย่างเขียนโปรแกรมแสดงพื้นที่วงกลม Private Sub Command1_Click() Radius = InputBox("Radius") CircleArea = 3.14159 * Radius * Radius Print CircleArea End Sub จากโปรแกรม ให้นักศึกษากำหนดประเภท ตัวแปรให้ ถูกต้องด้วย ตัวอย่างเขียนโปรแกรมแสดงชื่อนักศึกษา Private Sub Command2_Click() NameStudent = InputBox(“กรุณาใส่ชื่อ") Print NameStudent End Sub Private Sub Command2_Click() NameStudent = txtName.text Print NameStudent End Sub
ตัวอย่างเขียนโปรแกรมแสดงพื้นที่วงกลมตัวอย่างเขียนโปรแกรมแสดงพื้นที่วงกลม คำสั่ง Option Explicitจะเป็นการบอกว่าการใช้ตัวแปรใดในโปรแกรมจะต้องมีการประกาศอย่างชัดเจน เพื่อกำหนดให้กับ Editor ตรวจสอบว่ามีตัวแปรใดที่ถูกใช้งานโดยไม่มีการ Declare หรือไม่ (menu tool OptionEditorCheckBoxที่ Require Variable Declaration) Option Explicit Private Sub Command1_Click() Radius = InputBox("Radius") CircleArea = 3.14159 * Radius * Radius Print CircleArea End Sub จะต้องมีการกำหนด ตัวแปรด้วย
ตัวแปรค่าคงที่ (Constant Variable) คือค่าที่แน่นอน [Public หรือ Private] Const constname = expression constname หมายถึง ชื่อตัวแปร Constant expression หมายถึง ค่าที่กำหนดให้กับตัวแปร Constant เช่น Const PI = 3.14149 ตัวอย่าง เขียนโปรแกรมเพื่อหาพื้นที่ของวงกลมใน VB
ตัวอย่างเขียนโปรแกรมแสดงพื้นที่วงกลมตัวอย่างเขียนโปรแกรมแสดงพื้นที่วงกลม txtRadius txtAreaCircle Private Sub cmdCalculate_Click() Dim Vradius As Single Dim Varea As Single Const PI = 3.14159 Vradius = txtRadius.Text Varea = PI * Vradius * Vradius txtAreaCircle.Text = Varea End Sub Private Sub cmdEnd_Click() End End Sub cmdEnd cmdCalculate
Scope ของตัวแปร แบ่งเป็น 2 ระดับ คือ 1. Local ตัวแปรประเภทนี้สามารถอ้างถึงได้เฉพาะในโปรแกรมย่อยที่เป็นเจ้าของเท่านั้น ไม่สามารถอ้างถึงข้ามโปรแกรมย่อยได้ เช่น Sub First() Dim B As Integer End Sub 2. Global แบ่งเป็น 2 ระดับ 2.1. Private : การประกาศตัวแปรประเภทนี้ทำได้โดยใช้คำสั่ง Private แทนที่คำว่า Dim รูปแบบคือ Private ชื่อตัวแปร [As ประเภทของตัวแปร] เช่น Private intX As Integer 2.2. Public : ตัวแปรประเภทนี้อนุญาตให้โปรแกรมย่อยในทุกๆ Module ที่อยู่ใน Project อ้างถึงได้โดยการใช้คำสั่ง Public แทนที่คำว่า Dim รูปแบบคือ Public ชื่อตัวแปร [Asประเภทของตัวแปร]
Public Form1 Private Module1 Private Module2 Private Form2 Private Local
ตัวอย่าง การเขียนตัวแปร
ตัวอย่างการเขียนโปรแกรมตัวอย่างการเขียนโปรแกรม Option Explicit Public a As Integer Private Sub Command1_Click() Dim a As Integer a = 3 Print a End Sub Private Sub Command2_Click() Print a End Sub
ตัวแปรชนิด Array คือ เป็นโครงสร้างข้อมูลขั้นพื้นฐานที่เป็นการสร้างกลุ่มหรือชุดของตัวแปร โดยนำตัวแปรประเภทเดียวกันหลายๆ ตัวมาเรียงต่อกัน โดยสามารถอ้างถึงหรือเรียกใช้งานตัวแปรแต่ละตัวที่เป็นสมาชิกในกลุ่มได้ด้วยเลข Index การประกาศ Array จะมีรูปแบบดังนี้ Dim Varname[([Subscripts])] [As Type][,Varname [([Subscripts])] [As Type]]... โดยที่ Varname หมายถึง ชื่อของตัวแปร Array Subscripts หมายถึง ขนาดมิติ ซึ่งจะเขียนในรูปแบบ [Lower To]upper, [Lower to]upper… โดย Lower คือจำนวนแถวส่วน upper คือจำนวนสดมภ์ Type หมายถึงประเภทข้อมูล
Arrayแบ่งออกได้เป็น 2 ประเภทคือ 1. Static Array เป็น Array ที่มีขนาดของมิติตายตัว เปลี่ยนแปลงไม่ได้ 2. Dynamic Array เป็น Array ที่เปลี่ยนแปลงขนาดของมิติได้ ในการสร้าง Array จะใช้การ Declare เช่นเดียวกับตัวแปรทั่วไป แต่จะมีส่วนของวงเล็บที่ใช้บอกขนาดของมิติของ Array นั้นต่อท้าย เช่น Dim A(10) As String
ตัวอย่างการประกาศตัวแปรแบบ Array Private Sub Command1_Click() Dim x(5) As String x(0) = “สาขาการจัดการธุรกิจระหว่างประเทศ" x(1) = “สาขาการตลาด" x(2) = “สาขาการเงินและการลงทุน" x(3) = “สาขาการจัดการ" x(4) = “สาขาบัญชี x(5) = “สาขาคอมพิวเตอร์ธุรกิจ” Print x(0) Print x(1) Print x(2) Print x(3) Print x(4) Print x(5) End Sub
Dim x(2,3) as string หรือ Dim x(0 to 2,0 to 3) as string 2 1 3 0 0 1 2 ช่องนี้คือเนื้อที่ในหน่วยความจำที่เก็บตัวแปรแบบ String ที่สามารถอ้างถึงได้โดยชื่อ x(2,0)
ตัวอย่างการประกาศตัวแปรแบบ Array Dim A(2) as integer Dim Z(1) Dim B(1 to 3) as String Dim C(3) as integer Dim D(1,2) as integer Dim E(1 to 5, 1 to 5) as integer ตัวอย่างการเรียกใช้ A(1) = 500 A(2) = 800 Temp = A(1) Temp = Temp + A(2) A(3) = A(1) + A(2)
ตัวอย่างการประกาศตัวแปรแบบ Array Dim A(2) as integer Dim Z(1) Dim B(1 to 3) as String Dim C(3) as integer Dim D(1,2) as integer Dim E(1 to 5, 1 to 5) as integer ตัวอย่างการเรียกใช้ A(1) = 500 A(2) = 800 Temp = A(1) Temp = Temp + A(2) A(3) = A(1) + A(2)
ตัวอย่างการประกาศตัวแปรแบบ Array Private Sub Command2_Click() Dim Score(3, 2) As Integer Score(1, 1) = 9 Score(1, 2) = 8 Score(2, 1) = 7 Score(2, 2) = 7 Score(3, 1) = 10 Score(3, 2) = 8 Print "คะแนนนักเรียนคนที่ 1 สอบครั้งที่ 1 เท่ากับ " & Score(1, 1) & " และสอบครั้งที่ 2 เท่ากับ " & Score(1, 2) Print "คะแนนนักเรียนคนที่ 2 สอบครั้งที่ 1 เท่ากับ " & Score(2, 1) & " และสอบครั้งที่ 2 เท่ากับ " & Score(2, 2) Print "คะแนนนักเรียนคนที่ 3 สอบครั้งที่ 1 เท่ากับ " & Score(3, 1) & " และสอบครั้งที่ 2 เท่ากับ " & Score(3, 2) End Sub
Dynamic Array : Array ประเภทนี้สามารถเปลี่ยนแปลงขนาดได้ ดังนั้นในการ Declare จึงไม่ต้องระบุขนาดในวงเล็บ รูปแบบ Dim ArrayName( ) as VariableType Redim[Preserve]ArrayName(Subscripts) โดยที่ Redim เป็นคำสั่งเมื่อต้องการระบุถึงขนาดภายหลังของ Dynamic Array ArrayName คือ ชื่องของ Array Subscripts คือ ขนาดมิติของ Array ดังได้กล่าวแล้วแต่ในกรณีที่มากกว่า 1 มิติให้คั่นด้วยเครื่องหมาย “,” Preserve ใช้ในกรณีที่ต้องการเก็บข้อมูลของ Array ไว้เมื่อมีการปรับขนาดของ array เพราะถ้าไม่มีคำสั่ง Preserve ค่าที่อยู่ในตัวแปร array ก่อนที่ถูกเปลี่ยนขนาดจะหายทั้งหมด
เช่น Dim x( ) as integer ….. Redim x(5) for I = 1 to 5 x(I) = I next I ตัวอย่าง จงเปลี่ยนขนาดของ x(5) ให้มีขนาดเป็น 7 ช่อง Dim x ( ) as integer Redim x(5) Redim x(7) การเปลี่ยนขนาดมิติของ Array มีข้อจำกัดสิ่งหนึ่งคือ เปลี่ยนขนาดได้เฉพาะมิติสุดท้ายของ Array ได้เท่านั้น เช่น
ตัวอย่าง เขียนโปรแกรมหาค่าตัวแปรใน VB Operator ที่ใช้ใน Visual Basics 1.Assignment Operator : ได้แก่เครื่องหมาย “=“ ซึ่งกำหนดค่าให้กับตัวแปร หรือ Property ของ Object เช่น Height% = 100 MyBox.Text = Mypromp$ 2.Arithmetic Operator :เป็น Operator เพื่อใช้คำนวณทางคณิตศาสตร์ เช่น ^ ยกกำลัง * , / คูณ,หาร +, - บวก,ลบ เช่น C= A+B, C=A^5
3. Relational Operators : ใช้สำหรับเปรียบเทียบ เพื่อการประเมินค่าและให้ผลเป็น จริง(True) หรือเท็จ(False) ดังนั้นจะใช้ประโยคคำสั่ง If = เท่ากับเช่น If Itemprice = 100 then B =3 > มากกว่า เช่น If Itemprice > 100 then B =3 < น้อยกว่า เช่น If Itemprice < 100 then B =3 <> ไม่เท่ากับ เช่น If Itemprice <> 100 then B =3 >= มากกว่าหรือเท่ากับ เช่น If Itemprice >= 100 then B =3 <= น้อยกว่าหรือเท่ากับ เช่น If Itemprice <= 100 then B =3 4. Logic Operators : เป็น Operator ที่ใช้ในการคำนวณทางตรรกะ And และ เช่น If(A<100) AND (B>50) then A =A+100 Or หรือ เช่น If(Item>100) OR (Amoun>1000) then SELLIT Not ไม่ เช่น If NOT Item < 100 then Report Like ใช้เปรียบเทียบ String IS เป็นการอ้างถึง Object เดียวกัน
ลำดับในการประมวลผล หรือ Precedence นั้น มีดังนี้ สัญลักษณ์ ลำดับ คำอธิบาย ^ 1 Exponential - 2 Negation * 3 Multiplication / 4 Division \ 4 Integer Division Mod 5 Modulo Arithmetic + 6 Additon - 6 Subtraction & 7 String Concatenation
สัญลักษณ์ ลำดับ คำอธิบายสัญลักษณ์ ลำดับ คำอธิบาย = 8 Equality <> 8 Inequality < 8 Less than > 8 Greater than <= 8 Less than or Equal to >= 8 Greater then or Equal to Like 8 Sting matches pattern Is 8 Refer to same object Not 9 Not And 10 And Or 11 Or
ตัวอย่างการหาค่านิพจน์ต่อไปนี้ ถ้ากำหนดให้ • X=2 , Y= 4 , Z=3 • X+Y^2 • 8/Y/X • X*(X+1) • X*X+1 • Y^X+Z*2 • Y^(X+Z)*2 • (Y^X)+Z*2 • ((Y^X)+Z)*2
ตัวอย่างการเขียนโปรแกรมเชิงตรรกะตัวอย่างการเขียนโปรแกรมเชิงตรรกะ • ตัวอย่างที่ 1 ลูกค้าที่มียอดขายมากกว่า 50,000 บาท คือ (SaleRevenue >= 50000) • ตัวอย่างที่ 2 สินค้าที่มียอดขายมากกว่าห้าพันชิ้นและลูกค้าสั่งหลังวันที่ 1 มกราคม 2547 คือ (SaleVolume >= 5000) and (OrderDate > #1/1/2547#) • ตัวอย่างที่ 3 คะแนนสอบอยู่ระหว่าง 60-70 คือ (Score >=60) and (Score <= 70) • ตัวอย่างที่ 4 คะแนนอยู่ในช่วง 40-50 หรือ มากกว่า 95 ขึ้นไป คือ ((Score >= 40) and (Score <= 50)) or (Score >= 95)
ตัวอย่างการต่อ String โดยใช้ Operator“+” หรือ “&” กำหนดให้ A$ = “Hello” B$ = “Word” C$ = A$ & “ “ &B$
จบแล้วค่ะ • คำถาม • ข้อเสนอแนะ • ความคิดเห็น • และอื่น ๆ
แบบฝึกหัดท้ายชั่วโมงมี 2 ข้อดังนี้ ข้อที่ 1. กำหนดให้นักศึกษาแต่ละกลุ่มเขียนโปรแกรม 1 โปรแกรมโดยใช้ตัวแปรธรรมดา ตัวแปรแบบ Constant ตัวแปรแบบArray และประกาศตัวแปรให้มีลักษณะทั้ง Local และ Global พร้อมอธิบายหน้าชั้น
ข้อที่ 2 กำหนดให้นักศึกษาแต่ละกลุ่มเขียนโปรแกรมคำนวณส่วนลดแสดงผลดังภาพ