30
259201 Computer Programming for Engineers Engineering Problem#1

259201 Computer Programming for Engineers

  • Upload
    landis

  • View
    33

  • Download
    0

Embed Size (px)

DESCRIPTION

259201 Computer Programming for Engineers. Engineering Problem#1. ปัญหาด้านการจัดการสินค้าคงคลัง (Inventory Problem). การผลิต (Production) คือ การแปลงสภาพของวัตถุดิบ ด้วยกระบวนการต่างๆ เพื่อให้ได้มาซึ่งสินค้าหรือผลิตภัณฑ์ที่ตรงตามความต้องการของลูกค้า โดยอาศัยทรัพยากรต่างๆในระบบการผลิต - PowerPoint PPT Presentation

Citation preview

Page 1: 259201 Computer Programming for Engineers

259201Computer Programming for Engineers

Engineering Problem#1

Page 2: 259201 Computer Programming for Engineers

ปั�ญหาด้�านการจั�ด้การสิ�นค้�าค้งค้ลั�ง (Inventory Problem)

การผลั�ต (Production) ค้�อ การแปัลังสิภาพของวั�ตถุ�ด้�บ ด้�วัยกระบวันการต!างๆ เพ�$อให�ได้�มาซึ่)$งสิ�นค้�าหร�อผลั�ตภ�ณฑ์,ที่.$ตรงตามค้วัามต�องการของลั/กค้�า โด้ยอาศั�ยที่ร�พยากรต!างๆในระบบการผลั�ต

วั�ตถุ�ด้�บ จั)งเปั2นปั�จัจั�ยสิ3าค้�ญของระบบการผลั�ตในภาค้อ�ตสิาหกรรม แลัะเปั2นสิ!วันหน)$งในการก3าหนด้ราค้าของสิ�นค้�า

ด้�งน�4น การจั�ด้การเพ�$อลัด้ต�นที่�นของการจั�ด้การวั�ตถุ�ด้�บ จั)งเปั2นอ.กที่างเลั�อกหน)$งในการเพ�$มโอกาสิในการที่3าก3าไรให�แก!องค้,กร

Page 3: 259201 Computer Programming for Engineers

ต�นที่�นในการจั�ด้การสิ�นค้�าค้งค้ลั�ง

เราสิามารถุแบ!งต�นที่�นในการจั�ด้การสิ�นค้�าค้งค้ลั�ง ออกเปั2น 3 ปัระเภที่หลั�กๆ ได้�แก! ต�นที่�นราค้าของวั�ตถุ�ด้�บ (บาที่/ชิ้�4น) ต�นที่�นในการสิ�$งซึ่�4อแต!ลัะค้ร�4ง (บาที่/ค้ร�4ง )

เชิ้!น ต�นที่�นการขนสิ!ง เปั2นต�น ต�นที่�นในการเก6บร�กษาวั�ตถุ�ด้�บ (บาที่/ชิ้�4น/ปั8 )

เชิ้!น ต�นที่�นค้!าเชิ้!าพ�4นที่.$เก6บสิ�นค้�า , เง�นเด้�อนของพน�กงานที่.$ด้/แลัค้ลั�งสิ�นค้�า เปั2นต�นหน!วัยของต�นที่�นในการเก6บร�กษาวั�ตถุ�ด้�บ อาจัเปั2น บาที่/ชิ้�4น/เด้�อน หร�อ บาที่/ชิ้�4น/วั�น ก6ได้�ข)4นอย/!ก�บค้วัามเหมาะสิมของการหม�นเวั.ยนวั�ตถุ�ด้�บในค้ลั�ง

Material Cost

Ordering Cost

Holding Cost

Page 4: 259201 Computer Programming for Engineers

ต�นที่�นในการจั�ด้การสิ�นค้�าค้งค้ลั�ง

ร�านขายก9วัยเต.:ยวั วั�เค้ราะห,ต�นที่�นที่.$เก�ด้ข)4นของลั/กชิ้�4นหม/ พบวั!า ในการซึ่�4อแลัะเก6บร�กษาลั/กชิ้�4นหม/ของที่.$ร �าน ม.ต�นที่�นต!างๆ ด้�งน.4 ต�นที่�นค้!าลั/กชิ้�4นหม/ ก�โลักร�มลัะ 140 บาที่ ในการซึ่�4อลั/กชิ้�4นหม/แต!ลัะค้ร�4ง เสิ.ยค้!าน34าม�นรถุ 15 บาที่/ค้ร�4ง ต/�เย6นที่.$ใชิ้�ในการเก6บลั/กชิ้�4น ก�นไฟเฉลั.$ยวั�นลัะ 25 บาที่ แลัะสิามารถุเก6บ

ลั/กชิ้�4นได้�สิ/งสิ�ด้ 100 ก�โลักร�ม ค้�ด้เปั2นค้!าไฟ = 25/100 = 0.25 บาที่/กก./วั�น

เจั�าของร�านวั�เค้ราะห,ต�นที่�นลั/กชิ้�4นหม/ ได้�ด้�งน.4 Material Cost = ค้!าลั/กชิ้�4นหม/ = 140 บาที่/ก�โลักร�ม Ordering Cost = ค้!าน34าม�นในการซึ่�4อลั/กชิ้�4นแต!ลัะค้ร�4ง = 15 บาที่ /

ค้ร�4ง Holding Cost = ค้!าไฟต/�เย6นที่.$ใชิ้�เก6บลั/กชิ้�4น = 0.25 บาที่ / กก . /

วั�น

Page 5: 259201 Computer Programming for Engineers

เจั�าของร�านพบวั!า โด้ยเฉลั.$ยแลั�วัใน 1 เด้�อน จัะต�องใชิ้�ลั/กชิ้�4นหม/ในการที่3าก9วัยเต.:ยวั 60 ก�โลักร�ม เจั�าของร�านจัะซึ่�4อลั/กชิ้�4นหม/ค้ร�4งลัะก.$ก�โลักร�ม ? แลัะค้วัรซึ่�4อเด้�อนลัะก.$ค้ร�4ง ? จั)งจัะที่3าให�ต�นที่�นต3$าที่.$สิ�ด้

หากก3าหนด้ให� จั3านวันลั/กชิ้�4นหม/ที่.$อย/!ในต/�เย6นโด้ยเฉลั.$ยแลั�วั ม.จั3านวันเที่!าก�บ ค้ร)$งหน)$งของการสิ�$งซึ่�4อแต!ลัะค้ร�4ง ซึ่�4อค้ร�4งเด้.ยวั ค้ร�4งลัะ 60 ก�โลักร�ม? ซึ่�4อ 2 ค้ร�4ง ค้ร�4งลัะ 30 ก�โลักร�ม ? ซึ่�4อ 3 ค้ร�4ง ค้ร�4งลัะ 20 ก�โลักร�ม? ซึ่�4อ 4 ค้ร�4ง ค้ร�4งลัะ 15 ก�โลักร�ม?

การสั่��งซื้อแบบไหนที่��จะที่�าให�ต้�นที่�นต้��าที่��สั่�ด???......

......

ต�นที่�นในการจั�ด้การสิ�นค้�าค้งค้ลั�ง

Page 6: 259201 Computer Programming for Engineers

เจั�าของร�านจั)งได้� ใชิ้�โปัรแกรมชิ้�$อ meatball.c ในการค้3านวัณค้!าใชิ้�จั!ายที่.$เก�ด้ข)4น ด้�งน.4

#include "stdio.h"void main(){ float N,Q,M,O,H,MC,OC,HC,TC; printf("Number of Ordering (order/month): "); scanf("%f", &N); printf("Quantity per order (unit/order): "); scanf("%f", &Q); printf("Input material cost (baht/unit): "); scanf("%f", &M); printf("Input ordering cost (baht/order): "); scanf("%f", &O); printf("Input holding cost (baht/unit/day): "); scanf("%f", &H); MC = Q*N*M; OC = N*O; HC = Q/2*H*30; TC = MC+OC+HC; printf("Total Cost is: %.0f baht/month \n",TC);}

ต�นที่�นในการจั�ด้การสิ�นค้�าค้งค้ลั�ง

Page 7: 259201 Computer Programming for Engineers

เจั�าของร�านที่3าการ Trial and error ใสิ!จั3านวันค้ร�4ง แลัะปัร�มาณการซึ่�4อแต!ลัะค้ร�4ง ได้�ผลัลั�พธ์, ด้�งน.4

Minimum cost

ต�นที่�นในการจั�ด้การสิ�นค้�าค้งค้ลั�ง

Page 8: 259201 Computer Programming for Engineers

จัะม.วั�ธ์.ใด้บ�าง ที่.$เจั�าของร�าน ไม!ต�องเสิ.ยเวัลัาที่ด้ลัองสิ�!มค้!าต�วัเลัขใสิ!ลังไปัเอง?

โปัรแกรมสิามารถุหาค้3าตอบที่.$เปั2นต�นที่�นที่.$ต3$าที่.$สิ�ด้ ได้�อย!างไร???

สิ�งเกต�จั3านวันการสิ�$งซึ่�4อ แลัะปัร�มาณการสิ�$งซึ่�4อต!อค้ร�4ง ที่.$สิ�มพ�นธ์,ก�บต�นที่�น

ปร�มาณการสั่��งซื้อ

จ�านวนคร�งที่��ซื้อ

ต้�นที่�นว�ต้ถุ�ด�บ

ต้�นที่�นในการสั่��งซื้อ

ต้�นที่�นการจ�ดเก#บ

ต้�นที่�นรวม

60 1 84

00 15 225

86 40

30 2 84

00 30

112 5

8542.

5

20 3 84

00 45 75

85 20

15 4 84

00 60

562. 5

8516.

25

12 5 84

00 75 45

85 20

ต�นที่�นในการจั�ด้การสิ�นค้�าค้งค้ลั�ง

Page 9: 259201 Computer Programming for Engineers

จั�ด้ที่.$ต�นที่�นต3$าที่.$สิ�ด้จัากสิถุานการณ,ที่�4งหมด้ที่.$ที่ด้สิอบ

หมายเหต�: เน�$องจัากต�นที่�นค้!า วั�ตถุ�ด้�บ ม.ค้!าเที่!าก�นหมด้ในที่�กกรณ. จั)งไม!ได้�น3ามาพ�จัารณาในการเข.ยนกราฟ

ต�นที่�นในการจั�ด้การสิ�นค้�าค้งค้ลั�ง

Page 10: 259201 Computer Programming for Engineers

เจั�าของร�าน จั)งที่ด้ลัองเปัลั.$ยนปัร�มาณการสิ�$งซึ่�4อต!อค้ร�4งไปัเร�$อยๆ ต�4งแต! 1 kg – 60 kg แลัะเข.ยนกราฟ

จั�ด้ที่.$ต�นที่�นต3$าที่.$สิ�ด้จัากสิถุานการณ,ที่�4งหมด้ที่.$ที่ด้สิอบ

ต�นที่�นในการจั�ด้การสิ�นค้�าค้งค้ลั�ง

Page 11: 259201 Computer Programming for Engineers

เจั�าของร�านได้�พ�ฒนาโปัรแกรม จัากโปัรแกรมเด้�มที่.$ม.อย/! โด้ยให�โปัรแกรมเพ�$มจั3านวันการสิ�$งซึ่�4อลั/กชิ้�4นหม/ที่.ลัะ 1 kg เพ�$อค้3านวัณหาต�นที่�นที่.$เก�ด้ข)4นที่�4งหมด้ แลั�วัเลั�อกปัร�มาณการสิ�$งซึ่�4อที่.$ที่3าให�ต�นที่�นต3$าที่.$สิ�ด้

เจั�าของร�านก9วัยเต.:ยวั ค้วัรออกแบบให�โปัรแกรมที่3างานอย!างไรบ�าง???

เม�$อต�องการผลัลั�พธ์,ของโปัรแกรม ด้�งน.4

ต�นที่�นในการจั�ด้การสิ�นค้�าค้งค้ลั�ง

Page 12: 259201 Computer Programming for Engineers

OutputQ = ปัร�มาณในการซึ่�4อลั/กชิ้�4นต!อค้ร�4ง (kg/order)N = จั3านวันค้ร�4งในการซึ่�4อลั/กชิ้�4นต!อเด้�อน (order/month)TC = ต�นที่�นรวัมในการจั�ด้ซึ่�4อจั�ด้เก6บลั/กชิ้�4น (baht/month)

InputD = ปัร�มาณลั/กชิ้�4นที่.$ต�องการใชิ้�ตลัอด้ที่�4งเด้�อน = 60 kg/monthM = ต�นที่�นลั/กชิ้�4นต!อก�โลักร�ม = 140 baht/kgO = ต�นที่�นในการซึ่�4อลั/กชิ้�4นต!อค้ร�4ง = 15 baht/orderH = ต�นที่�นในการจั�ด้เก6บลั/กชิ้�4น (โด้ยเฉลั.$ยม.ลั/กชิ้�4นอย/!ในต/�เย6น Q/2) = 0.25 baht.kg/day หร�อ = 0.25 baht/kg/day * 30 day/month = 7.5 baht/month

ต�นที่�นในการจั�ด้การสิ�นค้�าค้งค้ลั�ง

Page 13: 259201 Computer Programming for Engineers

วั�ธ์.ที่.$ 1: ให�โปัรแกรมค้3านวัณต�นที่�นกรณ.ที่.$สิ� $งซึ่�4อลั/กชิ้�4นหม/

ต�4งแต! 1 kg – 60 kg แลัะเก6บค้!าต�นที่�น ปัร�มาณสิ�$งซึ่�4อ แลัะจั3านวันการสิ�$งซึ่�4อ ที่.$ต3$าที่.$สิ�ด้ไวั�

สิร�ปัปัร�มาณสิ�$งซึ่�4อ จั3านวันค้ร�4งในการสิ�$งซึ่�4อ แลัะต�นที่�นที่.$ต3$าที่.$สิ�ด้

ต�นที่�นในการจั�ด้การสิ�นค้�าค้งค้ลั�ง

Page 14: 259201 Computer Programming for Engineers

แนวัค้วัามค้�ด้ของวั�ธ์.ที่.$ 1

Order QuantityOrder Quantity

Annual CostAnnual Cost

Holding Cost Curve

Holding Cost Curve

Total Cost Curve

Total Cost Curve

Order (Setup) Cost CurveOrder (Setup) Cost Curve

Optimal Optimal Order Quantity (Q*)Order Quantity (Q*)

TC(1)

TC(2)

minTC

TC(3)

หาต�นที่�นที่.$เก�ด้ข)4นในที่�กๆ จั�ด้ แลั�วัเปัร.ยบเที่.ยบวั!าเปั2นค้!าต3$าสิ�ด้หร�อไม!

......

...... ........................

Page 15: 259201 Computer Programming for Engineers

#include "stdio.h“ // meatball2.cvoid main(){ float N,Q,M,O,H,MC,OC,HC,TC,minTC=100000,D,Qo,No,TCo; int i; printf("Input demand of material (unit/month): "); scanf("%f", &D); printf("Input material cost (baht/unit): "); scanf("%f", &M); printf("Input ordering cost (baht/order): "); scanf("%f", &O); printf("Input holding cost (baht/unit/day): "); scanf("%f", &H); for ( i=1 ; i<=D ; i++ ){ Q = i; N = D/Q; MC = Q*N*M; OC = N*O; HC = Q/2.*H*30.; TC = MC+OC+HC; if (TC < minTC){ minTC = TC; Qo = Q; //Qo ค้�อ ปัร�มาณการสิ�$งซึ่�4อที่.$ที่3าให�เก�ด้ต�นที่�นต3$าที่.$สิ�ด้ No = N; //No ค้�อ จั3านวันค้ร�4งในการซึ่�4อของที่.$ที่3าให�เก�ด้ต�นที่�นต3$าที่.$สิ�ด้ TCo = TC;}//TCo ค้�อ ต�นที่�นที่.$ต3$าที่.$สิ�ด้ที่.$เก�ด้ข)4น } printf("The best quantity is: %.2f kg/order \n",Qo); printf("Number of order is: %.2f order/month \n",No); printf("Total Cost is: %.0f baht/month \n",TCo);}

แนวัค้วัามค้�ด้ของวั�ธ์.ที่.$ 1

Page 16: 259201 Computer Programming for Engineers

ต�นที่�นในการจั�ด้การสิ�นค้�าค้งค้ลั�ง

วั�ธ์.ที่.$ 2: ให�โปัรแกรมค้3านวัณต�นที่�นกรณ.ที่.$สิ� $งซึ่�4อลั/กชิ้�4นหม/ เร�$มจัาก 1 kg โปัรแกรมค้3านวัณต�นที่�นที่.$เก�ด้ข)4น จัากปัร�มาณการสิ�$งซึ่�4อน�4นๆ โปัรแกรมที่3าการเปัร.ยบเที่.ยบ วั!าต�นที่�นที่.$เก�ด้ข)4นต3$ากวั!าปัร�มาณ

การสิ�$งซึ่�4อก!อนหน�าน�4นหร�อไม!หากต�นที่�นที่.$เก�ด้ข)4นต3$ากวั!าปัร�มาณสิ�$งซึ่�4อก!อนหน�า ให�ร�นโปัรแกรมต!อไปัหากต�นที่�นที่.$เก�ด้ข)4นสิ/งกวั!า ปัร�มาณการสิ�$งซึ่�4อก!อนหน�าน�4น แสิด้งวั!าปัร�มาณการสิ�$งซึ่�4อก!อนหน�าน.4 เปั2นปัร�มาณการสิ�$งซึ่�4อที่.$ต3$าที่.$สิ�ด้แลั�วั ให�โปัรแกรมออกจัากลั/ปั

สิร�ปัปัร�มาณการสิ�$งซึ่�4อที่.$ต3$าที่.$สิ�ด้ จั3านวันค้ร�4งในการสิ�$งซึ่�4อ แลัะต�นที่�นที่.$ต3$าที่.$สิ�ด้

Page 17: 259201 Computer Programming for Engineers

แนวัค้วัามค้�ด้ของวั�ธ์.ที่.$ 2

Order QuantityOrder Quantity

Annual CostAnnual Cost

Holding Cost Curve

Holding Cost Curve

Total Cost Curve

Total Cost Curve

Order (Setup) Cost CurveOrder (Setup) Cost Curve

Optimal Optimal Order Quantity (Q*)Order Quantity (Q*)

TC(1)

TC(2) TC(i)

TC(3)TC(i-1)

Total Cost เม�$อเที่.ยบก�บปัร�มาณการสิ�$งซึ่�4อก!อนหน�า เร�$มม.ค้!ามากข)4น แสิด้งวั!า TC (i-1) ม.ค้!าต3$าสิ�ด้

......

......

โปัรแกรมออกจัากลั/ปั

แลัะไม!ร�นในสิ!วันน.4ต!อ

Page 18: 259201 Computer Programming for Engineers

#include "stdio.h“ //meatball3.cvoid main(){ float N,M,O,H,Q,MC,OC,HC,TC,TC_prev,D,Qo,No,TCo; int i; printf("Input demand of material (unit/month): "); scanf("%f", &D); printf("Input material cost (baht/unit): "); scanf("%f", &M); printf("Input ordering cost (baht/order): "); scanf("%f", &O); printf("Input holding cost (baht/unit/day): "); scanf("%f", &H); for ( i=1 ; i<=D ; i++ ){ Q = i; N = D/Q; MC = Q*N*M; OC = N*O; HC = Q/2.*H*30.; TC = MC+OC+HC; if (i>1 && TC > TC_prev){ Qo = i-1; //Qo ค้�อ ปัร�มาณการสิ�$งซึ่�4อที่.$ที่3าให�เก�ด้ต�นที่�นต3$าที่.$สิ�ด้ No = D/(i-1); //No ค้�อ จั3านวันค้ร�4งในการซึ่�4อของที่.$ที่3าให�เก�ด้ต�นที่�นต3$าที่.$สิ�ด้ TCo = TC_prev;//TCo ค้�อ ต�นที่�นที่.$ต3$าที่.$สิ�ด้ที่.$เก�ด้ข)4น break;} TC_prev=TC; } printf("The best quantity is: %.2f kg/order \n",Qo); printf("Number of order is: %.2f order/month \n",No); printf("Total Cost is: %.0f baht/month \n",TCo);}

ข�อด้. ของวั�ธ์.ที่.$ 2 ค้�อ เม�$อเจัอค้3าตอบแลั�วั โปัรแกรมจัะออกจัากลั/ปัที่�นที่. ไม!จั3าเปั2นต�องร�นจันค้รบที่�กรอบ

แนวัค้วัามค้�ด้ของวั�ธ์.ที่.$ 2

Page 19: 259201 Computer Programming for Engineers

เปัร.ยบเที่.ยบผลัลั�พธ์,จัากวั�ธ์.ค้�ด้ที่.$ 1 แลัะ 2

จัากการเปัร.ยบเที่.ยบ พบวั!า การซึ่�4อลั/กชิ้�4นค้ร�4ง 15 หร�อ

16 kg ที่3าให�เก�ด้ต�นที่�นเที่!าก�น ค้�อ 8,516.25 บาที่

น�$นแสิด้งวั!า เจั�าของร�านจัะเลั�อกซึ่�4อค้ร�4งลัะ 15 หร�อ 16 kg ก6ไม!ต!างก�น

พ�จัารณาจั3านวันค้ร�4งในการสิ�$งซึ่�4อ4 ค้ร�4ง/เด้�อน = ซึ่�4อที่�กๆ 7.5 วั�น3.75 ค้ร�4ง/เด้�อน = ซึ่�4อที่�กๆ 8 วั�น

ด้�งน�4น เจั�าของร�านจัะเลั�อกที่างเลั�อกใด้ก6ได้� ต�นที่�นที่.$เก�ด้ข)4นเที่!าก�น

วั�ธ์.ที่.$ 1

วั�ธ์.ที่.$ 2

Page 20: 259201 Computer Programming for Engineers

ต�วัอย!างที่.$ 1: Inventory Problem

บร�ษ�ที่ผลั�ตเฟอร,น�เจัอร, ต�องการค้3านวัณหาปัร�มาณการสิ�$งซึ่�4อ ในการสิ�$งซึ่�4อวั�สิด้�ของการผลั�ตโค้มไฟ ที่.$ที่3าให�เก�ด้ต�นที่�นในการสิ�$งซึ่�4อ แลัะการจั�ด้เก6บวั�สิด้�น�อยที่.$สิ�ด้ ซึ่)$งค้!าใชิ้�จั!ายต!างๆ ของวั�สิด้�ในการผลั�ตโค้มไฟ ได้�แก! ราค้าวั�ตถุ�ด้�บที่.$ใชิ้�ที่3าโค้มไฟ = 120 บาที่/ชิ้�4น ค้!าใชิ้�จั!ายในการสิ�$งซึ่�4อ = 160 บาที่/ค้ร�4ง ค้!าใชิ้�จั!ายในการเก6บร�กษา = 40 บาที่/ชิ้�4น/ปั8

หากค้วัามต�องการของลั/กค้�าเที่!าก�บ 6,000 ชิ้�4น/ปั8 บร�ษ�ที่ค้วัรสิ�$งซึ่�4อปั8ลัะก.$ค้ร� 4ง ค้ร�4งลัะก.$ชิ้�4น แลัะที่3าให�เก�ด้ต�นที่�นเที่!าใด้

Page 21: 259201 Computer Programming for Engineers

น�กศั)กษาสิามารถุแก�ไข/ด้�ด้แปัลัง จัากโปัรแกรม meatball2.c หร�อ meatball3.c

จัะต�องม.การแก�ไขโปัรแกรมที่.$บรรที่�ด้ใด้บ�าง ??? หากต�องการผลัลั�พธ์, ด้�งน.4

ต�วัอย!างที่.$ 1: Inventory Problem

Page 22: 259201 Computer Programming for Engineers

ต�วัอย!างที่.$ 2: Advanced Inventory Problem จัากต�วัอย!างที่.$ 1 หากผ/�ผลั�ตวั�ตถุ�ด้�บ จั�ด้สิ!งวั�ตถุ�ด้�บให�

เปั2นกลั!อง โด้ย 1 กลั!อง บรรจั� จั3านวันวั�ตถุ�ด้�บ 1 โหลั ด้�งน�4น ปัร�มาณการสิ�$งซึ่�4อที่.$ซึ่�4อจัร�ง จัะไม!เที่!าก�บปัร�มาณ

การสิ�$งซึ่�4อที่.$ด้.ที่.$สิ�ด้ที่.$ค้3านวัณได้� เชิ้!น ถุ�าปัร�มาณการสิ�$งซึ่�4อที่.$ด้.ที่.$สิ�ด้ = 18 ชิ้�4น (อย/!

ระหวั!าง 1 โหลั แลัะ 2 โหลั)จัะต�องพ�จัารณาวั!า ซึ่�4อ 12 ชิ้�4น หร�อ 24 ชิ้�4น ที่.$จัะที่3าให�ต�นที่�นต3$ากวั!าก�น12 ชิ้�4น

12 ชิ้�4น

12 ชิ้�4น

** 18 ชิ้�น **

ปร�มาณการสั่��งซื้อที่��ด�ที่��สั่�ด

จ�านวนที่��ซื้อได� (Upper case)

จ�านวนที่��ซื้อได� (Lower case)

เปร�ยบเที่�ยบต้�นที่�น

Page 23: 259201 Computer Programming for Engineers

ด้�งน�4น เม�$อค้3านวัณปัร�มาณการสิ�$งซึ่�4อที่.$ด้.ที่.$สิ�ด้ได้�แลั�วั จัะต�องปั�ด้ให�เปั2นจั3านวันที่.$บรรจั�ในกลั!องได้�พอด้. (บรรจั�กลั!องลัะ 12 ชิ้�4น) ตรวัจัสิอบเง�$อนไข วั!าจั3านวันที่.$ค้3านวัณได้�หาร 12 ลังต�วัหร�อไม! Qo%12==0

ค้3านวัณต�นที่�นกรณ. Lower Case LBox = floor(Qo/12); LQ = 12*LBox; LN = D/LQ; LTC = (LQ*LN*M)+(LN*O)+(LQ/2*H);

ค�าสั่��ง floor ใชิ้�ในการป'ดเศษของสั่มาชิ้�กของอาร+เรย+ลง

ใชิ้�ในการต้รวจสั่อบว-า Qo หารด�วย 12 ลงต้�วหรอไม- ถุ�าหารลงต้�ว ผลล�พธ์+จะม�ค-าเที่-าก�บ 0

Material cost Ordering cost Holding cost

ปัร�มาณการสิ�$งซึ่�4อด้�าน Lower

จั3านวันค้ร�4งในการสิ�$งซึ่�4อ ด้�าน Lower

ต�นที่�นรวัมในการสิ�$งซึ่�4อ ด้�าน Lower

ต�วัอย!างที่.$ 2: Advanced Inventory Problem

Page 24: 259201 Computer Programming for Engineers

ค้3านวัณต�นที่�นกรณ. Upper Case UBox = ceil(Qo/12); UQ = 12*UBox; UN = D/UQ; UTC = (UQ*UN*M)+(UN*O)+(UQ/2*H);

จัากน�4นที่3าการเปัร.ยบเที่.ยบ LTC แลัะ UTC วั!าต�นที่�นด้�านใด้น�อยกวั!า

เลั�อกที่างเลั�อกที่.$ที่3าให�เก�ด้ต�นที่�นต3$ากวั!า สิร�ปัแลัะปัระมวัลัผลั

ค�าสั่��ง ceil ใชิ้�ในการป'ดเศษของสั่มาชิ้�กของอาร+เรย+ข1น

Material cost Ordering cost Holding cost

ปัร�มาณการสิ�$งซึ่�4อด้�าน Upper

จั3านวันค้ร�4งในการสิ�$งซึ่�4อ ด้�าน Upper

ต�นที่�นรวัมในการสิ�$งซึ่�4อ ด้�าน Lower

ต�วัอย!างที่.$ 2: Advanced Inventory Problem

Page 25: 259201 Computer Programming for Engineers

ผลัลั�พธ์,จัากต�วัอย!างที่.$ 2

ให�น�กศั)กษาที่ด้ลัองเข.ยนโปัรแกรมของต�วัอย!างน.4

Page 26: 259201 Computer Programming for Engineers
Page 27: 259201 Computer Programming for Engineers

เฉลัย ต�วัอย!างที่.$ 1 (lamp.c)#include "stdio.h"void main(){ float N,Q,M,O,H,MC,OC,HC,TC,TC_prev,D,Qo,No,TCo; int i; printf("Input demand of material (unit/year): "); scanf("%f", &D); printf("Input material cost (baht/unit): "); scanf("%f", &M); printf("Input ordering cost (baht/order): "); scanf("%f", &O); printf("Input holding cost (baht/unit/year): "); scanf("%f", &H); for ( i=1 ; i<=D ; i++ ){ Q = i; N = D/Q; MC = Q*N*M; OC = N*O; HC = Q/2.*H; TC = MC+OC+HC; if (i>1 && TC > TC_prev){ Qo = i-1; //Qo ค้�อ ปัร�มาณการสิ�$งซึ่�4อที่.$ที่3าให�เก�ด้ต�นที่�นต3$าที่.$สิ�ด้ No = D/(i-1); //No ค้�อ จั3านวันค้ร�4งในการซึ่�4อของที่.$ที่3าให�เก�ด้ต�นที่�นต3$าที่.$สิ�ด้ TCo = TC_prev;//TCo ค้�อ ต�นที่�นที่.$ต3$าที่.$สิ�ด้ที่.$เก�ด้ข)4น MCo = Qo*No*M; OCo = No*O; HCo = Qo/2*H; break;} TC_prev=TC; } printf("The best quantity is: %.2f kg/order \n",Qo); printf("Number of order is: %.2f order/month \n",No); printf("Total Cost is: %.0f baht/month \n",TCo);} printf("\t Total material cost is: %.2f baht/year\n",MCo); printf("\t Total ordering cost is: %.2f baht/year\n",OCo); printf("\t Total holding cost is: %.2f baht/year\n",HCo);}

Page 28: 259201 Computer Programming for Engineers

#include "stdio.h“#include “math.h"void main(){ float N,Q,M,O,H,MC,OC,HC,TC,TC_prev,D,Qo,No,Tco,LN,LTC,UN,UTC; int i,Lbox,LQ,Ubox,UQ; printf("Input demand of material (unit/year): "); scanf("%f", &D); printf("Input material cost (baht/unit): "); scanf("%f", &M); printf("Input ordering cost (baht/order): "); scanf("%f", &O); printf("Input holding cost (baht/unit/year): "); scanf("%f", &H); for ( i=1 ; i<=D ; i++ ){ Q = i; N = D/Q; MC = Q*N*M; OC = N*O; HC = Q/2.*H; TC = MC+OC+HC; if (i>1 && TC > TC_prev){ Qo = i-1; if (Qo%12 == 0) { No = D/(i-1); TCo = TC_prev; MCo = Qo*No*M; OCo = No*O; HCo = Qo/2*H;}}

เฉลัย ต�วัอย!างที่.$ 2 (lamp2.c) สิ!วันที่.$ 1/3

ต้รวจสั่อบว-า Qo หารด�วย 12 ลงต้�วหรอไม-

Page 29: 259201 Computer Programming for Engineers

else { // ค้3านวัณด้�าน Lower case LBox = floor(Qo/12.); LQ = 12*LBox; LN = D/LQ; LTC = (LQ*LN*M)+(LN*O)+(LQ/2.*H); // ค้3านวัณด้�าน Upper case UBox = ceil(Qo/12.); UQ = 12*UBox; UN = D/UQ; UTC = (UQ*UN*M)+(UN*O)+(UQ/2.*H); /// เปัร.ยบเที่.ยบต�นที่�น LTC แลัะ UTC if (LTC < UTC){ Qo = LQ; Box = LBox; No = LN; TCo = LTC; MCo = LQ*LN*M; OCo = LN*O; HCo = LQ/2*H;}

ค�านวณต้�นที่�นกรณ� Lower case

เฉลัย ต�วัอย!างที่.$ 2 (lamp2.c) สิ!วันที่.$ 2/3

ค�านวณต้�นที่�นกรณ� Upper case

เปร�ยบเที่�ยบต้�นที่�น กรณ� Lower และ Upper case

กรณ� 1: Lower case ถุ2กกว-า

Page 30: 259201 Computer Programming for Engineers

else{ Qo = UQ; Box = UBox; No = UN; TCo = UTC; MCo = UQ*UN*M; OCo = UN*O; HCo = UQ/2*H; } } break; } TC_prev=TC; } printf("The best quantity is: %.2f units/order or %d boxes/order \n",Qo,Box); printf("Number of order is: %.2f orders/year \n",No); printf("Total Cost is: %.2f baht/year \n",TCo); printf("\t Total material cost is: %.2f baht/year\n",MCo); printf("\t Total ordering cost is: %.2f baht/year\n",OCo); printf("\t Total holding cost is: %.2f baht/year\n",HCo);}

เฉลัย ต�วัอย!างที่.$ 2 (lamp2.c) สิ!วันที่.$ 3/3

เปร�ยบเที่�ยบต้�นที่�น กรณ� Lower และ Upper case

กรณ� 2: Upper case ถุ2กกว-า