Find Middle Value มีสามจะเอาหนึ่ง

ในเวลาที่ผมต้องเลือก 1 ใน 3 นี้ ถ้าเป็นการเลือกสาวสวยก็คงลำบากใจเหมือนกัน เพราะอาจเหมาไว้ทั้งหมด แต่หากเป็นการเลือกค่า 1 ค่าจาก 3 ค่าล่ะก็ไม่ยากครับ โดยเฉพาะฟังก์ชั่น max และ min นั้นก็มีกันอยู่แล้ว แต่นี่เป็นฟังก์ชั่นสั้นๆที่จะหาค่าที่ไม่มากและไม่น้อยไปกว่าค่าอีกสองค่าที่เหลือ มาแนวนี้เลยต้องใช้ชื่อว่า midvalue (ค่าขนาดกลาง) ยังไงล่ะครับ ... ไปดู code กันเลย

function midvalue
parameter val_1,val_2,val_3
maxvalue = max(val_1,val_2,val_3)
minvalue = min(val_1,val_2,val_3)
returnvalue = 0
do case
case val_1>=minvalue .and. val_1<maxvalue
returnvalue = val_1
case val_2>=minvalue .and. val_2<maxvalue
returnvalue = val_2
case val_3>=minvalue .and. val_3<maxvalue
returnvalue = val_3
endcase
return returnvalue
endfunc

วิธีเรียกใช้ก็เหมือนฟังก์ชั่นทั่วไป ให้ a,b และ c เป็นตัวแปรที่มีค่าบรรจุอยู่แล้วเรียกใช้ฟังก์ชั่นว่า ...

x=minvalue(a,b,c)

ค่า x จะเป็นค่าที่คืนมาจากฟังก์ชั่น ซึ่งจะเป็นค่า 1 ใน 3 ค่าที่ส่งไป และจะไม่มากและไม่น้อยกว่าอีก 2 ค่าที่เหลือครับ

หลักการก็ไม่มีอะไรมาก หาค่ามากที่สุด และน้อยที่สุดมาเก็บไว้ก่อนด้วยฟังก์ชั่น max และ min จากนั้นก็เข้าเงื่อนไขหาค่าที่ไม่มากและไม่น้อยไปกว่าอีกสองค่าที่เหลือ เท่านี้ก็เรียบร้อย... อ้อ! ฟังก์ชั่นนี้ใช้ได้กับการเลือก 1 จาก 3 อย่างที่ว่าครับ จะมากกว่านี้ก็ต้องปรับปรุงกันเอาเองล่ะครับ....จบข่าว!

โชคดี มีสุข 
บายครับ

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

เมื่อ VFP Table พัง

VFP SQL UPDATE ปรับปรุงค่าในฟิลด์ด้วยค่าจากตารางอื่น

การใช้ Array ร่วมกับ Function