ถามเรื่อง Visual Basic หน่อยครับ ปวดหัวมากมาย

เว็บบอร์ดคอมพิวเตอร์
สอบถามเรื่องทั่วไป กับ การใช้คอมพิวเตอร์โดยทั่วไป แนะนำข่าวสารไวรัสคอม เทคนิคเล็กน้อยๆ กับ การใช้ คอมพิวเตอร์ ให้มีประสิทธิภาพมากที่สุด ฝากคำถามไว้ได้นะค่ะ

Moderator: phpbb, mindphp, ผู้ดูแลกระดาน

ตอบกลับโพส
masarez
phpBBThailand Newbie
phpBBThailand Newbie
โพสต์: 2
ลงทะเบียนเมื่อ: 18 ก.ค. 2011, 19:30

ถามเรื่อง Visual Basic หน่อยครับ ปวดหัวมากมาย

โพสต์ โดย masarez »

คือผมกำลังทำโปรเจ็คอยู่ครับ เป็นวิชาเศรษฐศาสตร์คอม โจทย์คือ ให้เขียนโปรแกรมรับค่า Fixed Cost กับ Variable Cost โดยมีปุ่มคำนวณหนึ่งปุ่ม และ ใช้ Numericupdown ในการเลือก จำนวนสินค้า (ในที่นี้อาจารย์ระบุให้ใช้ 1 ถึง 100 ชิ้น) จากนั้น ให้แสดงผลออกมาโดยการพล็อตตารางขึ้นใน Textbox ด่านล่าง โดยในตารางต้องประกอบด้วย

1. Product หรือ จำนวนสินค้าที่ผลิต
2. Fixed Cost(FC)
3. Variable Cost(VC)
4. Total Cost (ซึ่งได้มาจาก FC+VC)
*5. Marginal Cost หรือ MC (มาจากการเปลี่ยนแปลงของ TC ที่เพิ่มขึ้น/การเปลี่ยนแปลงของจำนวนสินค้าที่เพิ่มขึ้น หรือจะพูดง่ายๆคือ TC ปัจจุบันลบกับ TC อันก่อนหน้า)
5. Average Fixed Cost หรือ AFC(มาจาก FC/จำนวนสินค้า)
6. Average Variable Cost หรือ AVC (มาจาก VC/จำนวนสินค้า)
7. Average Total Cost หรือ ATC (มาจาก AFC+AVC)

ผมจึงจัดการร่างโปรแกรมขึ้นโดยใช้ Textbox จำนวน 3 Textbox คือ รับ Fixed Cost, Variable Cost ส่วนอีกอันเป็นอันที่ใช้แสดงผล และมี Numericupdown ในการเลือกจำนวนสินค้าที่แสดง โดย Event จะอยู่ที่ปุ่มคำนวณเพียงตัวเดียวในการจัดการค่าทั้งหมด โดยหลักการเบื้องต้นคือ ใช้คำสั่ง For ในการวนลูปตามจำนวนสินค้าที่จะผลิตตามที่เลือกจาก Numericupdown ครับ ซึ่งผมใช้โค้ดดังนี้
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim FC As Decimal
Dim VC As Decimal
Dim VCR As Decimal
Dim TC As Decimal
Dim good As Integer
Dim i As Integer
Dim strOutput As String
Dim AFC As Decimal
Dim AVC As Decimal
Dim ATC As Decimal

FC = Val(Text1.Text)
VC = Val(Text2.Text)
good = numproduct.Value

strOutput = "Product" & ControlChars.Tab & "FC" & ControlChars.Tab & "VC" & ControlChars.Tab & "TC" & ControlChars.Tab & "AFC" & ControlChars.Tab & "AVC" & ControlChars.Tab & "ATC" & ControlChars.CrLf

For i = 1 To good

VCR = VC * i
TC = FC + VCR
AFC = FC / good
AVC = VCR / good
ATC = AFC + AVC

strOutput &= (i & ControlChars.Tab & FC & ControlChars.Tab & VCR & ControlChars.Tab & TC & ControlChars.Tab & String.Format("{0:F}", AFC) & ControlChars.Tab & String.Format("{0:F}", AVC) & ControlChars.Tab & String.Format("{0:F}", ATC) & ControlChars.CrLf)

Next

txtResult.Text = strOutput

End Sub
End Class
สังเกตุดูนะครับว่า ผมไม่ได้ใส่ตัว MC หรือ Marginal Cost ลงไปเลย เพราะผมไม่รู้ว่าจะทำอย่างไรครับ เนื่องจากสูตรของ MC คือ TC อันปัจจุบันลบกับ TC อันก่อนหน้า ซึ่งนี่คือสิ่งที่ผมอยากจะมาถามพี่ๆในบอร์ดครับที่พอจะรู้เรื่อง Visual Basic หัวข้อนี้ เพราะลูปคือการทำงานวนไปเรื่อยจนถึงค่าที่กำหนด แต่ผมอยากทราบว่า เราจะนำค่าที่อยู่ในแถวปัจจุบันไปลบกับแถวก่อนหน้าได้อย่างไรครับ
จะใช้คำสั่งอย่างไรดี หรือ Nested Loop ก็ไม่น่าใช่ ช่วยผมด้วยครับ ยากมากๆ
ตอบกลับโพส

ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 73 และ บุคคลทั่วไป 0 ท่าน