261

ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก
Page 2: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

คานา

การจดการเรยนการสอนในประเทศไทยปจจบนนจะเนนใหผเรยนเปนศนยกลางสาหรบ

การศกษาคนควาขอมลดวยตวเอง ซงไดมการนาอปกรณคอมพวเตอรและซอฟตแวรตางๆ มาใช

ชวยในการเรยนการสอนและทางานวจยในหลายสาขาวชา โดยมการนาเสนอในรปบทเรยนอเลก

ทรอนกส เชน ซด สอการเรยนการสอนผานทางโทรทศนและเครอขายดาวเทยม สอการเรยนการ

สอนผานทางเครอขายอนเทอรเนต (E-leaning) เปนตน

โปรแกรม SCILAB เปนโปรแกรมภาษาขนสงทถกพฒนาขนโดยความรวมมอกนระหวาง

นกวจยจากสถาบน Institut National De Recherche En Informatique Et En Automatique

(INRIA) และ École nationale des ponts et chausses (ENPC) ประเทศฝรงเศส ตงแต ค.ศ.

1990 โดยมจดมงหมายเพอใชในการคานวณเชงตวเลขและแสดงผลกราฟกทซบซอนตางๆ ได ดงนน

โปรแกรม SCILAB จงเหมาะกบการใชงานทางดานวศวกรรมและวทยาศาสตร นอกจากนโปรแกรม

SCILAB ยงเปนโปรแกรมทใหฟร (freeware) อนญาตใหผใชสามารถนาไปพฒนาตอได และม

ความสามารถในการทางานทใกลเคยงกบโปรแกรม MATLAB ซงเปนโปรแกรมทนยมใชงานมาก

ทางดานวศวกรรมและวทยาศาสตร แตคาลขสทธซอฟตแวรของ MATLAB มราคาแพงมาก

หนงสอ “การพฒนาสอการสอนโดยใชโปรแกรม SCILAB รวมกบ Visual Basic /

PHP / Flash Animation” มจดมงหมายเพออธบายตงแตพนฐานการใชงานโปรแกรม SCILAB

การนาโปรแกรม SCILAB มาประยกตใชงานรวมกบโปรแกรม Visual Basic, PHP และ Flash

Animation เพอสรางบทเรยนชวยสอนบนอนเทอรเนตทางดานวศวกรรมและวทยาศาสตรทสามารถ

โตตอบกบผเรยนได นอกจากนยงชวยใหนกศกษาเขาใจทฤษฏในบทเรยนงายขน รวมทงสนกกบ

บทเรยนตางๆ ทมภาพเคลอนไหวประกอบคาบรรยาย

หนงสอเลมนจะเรมตนอธบายจาก ความรทวไปเกยวกบโปรแกรม SCILAB เชน ประวต

ความเปนมาของโปรแกรม SCILAB และการใชงานคาสงพนฐานทวไป บทท 2 จะอธบายเครองมอ

ตางๆ ของโปรแกรม Visual Basic และขนตอนการเขยนโปรแกรมตดตอกบโปรแกรม SCILAB

บทท 3 ยกตวอยางการพฒนาสอการเรยนการสอนดวยโปรแกรม Visual Basic รวมกบ SCILAB

เชน การบวก/ลบ/คณ/หาร ของเลขสองจานวน การบวกและลบสมการพหนาม และการวาดกราฟ

สองมต บทท 4 อธบายพนฐานการใชงานโปรแกรมภาษา PHP รวมถงการนาไปประยกตใชงาน

Page 3: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

รวมกบโปรแกรม SCILAB บทท 5 ยกตวอยางการพฒนาสอการเรยนการสอนผานเวบไซตหลายๆ

แบบโดยใชโปรแกรมภาษา PHP รวมกบโปรแกรม SCILAB บทท 6 อธบายความรเบองตนเกยวกบ

การใชงานโปรแกรม SWISH Max ทใชสรางไฟลภาพเคลอนไหวแบบแฟลช (Flash Animation)

เพอนาไปประยกตใชงานรวมกบโปรแกรม SCILAB สดทายบทท 7 ยกตวอยางการสรางสอการสอน

ดวยโปรแกรม SWISH Max และ SCILAB โดยโคดตนฉบบทงหมดของทกตวอยางในหนงสอ

เลมนสามารถดาวนโหลดไดท http://home.npru.ac.th/piya/webscilab/book2

หนงสอเลมนจะไมสามารถทาใหสาเรจขนมาได ถาหากขาดบคคลตางๆ ทคอยใหความ

ชวยเหลอและเปนกาลงใจใหขาพเจาตลอดมา ดงนนขาพเจาขอกราบขอบพระคณอาจารยทกทานท

ใหความรและคาปรกษาตลอดระยะเวลาการศกษา รวมทงคณเกยรต โควนททววฒน, คณพรรณ

โควนททววฒน, คณรชนศ โรจนกจ, คณอนทศน โรจนกจ, คณฉตรชย โควนททววฒน, คณกตต

ศกด โควนททววฒน, พ.ญ.ศรสดา โสมนส, ดร.พชรศกด อาลย, รอยตารวจตรบญหลง บฮวดใช,

จาสบตารวจพงษพนธ บฮวดใช, นางอาพร บฮวดใช (จนทรอาพร), และเจาหนาทสถาบนวจยและ

พฒนาทกทาน นอกจากนขาพเจาขอขอบคณมหาวทยาลยราชภฏนครปฐมทใหการสนบสนนและ

ใหความสะดวกแกขาพเจาตลอดระยะเวลาในการเขยนหนงสอเลมน

ทายสดนขาพเจาพยายามอยางยงในการทจะทาใหหนงสอเลมนงายตอการเรยนร เพอให

ผอานสามารถทาความเขาใจไดดวยตนเองอยางรวดเรวและมประสทธผล ดงนนหากมขอบกพรอง

ประการใด ขาพเจามความยนดและจกขอบพระคณยง ถาทานผใชหนงสอเลมนจะสงขอคดเหนและ

คาแนะนาทเปนประโยชนสาหรบการปรบปรงหนงสอเลมนมาทอเมล [email protected] หรอ

[email protected] เพอทขาพเจาจะไดดาเนนการปรบปรงและแกไขในการพมพครงตอไป

รศ.ดร.ปยะ โควนททววฒน

จรนดร บอวดใช

มหาวทยาลยราชภฏนครปฐม

มถนายน พ.ศ. 2556

Page 4: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

สารบญ

บทท 1 พนฐานการใชงานโปรแกรม SCILAB ......................................................... 1

1.1 ประวตความเปนมาของโปรแกรม SCILAB .................................................................... 1

1.2 การตดตงโปรแกรม SCILAB ........................................................................................ 3

1.3 การสรางสเกลาร เวกเตอร และเมทรกซ ......................................................................... 3

1.3.1 การหาทรานสโพส ดเทอรมแนนต อนเวอรสการคณ ของเมทรกซ ...................... 7

1.3.2 การแกระบบสมการเชงเสน ................................................................................. 8

1.4 พหนาม ........................................................................................................................ 9

1.5 การดาเนนการทางคณตศาสตร .................................................................................... 11

1.6 การดาเนนการทางคณตศาสตร .................................................................................... 13

1.6.1 ฟงกชนพนฐานทเกยวกบตวเลข ........................................................................ 13

1.6.2 ฟงกชนตรโกณมต ........................................................................................... 15

1.6.3 ฟงกชนพนฐานทางสถต ................................................................................... 16

1.7 เมทรกซพเศษ ............................................................................................................ 17

1.7.1 เมทรกซสม ..................................................................................................... 18

1.8 การเขยนโปรแกรมดวย SCILAB ................................................................................ 19

1.8.1 คาสงวนซา ...................................................................................................... 19

1.8.2 คาสงทดสอบเงอนไข ........................................................................................ 21

1.8.3 การเขยนฟงกชนแบบอนไลน............................................................................ 22

1.9 การวาดกราฟสองมต ................................................................................................... 23

1.9.1 กราฟเชงขว ...................................................................................................... 24

1.10 การวาดกราฟสามมต ................................................................................................. 26

1.11 สรปทายบท .............................................................................................................. 29

Page 5: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

1.12 แบบฝกหดทายบท .................................................................................................... 29

บทท 2 การใชงานโปรแกรม VISUAL BASIC รวมกบ SCILAB ....................... 31

2.1 ประวตความเปนมาของโปรแกรม VISUAL BASIC ......................................................... 31

2.2 โปรแกรม VISUAL BASIC 2010 EXPRESS ................................................................... 32

2.2.1 แถบเมน .......................................................................................................... 32

2.2.2 แถบเครองมอมาตราฐาน .................................................................................. 32

2.2.3 หนาตางโซลชน ................................................................................................ 33

2.2.4 หนาตางคณสมบต ........................................................................................... 34

2.2.5 หนาตางกลองเครองมอ .................................................................................... 35

2.2.6 ประเภทขอมลพนฐาน ...................................................................................... 35

2.3 การใชงานโปรแกรม VISUAL BASIC รวมกบ SCILAB................................................. 35

2.3.1 ขนตอนการเรยกใชงานไลบราร Microsoft Scripting Runtime ........................ 38

2.3.2 รปแบบการใชงาน FileSystemObject ............................................................... 39

2.3.3 ฟงกชนทเกยวของโปรแกรม Visual Basic 2010 ............................................. 41

2.4 ฟงกชนทเกยวของของโปรแกรม SCILAB ................................................................... 45

2.4.1 คาสง file ........................................................................................................ 45

2.4.2 คาสง fprintf ................................................................................................... 46

2.4.3 คาสง exec ...................................................................................................... 47

2.4.4 คาสง savematfile ........................................................................................... 48

2.4.5 คาสง xs2gif .................................................................................................... 48

2.5 การเขยนโปรแกรม VISUAL BASIC ตดตอกบ SCILAB ............................................... 49

2.5.1 การสรางไฟลสครปต ........................................................................................ 50

2.5.2 การเขยนไฟลสครปต ........................................................................................ 52

2.5.3 การประมวลผลไฟลสครปต .............................................................................. 53

2.5.4 การบนทกผลลพธลงไฟลขอมล ......................................................................... 55

2.5.5 การแสดงผลลพธ ............................................................................................. 58

2.6 สรปทายบท ................................................................................................................ 60

2.7 แบบฝกหดทายบท ...................................................................................................... 60

Page 6: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

บทท 3 การสรางสอการสอนดวยโปรแกรม VISUAL BASIC รวมกบ SCILAB .... 61

3.1 การบวก/ลบ/คณ/หาร ของเลขสองจานวน .................................................................... 61

3.2 การหาดเทอรมแนนตและอนเวอรสของเมทรกซ ........................................................... 64

3.2.1 ฟอรมกาหนดขนาดของเมทรกซ ....................................................................... 65

3.2.2 ฟอรมสาหรบหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 2×2 ................. 66

3.2.3 ฟอรมสาหรบหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 3×3 ................. 72

3.2.4 ทดสอบการใชงาน ............................................................................................ 77

3.3 การพสจนคณสมบตของเมทรกซ ................................................................................. 80

3.3.1 การพสจนคณสมบต (kA)T = kAT ................................................................... 80

3.3.2 การพสจนคณสมบต (A + B)T = AT + BT ................................................... 88

3.3.3 การพสจนคณสมบต (AB)T = BTAT ................................................................ 94

3.4 การหาคาลอการทมฐานใดๆ ....................................................................................... 100

3.5 การบวกและลบสมการพหนาม .................................................................................. 103

3.6 การวาดกราฟสองมต ................................................................................................. 107

3.7 สรปทายบท .............................................................................................................. 110

3.8 แบบฝกหดทายบท .................................................................................................... 110

บทท 4 ความรเบองตนเกยวกบภาษา PHP .......................................................... 111

4.1 ประวตความเปนมาของ PHP ..................................................................................... 111

4.2 การเตรยมตวกอนเขยนเวบไซตดวยภาษา PHP .......................................................... 111

4.2.1 การตดตงโปรแกรม AppServ ......................................................................... 111

4.2.2 การตดตงโปรแกรม Adobe Dreamweaver CS5.5 ......................................... 113

4.2.3 แนวทางการเขยนโปรแกรมเวบไซตภาษา PHP รวมกบ SCILAB .................... 115

4.3 เรมตนกบการเขยนภาษา PHP .................................................................................. 116

4.3.1 การแสดงผล .................................................................................................. 116

4.3.2 การเขยนคอมเมนต ........................................................................................ 116

4.3.3 การกาหนดตวแปร ......................................................................................... 117

4.3.4 การใชเครองหมายอญประกาศเดยวและเครองหมายอญประกาศ ...................... 117

4.3.5 การนยามตวแปรลวงหนา ............................................................................... 118

Page 7: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

4.3.6 แบบชนดขอมล .............................................................................................. 119

4.3.7 ตวดาเนนการเลขคณต .................................................................................... 119

4.3.8 ตวดาเนนการเพม/ลดคา ................................................................................. 119

4.3.9 ตวดาเนนการเปรยบเทยบ ............................................................................... 120

4.3.10 ตวดาเนนการทางตรรกะ ............................................................................... 121

4.3.11 การทดสอบเงอนไข ...................................................................................... 121

4.3.12 การทาซา ..................................................................................................... 125

4.4 ฟงกชนและการใชงาน ............................................................................................... 127

4.4.1 การสรางฟงกชน ............................................................................................ 129

4.4.2 ฟงกชนทเกยวกบสายอกขระ .......................................................................... 130

4.4.3 ฟงกชนทเกยวกบตวเลข ................................................................................. 134

4.5 การจดการไฟล .......................................................................................................... 135

4.5.1 การสรางไฟล ................................................................................................. 135

4.5.2 การอานไฟล .................................................................................................. 135

4.5.3 การลบไฟล .................................................................................................... 136

4.5.4 การใชงานโปรแกรมภายนอก .......................................................................... 136

4.6 สรปทายบท .............................................................................................................. 137

4.7 แบบฝกหดทายบท .................................................................................................... 137

บทท 5 การสรางสอการสอนผานเวบไซต .............................................................. 139

5.1 การบวก/ลบ/คณ/หาร ของเลขสองจานวน .................................................................. 139

5.2 การหาดเทอรมแนนตและอนเวอรสของเมทรกซ ......................................................... 145

5.2.1 หนาเพจกาหนดขนาดของเมทรกซ .................................................................. 145

5.2.2 หนาเพจสาหรบหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 2×2 ............ 149

5.2.3 หนาเพจสาหรบหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 3×3 ............ 153

5.2.4 ทดสอบการใชงาน .......................................................................................... 159

5.3 การพสจนคณสมบตของเมทรกซ ............................................................................... 160

5.3.1 การพสจนคณสมบต (kA)T = kAT ................................................................. 160

5.2.2 การพสจนคณสมบต (A+B)T = AT + BT ..................................................... 170

Page 8: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

5.2.3 การพสจนคณสมบต (AB)T = ATBT .............................................................. 183

5.3 การหาคาลอการทมฐานใดๆ ....................................................................................... 184

5.4 การบวกและลบของสมการพหนาม ............................................................................ 190

5.5 การวาดกราฟสองมต ................................................................................................. 196

5.6 สรปทายบท .............................................................................................................. 201

5.7 แบบฝกหดทายบท .................................................................................................... 202

บทท 6 ความรเบองตนโปรแกรม SWISH MAX ................................................ 203

6.1 ประวตความเปนมาของโปรแกรม SWISH MAX ........................................................ 203

6.2 การตดตงโปรแกรม SWISH MAX4 .......................................................................... 204

6.3 สวนตอประสานกบผใชของโปรแกรม SWISH MAX4 ................................................ 207

6.4 การสรางชนงานดวยโปรแกรม SWISH MAX4 .......................................................... 213

6.4.1 การแทรกไฟลรปภาพ ..................................................................................... 214

6.4.2 การแทรกไฟลเสยง ......................................................................................... 216

6.4.3 การแทรกไฟลวดโอ ........................................................................................ 217

6.4.4 การแทรกขอความ .......................................................................................... 218

6.4.5 การวาดเสนและวาดรป ................................................................................... 220

6.4.6 การบนทกชนงาน .......................................................................................... 221

6.4.7 การสงออกชนงาน ......................................................................................... 221

6.5 การใสลกเลน ............................................................................................................ 221

6.5.1 ตวอยางการใสลกเลนใหกบชนงาน ................................................................. 222

6.6 การใสสครปตเบองตน............................................................................................... 223

6.6.1 การใสสครปตเกยวกบการควบคมการแสดงผล ................................................ 223

6.6.2 การใสสครปตเพอสรางการเชอมโยง ................................................................ 225

6.6.3 การใสสครปตเกยวกบเสยง ............................................................................ 226

6.7 สรปทายบท .............................................................................................................. 226

6.8 แบบฝกหดทายบท .................................................................................................... 227

บทท 7 การสรางสอการสอนดวยโปรแกรม SWISH MAX และ SCILAB ........... 229

7.1 ประวตความเปนมาของแอคชนสครปต ....................................................................... 229

Page 9: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

7.2 ขนตอนการเขยนสครปตโปรแกรม SWISH MAX รวมกบ SCILAB .............................. 229

7.2.1 การสงหรอโหลดขอมลระหวางไฟลภาพเคลอนไหวแบบแฟลชกบไฟล PHP ........ 230

7.2.2 ตวอยางการสรางเวบไซตทมภาพเคลอนไหวแบบแฟลชรวมกบ SCILAB ........... 230

7.3 สรปทายบท .............................................................................................................. 247

7.4 แบบฝกหดทายบท .................................................................................................... 248

บรรณานกรม ....................................................................................................... 249

Page 10: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

1

บทท 1 พนฐานการใชงานโปรแกรม SCILAB

บทนจะสรปพนฐานการใชงานโปรแกรม SCILAB ทจาเปนสาหรบการนาไปใชงานรวมกบโปรแกรม

ตางๆ เพอสรางสอการเรยนการสอนในบทตอไป โดยบทนจะเรมตนกลาวถงประวตความเปนมาของ

โปรแกรม SCILAB จากนนจะอธบายการสรางตวแปรสเกลาร เวกเตอร เมทรกซ และพหนาม

การใชตวดาเนนการทางคณตศาสตรแบบตางๆ รวมถงวธการเขยนโปรแกรม และการวาดกราฟสอง

มตและสามมตดวยโปรแกรม SCILAB

1.1 ประวตความเปนมาของโปรแกรม SCILAB

SCILAB เปนโปรแกรมภาษาขนสงทถกพฒนาขนโดยความรวมมอกนระหวางนกวจยจากสถาบน

Institut National De Recherche En Informatique Et En Automatique (INRIA) และ École

nationale des ponts et chausses (ENPC) ประเทศฝรงเศส ตงแต ค.ศ. 1989 [1] โดยมจดมงหมาย

เพอใชในการคานวณเชงตวเลขและแสดงผลกราฟกทซบซอน ดงนนโปรแกรม SCILAB จงเหมาะ

สาหรบการใชงานทางดานวทยาศาสตรและวศวกรรมศาสตร นอกจากนโปรแกรม SCILAB ยงเปน

โปรแกรมทใหฟร1 และอนญาตใหผใชสามารถนาไปพฒนาตอยอดได ผสนใจสามารถดาวนโหลด

ไฟลโปรแกรม SCILAB และขอมลทเกยวของตางๆ ไดจากเวบไซต http://www.scilab.org หรอท

http://home.npru.ac.th/piya/webscilab

สงทสาคญอกประการหนงของโปรแกรม SCILAB2 คอความสามารถในการทางานทใกล

เคยงกบโปรแกรม MATLAB [3] ซงเปนโปรแกรมทนยมมากสาหรบผใชงานทางดานวทยาศาสตร

และวศวกรรมศาสตร แตคาลขสทธซอฟตแวรของโปรแกรม MATLAB นนมราคาแพงมาก

1 ไมตองเสยเงนคาลขสทธซอฟตแวร แตการใชงานตองอยภายใตเงอนไขของใบอนญาต CeCILL [2] 2 นอกจากนยงมโปรแกรมอนๆ อกทใหฟร (freeware) และทางานคลายกบโปรแกรม SCILAB เชน โปรแกรม Octave

(http://www.octave.org) อยางไรกตามจากการทดลองใชงานพบวาโปรแกรม SCILAB สามารถทางานไดเปนอยางด

รวมทงไดรบการพฒนาอยางตอเนองตลอดเวลา

Page 11: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

2

เพราะฉะนนในปจจบนนหลายๆ หนวยงานทงภาคอตสาหกรรมและภาคการศกษาทงในและนอก

ประเทศไดเรมนาโปรแกรม SCILAB มาชวยในการทางาน การเรยนการสอน และการทาวจย

ทงนเปนเพราะวาโปรแกรม SCILAB สามารถทางานไดอยางมประสทธภาพ และไมตองเสยเงน

คาลขสทธซอฟตแวร

โดยทวไปโปรแกรม SCILAB มขอดสรปไดดงน

มความงายตอการเรยนรและทาความเขาใจ

มขนตอนการเขยนโปรแกรมไมยงยาก

มฟงกชน (function) สาหรบการคานวณทางคณตศาสตรจานวนมากพรอมใชงาน

มกลองเครองมอ (toolbox) จานวนมากทประกอบดวยฟงกชนตางๆ ทจาเปนสาหรบการแกไข

ปญหาทางดานวทยาศาสตรและวศวกรรมศาสตร เชน กลองเครองมอดานการควบคมทนทาน

(robust control), กลองเครองมอดานการประมวลผลสญญาณ (signal processing), และ

กลองเครองมอดานการหาคาเหมาะทสด (optimization) เปนตน

ประมวลผลขอมลทอยในรปของเมทรกซ (matrix) และในรปเชงสญลกษณ (symbolic) ได

อยางรวดเรวและมประสทธภาพ

สามารถพฒนาฟงกชนใหมๆ ขนมาใชงานรวมกบโปรแกรม SCILAB ไดโดยงาย

ใชงานรวมกบโปรแกรมภาษาฟอรแทรน (FORTRAN), ภาษาซ (C) และ MATLAB ได

ใชงานรวมกบโปรแกรม LabVIEW เพอทาการเชอมตอกบอปกรณฮารดแวรได

สรางโปรแกรมสาเรจรปสาหรบการจาลองระบบ (system simulation) ไดโดยใชเครองมอของ

โปรแกรม SCILAB ทเรยกวา “Xcos”

พฒนาตอยอดไดเนองจากมรหสตนฉบบ (source code) และคมอการใชงานให ซงสามารถ

ดาวนโหลดไดจากเวบไซต http://www.scilab.org

จากทกลาวมาขางตนจะเหนไดวาโปรแกรม SCILAB ทางานไดหลากหลาย อยางไรกตาม

บทนจะสรปเฉพาะพนฐานการใชงานโปรแกรม SCILAB เพอใหผอานสามารถนาไปใชงานไดอยาง

ถกตองและรวดเรว สาหรบผสนใจรายละเอยดของพนฐานการใชงานโปรแกรม SCILAB สามารถ

ศกษาไดจาก [4] นอกจากนโปรแกรม SCILAB ยงสามารถใชงานไดในหลายระบบปฏบตการ เชน

ระบบปฏบตการวนโดวส (Windows XP, Vista, 7), ระบบปฏบตการลนกซ (Linux), และระบบ

ปฏบตการ Mac OS X โดยหนงสอเลมนจะอางองถงโปรแกรม SCILAB เวอรชน 4.1.23 ททางาน

บนระบบปฏบตการวนโดวสเทานน

3 ดาวนโหลดไดท http://home.npru.ac.th/piya/webscilab/download.php ขนาด 15.3 เมกะไบต

Page 12: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

3

รปท 1.1 การเลอกสารบบทตองการตดตงโปรแกรม SCILAB

1.2 การตดตงโปรแกรม SCILAB

ไฟลตดตงโปรแกรม SCILAB เวอรชน 4.1.2 นนคอ “scilab-4.1.2.exe” (15.3 MB) สามารถ

ดาวนโหลดไดทเวบไซต home.npru.ac.th/piya/webscilab/download.php หรอ www.scilab.org

และเมอไดไฟล scilab-4.1.2.exe มาแลว กใหทาการดบเบลคลกทชอไฟลนเพอตดตงโปรแกรม

SCILAB โดยจะตองตดตงโปรแกรมนไวทสารบบ C:\WINDOWS ตามรปท 1.1 จงจะสามารถ

นามาประยกตใชงานรวมกบโปรแกรมอนๆ เพอสรางสอการเรยนการสอนทอธบายในบทตอไปได

จากนนกดปม Next ไปเรอยๆ จนกระทงตดตงโปรแกรม SCILAB เสรจ

1.3 การสรางสเกลาร เวกเตอร และเมทรกซ

คาสเกลาร (scalar) สามารถกาหนดลงในตวแปรไดทนท เชน ถาตองการกาหนดใหตวแปร a มคา

เทากบเลขเชงซอน 2 + 3i และตวแปร b มคาเทากบ 5 กทาไดดงน

-->a = 2 + 3*%i //กาหนดให a = 2 + 3i

a

2. + 3.i

-->b = 5; //กาหนดให b = 5

-->

Page 13: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

4

เมอ %i คอคาคงทพเศษทใชในการแสดงตวเลขเชงซอน โดยมคาเทากบหนวยจนตภาพ (imagi-

nary unit) นนคอ 1= −i สวนเครองหมายเครองหมายอฒภาค (semicolon) “ ; ” ทใชปด

ทายคาสงทสองเปนการบอกใหโปรแกรมไมตองแสดงผลลพธออกทางหนาตางคาสง ในขณะท

เครองหมายทบสองอน (double slash) “ // ” หรอเครองหมายคอมเมนต (comment) จะบอกให

โปรแกรม SCILAB ไมทาการประมวลผลตอคาสงหรอขอความทอยหลงเครองหมายคอมเมนตน

ในการใชงานโปรแกรม SCILAB เครองหมายขนบรรทดใหม “ ... ” ซงมลกษณะเปน

จดทเรยงตอกนสามจด จะมประโยชนมากในการเขยนโปรแกรมโดยเฉพาะอยางยงเมอคาสงทใชม

ความยาวมาก เครองหมายนเอาไวใชตอทายคาสงเพอบอกวาคาสงในบรรทดนนยงไมสนสด ดงนน

ถงแมวาจะกดปม Enter หลงเครองหมายขนบรรทดใหมน โปรแกรม SCILAB กยงไมนาคาสงนน

ไปประมวลผล แตจะรอรบขอมลสวนทเหลอทจะเขยนตอไปในบรรทดใหมจนกระทงหมดคาสงแลว

กดปม Enter อกครง จากนนโปรแกรม SCILAB จงนาขอความทงหมดมารวมกนเปนประโยค

คาสงเดยว แลวจงนาไปประมวลผล ตวอยางเชน

-->x = 5; y = 3;

-->z = x + y //หาผลบวกของตวแปร x กบตวแปร y แลวนาผลลพธทได

z = //ไปบรรจไวในตวแปร z

8.

-->z = x + ... //หมายถงยงไมสนสดคาสง โปรแกรม SCILAB ยงไมนาขอมลนไปประมวลผล

-->y //เมอกดปม Enter กถอวาเปนการสนสดคาสงทปอนจากบรรทดกอนหนาน

z = //โปรแกรม SCILAB จงนาคาสงทงหมดคอ z = x + y ไปประมวลผล

8. //ผลลพธทไดมคาเทากน

นอกจากนโปรแกรม SCILAB ไดเตรยมคาคงทพเศษอนๆ เพอรองรบการคานวณทาง

คณตศาสตร ไดแก

%pi คอคาอตราสวนระหวางความยาวเสนรอบวงกบเสนผานศนยกลางของวงกลม มคาเทากบ

3.1415927

%e คอคาคงทตรโกณมต (trigonometric constant) มคาเทากบ 2.7182818

%inf ใชแทนตวเลขทมคาเปนอนนต (infinity) นนคอ %inf = ∞ เชน คา 1/0

%eps มาจากคาวา “epsilon” คอคาหนวยยอยขนาดเลกสด (≈ 2.22×10-16) ทโปรแกรม

SCILAB รองรบได กลาวคอตวเลขทมคานอยกวาคา %eps โปรแกรม SCILAB ถอวามคา

เทากบ 0

Page 14: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

5

%nan ใชแทนคาทไมสามารถแสดงใหอยในรปของตวเลขได (มาจากคาวา Not-A-Number)

เชน คา 0/0

ans คอตวแปรชวคราว (temporary variable) ทเกบคาของผลลพธทไดจากการคานวณของ

คาสง ซงจะถกนามาใชโดยอตโนมต ในกรณทไมมการระบตวแปรมารบคาของผลลพธ

%t หรอ %T คาคงตวบลน (Boolean constant) ทแสดงวาเปนจรง (True)

%f หรอ %F คาคงตวบลนทแสดงวาเปนเทจ (False)

เวกเตอร (vector) คอเมทรกซ (matrix) ขนาดหนงแถว หรอเมทรกซขนาดหนงแนวตง

เวกเตอรแถว (row vector) สามารถสรางไดโดยการใชเครองหมายจลภาค (comma) “ , ” หรอ

ชองวาง (space) เปนตวแยกสมาชกแตละสมาชกในเวกเตอรแถว ตวอยางเชน

-->v = [1, 2, -3]

v =

1. 2. - 3.

-->v = [1 2 -3]

v =

1. 2. - 3.

ถาตองการทราบวาเวกเตอร v มความยาวเทาใดหรอมจานวนสมาชกทงหมดเทาใด กทาไดโดยการ

ใชคาสง length ดงน

-->length(v)

ans =

3. //หมายความวาเวกเตอร v มสมาชกสามตว

ในขณะทเวกเตอรแนวตง (column vector) สรางไดโดยการทรานสโพส (transpose)

เวกเตอรแถวซงใชเครองหมายอะพอสทรอฟ (apostrophe) “ ' ” ตามหลงตวแปรเวกเตอรแถว หรอสามารถสรางเวกเตอรแนวตงขนมาไดโดยตรง โดยใชเครองหมายอฒภาค “ ; ” เปนตวแยก

สมาชกแตละสมาชกในเวกเตอรแนวตง เชน

-->v = [1 2 3]; //สรางเวกเตอรแถว v

-->v' //ใชทรานสโพสกบเวกเตอรแถวเพอใหไดเปนเวกเตอรแนวตง

ans =

1.

Page 15: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

6

2.

3.

-->w = [1; 2; -3] //สรางเวกเตอรแนวตงขนมาโดยใชเครองหมายเซมโคลอน

w =

1.

2.

- 3.

นอกจากการกาหนดคาโดยตรงใหกบเวกเตอรแลว ผใชยงสามารถกาหนดคาของเวกเตอร

ใหมคาเพมขนหรอลดลงแบบอตโนมตได โดยการใชเครองหมายทวภาค (colon) “ : ” ซงมรปแบบการใชงานดงน

ชอตวแปร = คาเรมตน : คาทเพมขน (หรอคาทลดลง) : คาสดทาย

ในกรณทไมมการกาหนดคาทเพมขน (หรอคาทลดลง) โปรแกรม SCILAB จะกาหนดใหเปนคาท

เพมขนเทากบ +1 โดยอตโนมต (คาโดยปรยาย) ตวอยางเชน

-->z = 1:2:10 //เรมตนทคา 1 แลวเพมขนทละ +2 จนกระทงถงคาทมากสดทไมเกน 10

z =

1. 3. 5. 7. 9.

-->z = 0:5 //เรมตนทคา 0 แลวเพมขนทละ +1 จนกระทงถง 5

z =

0. 1. 2. 3. 4. 5.

-->z = 5:0 //คาเรมตนท 5 ไมสามารถเพมขนทละ +1 จนถง 0 ได ดงนนผลลพธทได

z = //จงมคาเทากบเมทรกซวาง (empty matrix) นนคอมจานวนแถวกบจานวน

[] //แนวตงเทากบศนย

เมทรกซขนาด m×n คอเมทรกซทมจานวน m แถว และ n แนวตง เชน ถาตองการสราง

เมทรกซขนาด 2×3 กสรางได เชน

-->A = [1 2 3; 4 5 6]

A =

Page 16: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

7

1. 2. 3.

4. 5. 6.

และหากตองการทราบวาเมทรกซ A มขนาดเทาใด กทาไดโดยใชคาสง size ดงน

-->size(A)

ans =

2. 3. //บอกวาเมทรกซ A มขนาด 2×3 (หรอ 2 แถว และ 3 แนวตง)

นอกจากนผใชยงสามารถอางถงสมาชกแตละตวในเมทรกซไดโดยตรงตามรปแบบการใช

งานดงน

-->b = A(2, 3)

b =

6.

คาสงนเปนการบอกโปรแกรม SCILAB ใหนาคาของสมาชกในแถวทสองและแนวตงทสามของ

เมทรกซ A ไปบรรจไวในตวแปร b ในทานองเดยวกนผใชยงสามารถกาหนดคาใหแกสมาชกแตละ

ตวในเมทรกซไดโดยตรง เชน

-->A(2, 3) = 10

A =

1. 2. 3.

4. 5. 10.

ซงเปนการกาหนดใหคาของสมาชกในแถวทสองและแนวตงทสามของเมทรกซ A มคาเทากบ 10

ดงนนเมทรกซ A จงมผลลพธตามทแสดงไวขางตน

1.3.1 การหาทรานสโพส ดเทอรมแนนต อนเวอรสการคณ ของเมทรกซ

ทรานสโพสเมทรกซ (matrix transpose) เปนการเปลยนแนวตงใหเปนแถว หรอการเปลยนแถว

ใหเปนแนวตง โปรแกรม SCILAB สามารถทาการทรานสโพสเมทรกซได 2 รปแบบ คอ

1) ทรานสโพสแบบสงยค (conjugate transpose) จะใชเครองหมาย “ ' ” เปนตวดาเนนการ

โดยทาหนาทสรางทรานสโพสเมทรกซ พรอมทงทาการสงยคของตวเลขเชงซอนดวย

2) ทรานสโพสแบบธรรมดา (transpose) จะใชเครองหมาย “ .' ” เปนตวดาเนนการ โดยจะสราง

เฉพาะทรานสโพสเมทรกซเทานน

Page 17: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

8

ตวอยางการใชงานเชน

-->A = [1 + 2*%i; 3; 2 - %i];

-->A' //ใชทรานสโพสแบบสงยค

ans =

1. - 2.i 3. 2. + i //ทาการสงยคของตวเลขเชงซอนดวย

-->A.' //ใชทรานสโพสแบบธรรมดา

ans =

1. + 2.i 3. 2. - i

สาหรบการหาดเทอรมแนนต (determinant) และอนเวอรสการคณของเมทรกซ A ทาได

โดยการใชคาสง det(A) และ inv(A) ตามลาดบ เชน

-->A = [1 2; 3 4]; //สรางเมทรกซ A

-->det(A) //หาดเทอรมแนนต ของเมทรกซ A

ans =

- 2.

-->inv(A) //หาอนเวอรสการคณของเมทรกซ A

ans =

- 2. 1.

1.5 - 0.5

1.3.2 การแกระบบสมการเชงเสน

โปรแกรม SCILAB สามารถนามาใชแกไขปญหาระบบสมการเชงเสน (linear equation system)

ไดโดยงาย ตวอยางเชน ถาตองการแกสมการสองตวแปรเพอหาคาของตวแปร x1 และ x2 จาก

2x1 + x2 = 3 (1.1)

x1 – x2 = 3 (1.2)

Page 18: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

9

ถาใชหลกการแกสมการสองตวแปรทวไปเพอแกสมการท (1.1) และ (1.2) จะไดผลลพธคอ x1 = 2

และ x2 = -1 เชนเดยวกนผใชสามารถแกสมการทงสองนไดโดยใชหลกการของเมทรกซดงน

สมการท (1.1) และ (1.2) สามารถเขยนใหอยในรปของเมทรกซไดคอ

⎡ ⎤⎡ ⎤ ⎡ ⎤⎢ ⎥⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦⎣ ⎦

1

2

bxA

x2 1 3

x1 -1 3= (1.3)

หรอ Ax = b ผลเฉลยของสมการ (1.3) หาไดโดยการนา A-1 (อนเวอสการคณของเมทรกซ A)

มาคณทงสองขางของสมการ (.3) กจะไดผลลพธเปน -1 -1A Ax = A b นนคอ -1

x = A b ดงนน

คาตอบของสมการท (1.1) และ (1.2) หาไดจากการใชชดคาสงดงน

-->A = [2 1; 1 -1]; //เมทรกซขนาด 2×2

-->b = [3; 3]; //เวกเตอรแนวตงขนาด 2×1

-->x = inv(A)*b //คาตอบของสมการสองตวแปรเปนเวกเตอรแนวตงขนาด 2×1

x =

2.

- 1.

ผลลพธทไดคอ x1 = 2 และ x2 = -1

1.4 พหนาม

พหนาม (polynomial) คอผลรวมของจานวนทเขยนในรปการคณของคาคงตวกบตวแปรตงแต 1

ตวขนไป โดยเลขชกาลงของตวแปรแตละตวมคาเปนศนยหรอจานวนเตมบวก อยางไรกตามในทน

จะพจารณาเฉพาะกรณทพหนามเปนฟงกชนของตวแปรเพยงตวเดยวเทานน กลาวคอโปรแกรม

SCILAB จะรองรบพหนามทมรปแบบดงน

2 n0 1 2 ny = a +a x+a x + +a x…

เมอ a = [a0 a1 a2 ... an] คอเวกเตอรทมสมาชกแตละตวเปนคาสมประสทธของพหนาม, x

คอตวแปรพหนาม, n คอดกร (degree) ของพหนาม, และ y คอสมการพหนาม ในโปรแกรม

SCILAB สมการพหนามสรางไดโดยใชคาสง poly ดงน

Page 19: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

10

y = poly(a, "x", [flag])

ซงมรปแบบการใชงานอย 2 แบบ คอ

1) ถาพารามเตอร a เปนเวกเตอร ผลลพธทไดคอสมการพหนาม y ทถกกาหนดโดยพารามเตอร

x และ flag เมอ x คอตวแปรพหนาม และ flag เปนตวเลอก (option) ทมการเรยกใช

งานดงน

flag = "coeff" สรางสมการพหนามจากคาสมประสทธทกาหนดโดยเวกเตอร a

flag = "roots" (คาโดยปรยาย) สรางสมการพหนามจากคาตอบของสมการพหนามท

กาหนดโดยเวกเตอร a

ตวอยางเชน

-->q = poly([1 2 3], "x", "coeff") //สรางสมการพหนามจากคาสมประสทธ

q =

2 1 + 2x + 3x

-->p = poly([1 2], "s") //สรางสมการพหนามจากคาตอบของสมการพหนาม

p = 2

2 - 3s + s //นนคอ s = 1 และ s = 2 เปนคาตอบของ s2 – 3s + 2 = 0

-->roots(p) //คาสงทใชหาคาตอบของสมการพหนาม p

ans =

1.

2.

2) ถาพารามเตอร a เปนเมทรกซ ผลลพธทไดคอสมการลกษณะเฉพาะ (characteristic equa-

tion) ของเมทรกซ a ซงในทางคณตศาสตรสมการลกษณะเฉพาะของเมทรกซ A หาไดจาก

การการแกสมการ det(A – λI) = 0 โดย λ คอคาคงตวใดๆ และ I คอเมทรกซเอกลกษณ

ทมขนาดกบเมทรกซ A เชน ถาใหเมทรกซ ⎡ ⎤⎢ ⎥⎣ ⎦1 23 4

A = จะไดวาสมการลกษณะเฉพาะของ

เมทรกซ A คอสมการ λ λ2-5 -2 = 0 โปรแกรม SCILAB สามารถหาสมการลกษณะเฉพาะ

ของเมทรกซ A ไดโดยใชคาสง poly ดงน

Page 20: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

11

-->A = [1 2; 3 4];

-->y = poly(A, "x") y = 2

- 2 - 5x + x //ผลลพธเทากนกบสมการ λ λ2-5 -2 = 0 เมอแทนคา x = λ

1.5 การดาเนนการทางคณตศาสตร

การคานวณทางคณตศาสตรระหวางคาสเกลารกบคาสเกลาร เครองหมายทใชในการคานวณกบ

เครองหมายทใชในโปรแกรม SCILAB จะแตกตางกนเลกนอยตามตารางท 1.1 ตวอยางเชน

-->a = 3;

-->b = 2;

-->M = [a + b, a - b, a * b; a \b, a /b, a^b] M =

5. 1. 6.

0.6666667 1.5 9.

ในขณะทตวดาเนนการทใชในการคานวณทางคณตศาสตรสาหรบเมทรกซ แสดงในตาราง

ท 1.2 ตวอยางเชน

-->A = [1 2 3; 4 5 6];

-->B = [1 1 1; -1 -1 -1];

-->A + B

ans =

2. 3. 4.

3. 4. 5.

-->A – B

ans =

0. 1. 2.

5. 6. 7.

Page 21: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

12

ตารางท 1.1 การดาเนนการทใชในการคานวณทางคณตศาสตรของคาสเกลาร

การดาเนนการ รปแบบพชคณต รปแบบของ SCILAB

การบวก (addition) a + b a + b

การลบ (subtraction) a – b a – b

การคณ (multiplication) a × b a * b

การหารซาย (left division) b

aa \ b

การหารขวา (right division) a

ba / b

การยกกาลง (exponentiation) ab a^b หรอ a**b

ตารางท 1.2 ตวดาเนนการทใชในการคานวณทางคณตศาสตรของเมทรกซ

ตวดาเนนการ คาอธบาย

+ การบวก (addition)

– การลบ (subtraction)

* การคณ (multiplication)

.* การคณในระดบสมาชก (element-wise multiplication)

.*. การคณแบบโครเนคเกอร (Kronecker product)

\ การหารซาย (left division)

.\ การหารซายในระดบสมาชก (element-wise left division)

.\. การหารซายแบบโครเนคเกอร (Kronecker left division)

/ การหารขวา (right division)

./ การหารขวาในระดบสมาชก (element-wise right division)

./. การหารขวาแบบโครเนคเกอร (Kronecker right division)

^ หรอ ** การยกกาลง (exponentiation)

.^ การยกกาลงในระดบสมาชก (element-wise exponentiation)

-->A * B //จานวนแนวตงของตวตงไมเทากบจานวนแถวของตวคณ

!--error 10

Inconsistent multiplication.

Page 22: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

13

-->A * B'

ans =

6. - 6.

15. - 15.

-->A .* B //การคณในระดบสมาชก

ans =

1. 2. 3.

– 4. – 5. – 6.

-->A .\ B //การหารซายในระดบสมาชก

ans =

1. 0.5 0.3333333

- 0.25 - 0.2 - 0.1666667

-->A .^ B //การยกกาลงในระดบสมาชก

ans =

1. 2. 3.

0.25 0.2 0.1666667

จะเหนไดวาการดาเนนการในระดบสมาชกเกดขนได กตอเมอเมทรกซทงสองมขนาดเทากน

1.6 การดาเนนการทางคณตศาสตร

โปรแกรม SCILAB มฟงกชนทใชในการคานวณทางคณตศาสตรจานวนมากพรอมเรยกใชงาน เชน

ฟงกชนพนฐานทเกยวกบตวเลข ฟงกชนตรโกณมต และฟงกชนพนฐานทางสถต เปนตน โดยม

รายละเอยดดงตอไปน

1.6.1 ฟงกชนพนฐานทเกยวกบตวเลข

ตารางท 1.3 แสดงฟงกชนพนฐานทเกยวกบตวเลข ซงมตวอยางการใชงานเชน

-->abs([1, %i, -2, -2*%i, 3 + 4*%i])

ans =

1. 1. 2. 2. 5.

Page 23: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

14

ตารางท 1.3 ตวอยางฟงกชนพนฐานทเกยวกบตวเลข

ฟงกชน คาอธบาย

abs(x) หาคาสมบรณ (absolute value) ของตวแปร x

sqrt(x) หาคารากทสอง (square root) ของตวแปร x

modulo(m,n) หาคาเศษทเหลอการหารตวแปร n ดวย m

ceil(x) หาคาจานวนเตมทมคาใกลกบคา x ไปทางคา ∞ มากทสด

floor(x) หาคาจานวนเตมทมคาใกลกบคา x ไปทางคา -∞ มากทสด

sign(x) หาคาเครองหมายของตวแปร x

roots(p) หาคารากหรอคาตอบของสมการพหนาม p

real(x) หาคาจานวนจรงของตวแปร x

imag(x) หาคาจานวนจนตภาพของตวแปร x

conj(x) หาคาสงยคของจานวนจานวนเชงซอนของตวแปร x

exp(x) หาคา ex ของตวแปร x

log(x) หาคา log ฐาน e ของตวแปร x

log2(x) หาคา log ฐาน 2 ของตวแปร x

log10(x) หาคา log ฐาน 10 ของตวแปร x

-->sqrt([2, 4, -1, -4])

ans =

1.4142136 2. i 2.i

-->real([0.1, %i, -1.5 + 2*%i, 2 - %i]) ans =

0.1 0. - 1.5 2.

-->imag([0.1, %i, -1.5 + 2*%i, 2 - %i]) ans =

0. 1. 2. - 1.

-->log([1, %e, 10, 20, 100])

ans =

0. 1. 2.3025851 2.9957323 4.6051702

Page 24: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

15

ตารางท 1.4 ฟงกชนตรโกณมตและฟงกชนตรโกณมตผกผน

ฟงกชน คาอธบาย

sin(x) หาคา sine ของตวแปร x

cos(x) หาคา cosine ของตวแปร x

tan(x) หาคา tangent ของตวแปร x

asin(y) หาคา sine inverse ของตวแปร y

acos(y) หาคา cosine inverse ของตวแปร y

atan(y) หาคา tangent inverse ของตวแปร y

-->log10([1, 2, 10, 20, 100])

ans =

0. 0.30103 1. 1.30103 2.

1.6.2 ฟงกชนตรโกณมต

โปรแกรม SCILAB ไดเตรยมคาสงพนฐานสาหรบฟงกชนตรโกณมตและฟงกชนตรโกณมตผกผน

ไวตามตารางท 1.4 โดยคามมทใชหรอทไดรบจากฟงกชนทางตรโกณมตจะตองมหนวยเปนเรเดยน

(radian) ตวอยางเชน

-->y = sin([0, 1, %pi/2, -%pi/2])

y =

0. 0.8414710 1. - 1.

-->x = asin(y)

x =

0. 1. 1.5707963 - 1.570796 //มหนวยเปนเรเดยน -->y = tan([0, %pi/6, %pi/4, %pi/3])

y =

0. 0.5773503 1. 1.7320508

-->x = atan(y)

x =

0. 0.5235988 0.7853982 1.0471976 //มหนวยเปนเรเดยน

Page 25: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

16

ตารางท 1.5 ตวอยางฟงกชนพนฐานทางสถต

ฟงกชน คาอธบาย

min(x) หาคาตาสด (minimum) ของตวเลขทงหมดในตวแปร x

max(x) หาคาสงสด (maximum) ของตวเลขทงหมดในตวแปร x

mean(x) หาคาเฉลย (mean) ของตวเลขทงหมดในตวแปร x

median(x) หาคามธยฐาน (median) ของตวเลขทงหมดในตวแปร x

variance(x) หาคาความแปรปรวน (variance) ของตวเลขทงหมดในตวแปร x

sum(x) หาคาผลบวกของตวเลขทงหมดในตวแปร x

cumsum(x) หาคาผลบวกสะสม (cumulative sum) ของตวเลขทงหมดในตวแปร x

prod(x) หาคาผลคณของตวเลขทงหมดในตวแปร x

cumprod(x) หาคาผลคณสะสม (cumulative product) ของตวเลขทงหมดในตวแปร x

sort(x) เรยงลาดบตวเลขทงหมดในตวแปร x จากคามากไปหาคานอย

histplot(n,x) วาดรปฮสโตแกรม (histogram) ของคาทงหมดในเวกเตอร x เปน

จานวน n ชวงระหวางคาตาสดและคาสงสดของเวกเตอร x

1.6.3 ฟงกชนพนฐานทางสถต

โปรแกรม SCILAB ไดเตรยมฟงกชนสาหรบการใชงานทางดานสถต ตามทแสดงในตารางท 1.5

ตวอยางเชน

-->x = [3 1 4 9 2 5 7 8 6];

-->[min(x), max(x), mean(x), median(x), sum(x)]

ans =

1. 9. 5. 5. 45.

-->sort(x)

ans =

9. 8. 7. 6. 5. 4. 3. 2. 1.

ในการใชงานทางดานสถต คาสงทนยมใชคอคาสง histplot(n,x) ซงเปนคาสงท

ใชวาดรปฮสโตแกรม (histogram) ของคาทงหมดในเวกเตอร x เปนจานวน n ชวงระหวางคาตาสด

และคาสงสดของเวกเตอร x ตวอยางเชน

Page 26: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

17

รปท 1.2 ตวอยางรปฮสโตแกรม

-->d = rand(1, 10000, 'normal'); //สรางตวแปรสมจานวน 10000 ตว

-->subplot(1,2,1);

-->histplot(10, d, normalization = %F); //รปท 1.2 ดานซาย

-->subplot(1,2,2);

-->histplot(20, d, normalization = %F); //รปท 1.2 ดานขวา

คาสงแรกจะทาการสรางจานวนสม (random number) จานวน 10000 ตว (บรรจไวในเวกเตอร

ขนาด 1×10000) โดยมลกษณะการแจกแจงปรกต (normal distribution) หรอการแจกแจงแบบ

เกาสเซยน (Gaussian) นนคอมคาเฉลย (mean) เทากบคา 0 และมคาความแปรปรวน (variance)

เทากบคา 1 จากนนทาการวาดรปฮสโตแกรมของจานวนสมทงหมดโดยแบงขอมลเปน 10 ชวง

(รปท 1.2 ดานซาย) และแบงขอมลเปน 20 ชวง (รปท 1.2 ดานขวา)

1.7 เมทรกซพเศษ

ในการประยกตใชงานเมทรกซ บางครงมความจาเปนตองสรางเมทรกซทมรปแบบเฉพาะ เชน ถา

ตองการสรางเมทรกซทมคาเปน 1 ทงหมดขนาด m×n เมอ m และ n มคามาก โดยการพมพคา

แตละคาเขาไปอาจจะทาใหเสยเวลามากและอาจเกดขอผดพลาดไดงาย ดงนนโปรแกรม SCILAB

จงไดเตรยมฟงกชนพนฐานสาหรบสรางเมทรกซพเศษหลายรปแบบขนมาไวใชงานตามตารางท 1.6

ตวอยางเชน

Page 27: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

18

ตารางท 1.6 ตวอยางเมทรกซพเศษในโปรแกรม SCILAB

คาสง คาอธบาย

eye เมทรกซเอกลกษณ (identity matrix)

ones เมทรกซคาหนง (one matrix)

zeros เมทรกซคาศนย (zero matrix)

rand เมทรกซสม (random matrix)

diag เมทรกซทแยงมม (diagonal matrix)

tril เมทรกซสามเหลยมดานลาง (lower triangular matrix)

triu เมทรกซสามเหลยมดานบน (upper triangular matrix)

toeplitz เมทรกซ Toeplitz (toeplitz matrix)

-->A = eye(3,3) //สรางเมทรกซเอกลกษณทมขนาด 3×3

A =

1. 0. 0.

0. 1. 0.

0. 0. 1.

-->diag([1 2 3]) //คา 1, 2, และ 3 อย ณ เสนทแยงมมหลก

ans =

1. 0. 0.

0. 2. 0.

0. 0. 3.

1.7.1 เมทรกซสม

เมทรกซสม (random matrix) เปนเมทรกซทมสมาชกเปนจานวนสม โปรแกรม SCILAB สราง

เมทรกซสมไดโดยใชคาสง rand ซงมลกษณะการเรยกใชงานดงน

rand(m1, m2, [key])

โดย

Page 28: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

19

m1, m2 คอเลขจานวนเตมบวกทใชกาหนดขนาดของเมทรกซสมทสรางขนมา เชน คาสง

rand(m1,m2) จะสรางเมทรกซสมขนาด m1 แนวนอน และ m2 แนวตง

key เปนตวเลอกทกาหนดลกษณะการแจกแจง (distribution) ของจานวนสมทสราง

กลาวคอถา

o key = "uniform" จานวนสมทสรางขนมาจะมลกษณะการแจกแจงเอกรปมคาอย

ระหวาง 0 ถง 1 (เปนคาโดยปรยาย)

o key = "normal" จานวนสมทสรางขนมาจะมลกษณะการแจกแจงปรกต (หรอแบบ

เกาสเซยน) ทมคาเฉลยเทากบ 0 และมคาความแปรปรวน (varaince) เทากบ 1

ตวอยางการใชงานของคาสงน เชน

-->X = rand(2, 4, 'uniform') //สรางเมทรกซสมขนาด 2×4

X =

0.3095371 0.9706916 0.0204748 0.3490364

0.6762972 0.5441797 0.8941365 0.1105365

-->W = rand(1, 100000, 'normal');

-->[mean(W), variance(W)] //คาเฉลยและคาความแปรปรวนสอดคลองกบ

ans = //ลกษณะการแจกแจงปรกต

0.0048048 0.9988003

1.8 การเขยนโปรแกรมดวย SCILAB

ในสวนนจะอธบายวธการใชงานคาสงวนซาและคาสงทดสอบเงอนไข เพอใหผอานสามารถเขยน

โปรแกรมอยางงายขนมาใชงานไดอยางรวดเรวและมประสทธผล

1.8.1 คาสงวนซา

ในการเขยนโปรแกรม บางครงมความจาเปนตองคานวณชดคาสงบางชดซาหลายครง ซงในกรณน

การใชคาสงวนซาจงมความจาเปนมาก โปรแกรม SCILAB ไดเตรยมคาสงสาหรบการวนซาไวสอง

รปแบบคอ คาสง for และคาสง while ซงมหลกการใชงานดงน

Page 29: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

20

1.8.1.1 คาสง for คาสง for เหมาะสาหรบการใชงานทตองการใหโปรแกรมทาซาชดคาสงเดมทอยภายในลป (loop)

เปนจานวนรอบตามทกาหนดไวในนพจน (expression) ซงมรปแบบการใชงานดงน

กลาวคอโปรแกรมจะทาซาคาสง (instruction) ทงหมดภายในลปเปนจานวนรอบตามทกาหนดโดย

ตวแปรทเปนไปตามเงอนไขของนพจน ตวอยางการใชงานคาสง for เชน

-->L = 5;

-->x = [];

-->for i = 1:L

--> x(i) = i;

-->end

ชดคาสงนหมายความวาเมอเรมตนใชงานตวแปร L มคาเทากบ 5 และกาหนดให x เปนเมทรกซ

วาง (empty matrix) จากนนทาการวนซาโดยใชตวแปร i เปนตวนบจานวนครง นนคอตวแปร i

จะเรมจากคา 1 แลวเพมขนทละ +1 จนถงคา 5 โดยคาของตวแปร i แตละคาจะถกบรรจไวใน

สมาชกลาดบท i ของเวกเตอร x ผลลพธของการประมวลผลชดคาสงนคอ

-->x'

ans =

1. 2. 3. 4. 5.

1.8.1.2 คาสง while คาสง while มลกษณะการทางานคลายกบคาสง for เพยงแตคาสง while จะมการทดสอบ

เงอนไขทผเขยนโปรแกรมกาหนดไวในนพจนทกรอบของการวนซา กลาวคอถาผลการทดสอบให

คาตรรกะเปนคา 1 (เปนจรง) โปรแกรมกจะทาซาชดคาสงภายในลปนนตออกหนงรอบ แตถาผล

การทดสอบใหคาตรรกะเปนคา 0 (เปนเทจ) โปรแกรมกจะยกเลกการทางานชดคาสงภายในลปนน

ทนท คาสง while มรปแบบการใชงานดงน

for variable = expression instruction_1;

instruction_n;

end

Page 30: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

21

ตวอยางเชน

-->L = 5; x = []; -->i = 1;

-->while i <= L --> x(i) = i; --> i = i + 1; -->end

ชดคาสงนใหผลลพธเหมอนกบตวอยางของการใชคาสง for เพยงแตการใชคาสง while ตอง

กาหนดคาเรมตนของตวแปร i กอนนาคา i ไปทาการเปรยบเทยบกบคา L ตามเงอนไขทกาหนด

1.8.2 คาสงทดสอบเงอนไข

คาสงทดสอบเงอนไขมความจาเปนมากสาหรบการเขยนโปรแกรมคอมพวเตอรทซบซอน โดยทวไป

คาสงทดสอบเงอนไขทนยมใชคอ คาสง if ซงมหลกการใชงานดงน

กลาวคอถาผลการทดสอบเงอนไขในนพจนเปนจรง โปรแกรม SCILAB กจะทาคาสงทงหมดทอย

ระหวางคาวา then และ end แตถาผลการทดสอบเปนเทจ โปรแกรม SCILAB จะไมทาคาสง

ทงหมดทอยระหวางคาวา then และ end

นอกจากนคาสง if ยงสามารถนาไปใชงานกบการตดสนใจทซบซอนมากขนไดโดยการ

ใชงานรวมกบ else ซงมรปแบบการใชงานคอ

if expression then

instruction_1;

instruction_n;

end

while expression

instruction_1;

instruction_n;

end

Page 31: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

22

กลาวคอถาผลการทดสอบเงอนไขในนพจนเปนจรง โปรแกรม SCILAB จะทาคาสงทงหมดทอย

ระหวางคาวา then และ else แตถาผลการทดสอบเปนเทจ โปรแกรม SCILAB จะทาคาสง

ทงหมดทอยระหวางคาวา else และ end

ในการใชงานทมการตดสนใจทซบซอนมากยงขน ผใชกยงคงสามารถใชงานคาสง if

รวมกบ elseif ได โดยมรปแบบการใชงานดงน

นนคอถาผลการทดสอบเงอนไขในนพจน expression_1 เปนจรง โปรแกรม SCILAB จะทา

ชดคาสง instructions_set1 แตถาผลการทดสอบเปนเทจ โปรแกรม SCILAB กจะทา

การทดสอบเงอนไขในนพจน expression_2 ตอไปทนท โดยทถาผลการทดสอบในนพจน

expression_2 เปนจรง โปรแกรม SCILAB กจะทาชดคาสง instructions_set2 แต

ถาผลการทดสอบเปนเทจ กจะทาชดคาสง instructions_set3

1.8.3 การเขยนฟงกชนแบบอนไลน

โปรแกรม SCILAB อนญาตใหผใชสรางฟงกชนใหมๆ ขนมาใชงานรวมกบโปรแกรม SCILAB ได

ในทนจะอธบายเฉพาะการเขยนฟงกชนแบบอนไลน (in-line function) ซงมลกษณะการใชงานดงน

function [เอาตพต] = function_name(อนพต), ชดคาสง, endfunction

if expression_1 then

instructions_set1;

elseif expression_2 then

instructions_set2;

else

instructions_set3;

end

if expression then

instructions_set1;

else

instructions_set2;

end

Page 32: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

23

นนคอจะตองเรมตนดวยคาวา function และปดทายดวยคาวา endfunction โดยทภายใน

ฟงกชนจะมคาสงแตละคาสงจะตองคนดวยเครองหมายจลภาค ตวอยางเชนถาตองการสรางฟงกชน

แบบอนไลนทชอ MyMax เพอใชหาคาสงสดของเลขจานวนจรงสองจานวน กทาไดดงน

-->function [y] = MyMax(x1, x2), if x1 >= x2 then y = x1, ... -->else y = x2; end; endfunction;

-->y = MyMax(1, 5) //เรยกฟงกชน MyMax ขนมาใชงาน

y =

5.

นอกจากนยงสามารถใชคาสง deff ในการสรางฟงกชนแบบอนไลนไดเชนกน โดยมรปแบบการ

ใชงานคอ

deff('[เอาตพต] = function_name(อนพต)', 'ชดคาสง')

ตวอยางเชน

-->deff('y = MyMax(x1, x2)', 'if x1 > x2 then y = x1; ... -->else y = x2; end');

-->y = MyMax(1,5) y =

5.

ซงใหผลลพธเทากน

1.9 การวาดกราฟสองมต

คาสงพนฐานสาหรบการวาดกราฟสองมตบนระบบพกดฉาก x-y คอคาสง plot ซงมรปแบบการ

เรยกใชงานดงน

plot(x, y)

Page 33: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

24

เมอเวกเตอร x เปนตวแปรอสระทกาหนดคาในเสนแกน x และเวกเตอร y ซงเปนตวแปรตามท

กาหนดคาในเสนแกน y (โดยเวกเตอร y ตองมขนาดเทากบเวกเตอร x เสมอ) นอกจากนคาสง

plot ยงสามารถเรยกใชงานไดในอกรปแบบหนงคอ

plot(y)

ซงในกรณนโปรแกรม SCILAB จะสมมตวาพารามเตอร x มคาเทากบคา 1 ถงจานวนสมาชก

ทงหมดของเวกเตอร y นนคอ x = 1:length(y) โดยอตโนมต

ตวอยางท 1.1 จงวาดกราฟของรปสญญาณไซนซอยด (sinusoid waveform) ตามสมการ y =

sin(2πft) สาหรบเวลาท t = 0 ถง 2 วนาท ถากาหนดใหความถ f = 1 เฮตรซ (Hertz)

วธทา จากโจทยสามารถเขยนเปนชดคาสงของโปรแกรม SCILAB ไดดงน

-->t = 0:0.01:2;

-->f = 1;

-->y = sin(2*%pi*f*t);

-->plot(t, y)

-->xtitle('A sinusoidal wave','Time (t)','Amplitude')

คาสงแรกเปนการกาหนดใหตวแปร t ใหมคาอยระหวาง 0 ถง 2 โดยสมาชกแตละตวทอยตดกน

จะมคาหางกนเทากบ 0.01 (ขนาดของตวแปร t คอ 1×201) จากนนกาหนดใหความถ f = 1

แลวกหาคาของสญญาณ y โดยคา y ทหามาไดจะมขนาดเทากบตวแปร t จากนนกสงใหวาดกราฟ

ขนมา ซงผลลพธทไดจะเปนกราฟตามรปท 1.3 สวนคาสง xtitle เปนคาสงทใชในการกาหนด

ชอของกราฟ ชอของเสนแกน x และชอของเสนแกน y

1.9.1 กราฟเชงขว

โดยทวไปจดพกด (x, y) ทแสดงถงตาแหนง (location) บนรปกราฟในระบบพกดฉากสามารถเปลยน

ใหอยในรปของจดพกด (r, θ) ในระบบพกดเชงขวได เมอ r คอขนาด และ θ คอมมเรเดยน (เทยบ

กบแกน x ในทศทวนเขมนาฬกา) โดยอาศยกฎของตรโกณมต ดงนนจากรปท 1.4 จะไดวา

2 2r x y= + และ 1 yθ tan x− ⎛ ⎞

⎜ ⎟⎝ ⎠

=

Page 34: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

25

รปท 1.3 สญญาณไซนซอยด y = sin(2πft)

x

y

( )yx,

r

θ

รปท 1.4 ความสมพนธระหวางจด (x, y) ในระบบพกดฉาก และจด (r, θ) ในระบบพกดเชงขว

ในทานองเดยวกนจดพกด (r, θ) ในระบบพกดเชงขวกสามารถแปลงกลบไปเปนจดพกด (x, y)

ในระบบพกดฉากไดจากความสมพนธดงน

( )θx r cos= และ ( )θy r sin=

การวาดกราฟเชงขวในโปรแกรม SCILAB ทาไดโดยการใชคาสง

polarplot(theta, r)

เมอพารามเตอร theta คอคามม θ (มหนวยเปนเรเดยน) และพารามเตอร r คอคาความยาวของ

รศม ตวอยางเชน

Page 35: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

26

รปท 1.5 ตวอยางรปกราฟแสดงผลลพธจากการใชคาสง polarplot

-->t = 0:0.01:2*%pi;

-->polarplot(sin(7*t), cos(8*t))

ผลลพธแสดงในรปท 1.5

หมายเหต นอกจากนโปรแกรม SCILAB ยงไดเตรยมคาสงสาหรบการวาดกราฟสองมตแบบอนๆ

ไวใชงานเฉพาะดานมากมายดงแสดงในตารางท 1.7

1.10 การวาดกราฟสามมต

สมการคณตศาสตรแบบสามตวแปรใดๆ สามารถแสดงใหอยในรปของกราฟสามมตได เพอใชแสดง

ความสมพนธของตวแปรทงสาม การใชงานคาสงวาดกราฟสามมตนนไมยากเพยงแตตองเขาใจถง

รปแบบของขอมลทจะปอนใหกบคาสงเหลาน การวาดกราฟสามมตใชขอมลทงหมดสามชดสาหรบ

เสนแกน x, เสนแกน y, และเสนแกน z ทอยในพกดคารทเซยน (Cartesian coordinate) x-y-z

โดยเวกเตอร x จะเปนตวกาหนดคาในเสนแกน x, เวกเตอร y จะเปนตวกาหนดคาในเสนแกน y,

และตวแปรตามทมคาเปลยนแปลงไปตามคา x และ y ซงกคอขนาดของคาบนเสนแกน z นนเอง

ดงนนตวแปรตาม z นจะตองมจานวนเทากบผลคณของจานวนขอมลในเวกเตอร x กบจานวน

ขอมลในเวกเตอร y

คาสงพนฐานสาหรบวาดกราฟแบบสามมตในโปรแกรม SCILAB มรปแบบดงน

Page 36: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

27

ตารางท 1.7 ตวอยางคาสงในการวาดกราฟสองมตสาหรบการใชงานเฉพาะดาน

คาสง คาอธบาย

contour2d วาดกราฟคอนทวร (contour surface) จากรปกราฟสองมต

champ วาดกราฟสนามเวกเตอรแบบสองมต (2-D vector field)

fchamp วาดกราฟสนามเวกเตอรแบบสองมต ทกาหนดโดยสมการอนพนธอนดบหนง

(first-order ordinary differential equation)

bode วาดกราฟของโบดไดอะแกรม (Bode diagram) ทงกราฟแสดงขนาด (magnitude

plot) และกราฟแสดงมม (phase plot) ซงมประโยชนมากทางดานวศวกรรม

gainplot วาดกราฟแสดงขนาดของโบดไดอะแกรม

nyquist วาดกราฟไนควตซ (Nyquist plot)

evans วาดกราฟอแวนรทโลคส (Evans root locus)

plzr วาดกราฟโพล-ซโร (pole-zero plot)

plot3d(x, y, z)

เมอพารามเตอร x และ y คอเวกเตอรทมขนาดเทากน และพารามเตอร z คอตวแปรตามทขนกบ

คาของ x และ y ซงมจานวนสมาชกเทากบผลคณของจานวนสมาชกในเวกเตอร x กบจานวน

สมาชกในเวกเตอร y

ตวอยางท 1.2 กาหนดใหตวแปร x และ y มคาระหวาง 0 ถง 1 จงวาดกราฟสามมตจากสมการ

( ) ( )2xπ 2yπz 0.5 cos cos=

วธทา จากโจทยสามารถวาดกราฟสามมตไดโดยใชชดคาสงของโปรแกรม SCILAB ดงน

-->x = linspace(0, 1, 21);

-->y = linspace(0, 1, 21);

-->z = abs(0.5 * cos(2*%pi*x)' * cos(2*%pi*y));

-->plot3d(x, y, z);

ผลลพธทไดจากชดคาสงเหลานแสดงในรปท 1.6

Page 37: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

28

รปท 1.6 ตวอยางรปกราฟแสดงผลลพธจากการใชคาสง plot3d

ถาตองการใหมการไลโทนสตามขนาดของคาในแกน z กสามารถทาไดโดยการใชคาสง

plot3d1 และถาตองการทราบความสมพนธระหวางสกบขนาดของคาในแกน z กสามารถทาไดโดย

ใชคาสง colorbar ซงมรปแบบการใชงานคอ

colorbar(umin, umax, [colminmax])

โดยพารามเตอร umin เปนเลขจานวนจรงของคาตาสดของขนาดของคาในแกน z, umax เปนเลข

จานวนจรงของคาสงสดของขนาดของคาในแกน z, และ colminmax เปนตวเลอกทมรปแบบ

การใชงานคอ colminmax = [1 nb_colors] เปนเวกเตอรขนาด 1×2 เมอ nb_colors คอจานวนสทใชในรปกราฟ ตวอยางการใชงานคาสงน เชน (ตอเนองจากรปท 1.6)

-->clf; zmin = min(z);

-->zmax = max(z);

-->colorbar(zmin, zmax, [1 30]);

-->plot3d1(x, y, z);

ผลลพธทไดแสดงในรปท 1.7 ซงมแถบสแสดงความสมพนธระหวางสและขนาดของคาในเสนแกน z

หมายเหต จากทกลาวมาทงหมดนเปนเพยงพนฐานการใชงานโปรแกรม SCILAB สาหรบผทสนใจ

วธการใชงานโปรแกรม SCILAB เพมเตมสามารถศกษารายละเอยดไดจาก [4]

Page 38: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

29

รปท 1.7 ตวอยางรปกราฟแสดงผลลพธจากการใชคาสง colorbar รวมกบ plot3d1

1.11 สรปทายบท

บทนไดสรปพนฐานการใชงานโปรแกรม SCILAB ทจาเปนตางๆ (เชน การสรางสเกลาร เวกเตอร

เมทรกซ และพหนาม ตวดาเนนการทางคณตศาสตร ฟงกชนพนฐานทางคณตศาสตร รวมทงอธบาย

หลกการการเขยนโปรแกรมดวย SCILAB และการวาดกราฟสองมตและสามมต) เพอเปนแนวทาง

ในการนาไปใชงานรวมกบโปรแกรมตางๆ เพอสรางสอการเรยนการสอนทจะอธบายในบทตอไป

1.12 แบบฝกหดทายบท

1. จงคานวณหาคาของฟงกชนตอไปน เมอ x มคาเทากบ −2, 0, 2, −2i และ 2i

1.1) ( )xf 2x 5= − 1.2) ( ) ( )310xf x 2x log 3x 5−= + −

2. กาหนดให

5 8 7A 4 2 6

9 8 9=⎡ ⎤⎢ ⎥⎢ ⎥⎣ ⎦

, 1 2 3

B 2 4 52 3 1

− −= −⎡ ⎤⎢ ⎥⎢ ⎥⎣ ⎦

, 3 1 2

C 1 2 12 1 1

= −− −

⎡ ⎤⎢ ⎥⎢ ⎥⎣ ⎦

และ 2

E 02

−=⎡ ⎤⎢ ⎥⎢ ⎥⎣ ⎦

จงหาคาตอไปน

2.1) AB + BC 2.2) (A + B)/C

2.3) (A + B)C 2.4) AE + CE

Page 39: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

30

3. จงหาคาตอบของสมการลกษณะเฉพาะของเมทรกซตอไปน

3.1) 2 3

A4 5

=⎡ ⎤⎢ ⎥⎣ ⎦

3.2) B = 1 52 3

−−⎡ ⎤⎢ ⎥⎣ ⎦

4. จงแกสมการเพอหาคาของตวแปรทงหมดในระบบสมการเชงเสนตอไปน

4.1) 2x – 3y = 5 4.2) x + y + z = 6

−6x + 9y = −12 x – 2y + z = 0

3x + y – 2z = −1

5. จงหารากหรอคาตอบของสมการตอไปน

5.1) x2 – 2x + 5 = 0 5.2) x3 – 6x2 + 11x – 6 = 0

5.3) x4 – 14x3 + 49x2 – 36x = 0 5.4) x7 + 3x5 – 2x3 + 5x2 – 10x = 0

6. กาหนดใหตวแปร N เปนเลขจานวนเตมบวกใดๆ จงเขยนโปรแกรมโดยใชคาสง for เพอหา

คาตอไปน

6.1) N

i 1i 1 2 3 N

== + + + +∑ … 6.2)

N2 2 2 2 2

i 1i 1 2 3 N

== + + + +∑ …

7. จงเขยนไฟลฟงกชนทมรปแบบการเรยกใชงานคอ

[a, b, c, d] = MoneyExchange(m)

เพอเปลยนจานวนเงน m บาท ใหเปนธนบตรใบละ 100 บาท จานวน a ใบ, ธนบตรใบละ 20

บาท จานวน b ใบ, เหรยญสบบาท จานวน c เหรยญ และเหรยญหนงบาท จานวน d เหรยญ

8. กาหนดให y = (ex − e-x)/2 โดยท −10 ≤ x ≤ 10

8.1) วาดกราฟเชงเสน

8.2) วาดกราฟลอการทมทงในแนวแกน x และแกน y

9. กาหนดให 0 ≤ x ≤ 1 และ 0 ≤ y ≤ 1 จงวาดกราฟสามมตของฟงกชนตอไปน

9.1) ( ) ( )z sin 2πx cos 3πy= 9.2) ( ) ( )z cos 2πx sin 2πy=

Page 40: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

31

บทท 2 การใชงานโปรแกรม Visual Basic

รวมกบ SCILAB

ในบทนจะกลาวถงพนฐานการใชงานโปรแกรม Visual Basic เพอตดตอกบโปรแกรม SCILAB

โดยจะเรมจากประวตความเปนมาของโปรแกรม Visual Basic จากนนจะอธบายหลกการใชงาน

โปรแกรม Visual Basic 2010 Express4 รวมทงการเชอมตอกบโปรแกรม SCILAB สาหรบใช

สรางสอการเรยนการสอน

2.1 ประวตความเปนมาของโปรแกรม Visual Basic

Visual Basic [5, 6] เปนภาษาคอมพวเตอรทพฒนาโดยบรษทไมโครซอฟต (Microsoft) ซงเปน

บรษททสรางระบบปฏบตการวนโดวส (Windows) โดยภาษานมรากฐานมาจากภาษา Basic [7]

ยอมาจาก “Beginner’s All Purpose Symbolic Instruction” ซงแปลวา ชดคาสงหรอภาษา

คอมพวเตอรสาหรบผเรมตน โดยทวไปภาษา Basic มจดเดนคอผใชสามารถเรยนรและนาไปใชงาน

ไดอยางรวดเรวโดยไมจาเปนตองมพนฐานเรองการเขยนโปรแกรม (เมอเทยบกบการเรยนภาษา

คอมพวเตอรอน)

บรษทไมโครซอฟตไดพฒนาโปรแกรมภาษา Basic มาหลายสบป ตงแตภาษา MBASIC

(Microsoft Basic), BASICA (Basic Advanced), GWBASIC และ QBASIC (QuickBasic)

ซงไดตดตงมาพรอมกบระบบปฏบตการ MSDOS โดยแตละเวอรชนทออกมา ไดมการพฒนาและ

เพมเตมคาสงใหมๆ เขาไป ในอดตโปรแกรมภาษาเหลานจะทางานในโหมดตวอกษร (text mode)

นนคอไมมรปกราฟกสวยงามแบบระบบวนโดวสทใชในปจจบน จนกระทงเมอระบบปฏบตการ

วนโดวสไดเขามาแทนทระบบปฏบตการ MSDOS บรษทไมโครซอฟตจงไดปรบปรงโปรแกรมภาษา

4 โปรแกรม Visual Basic 2010 Express ซงเปนฟรแวร (freeware) ทใชในบทน

Page 41: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

32

รปท 2.1 แถบเมนของโปรแกรม Visual Basic 2010 Express

Basic ใหรองรบการทางานในระบบปฏบตการวนโดวส จงทาใหเกดเปนโปรแกรม Visual Basic

ตงแตนนเปนตนมา ในบทนจะพจารณาเฉพาะโปรแกรม Visual Basic 20105 ซงออกวางตลาด

ใน ค.ศ. 2010 พรอมกบ Microsoft .NET Framework 4 เพอเพมความสามารถในการเขยน

โปรแกรมตดตอกบเครอขายอนเทอรเนตและการเชอมตอกบระบบฐานขอมล รวมทงปรบปรง

เครองมอสาหรบการเขยนโปรแกรมเชงวตถ (object oriented programming) ใหใชงานไดงายขน

2.2 โปรแกรม Visual Basic 2010 Express

ในสวนนจะแสดงเมนตางๆ ทจาเปนสาหรบการใชงานโปรแกรม Visual Basic 2010 Express ดงน

2.2.1 แถบเมน

เมอเรยกใชงานโปรแกรม Visual Basic 2010 Express กจะพบวาแถบเมนหลก (menu bar)

ตามรปท 2.1 ซงเปนแถบเมนทรวบรวมคาสงควบคมการทางานของโปรแกรม โดยเมนทนยมใชม

ดงน

Project ประกอบดวยคาสงทใชจดการกบโปรเจค (project) ทกาลงทาอย

Build เปนคาสงทใชคอมไพล (compile) โปรเจค

Debug เปนคาสงทชวยในการตรวจสอบหาขอผดพลาดของโปรแกรม

Data เปนคาสงทใชตดตอกบฐานขอมล

Format เปนคาสงทใชจดตาแหนงใหกบออบเจกต (object) ตางๆ บนฟอรม (Form)

2.2.2 แถบเครองมอมาตราฐาน

แถบเครองมอมาตราฐาน (standard toolbar) เปนแถบเครองมอทสามารถเลอกใชงานไดทนท

เพออานวยความสะดวกและความรวดเรวในการดาเนนการคาสงทนยมใชงานตามทแสดงในรปท

2.2 โดยแถบเครองมอทควรทราบแสดงในตารางท 2.1

5 โปรแกรม Visual Basic 2010 นสนบสนนระบบปฏบตการ Windows 7 ซงสามารถดาวนโหลดเวอรชน Express ฟร

ไดทเวบไซต http://www.microsoft.com/express/downloads/

Page 42: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

33

รปท 2.2 แถบเครองมอมาตราฐานของโปรแกรม Visual Basic 2010 Express

ตารางท 2.1 แถบเครองมอมาตราฐานทนยมใช

ใชสรางโปรเจคใหม หรอกดปม Ctrl + N (NEW)

ใชเปดไฟล (Open File)

ใชเพมไอเทม (Item) หรอกดปม Ctrl + Shift + A (Add New Item)

ใชบนทกโปรเจค หรอกดปม Ctrl + S (Save)

ใชประมวลผลโปรแกรม หรอกดปม F5 (Run)

ใชหยดโปรแกรมชวคราว (Stop)

ใชเรยกหนาตางโซลชน (Solution Explorer)

ใชเรยกหนาตางคณสมบต (Properties)

ใชเรยกหนาตางกลองเครองมอ (toolbox)

รปท 2.3 หนาตางโซลชนของโปรแกรม Visual Basic 2010 Express

2.2.3 หนาตางโซลชน

หนาตางโซลชน (Solution Explorer) จะแสดงรายชอไอเทมทเปนสวนประกอบของโปรเจคและไฟล

ตางๆ ทเกยวของกบการแกไขโปรเจคทใชงานในปจจบน โดยมแถบเครองมอตามตารางท 2.2

แถบเครองมอ

Page 43: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

34

ตารางท 2.2 แถบเครองมอในหนาตางโซลชน

เรยกหนาตางคณสมบต (Properties) หรอกดปม Alt + Enter

แสดงไฟลทงหมด (Show All File)

ฟนฟไอเทม (Refresh)

เรยกหนาตางการเขยนโคด (View Code)

เรยกหนาตางฟอรม (View Designer)

รปท 2.4 หนาตางคณสมบตของโปรแกรม Visual Basic 2010 Express

2.2.4 หนาตางคณสมบต

หนาตางคณสมบต (Properties) นยมใชในการเปลยนแปลงคณสมบตตางๆ ของออบเจกตระหวาง

การออกแบบฟอรม โดยเมอทาการเลอกออบเจกตในฟอรม หนาตางคณสมบตกจะแสดงคณสมบต

ของออบเจกตนน ซงถาตองการเปลยนแปลงคณสมบตของออบเจกต กทาไดโดยการเลอกท

คณสมบตนนและปอนคาใหมลงไป

Page 44: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

35

รปท 2.5 หนาตางกลองเครองมอของโปรแกรม Visual Basic 2010 Express

2.2.5 หนาตางกลองเครองมอ

หนาตางกลองเครองมอ (toolbox) เปนสวนทบรรจตวควบคมตางๆ เพอใชออกแบบหนาจอของ

โปรแกรม (นนคอหนาตางการออกแบบ ดรปท 2.10) ตามทแสดงในรปท 2.5 โดยทวไปหนาตาง

กลองเครองมออาจถกซอนไว ซงจะอยทางดานซายมอของโปรแกรมคอนโทรลใน toolbox

2.2.6 ประเภทขอมลพนฐาน

ประเภทขอมล (data type) ทใชงานไดในโปรแกรม Visual Basic 2010 Express แสดงใน

ตารางท 2.3

2.3 การใชงานโปรแกรม Visual Basic รวมกบ SCILAB

การใชงานโปรแกรม Visual Basic รวมกบ SCILAB จะมลกษณะเปนการรบสงขอมลผานไฟล

ชวคราว (temporary file) โดยจะใชโปรแกรม Visual Basic สรางหนาตางสาหรบสวนตอประสาน

(interface) ไดแก สวนรบขอมล (Textbox) และปมควบคม (Button) เพอเขยนขอมลลงในไฟล

สครปต (script file) ในขณะทโปรแกรม SCILAB ทาหนาทประมวลผลลพธไฟลสครปต จากนน

นาผลลพธทไดเกบในไฟลขอมล (text file) และสงมาแสดงผลทโปรแกรม Visual Basic ดงรปท

2.6 แสดงแนวคด6 ในการใชงานรวมกนระหวางโปรแกรม Visual Basic และ SCILAB

6 โดยทวไปการสงขอมลจากโปรแกรมหนงไปยงอกโปรแกรมหนงทาไดไมยาก (ขนอยกบขอกาหนดของแตละโปรแกรม)

ดงนนโปรแกรม SCILAB จงสามารถนามาประยกตใชงานรวมกบโปรแกรมภาษาอนๆ ไดอกดวย เชน ภาษาซ

Page 45: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

36

ตารางท 2.3 ประเภทขอมลทใชในโปรแกรม Visual Basic 2010 Express

ประเภทขอมล ประเภท ขนาด การเกบขอมลหรอชวงขอมล

Integer จานวนเตม 2 ไบต –32,768 ถง 32,767

Long จานวนเตม 4 ไบต –2,147,483,648 ถง 2,147,483,647

Boolean จานวนเตม 2 ไบต เกบคา 0 และ 1 ซงแทน False หรอ True

Byte จานวนเตม 1 ไบต เกบคาในชวง 0 ถง 255

Single จานวนทศนยม 4 ไบต คาลบ –3.402823E38 ถง –1.401298E-45

คาบวก 1.401298E-45 ถง 3.402823E38

Double จานวนทศนยม 8 ไบต คาลบ –1.79769313486232E308 ถง

-4.94065645841247E-324

คาบวก 4.94065645841247E-324 ถง

1.79769313486232E308

Currency จานวนทศนยม 8 ไบต เกบตวเลขจานวนจรงทมคาระหวาง

-922,337,203,685,477.5808 ถง

922,337,203,685,477.5807 เหมาะสาหรบเกบตวเลข

ทางการเงน เพราะมความละเอยดสง

String ขอความ 1 ไบต ใชเกบตวอกษร หรอขอความ

Date วนท/เวลา 8 ไบต เกบคาระหวาง 1 มกราคม ค.ศ. 100 ถง 31 ธนวาคม

ค.ศ. 9999 และเวลาใดๆ โดยสวนจานวนเตมเปนขอมล

ของวน และสวนทศนยมเปนขอมลของเวลา

Variant Variant 16 ไบต ตวแปรทสามารถแทนตวแปรชนดอนๆ ไดทกตวแปร

แตจะใชพนทเกบขอมลมากสด

Object ออบเจกต 4 ไบต เกบการอางองสาหรบแทนวตถ (หรอออบเจกต) ท

Visual Basic สนบสนน

การเขยนโปรแกรม Visual Basic จะมชดออบเจกตทเกยวของคอ FileSystemObject ซง

ใชจดการกบระบบไฟลของวนโดวส โดย FileSystemObject มโครงสรางตามรปท 2.7 ซงประกอบ

ดวยออบเจกตยอยอก 4 ตว ทเปนตวแทนของไดรฟ (Drive), โฟลเดอร (Folder), ไฟล (File),

และไฟลขอมล (Text Stream) ดงน

FileSystemObject เปนออบเจกตหลกทใชสรางหรอลบขอมล และจดการการทางานของ

ไดรฟ โฟลเดอร ไฟล และไฟลขอมล ไดโดยตรง

Page 46: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

37

VISUAL BASIC

SCILAB

Script TEXT

Temporary File

รปท 2.6 แนวคดในการใชงานรวมกนระหวางโปรแกรม Visual Basic และ SCILAB

รปท 2.7 โครงสรางของชดออบเจกต FileSystemObject

Drive เปนออบเจกตทใหขอมลเกยวกบไดรฟทงหมดของระบบคอมพวเตอรทกาลงทางานอย

Folder เปนออบเจกตทรวบรวมวธการตางๆ ทเรยกใช เพอใหขอมลและจดการกบโฟลเดอร

File เปนออบเจกตทรวบรวมวธการตางๆ ทเรยกใช เพอใหขอมลและจดการกบไฟล

Text Stream เปนออบเจกตทใชในการอานและเขยนไฟลขอมล

ในทางปฏบตการใชงานออบเจกต FileSystemObject จะตองมการเรยกไลบรารทชอวา

Microsoft Scripting Runtime ขนมากอน จงจะสามารถใชงานออบเจกตอนๆ ได

Page 47: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

38

รปท 2.8 การสรางโปรเจคใหม (New Project)

รปท 2.9 ขนตอนการสราง Window Forms Application ในหนาตางโปรเจคใหม

โดยในทนจะอธบายเฉพาะออบเจกต Text Stream เทานน เพราะเปนสวนทใชในการอานและเขยน

ไฟลเพอตดตอกบโปรแกรม SCILAB สาหรบสรางสอการเรยนการสอน

2.3.1 ขนตอนการเรยกใชงานไลบราร Microsoft Scripting Runtime

การเรยกใชงานไลบรารในโปรแกรม Visual Basic 2010 ทาไดโดยใหพจารณาวาออบเจกตนนคอ

ตวแปรหนงตวซงมประเภทเปน “ออบเจกต” ดงนนขนตอนการเรยกใชงานไลบราร Microsoft

Scripting Runtime มดงน

1) เปดโปรแกรม Visual Basic 2010 Express แลวสรางโปรเจคใหมขนมาใชงาน โดยเลอกท

New Project… ตามรปท 2.8 กจะไดหนาตางตามรปท 2.9

คลกเลอก New Project…

Page 48: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

39

รปท 2.10 หนาตาง Window Forms Application

2) จากนนเลอก Visual Basic → Windows Forms Application และกดปม OK เพอสราง

ฟอรม (Form) ขนมาใชงาน กจะไดหนาตางตามรปท 2.10

3) การเรยก FileSystemObject มาใชงาน ตองบอกใหโปรแกรม Visual Basic 2010 ใหทราบ

กอน โดยการเลอกเมน Project Add Reference… ตามรปท 2.11 กจะไดหนาตาง Add

Reference ตามรปท 2.12

4) ทหนาตาง Add Reference ในรปท 2.12 ใหไปทแถบ COM และเลอก Microsoft Scripting

Runtime และคลกปม OK กถอวาเสรจขนตอนการเรยกใชงาน Microsoft Scripting Runtime

2.3.2 รปแบบการใชงาน FileSystemObject

วธการใชงานของ FileSystemObject จะมรปแบบทเกยวกบออบเจกต Drive, Folder, File และ

Text Stream โดยในทนจะกลาวถงวธการใชงานของออบเจกต File และ Text Stream เทานน

เพราะจะนามาใชในการแลกเปลยนขอมลกบโปรแกรม SCILAB โดยวธการใชงานมรปแบบดงน

รปแบบการประกาศตวแปรแบบ FileSystemObject แสดงในรปท 2.13

รปแบบการเรยกใชงาน FileSystemObject แสดงในรปท 2.14

หนาตางการออกแบบ (Design)

Page 49: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

40

รปท 2.11 การเลอกหนาตาง Add Reference

รปท 2.12 หนาตาง Add Reference

รปท 2.13 การประกาศตวแปรแบบ FileSystemObject

1

2

1

2

3

ชอตวแปรทตงขน ออบเจกตทตองการ เครองหมายจด

Public fso As New Scripting . FileSystemObject

Page 50: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

41

รปท 2.14 การเรยกใชงาน FileSystemObject

หมายเหต โปรแกรม Visual Basic 2010 Express มตวชวยเหลอในการเขยนโปรแกรมคอ เมอใส

เครองหมายจด “ . ” ตอทายคาสง กจะแสดงตวชวยทชอวา Auto List Members ซงจะมรายการ

คณสมบตและฟงกชนตางๆ ทเกยวของกบออบเจกต File และ Text Stream ตามรายละเอยดดงน

2.3.3 ฟงกชนทเกยวของโปรแกรม Visual Basic 2010

2.3.3.1 คาสงทเกยวของกบ FileSystemOject

FileSystemObject เปนการประกาศตวแปรทใชอางอง FileSystemObject มรปแบบการ

เรยกใชงานดงน

Public fso As New Scripting.FileSystemObject

ซงเปนการกาหนดให fso เปนออบเจกต FileSystemObject โดยจะตองมการใสพารามเตอร

New เขาไปในคาสงดวย (ตวแปรทเปนออบเจกตของ FileSystemObject ตองใสนพจน New

เสมอ)

CreateTextFile ใชสรางไฟลในระบบปฏบตการวนโดวส ซงมรปแบบการเรยกใชงานดงน

oFileSysObj.CreateTextFile (Filename [, Overwrite[, Unicode]])

โดย oFileSysObj คอออบเจกตทเรยกใชงาน, Filename คอชอไฟลทมประเภทขอมลเปนแบบ

String, Overwrite คอตวเลอกทบอกวาสามารถเขยนทบไฟลทมชอซากนไดโดยมประเภทขอมล

เปนแบบบลน (Boolean: True หรอ False), และ Unicode คอตวเลอกทบอกวาไฟลทสราง

จะเกบขอมลแบบ Unicode หรอ ASCII โดยมประเภทขอมลแบบบลน

DeleteFile ใชลบไฟลขอมล โดยมรปแบบการเรยกใชงานดงน

ชอออบเจกต

วธ

เครองหมายจด

oFileSysObj . Method

Page 51: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

42

oFileSysObj.DeleteFile( FileSpec [, Force])

เมอ oFileSysObj คอออบเจกตทเรยกใชงาน, FileSpec คอชอและทอยของไฟลทตองการลบ

ซงมประเภทขอมลเปนแบบ String, และ Force คอตวเลอกสาหรบการลบซงมประเภทขอมล

เปนแบบบลน (โดยไมสนใจวาไฟลนนเปนแบบไฟลทอานอยางเดยวหรอไม)

FileExists ใชตรวจสอบวาไฟลทกาหนดมอยจรงหรอไม โดยมรปแบบการเรยกใชงานดงน

oFileSysObj.FileExists(FileSpec)

เมอ oFileSysObj คอออบเจกตทเรยกใชงาน และ FileSpec คอชอและทอยของไฟลทตองการ

ตรวจสอบซงมประเภทขอมลเปนแบบ String

GetFile ใชรบคาจากไฟลขอมล โดยมรปแบบการเรยกใชงานดงน

oFileSysObj.GetFile(FilePath)

เมอ oFileSysObj คอออบเจกตทเรยกใชงาน และ FilePath คอชอและทอยของไฟลทมประเภท

ขอมลเปนแบบ String

GetFileName ใชรบคากลบมาเปนชอไฟลในตาแหนงทระบไว มรปแบบการเรยกใชงานคอ

oFileSysObj.GetFileName(Path)

เมอ oFileSysObj คอออบเจกตทเรยกใชงาน และ FilePath คอทอยของไฟลทมประเภทขอมล

เปนแบบ String และแสดงอยภายในเครองหมาย “….”

2.3.3.2 คาสงทเกยวของกบ TextStream

TextStream เปนการประกาศตวแปรทใชอางอง TextStream มรปแบบการเรยกใชงานดงน

Public w_file As Scripting.TextStream

ซงเปนการกาหนดให w_file เปนออบเจกต TextStream

Page 52: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

43

Close ใชยกเลกการเชอมตอกบออบเจกต TextStream มรปแบบการเรยกใชงานดงน

oTextStreamObj.Close

เมอ oTextStreamObj คอออบเจกต TextStream ทตองการยกเลกการเชอมตอ

Read ใชอานขอมลตามจานวนทกาหนดจากไฟลขอมล มรปแบบการเรยกใชงานดงน

oTextStreamObj.Close

เมอ oTextStreamObj คอออบเจกต TextStream ทตองการอานขอมล และ Character คอ

สายอกขระหรอจานวนของอกษร (alphabet) ทตองการอานจากไฟลขอมล โดยมประเภทขอมล

เปนแบบ Long (ดตารางท 2.3)

ReadAll ใชอานขอมลทงหมดจากไฟลขอมล มรปแบบการเรยกใชงานดงน

oTextStreamObj.ReadAll

เมอ oTextStreamObj คอออบเจกต TextStream ทตองการอานขอมลทงหมด

ReadLine ใชอานขอมลทละหนงบรรทดจากไฟลขอมล มรปแบบการเรยกใชงานคอ

oTextStreamObj.ReadLine

เมอ oTextStreamObj คอออบเจกต TextStream ทตองการอานอานขอมลทละหนงบรรทด

Skip ใชกระโดดขามขอมลจากไฟลขอมลทกาหนด มรปแบบการเรยกใชงานคอ

oTextStreamObj.Skip(Characters)

เมอ oTextStreamObj คอออบเจกต TextStream ทเรยกใชงาน และ Characters คอสาย

อกษระทไมสนใจทจะอาน (มประเภทขอมลเปนแบบ Long)

SkipLine ใชกระโดดขามขอมลจากไฟลขอมลทละหนงบรรทด มรปแบบการเรยกใชงานคอ

Page 53: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

44

oTextStreamObj.SkipLine

เมอ oTextStreamObj คอออบเจกต TextStream ทเรยกใชงาน

Write ใชเขยนขอมลเกบไวในไฟลทกาหนด (เมอเขยนจบ จะไมขนบรรทดใหม) โดยมรปแบบ

การเรยกใชงานดงน

oTextStreamObj.Write(Text)

เมอ oTextStreamObj คอออบเจกต TextStream ทเรยกใชงาน และ Text คอขอความท

ตองการเขยนลงไปเกบไวในไฟล โดยขอความนตองอยภายในเครองหมาย “….”

WriteLine ใชเขยนขอมลลงไฟลขอมลทละหนงบรรทด (เมอเขยนจบ จะขนบรรทดใหมให)

มรปแบบการเรยกใชงานดงน

oTextStreamObj.WriteLine(String)

เมอ oTextStreamObj คอออบเจกต TextStream ทเรยกใชงาน และ String คอขอความแตละ

บรรทดทตองการเขยนลงในไฟล โดยขอความนตองอยภายในเครองหมาย “….”

WriteBlankLines ใชเขยนไฟลแลวเวนบรรทดตามทกาหนด มรปแบบการเรยกใชงานคอ

oTextStreamObj.WriteBlankLines(Lines)

เมอ oTextStreamObj คอออบเจกต TextStream ทเรยกใชงาน และ Lines คอจานวนตวอกษร

หรออกขระทตองการเพมลงในบรรทดนน โดยมประเภทขอมลเปนแบบ Long

2.3.3.3 คาสงอนทนาสนใจ

Shell เปนฟงกชนทใชเรยกโปรแกรมประยกตขนมาทางาน มรปแบบการเรยกใชงานคอ

Shell(PathName, [Window Style])

Page 54: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

45

โดย PathName คอทอยของโปรแกรมประยกตทตองการ และ Window Style คอคาสถานะ

ในการเรยกโปรแกรมนน

Msgbox เปนฟงกชนทใชโตตอบระหวางโปรแกรมกบผใช โดยจะแสดงขอมลเพยงอยางเดยว

แลวใหผใชกดปมเลอก (ในกรณทตองการใหผใชเลอกตอบ) มรปแบบการเรยกใชงานคอ

MsgBox Prompt[,Buttons][,Title]

เมอ Prompt คอขอความทตองการแสดงในกลองขอความ (message box) ในกรณทตองการ

แสดงขอมลหลายบรรทด ทาไดโดยนาขอมลในแตละบรรทดมาเชอมดวยวา “+chr(13)+”,

Buttons คอสวนทใชกาหนดการแสดงปมและกาหนดสญรป (icon) ในกลองขอความ, และ

Title คอขอความทตองการแสดงบนแถบดานบนของกลองขอความ

Application.StartupPath เปนฟงกชนทใชตงคาโฟลเดอรปจจบนใหตรงกบโปรแกรมประยกต

โดยถาโปรแกรมประยกตทางานเรมจากเครองแมขาย คณสมบตของ App.Path จะสงออกคา

เปนชอแบบ UNC (Universal Naming Convention) เชน \ชอเครองแมขาย\ชอโฟลเดอร\…

ซงวธการเรยกใชงานคอ

Application.StartupPath

2.4 ฟงกชนทเกยวของของโปรแกรม SCILAB ในหวขอนจะอธบายฟงกชนตางๆ ของโปรแกรม SCILAB ทจาเปนสาหรบการนามาใชงานรวมกบ

โปรแกรม Visual Basic เพอสรางสอการเรยนการสอน ดงตอไปน

2.4.1 คาสง file

เปนคาสงทใชเปดหรอปดแฟมขอมลหรอไฟล โดยมรปแบบการใชงานทวไปดงน

unit = file('open', filename, [status])

เมอ 'open' เปนการบอกโปรแกรมใหเปดไฟล filename ขนมาใชงาน, filename คอชอ

ไฟลขอมลทตองการเรยกใชงาน, status เปนการกาหนดสถานะของไฟลทเปดขนมาใชงานซงม

อย 4 รปแบบคอ

Page 55: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

46

ตารางท 2.4 รหสรปแบบในโปรแกรม SCILAB

รหสรปแบบ คาอธบาย

%d แสดงผลเปนเลขจานวนเตมฐานสบแบบมเครองหมาย (signed integer)

%u แสดงผลเปนเลขจานวนเตมฐานสบแบบไมมเครองหมาย (unsigned integer)

%x หรอ %X แสดงผลเปนเลขจานวนเตมฐานสบหกแบบไมมเครองหมาย

%f แสดงผลเปนเลขจานวนจรง

%e แสดงผลเปนเลขจานวนจรงในรปของเลขยกกาลง

%c แสดงผลตวอกขระ

%s แสดงผลสายอกขระ

"new" หมายถงไฟลทเปดขนมาตองไมเคยมอยในสารบบทางาน (คาโดยปรยาย)

"old" หมายถงไฟลทเปดขนมาตองมอยแลวในสารบบทางาน

"unknown" หมายถงไฟลทเปดขนมาจะมอยหรอไมมอยในสารบบทางานกได

"scratch" หมายถงไฟลทเปดขนมาจะถกลบทงหลงจากเสรจสนการทางาน

และ unit เปนเลขจานวนเตมทโปรแกรมใชอางถงชอไฟล filename นน โดยหลงจากใชงาน

ไฟลทเปดขนมาเสรจแลว ผใชจะตองปดการทางานของไฟลนนเสมอดวยคาสง

file('close', unit)

2.4.2 คาสง fprintf

เปนคาสงททาหนาทพมพคาของตวแปรลงไปเกบไวในไฟล แทนทจะแสดงผลลพธออกมาทหนาตาง

คาสง รปแบบการใชงานของคาสงนคอ

fprintf(fd, format, value_1, ..., value_n)

โดย fd คอชอของไฟลทตองการเกบคาของตวแปร value_i, format คอรหสควบคมการพมพ

(ตามตารางท 2.4 และ 2.5), และ value_i เปนตวกาหนดวาจะใหขอมลใดแสดงผลออกมาท

หนาตางคาสง ตวอยางการใชงาน เชน

-->fd = file('open', 'results.txt', 'unknown');

Page 56: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

47

ตารางท 2.5 รหสบงคบการพมพในโปรแกรม SCILAB

รหสบงคบการพมพ คาอธบาย

\n ขนบรรทดใหม

\t แทป (tab) ในแนวนอน

\v แทปในแนวตง

\b เลอนเคอรเซอรไปลบตวอกขระทางซายมอหนงตวอกขระ

\r เครองหมาย return เหมอนกบการกดปม Enter

\f ขนหนาใหม

\a สงเสยงดงออกลาโพงหนงครง

\\ เครองหมาย \ (backslash)

\’ เครองหมาย ' (single quote)

\” เครองหมาย " (double quote)

\? เครองหมาย ? (question mark)

\ooo พมพตวอกขระทมเลขฐานแปดตรงกบคา ooo

\xhh พมพตวอกขระทมเลขฐานสบหกตรงกบคา hh

-->for t = 0:%pi/10:%pi

--> fprintf(fd, 'time = %6.3f value = %6.3f\n', t, cos(t));

-->end

-->file('close', fd);

ผลลพธทไดคอโปรแกรม SCILAB จะสรางไฟลทชอวา results.txt ในสารบบทกาลงทางาน

อยซงจะบนทกขอมลทกาหนดดวยคาสง fprintf ปรากฏอย (นนคอคาของสญญาณโคไซน ณ

เวลา t) โดยถาลองเปดไฟล results.txt ดวยโปรแกรมเอดเตอร (เชน Notepad) กจะพบ

ขอมลตามทกาหนดไวดงแสดงในรปท 2.15

2.4.3 คาสง exec

เปนคาสงทใชโหลดฟงกชนเขามาประมวลผลในโปรแกรม SCILAB โดยมลกษณะการใชงานดงน

exec(filename)

เมอ filename คอชอและทอย (path) ของไฟล ซงตองเขยนภายในเครองหมาย "…"

Page 57: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

48

รปท 2.15 ขอมลภายในไฟล results.txt โดยใชโปรแกรม Notepad

2.4.4 คาสง savematfile

เปนคาสงทใชบนทกขอมลใหอยในรปไบนาร (binary) หรอแอสก (ASCII) โดยมรปแบบการเรยก

ใชงานดงน

savematfile('filename', 'var1')

เมอ filename คอชอและทอยของไฟล ซงตองเขยนภายในเครองหมาย "…" และ var1 คอชอตวแปรทตองการเขยนลงในไฟล เชน คาสง savematfile('Test1.txt','x') จะ

เปนการนาคาของตวแปร x ไปเกบไวในไฟล Test1.txt

2.4.5 คาสง xs2gif

เปนคาสงทใชบนทกรปกราฟทวาดขนดวยโปรแกรม SCILAB ใหเปนไฟลรปภาพทมนามสกลเปน

แบบ .gif โดยมรปแบบการเรยกใชงานดงน

Page 58: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

49

รปท 2.16 แผนภาพบลอกแสดงการเขยนโปรแกรม Visual Basic เพอตดตอกบ SCILAB

xs2gif(win_num, filename)

เมอ win_num คอตวเลขจานวนเตมบวกทใชอางถงหมายเลขของหนาตางกราฟ และ filename

คอชอไฟล (ทมนามสกล .gif) ทตองการบนทกรปกราฟทปรากฏในหนาตางกราฟหมายเลข

win_num ตวอยางเชน คาสง xs2gif(1,'F1.gif') จะบนทกรปกราฟในหนาตางกราฟ

หมายเลข 1 เปนไฟลชอ F1.gif

2.5 การเขยนโปรแกรม Visual Basic ตดตอกบ SCILAB ในสวนนจะแสดงตวอยางการเขยนโปรแกรม Visual Basic ตดตอกบ SCILAB ซงมการขนตอน

การทางานตามแผนภาพบลอกในรปท 2.16 โดยซอฟตแวรทใชประกอบดวย

โปรแกรม Microsoft Visual Basic 2010 Express

โปรแกรม SCILAB เวอรชน 4.1.2

ระบบปฏบตการ Window XP

เรมตน

สรางไฟลสครปต

ประมวลผลไฟลสครปต

บนทกผลลพธลงไฟลขอมล

แสดงผลลพธ

จบ

เขยนขอมลไฟลสครปต

Page 59: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

50

รปท 2.17 ฟอรมทดสอบการสรางไฟลสครปต

และฮารดแวรทใชมคณลกษณะดงน CPU แบบ Core2Duo 2.4 GHz, RAM ขนาด 1 GB, ฮารด

ดสกไดรฟขนาด 160 GB, และการดจอ VGA แบบ 128 MB

ในทนจะยกตวอยางการหาคาลอการทมฐานสอง7 ของเลขจานวนเตม โดยจะใชโปรแกรม

Visual Basic สรางหนาตางสวนตอประสาน (interface) เพอรบคาตวเลขทผใชปอนเขาไป จากนน

เมอกดปมคานวณ โปรแกรม Visual Basic กจะนาตวเลขนมาเขยนเปนไฟลสครปต แลวสงไปให

โปรแกรม SCILAB คานวณโดยใชฟงกชน log2(x) เพอหาคาลอการทมฐานสองของตวแปร x

แลวสงผลลพธทไดไปแสดงผลทหนาตางสวนตอประสาน โดยขนตอนการทางานสรปไดดงน

2.5.1 การสรางไฟลสครปต

หวขอนจะแสดงวธการสรางไฟลสครปตจากหนาตางสวนตอประสานของโปรแกรม Visual Basic

2010 Express ดงตอไปน

1) ใหเปดโปรแกรม Visual Basic 2010 Express แลวสรางโปรเจกตแบบ Windows Forms

Application จากนนทาการออกแบบหนาฟอรมโดยนาปม Button มาวางไวใน Form หนงปม

แลวเปลยนชอปมเปน “ทดสอบการสรางไฟลสครปต” ตามรปท 2.17

2) กาหนดคาคณสมบตของฟอรมตามตารางท 2.6

3) เรยกฟงกชน FileSystemObject มาใชงาน โดยเลอกทเมน Project → Add Reference…

→ Microsoft Scripting Runtime และกดปม OK (ตามรปท 2.11 และ 2.12)

4) ดบเบลคลกทปม Button หรอกดปม View Code ทหนาตางโซลชน (Solution Explorer)

แลวเขยนโคดโปรแกรมดงน

7 ลอการทม (logarithm) เปนฟงกชนผกผนของฟงกชนเอกซโพเนนเชยล กลาวคอลอการทมฐาน b ของคา x กคอคา n

ททาใหสมการ x = bn หรอเขยนไดเปน logb(x) = n เปนจรง เชน log2(128) = 7

Page 60: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

51

ตารางท 2.6 การกาหนดคาคณสมบตของฟอรมทใชในรปท 2.17

ออบเจกต / คอนโทรล คณสมบต คาทกาหนด

Form Text ทดสอบการสรางไฟลสครปต

CommandButton Name Button1

Text ทดสอบการสรางไฟลสครปต

รปท 2.18 ผลลพธทไดจากฟงกชน CreateTextFile

1

2

3

4

5

6

Public Class Form1

Public fso As New Scripting.FileSystemObject

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Button1.Click

w_file = fso.CreateTextFile("D:\test.sce") 'สรางไฟลสครปต

End Sub

End Class

5) ทดสอบการทางานของโปรแกรม โดยการคลกทปม หรอกดปม <F5> ทคยบอรด จากนน

ทดสอบโปรแกรมโดยกดปม “ทดสอบการสรางไฟลสครปต” ในรปท 2.17 กจะไดไฟลสครปต

ทมชอวา test.sce ปรากฏอยในสารบบ D:\ ดงแสดงในรปท 2.18

หมายเหต ฟงกชน CreateTextFile ในบรรทดท 4 จะสรางไฟลสครปตของโปรแกรม SCILAB

ทชอวา test.sce เพอทาหนาทเปนไฟลชวคราวสาหรบสงขอมลตางๆ ไปประมวลผลท

โปรแกรม SCILAB

Page 61: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

52

รปท 2.19 ฟอรมแสดงการเขยนขอมลลงไฟลสครปต

ตารางท 2.7 การกาหนดคาคณสมบตของฟอรมทใชในรปท 2.19

ออบเจกต / คอนโทรล คณสมบต คาทกาหนด

Form Text ทดสอบการเขยนขอมลลงไฟลสครปต

CommandButton Name Button1

Text ทดสอบการเขยนขอมลลงไฟลสครปต

TextBox1 Text N/A

2.5.2 การเขยนไฟลสครปต

ในทนจะแสดงวธการนาขอมลทปอนผานหนาตางสวนตอประสานของโปรแกรม Visual Basic 2010

Express ไปเกบไวในไฟลสครปตดงน

1) เปดโปรแกรม Visual Basic 2010 Express แลวสรางโปรเจกตแบบ Windows Forms

Application จากนนทาการออกแบบหนาฟอรมโดยนาปม Button มาวาง 1 ตว (เปลยนชอเปน

“ทดสอบการเขยนไฟลสครปต”) และนา Textbox1 มาวาง 1 ตว (เปลยนชอเปน “Input”)

ตามรปท 2.19

2) กาหนดคาคณสมบตของฟอรมตามตารางท 2.7

3) เรยกฟงกชน FileSystemObject มาใชงานโดยเลอกทเมน Project → Add Reference…

→ Microsoft Scripting Runtime และกดปม OK (ตามรปท 2.11 และ 2.12)

4) ดบเบลคลกทปม Button หรอคลกทปม View Code ทหนาตางโซลชน แลวเขยนโคด

โปรแกรมดงน

5) ทดสอบการทางานของโปรแกรม โดยการกดปม หรอกดปม <F5> ทคยบอรด จากนน

ทาการทดสอบโปรแกรมโดยการปอนตวเลขเขาไป (เชน เลข 5) และกดปม “ทดสอบการเขยน

ไฟลสครปต” หนงครง กจะไดผลลพธตามรปท 2.20

Page 62: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

53

รปท 2.20 ขอมลทเขยนลงไฟลสครปต test.sce

1

2

3

4

5

6

7

8

Public Class Form1

Public fso As New Scripting.FileSystemObject

Public w_file As Scripting.TextStream

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Button1.Click

w_file = fso.CreateTextFile("D:\test.sce") 'สรางไฟลสครปต

w_file.WriteLine("X=" & TextBox1.Text & ";") 'เขยนไฟลสครปต

End Sub

End Class

หมายเหต ฟงกชน WriteLine ในบรรทดท 6 เปนการเขยนขอมลลงในไฟลสครปตทสรางขน

เพอนาขอมลไปประมวลผลทโปรแกรม SCILAB ซงเมอปอนคาทตองการ (เชน เลข 5) ลงไป

ในชอง Input แลวกดปม “ทดสอบการเขยนขอมลลงไฟลสครปต” กจะทาการสรางไฟลสครปต

test.sce ในสารบบ D:\ และเขยนขอมล X=5 ลงในไฟล (ตามทกาหนดในบรรทดท 6)

2.5.3 การประมวลผลไฟลสครปต

ในทนจะแสดงวธการนาขอมลทปอนผานหนาตางสวนตอประสานของโปรแกรม Visual Basic 2010

Express ไปเกบไวในไฟลสครปต แลวสงไฟลสครปตไปประมวลผลทโปรแกรม SCILAB ดงน

1) เปดโปรแกรม Visual Basic 2010 Express แลวสรางโปรเจกตแบบ Windows Forms

Application จากนนทาการออกแบบหนาฟอรมโดยนาปม Button มาวาง 1 ตว (เปลยนชอ

เปน “ทดสอบการประมวลผลไฟลสครปต”) และนา Textbox1 มาวาง 1 ตว (เปลยนชอเปน

“Input”) และ Label มาวาง 1 ตว ตามรปท 2.21

2) กาหนดคาคณสมบตของฟอรมตามตารางท 2.8

Page 63: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

54

รปท 2.21 ฟอรมทดสอบการประมวลผลไฟลสครปต

ตารางท 2.8 การกาหนดคาคณสมบตของฟอรมทใชในรปท 2.21

ออบเจกต / คอนโทรล คณสมบต คาทกาหนด

Form Text ทดสอบการประมวลผลไฟลสครปต

CommandButton Name Button1

Text ทดสอบการประมวลผลไฟลสครปต

TextBox1 Text N/A

3) เรยกฟงกชน FileSystemObject มาใชงานโดยเลอกทเมน Project → Add Reference…

→ Microsoft Scripting Runtime และกดปม OK (ตามรปท 2.11 และ 2.12)

4) ดบเบลคลกทปม Button หรอคลกทปม View Code ทหนาตางโซลชน แลวเขยนโคด

โปรแกรมดงน

1

2

3

4

5

6

7

8

9

Public Class Form1

Public fso As New Scripting.FileSystemObject

Public w_file As Scripting.TextStream

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Button1.Click

w_file = fso.CreateTextFile("D:\test.sce") 'สรางไฟลสครปต

w_file.WriteLine("X=" & TextBox1.Text & ";") 'เขยนไฟลสครปต

Shell("C:\WINDOWS\scilab-4.1.2\bin\Scilex.exe -f D:\test.sce", vbHide)

'ประมวลผล

End Sub

End Class

Page 64: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

55

รปท 2.22 ฟอรมทดสอบการบนทกผลลพธลงไฟลขอมล

5) ทดสอบการทางานของโปรแกรม โดยการกดปม หรอกดปม <F5> ทคยบอรด จากนน

ทดสอบการทางานของโปรแกรมโดยการปอนตวเลข (เชน เลข 5) ลงไป และกดปม “ทดสอบ

การเขยนไฟลสครปต” หนงครง กจะไดไฟลสครปต test.sce ในสารบบ D:\ ทมขอมล

X=5 จากนนไฟลสครปตนจะถกนาไปประมวลผลในโปรแกรม SCILAB8 ผานทางคาสง Shell

ตามบรรทดท 7 โดยการประมวลผลไฟลสครปตจะถกซอนดวยคาสง vbHide (ในทนจงทาให

ไมมการแสดงผลลพธใดๆ เกดขน)

2.5.4 การบนทกผลลพธลงไฟลขอมล

ในทนจะแสดงวธการนาขอมลทปอนผานหนาตางสวนตอประสานของโปรแกรม Visual Basic 2010

Express ไปเกบไวในไฟลสครปตแลวสงไฟลนไปประมวลผล จากนนนาผลลพธทไดมาบนทกเกบ

ไวในไฟลขอมล ดงแสดงตอไปน

1) เปดโปรแกรม Visual Basic 2010 Express แลวสรางโปรเจกตแบบ Windows Forms

Application จากนนทาการออกแบบหนาฟอรมโดยนาปม Button มาวาง 1 ตว (เปลยนชอเปน

“ทดสอบการบนทกผลลพธลงเทกซไฟล”) และนา Textbox1 มาวาง 1 ตว (เปลยนชอเปน

“Input”) และ Label มาวาง 1 ตว ตามรปท 2.22

2) กาหนดคาคณสมบตของฟอรมตามตารางท 2.9

3) เรยกฟงกชน FileSystemObject มาใชงานโดยเลอกทเมน Project → Add Reference…

→ Microsoft Scripting Runtime และกดปม OK (ตามรปท 2.11 และ 2.12)

4) ดบเบลคลกทปม Button หรอคลกทปม View Code ทหนาตางโซลชน แลวเขยนโคด

โปรแกรมดงน 8 ไฟลทใชประมวลผลของโปรแกรม SCILAB เวอรชน 4.1.2 คอไฟล Scilex.exe

Page 65: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

56

ตารางท 2.9 การกาหนดคาคณสมบตของฟอรมทใชในรปท 2.22

ออบเจกต / คอนโทรล คณสมบต คาทกาหนด

Form Text ทดสอบการบนทกผลลพธลงไฟลขอมล

CommandButton Name Button1

Text ทดสอบการบนทกผลลพธลงไฟลขอมล

TextBox1 Text N\A

1

2

3

4

5

6

7

8

9

10

11

12

13

Public Class Form1

Public fso As New Scripting.FileSystemObject

Public w_file As Scripting.TextStream

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Button1.Click

w_file = fso.CreateTextFile("D:\test.sce") 'สรางไฟลสครปต

w_file.WriteLine("X=" & TextBox1.Text & ";") 'เขยนไฟลสครปต

w_file.WriteLine("output=log2(X);") 'เขยนไฟลสครปต

w_file.WriteLine("savematfile('D:\001.txt', 'output')") 'บนทกผลลพธ

w_file.WriteLine("exit();") 'ออกจากโปรแกรม SCILAB

w_file.Close() 'ออกจากการเขยนไฟลสครปต

Shell("C:\WINDOWS\scilab-4.1.2\bin\Scilex.exe -f D:\test.sce", vbHide)

'ประมวลผล

End Sub

End Class

5) ทดสอบการทางานของโปรแกรม โดยการกดปม หรอกดปม <F5> ทคยบอรด จากนน

ทาการทดสอบโปรแกรมโดยการปอนตวเลข (เชน เลข 8) ลงไปตามรปท 2.22 และกดปม

“ทดสอบการบนทกผลลพธลงเทกซไฟล” หนงครง กจะไดผลลพธดงรปท 2.23

หมายเหต การบนทกผลลพธลงในไฟลขอมลจะตองเขยนโคดลงในไฟลสครปตไวกอน

(บรรทดท 8) โดยใชคาสง savematfile จากนนออกจากการโปรแกรม SCILAB โดยใช

คาสง exit (บรรทดท 9) และสนสดการเขยนขอมล (บรรทดท 10) หลงจากนนเมอปอน

ขอมลลงไปและกดปม “ทดสอบการบนทกผลลพธลงไฟลขอมล” กจะไดไฟลสครปตทชอวา

test.sce ปรากฏอยในสารบบ D:\ และบนทกผลลพธทไดจากการประมวลผลเขาไปเกบ

ในไฟลขอมลทชอวา 001.txt ซงเมอเปดไฟลขอมล 001.txt เพอดผลลพธกจะไดตาม

รปท 2.24

Page 66: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

57

รปท 2.23 การบนทกผลลพธลงไฟลขอมล 001.txt

รปท 2.24 ผลลพธทไดในไฟล 001.txt แสดงดวยโปรแกรม NotePad

รปท 2.25 ฟอรมการแสดงผลลพธของ Log ฐาน 2

Page 67: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

58

ตารางท 2.10 การกาหนดคาคณสมบตของฟอรมทใชในรปท 2.25

ออบเจกต / คอนโทรล คณสมบต คาทกาหนด

Form Text การแสดงผลลพธของ Log ฐาน 2

CommandButton Name Button1

Text ประมวลผลลพธ Log ฐาน 2

Textbox1 Text N\A

Textbox2 Text N\A

Timer1 Interval 1000

Enabled False

2.5.5 การแสดงผลลพธ

ในทนจะแสดงวธการนาขอมลทปอนผานหนาตางสวนตอประสานของโปรแกรม Visual Basic 2010

Express ไปเกบไวในไฟลสครปตแลวสงไฟลนไปประมวลผล จากนนนาผลลพธทไดมาบนทกเกบ

ไวในไฟลขอมลแลวสงกลบมาแสดงผลทหนาตางสวนตอประสานของโปรแกรม Visual Basic 2010

Express ดงแสดงตอไปน

1) เปดโปรแกรม Visual Basic 2010 Express แลวสรางโปรเจกตแบบ Windows Forms

Application จากนนทาการออกแบบหนาฟอรมโดยนาปม Button มาวาง 1 ตว (เปลยนชอ

เปน “ประมวลผลลพธ Log ฐาน 2”), Textbox1 มาวาง 2 ตว (เปลยนชอเปน “Input” และ

“Output”), Label มาวาง 2 ตว, และ Timer1 มาวางไวนอกฟอรมอก 1 ตว ตามรปท 2.25

2) กาหนดคาคณสมบตของฟอรมตามตารางท 2.10

3) เรยกฟงกชน FileSystemObject มาใชงานโดยเลอกทเมน Project → Add Reference…

→ Microsoft Scripting Runtime และกดปม OK (ตามรปท 2.11 และ 2.12)

4) ดบเบลคลกทปม Button หรอคลกทปม View Code ทหนาตางโซลชน แลวเขยนโคด

โปรแกรมดงน

1

2

3

4

5

Public Class Form1

Public fso As New Scripting.FileSystemObject

Public w_file As Scripting.TextStream

Public r_file As Scripting.TextStream

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Button1.Click

Page 68: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

59

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

w_file = fso.CreateTextFile("D:\test.sce") 'สรางไฟลสครปต

w_file.WriteLine("X=" & TextBox1.Text & ";") 'เขยนไฟลสครปต

w_file.WriteLine("output=log2(X);") 'เขยนไฟลสครปต

w_file.WriteLine("savematfile('D:\001.txt','output')") 'บนทกผลลพธ

w_file.WriteLine("exit();") 'ออกจากโปรแกรม SCILAB

w_file.Close() 'ออกจากการเขยนไฟลสครปต

Shell("C:\WINDOWS\scilab-4.1.2\bin\Scilex.exe -f D:\test.sce", vbHide)

Timer1.Enabled = True 'เรมการทางานของ Timer1

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Timer1.Tick

If Timer1.Interval = 1000 Then 'หนวยเวลาเพอรอประมวลผล

r_file = fso.OpenTextFile("D:\001.txt") 'เปดไฟลขอมล

Do Until r_file.AtEndOfStream 'อานขอมลจากไฟลขอมลจนจบ

TextBox2.Text = Val(r_file.ReadLine) 'แสดงขอมล Textbox2

Loop

End If

Timer1.Enabled = False 'จบการทางานของ Timer1

End Sub

End Class

รปท 2.26 ผลลพธของ Log ของเลข 256 ฐาน 2 (8 = log2(256))

5) ทดสอบการทางานของโปรแกรม โดยการกดปม หรอกดปม <F5> ทคยบอรด จากนน

ทาการทดสอบโปรแกรมโดยการปอนตวเลข (เชน เลข 256) และกดปม “ประมวลผลลพธ Log

ฐาน 2” หนงครง กจะไดผลลพธดงรปท 2.26

Page 69: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

60

รปท 2.27 ตวอยางโปรแกรมเขาสระบบ

2.6 สรปทายบท บทนไดสรปพนฐานการใชงานโปรแกรม Visual Basic เพอตดตอกบโปรแกรม SCILAB โดยเรม

จากประวตความเปนมาของโปรแกรม Visual Basic จากนนอธบายหลกการใชงานของโปรแกรม

Visual Basic 2010 Express รวมทงการเชอมตอกบโปรแกรม SCILAB เพอเปนแนวทางใชการ

สรางสอการเรยนการสอนทจะอธบายในบทตอไป

2.7 แบบฝกหดทายบท 1. จงอธบายเมนหลก (menu bar) ทนยมใชงานของโปรแกรม Visual Basic 2010 Express

2. การใชงานออบเจกต FileSystemObject จะตองมการเรยกไลบรารทชอวาอะไร

3. จงอธบายความหมายและรปแบบการใชงานของฟงกชน Shell

4. ฟงกชน savematfile ของโปรแกรม SCILAB มรปแบบการใชงานอยางไร

5. จงออกแบบโปรแกรมเขาสระบบ โดยเมอปอนชอลงใน Textbox และคลกทปม “เขาสระบบ”

จะแสดงขอความยนดตอบรบและชอผใชงาน ดงตวอยางในรปท 2.27

Page 70: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

61

บทท 3 การสรางสอการสอนดวยโปรแกรม Visual

Basic รวมกบ SCILAB

ในบทนจะแสดงตวอยางขนตอนการสรางสอการสอนดวยโปรแกรม Visual Basic (VB) รวมกบ

SCILAB ซงประกอบดวยการบวก/ลบ/คณ/หาร ของเลขสองจานวน การหาดเทอรมแนนตและ

อนเวอรสของเมทรกซ การพสจนคณสมบตของเมทรกซ การหาคาลอการทมฐานใดๆ การบวกและ

ลบสมการพหนาม และการวาดกราฟสองมต เพอเปนแนวทางใหผอานสามารถนาไปพฒนาตอยอด

หรอประยกตใชงานดานอนได

3.1 การบวก/ลบ/คณ/หาร ของเลขสองจานวน

ในสวนนจะแสดงการใชโปรแกรม VB 2010 Express เพอสรางหนาตางสวนตอประสาน (interface)

เพอใชสาหรบการบวก ลบ คณ และหาร ของเลขสองจานวน ดงตอไปน

1) เปดโปรแกรม VB 2010 Express แลวสรางโปรเจกตแบบ Windows Forms Application

จากนนออกแบบหนาฟอรมตามรปท 3.1

2) กาหนดคาคณสมบตของฟอรมในรปท 3.1 ตามตารางท 3.1

3) เรยกฟงกชน FileSystemObject มาใชงานโดยเลอกทเมน Project → Add Reference…

→ Microsoft Scripting Runtime และกดปม OK (ตามรปท 2.11 และ 2.12)

4) ดบเบลคลกทฟอรมหรอคลกทปม View Code ทหนาตางโซลชน (solution explorer)

แลวเขยนโคดโปรแกรมดงน

Page 71: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

62

รปท 3.1 ฟอรมสาหรบทาหนาทการบวก ลบ คณ และหาร ของเลขสองจานวน

ตารางท 3.1 คาคณสมบตของฟอรมในรปท 3.1

ออบเจกต / คอนโทรล คณสมบต คาทกาหนด

Form Text การบวก/ลบ/คณ/หาร ดวย SCILAB

CommandButton1 Name Button1

Text + (บวก)

CommandButton2 Name Button2

Text - (ลบ)

CommandButton3 Name Button3

Text X (คณ)

CommandButton4 Name Button4

Text / (หาร)

Textbox1 (A) Text N/A

Textbox2 (B) Text N/A

Textbox3 (C) Text N/A

Timer1 Enabled False

Interval 1000

โคดของฟอรมในรปท 3.1

1

2

Public Class Form1

Public fso As New Scripting.FileSystemObject

Page 72: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

63

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

Public w_file As Scripting.TextStream

Public r_file As Scripting.TextStream

Public oparation As String

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Button1.Click

oparation = "+" 'การบวก

F_scilab() 'เรยกใชฟงกชน F_scilab

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Button2.Click

oparation = "-" 'การลบ

F_scilab() 'เรยกใชฟงกชน F_scilab

End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Button4.Click

oparation = "*" 'การคณ

F_scilab() 'เรยกใชฟงกชน F_scilab

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Button3.Click

oparation = "/" 'การหาร

F_scilab() 'เรยกใชฟงกชน F_scilab

End Sub

Private Sub F_scilab() 'รายละเอยดของฟงกชน F_scilab

TextBox3.Text = "" 'ลบขอมลใน textbox3

w_file = fso.CreateTextFile("D:\temp.sce") 'สรางไฟลสครปตชอ temp.sce

w_file.WriteLine("A=" & TextBox1.Text & ";") 'ใหตวแปร A = Textbox1.Text

w_file.WriteLine("B=" & TextBox2.Text & ";") 'ใหตวแปร B = Textbox2.Text

w_file.WriteLine("C=A" & oparation & "B;") 'ใหตวแปร C มคาเทากบ A ตามดวย

ตวดาเนนการและ B

w_file.WriteLine("otext=string(C);") 'แปลงขอมล C เปนสายอกขระเกบไวทตวแปร otext

w_file.WriteLine("fid = mopen('D:\001.txt', 'w');") 'สรางไฟลผลลพธ 001.txt

w_file.WriteLine("mfprintf(fid,'%s\n', otext);") 'เขยนขอมล otext ลงในไฟล 001.txt

w_file.WriteLine("mclose(fid);") 'จบการเขยนขอมลลงไฟล 001.txt

w_file.WriteLine("exit") 'ออกจากโปรแกรม SCILAB

w_file.Close() 'จบการเขยนขอมลลงไฟลสครปต

Shell("C:\WINDOWS\scilab-4.1.2\bin\Scilex.exe -f D:\temp.sce", vbHide) 'ประมวลผล

Page 73: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

64

35

36

37

38

39

40

41

42

43

44

45

46

47

Timer1.Enabled = True 'เปดการทางาน Timer1

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Timer1.Tick

If fso.FileExists("D:\001.txt") = True And Timer1.Interval = 1000 Then

'ตรวจสอบเงอนไขไฟล 001.txt มอยจรงหรอไมและหนวงเวลาเทากบ 1 วนาท

r_file = fso.OpenTextFile("D:\001.txt") 'เปดไฟล 001.txt

Do Until r_file.AtEndOfStream 'ตรวจสอบเงอนไข อานขอมลจาก 001.txt จบหรอไม

TextBox3.Text = Val(r_file.ReadLine) 'นาขอมลทอานไดใสลง textbox3.text

Loop 'วนลปไปตรวจสอบเงอนไข

r_file.Close() 'จบการอานขอมล

Timer1.Enabled = False 'ปดการทางาน Timer1

End If 'จบทางานเงอนไข

End Sub

End Class

รปท 3.2 ทดสอบการบวกเลขสองจานวน

5) ทดสอบการทางานของโปรแกรมโดยการกดปม หรอกดปม <F5> ทคยบอรด จากนน

ปอนขอมลดงน A มคาเทากบ 5 และ B มคาเทากบ 5 และกดปม “+ (บวก)” หนงครง

กจะไดผลลพธตามรปท 3.2 แตถากดปม “× (คณ)” หนงครง กจะไดผลลพธตามรปท 3.3

3.2 การหาดเทอรมแนนตและอนเวอรสของเมทรกซ

ในทนจะแสดงการหาดเทอรมแนนต (determinant) และอนเวอรส (inverse) ของเมทรกซขนาด

2×2 และ 3×3 โดยจะสรางฟอรมทงหมด 3 หนาตาง ดงรายละเอยดตอไปน

กดปมบวก

Page 74: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

65

รปท 3.3 ทดสอบการคณเลขสองจานวน

รปท 3.4 ฟอรมเลอกขนาดเมทรกซ 2×2 หรอ 3×3 (Form1)

Form1 คอฟอรมกาหนดขนาดของเมทรกซทจะใชงาน

Form2 คอฟอรมสาหรบการหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 2×2

Form3 คอฟอรมสาหรบการหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 3×3

3.2.1 ฟอรมกาหนดขนาดของเมทรกซ

การสรางฟอรมกาหนดขนาดของเมทรกซ (Form1) ทาไดดงน

1) เปดโปรแกรม VB 2010 Express แลวสรางโปรเจกตแบบ Windows Forms Application

โดยหนาตางนจะใหผใชงานเลอกขนาดของเมทรกซทตองการ โดยจะมปมเลอกเมทรกซขนาด

2×2 และ 3×3 ดงแสดงในรปท 3.4

2) กาหนดคาคณสมบตของฟอรมในรปท 3.4 ตามตารางท 3.2

กดปมคณ

Page 75: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

66

ตารางท 3.2 คาคณสมบตของฟอรมในรปท 3.4

ออบเจกต / คอนโทรล คณสมบต คาทกาหนด

Form Text เมทรกซ

StartPosition CenterScreen

CommandButton1 Name Button1

Text 2 x 2

CommandButton2 Name Button2

Text 3 x 3

3) เรยกฟงกชน FileSystemObject มาใชงานโดยเลอกทเมน Project → Add Reference…

→ Microsoft Scripting Runtime และกดปม OK (ตามรปท 2.11 และ 2.12)

4) ดบเบลคลกทฟอรมหรอคลกทปม View Code ทหนาตางโซลชน แลวเขยนโคดโปรแกรม

ดงน

โคดของฟอรม Form1 ในรปท 3.4

1

2

3

4

5

6

7

8

9

10

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Button1.Click

Hide() 'ซอนฟอรมทใชงานอย (Form1)

Form2.Show() 'แสดง Form2

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Button2.Click

Hide() 'ซอนฟอรมทใชงานอย (Form1)

Form3.Show() 'แสดง Form3

End Sub

End Class

3.2.2 ฟอรมสาหรบหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 2×2

การสรางฟอรมสาหรบการหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 2 ×2 (Form2) ทาได

ดงน

Page 76: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

67

รปท 3.5 ฟอรมสาหรบการหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 2×2 (Form2)

รปท 3.6 เครองมอ Panel ทใชในการออกแบบผลลพธของ Form2

1) เปดโปรแกรม VB 2010 Express แลวสรางโปรเจกตแบบ Windows Forms Application

โดยหนาตางนจะใชสาหรบหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 2×2 ซงตองมปม

สาหรบคานวณ 2 ปม โดยการหาดเทอรมแนนตจะแสดง Textbox จานวน 1 ชอง เปน Panel

ทหนง และการหาอนเวอรสจะแสดง Textbox จานวน 4 ชอง เปน Panel ทสอง ดงแสดงใน

รปท 3.5

หมายเหต การออกแบบฟอรมผลลพธนนจะใชเครองมอ (Toolbox) ทมชอวา Panel ตามรปท

3.6 ซงจะตองสราง Panel สองอนซอนกน ณ ตาแหนงทแสดงผลลพธ โดย Panel ทหนงใช

แสดงผลลพธของการหาดเทอรมแนนต และ Panel ทสองใชแสดงผลลพธของการหาอนเวอรส

นอกจากนจะตองทาการซอน Panel ทงสองไวกอน โดยการกาหนดคา Visible เทากบ False

ตามรปท 3.7

ดเทอรมแนนต

อนเวอรส

Page 77: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

68

รปท 3.7 การตงคาการซอน Panel

รปท 3.8 ตวอยางรหสทใชกาหนด Textbox (XY)

2) กาหนดคาคณสมบตของฟอรมในรปท 3.5 ตามตารางท 3.3

หมายเหต รหสทใชในการตงชอ Textbox (XY) หมายถง Textbox แถวท X และแนวตงท

Y เชน ถากาหนดให Textbox (12) จะหมายถง Textbox แถวท 1 และแนวตงท 2 ตามท

แสดงในรปท 3.8

3) เรยกฟงกชน FileSystemObject มาใชงานโดยเลอกทเมน Project → Add Reference…

→ Microsoft Scripting Runtime และกดปม OK (ตามรปท 2.11 และ 2.12)

4) ดบเบลคลกทฟอรมหรอคลกทปม View Code ทหนาตางโซลชนแลวเขยนโคดโปรแกรม

ดงน

แถวท 1 แนวตงท 2

Page 78: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

69

ตารางท 3.3 คาคณสมบตของฟอรมในรปท 3.5

ออบเจกต / คอนโทรล คณสมบต คาทกาหนด

Form Text เมทรกซขนาด 2 × 2

StartPosition CenterScreen

CommandButton1 Name Button1

Text ดเทอรมแนนต

CommandButton2 Name Button2

Text อนเวอรส

CommandButton3 Name Button3

Text ยอนกลบ

Textbox (A11) Name a0

Text N/A

Textbox (A12) Name a1

Text N/A

Textbox (A21) Name a2

Text N/A

Textbox (A22) Name a3

Text N/A

Textbox (1) Panel1 Name da

Text N/A

Textbox (11) Panel2 Name inva0

Text N/A

Textbox (12) Panel2 Name inva1

Text N/A

Textbox (21) Panel2 Name inva2

Text N/A

Textbox (22) Panel2 Name inva3

Text N/A

Timer1 Enabled False

Interval 1000

Page 79: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

70

โคดของฟอรม Form2 ในรปท 3.5

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

Public Class Form2

Public fso As New Scripting.FileSystemObject

Public w_file As Scripting.TextStream

Public r_file As Scripting.TextStream

Public codeline As String

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Button1.Click

da.Text = "" 'ลบขอมลใน da.Text

w_file = fso.CreateTextFile("D:\temp.sce") 'สรางไฟลสครปตชอวา temp.sce

w_file.WriteLine("A=[" & a0.Text & " " & a1.Text & ";" & a2.Text & " " & a3.Text

& "];") 'สรางตวแปรเมทรกซ A เทากบ a0.text - a3.text ตามลาดบ

w_file.WriteLine("output=det(A);") 'หาดเทอรมแนนตของเมทรกซ A

w_file.WriteLine("otext=string(output);") 'แปลงขอมล output เปนสายอกขระเกบไวท

ตวแปร otext

w_file.WriteLine("fid = mopen('D:\001.txt', 'w');") 'สรางไฟลผลลพธ 001.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext);") 'นาขอมล output เขยนลงในไฟล 001.txt

w_file.WriteLine("mclose(fid);") 'จบการเขยนขอมลลงไฟล 001.txt

w_file.WriteLine("exit") 'ออกจากโปรแกรม SCILAB

w_file.Close() 'จบการเขยนขอมลลงไฟลสครปต

Shell("C:\WINDOWS\scilab-4.1.2\bin\Scilex.exe -f D:\temp.sce", vbHide)

Timer1.Enabled = True 'เปดการทางาน Timer1

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Timer1.Tick

If fso.FileExists("D:\001.txt") = True And Timer1.Interval = 1000 Then 'ตรวจสอบ

เงอนไขไฟล 001.txt มอยจรงหรอไมและหนวงเวลาเทากบ 1 วนาท

r_file = fso.OpenTextFile("D:\001.txt") 'เปดไฟล 001.txt

Do Until r_file.AtEndOfStream 'ตรวจสอบเงอนไข อานขอมลจาก 001.txt จบหรอไม

da.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง da.text

Loop 'วนลปไปตรวจสอบเงอนไข

r_file.Close() 'จบการอานขอมล

Panel2.Visible = False 'ปด Panel2

Panel1.Visible = True 'เปด Panel1

Timer1.Enabled = False 'ปดการทางาน Timer1

End If 'จบทางานเงอนไข

End Sub

Page 80: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

71

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Button2.Click

inva0.Text = "" 'ลบขอมลใน inva0.text

inva1.Text = "" 'ลบขอมลใน inva1.text

inva2.Text = "" 'ลบขอมลใน inva2.text

inva3.Text = "" 'ลบขอมลใน inva3.text

w_file = fso.CreateTextFile("D:\temp.sce") 'สรางไฟลสครปตชอวา temp.sce

w_file.WriteLine("A=[" & a0.Text & " " & a1.Text & ";" & a2.Text & " " & a3.Text

& "];") 'สรางตวแปรเมทรกซ A เทากบ a0.text - a3.text ตามลาดบ

w_file.WriteLine("output=inv(A);") 'หาอนเวอรสของเมทรกซ A

w_file.WriteLine("otext=string(output);") 'แปลงขอมล output เปนสายอกขระเกบไวท

ตวแปร otext

w_file.WriteLine("fid = mopen('D:\001.txt', 'w');") 'สรางไฟลผลลพธ 001.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext(1));") 'นาขอมล otext(1) เขยนลงใน 001.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext(3));") 'นาขอมล otext(3) เขยนลงใน 001.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext(2));") 'นาขอมล otext(2) เขยนลงใน 001.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext(4));") 'นาขอมล otext(4) เขยนลงใน 001.txt

w_file.WriteLine("mclose(fid);") 'จบการเขยนขอมลลงไฟล 001.txt

w_file.WriteLine("exit") 'ออกจากโปรแกรม SCILAB

w_file.Close() 'จบการเขยนขอมลลงไฟลสครปต

Shell("C:\WINDOWS\scilab-4.1.2\bin\Scilex.exe -f D:\temp.sce", vbHide)

Timer2.Enabled = True 'เปดการทางาน Timer2

End Sub

Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Timer2.Tick

If fso.FileExists("D:\001.txt") = True And Timer2.Interval = 1000 Then 'ตรวจสอบ

เงอนไขไฟล 001.txt มอยจรงหรอไมและหนวงเวลาเทากบ 1 วนาท

r_file = fso.OpenTextFile("D:\001.txt") 'เปดไฟล 001.txt

Do Until r_file.AtEndOfStream 'ตรวจสอบเงอนไข อานขอมลจาก 001.txt จบหรอไม

inva0.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง inva0.text

inva1.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง inva1.text

inva2.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง inva2.text

inva3.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง inva3.text

Loop 'วนลปไปตรวจสอบเงอนไข

r_file.Close() 'จบการอานขอมล

Panel1.Visible = False 'ปด Panel1

Panel2.Visible = True 'เปด Panel2

Page 81: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

72

64

65

66

67

68

69

70

71

Timer2.Enabled = False 'ปดการทางาน Timer2

End If 'จบทางานเงอนไข

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Button3.Click

Hide() 'ซอนฟอรมทใชงานอย (Form2)

Form1.Show() 'แสดง Form1

End Sub

End Class

รปท 3.9 ฟอรมสาหรบการหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 3×3 (Form3)

3.2.3 ฟอรมสาหรบหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 3×3

การสรางฟอรมสาหรบหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 3 ×3 (Form3) ทาไดดงน

1) เปดโปรแกรม VB 2010 Express แลวสรางโปรเจกตแบบ Windows Forms Application

โดยหนาตางนจะใชสาหรบหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 3×3 โดยการ

ออกแบบในสวนแสดงผลลพธจะมลกษณะเหมอนกบแบบฟอรมท 2 (Form2) โดยจะใช Panel

ซอนผลลพธไวตามทกาหนดในรปท 3.6 และ 3.7 แตจะมขนาดของเมทรกซเปน 3×3 ตาม

รปท 3.9

2) กาหนดคาคณสมบตของฟอรมในรปท 3.9 ตามตารางท 3.4

อนเวอรส

ดเทอรมแนนต

Page 82: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

73

ตารางท 3.4 คาคณสมบตของฟอรมในรปท 3.9

ออบเจกต / คอนโทรล คณสมบต คาทกาหนด

Form Text เมทรกซขนาด 3 × 3

StartPosition CenterScreen

CommandButton1 Name Button1

Text ดเทอรมแนนต

CommandButton2 Name Button2

Text อนเวอรส

CommandButton3 Name Button3

Text ยอนกลบ

Textbox (A11) Name a0

Text N/A

Textbox (A12) Name a1

Text N/A

Textbox (A13) Name a2

Text N/A

Textbox (A21) Name a3

Text N/A

Textbox (A22) Name a4

Text N/A

Textbox (A23) Name a5

Text N/A

Textbox (A31) Name a6

Text N/A

Textbox (A32) Name a7

Text N/A

Textbox (A33) Name a8

Text N/A

Textbox (1) Panel1 Name da

Text N/A

Page 83: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

74

ออบเจกต / คอนโทรล คณสมบต คาทกาหนด

Textbox (11) Panel2 Name inva0

Text N/A

Textbox (12) Panel2 Name inva1

Text N/A

Textbox (13) Panel2 Name inva2

Text N/A

Textbox (21) Panel2 Name inva3

Text N/A

Textbox (22) Panel2 Name inva4

Text N/A

Textbox (23) Panel2 Name inva5

Text N/A

Textbox (31) Panel2 Name inva6

Text N/A

Textbox (32) Panel2 Name inva7

Text N/A

Textbox (33) Panel2 Name inva8

Text N/A

Timer1 Enabled False

Interval 1000

หมายเหต การเรยงรหส Textbox (XY) ในตารางท 3.4 จะเหมอนกบ Form2 ทแสดงในตารางท

3.3 เพยงแตขนาดเมทรกซจะเปน 3×3

3) เรยกฟงกชน FileSystemObject มาใชงานโดยเลอกทเมน Project → Add Reference…

→ Microsoft Scripting Runtime และกดปม OK (ตามรปท 2.11 และ 2.12)

4) ดบเบลคลกทฟอรมหรอคลกทปม View Code ทหนาตางโซลชน แลวเขยนโคดโปรแกรม

ดงน

Page 84: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

75

โคดของฟอรม Form3 ในรปท 3.9

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

Public Class Form3

Public fso As New Scripting.FileSystemObject

Public w_file As Scripting.TextStream

Public r_file As Scripting.TextStream

Public codeline As String

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Button1.Click

da.Text = "" 'ลบขอมลใน da.text

w_file = fso.CreateTextFile("D:\temp.sce") 'สรางไฟลสครปตชอวา temp.sce

w_file.WriteLine("A=[" & a0.Text & " " & a1.Text & " " & a2.Text & ";" & a3.Text

& " " & a4.Text & " " & a5.Text & ";" & a6.Text & " " & a7.Text & " " & _ a8.Text &

"];") 'สรางตวแปรเมทรกซ A เทากบ a0.text - a8.text ตามลาดบ

w_file.WriteLine("output=det(A);") 'หาดเทอรมแนนตของเมทรกซ A

w_file.WriteLine("otext=string(output);") 'แปลงขอมล output เปนสายอกขระเกบไวท

ตวแปร otext

w_file.WriteLine("fid = mopen('D:\001.txt', 'w');") 'สรางไฟลผลลพธ 001.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext);") 'นาขอมล otext เขยนลงใน 001.txt

w_file.WriteLine("mclose(fid);") 'จบการเขยนขอมลลงไฟล 001.txt

w_file.WriteLine("exit") 'ออกจากโปรแกรม SCILAB

w_file.Close() 'จบการเขยนขอมลลงไฟลสครปต

Shell("C:\WINDOWS\scilab-4.1.2\bin\Scilex.exe -f D:\temp.sce", vbHide)

Timer1.Enabled = True 'เปดการทางาน Timer1

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Timer1.Tick

If fso.FileExists("D:\001.txt") = True And Timer1.Interval = 1000 Then

r_file = fso.OpenTextFile("D:\001.txt") 'เปดไฟล 001.txt

Do Until r_file.AtEndOfStream 'ตรวจสอบเงอนไข อานขอมลจาก 001.txt จบหรอไม

da.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง da.text

Loop 'วนลปไปตรวจสอบเงอนไข

r_file.Close() 'จบการอานขอมล

Panel2.Visible = False 'ปด Panel2

Panel1.Visible = True 'เปด Panel1

Timer1.Enabled = False 'ปดการทางาน Timer1

Page 85: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

76

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

End If 'จบทางานเงอนไข

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Button2.Click

inva0.Text = "" 'ลบขอมลใน inva0.text

inva1.Text = "" 'ลบขอมลใน inva1.text

inva2.Text = "" 'ลบขอมลใน inva2.text

inva3.Text = "" 'ลบขอมลใน inva3.text

inva4.Text = "" 'ลบขอมลใน inva4.text

inva5.Text = "" 'ลบขอมลใน inva5.text

inva6.Text = "" 'ลบขอมลใน inva6.text

inva7.Text = "" 'ลบขอมลใน inva7.text

inva8.Text = "" 'ลบขอมลใน inva8.text

w_file = fso.CreateTextFile("D:\temp.sce") 'สรางไฟลสครปตชอวา temp.sce

w_file.WriteLine("A=[" & a0.Text & " " & a1.Text & " " & a2.Text & ";" & a3.Text

& " " & a4.Text & " " & a5.Text & ";" & a6.Text & " " & a7.Text & " " & _ a8.Text &

"];") 'สรางตวแปรเมทรกซ A เทากบ a0.text - a8.text ตามลาดบ

w_file.WriteLine("output=inv(A);") 'หาอนเวอรสของเมทรกซ A

w_file.WriteLine("otext=string(output);")

w_file.WriteLine("fid = mopen('D:\001.txt', 'w');") 'สรางไฟลผลลพธ 001.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext(1));") 'นาขอมล otext(1) เขยนลงใน 001.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext(4));") 'นาขอมล otext(4) เขยนลงใน 001.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext(7));") 'นาขอมล otext(7) เขยนลงใน 001.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext(2));") 'นาขอมล otext(2) เขยนลงใน 001.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext(5));") 'นาขอมล otext(5) เขยนลงใน 001.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext(8));") 'นาขอมล otext(8) เขยนลงใน 001.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext(3));") 'นาขอมล otext(3) เขยนลงใน 001.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext(6));") 'นาขอมล otext(6) เขยนลงใน 001.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext(9));") 'นาขอมล otext(9) เขยนลงใน 001.txt

w_file.WriteLine("mclose(fid);") 'จบการเขยนขอมลลงไฟล 001.txt

w_file.WriteLine("exit") 'ออกจากโปรแกรม SCILAB

w_file.Close() 'จบการเขยนขอมลลงไฟลสครปต

Shell("C:\WINDOWS\scilab-4.1.2\bin\Scilex.exe -f D:\temp.sce", vbHide)

Timer2.Enabled = True 'เปดการทางาน Timer2

End Sub

Page 86: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

77

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Timer2.Tick

If fso.FileExists("D:\001.txt") = True And Timer2.Interval = 1000 Then

r_file = fso.OpenTextFile("D:\001.txt") 'เปดไฟล 001.txt

Do Until r_file.AtEndOfStream 'ตรวจสอบเงอนไข อานขอมลจาก 001.txt จบหรอไม

inva0.Text = r_file.ReadLine 'นาขอมลใสลง inva0.text

inva1.Text = r_file.ReadLine 'นาขอมลใสลง inva1.text

inva2.Text = r_file.ReadLine 'นาขอมลใสลง inva2.text

inva3.Text = r_file.ReadLine 'นาขอมลใสลง inva3.text

inva4.Text = r_file.ReadLine 'นาขอมลใสลง inva4.text

inva5.Text = r_file.ReadLine 'นาขอมลใสลง inva5.text

inva6.Text = r_file.ReadLine 'นาขอมลใสลง inva6.text

inva7.Text = r_file.ReadLine 'นาขอมลใสลง inva7.text

inva8.Text = r_file.ReadLine 'นาขอมลใสลง inva8.text

Loop 'วนลปไปตรวจสอบเงอนไข

r_file.Close() 'จบการอานขอมล

Panel1.Visible = False 'ปด Panel1

Panel2.Visible = True 'เปด Panel2

Timer2.Enabled = False 'ปดการทางาน Timer2

End If 'จบการทางานของเงอนไข

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Button3.Click

Hide() 'ซอนฟอรมทใชงานอย (Form3)

Form1.Show() 'แสดง Form1

End Sub

End Class

3.2.4 ทดสอบการใชงาน

ในสวนนจะทดสอบการทางานของโปรแกรมการหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด

2 ×2 และ 3 ×3 ดงน

Page 87: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

78

รปท 3.10 ตวอยางการหาผลลพธของดเทอรมแนนตของเมทรกซขนาด 2×2

รปท 3.11 ตวอยางการหาผลลพธของอนเวอรสเมทรกซขนาด 2×2

1) ทดสอบการทางานของโปรแกรมโดยการกดปม หรอกดปม <F5> ทคยบอรด จากนน

ทาการปอนขอมลโดยแบงออกเปน 2 ตวอยางตอไปน

2) สาหรบตวอยางเมทรกซขนาด 2×2 ใหกดเลอกขนาดของเมทรกซเปน 2×2 ในรปท 3.4 กจะได

หนาตาง “เมทรกซขนาด 2×2” ตามรปท 3.10

• ปอนขอมลใหเมทรกซ A มคาเทากบ [1, 2; 3, 4] ตามรปท 3.10 โดยถาตองการหาคา

ดเทอรมแนนตของเมทรกซ A ใหกดปมดเทอรมแนนตในรปท 3.10 กจะไดผลลพธเทากบ

-2 ตามทตองการ ในทานองเดยวกนถาตองการหาคาดเทอรมแนนตของเมทรกซ A ใหกด

ปมอนเวอรสในรปท 3.11 กจะไดผลลพธเทากบ [-2, 1; 1.5, -0.5] ตามทตองการ

Page 88: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

79

รปท 3.12 ตวอยางการหาผลลพธของดเทอรมแนนตของเมทรกซขนาด 3×3

รปท 3.13 ตวอยางการหาผลลพธของอนเวอรสเมทรกซขนาด 3×3

3) สาหรบตวอยางเมทรกซขนาด 3×3 ใหกดเลอกขนาดของเมทรกซเปน 3×3 ในรปท 3.4 กจะได

หนาตาง “เมทรกซขนาด 3×3” ตามรปท 3.12

• ปอนขอมลใหเมทรกซ A มคาเทากบ [2, 2, 1; 1, 2, 4; 8, 2, 3] ตามรปท 3.12 โดยถา

ตองการหาคาดเทอรมแนนตของเมทรกซ A ใหกดปมดเทอรมแนนตของเมทรกซ A ให

กดปมดเทอรมแนนตในรปท 3.12 กจะไดผลลพธเทากบ 40 ในทานองเดยวกนถาตองการ

หาคาดเทอรมแนนตของเมทรกซ A ใหกดปมอนเวอรสในรปท 3.13 กจะไดผลลพธเทากบ

[-0.05, -0.1, 0.15; 0.725, -0.05, -0.175; -0.35, 0.3, 0.05] ตามตองการ

Page 89: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

80

รปท 3.14 เครองมอ TabControl ในกลองเครองมอ

3.3 การพสจนคณสมบตของเมทรกซ

ในสวนนจะแสดงตวอยางการใชโปรแกรม VB 2010 Express สรางหนาตางสวนตอประสานเพอ

ใชในการพสจนคณสมบต (property) ของเมทรกซ 3 แบบคอ

(kA)T = kAT

(A + B)T = AT + BT

(AB)T = BTAT

เมอ k คอคาคงตว, A และ B คอเมทรกซจตรสขนาด 2×2, และ (⋅)T คอทรานสโพสของเมทรกซ

ดงรายละเอยดตอไปน

3.3.1 การพสจนคณสมบต (kA)T = kAT

การสรางหนาตางสวนตอประสานเพอใชในการพสจนคณสมบต (kA)T = kAT ทาไดดงน

1) เปดโปรแกรม VB 2010 Express แลวสรางโปรเจกตแบบ Windows Forms Application

จากนนทาการออกแบบหนาฟอรมสาหรบการเขยนโปรแกรมพสจนคณสมบตของเมทรกซโดย

ในทนจะใชเครองมอทเรยกวา TabControl ตามรปท 3.14 เพอออกแบบการพสจนคณสมบต

ทง 3 แบบลงในฟอรมเดยวกน รปท 3.15 และ 3.16 แสดงตวอยางการออกแบบฟอรมตาม

Tab ทหนง

Page 90: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

81

รปท 3.15 การกาหนดชอ Tab ทงสามแบบ

2) กาหนดคาคณสมบตของฟอรมสาหรบ Tab ทหนงในรปท 3.16 ตามตารางท 3.5

หมายเหต การเรยงรหสเลข Textbox (XX) จะเหมอนกบทใชในตารางท 3.4 ตวอยางเชน

สวนแสดงผลลพธในชอง Output ตามรปท 3.17 ในทนจะไดวา Textbox (21) หมายถง

Textbox แถวท 2 และแนวตงท 1 ในขณะท Textbox (25) หมายถง Textbox แถวท 2

และแนวตงท 5

คลกเลอกพนท (กรอบเสนปะ)

คลกท Tab ทตองการ

Page 91: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

82

รปท 3.16 ฟอรมของ Tab ทหนง สาหรบการพสจน (kA)T = kAT

รปท 3.17 ตวอยางรหสทใชกาหนด Textbox (Output)

แถวท 2 แนวตงท 5 แถวท 2 แนวตงท 1

Page 92: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

83

ตารางท 3.5 คาคณสมบตของฟอรมสาหรบ Tab ทหนงในรปท 3.16

ออบเจกต / คอนโทรล คณสมบต คาทกาหนด

Form Text เมทรกซขนาด 2 × 2 พสจนคณสมบต

StartPosition CenterScreen

CommandButton1 Name Button1

Text คานวณ

Textbox (K) Input Name K

Text N/A

Textbox (A11) Input Name a0

Text N/A

Textbox (A12) Input Name a1

Text N/A

Textbox (A21) Input Name a2

Text N/A

Textbox (A22) Input Name a3

Text N/A

Textbox (11) output Name ako

Text N/A

Textbox (12) output Name aa0

Text N/A

Textbox (13) output Name ak1

Text N/A

Textbox (14) output Name aa1

Text N/A

Textbox (15) output Name bk0

Text N/A

Textbox (16) output Name ba0

Text N/A

Textbox (17) output Name bk1

Text N/A

Page 93: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

84

ออบเจกต / คอนโทรล คณสมบต คาทกาหนด

Textbox (18) output Name ba1

Text N/A

Textbox (21) output Name ak2

Text N/A

Textbox (22) output Name aa2

Text N/A

Textbox (23) output Name ak3

Text N/A

Textbox (24) output Name aa3

Text N/A

Textbox (25) output Name bk2

Text N/A

Textbox (26) output Name ba2

Text N/A

Textbox (27) output Name bk3

Text N/A

Textbox (28) output Name ba3

Text N/A

Textbox C1(11) Output Name ac0

Text N/A

Textbox C1(12) Output Name ac1

Text N/A

Textbox C1(13) Output Name ac2

Text N/A

Textbox C1(14) Output Name ac3

Text N/A

Textbox C2(11) Output Name bc0

Text N/A

Textbox C2(12) Output Name bc1

Page 94: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

85

ออบเจกต / คอนโทรล คณสมบต คาทกาหนด

Text N/A

Textbox C2(13) Output Name bc2

Text N/A

Textbox C2(14) Output Name bc3

Text N/A

Timer1 Enabled False

Interval 1000

3) เรยกฟงกชน FileSystemObject มาใชงานโดยเลอกทเมน Project → Add Reference…

→ Microsoft Scripting Runtime และกดปม OK (ตามรปท 2.11 และ 2.12)

4) ดบเบลคลกทฟอรมหรอคลกทปม View Code ทหนาตางโซลชน แลวเขยนโคดโปรแกรม

ดงน

โคดของฟอรมสาหรบ Tab ทหนงในรปท 3.16

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

Public Class Form1

Public fso As New Scripting.FileSystemObject

Public w_file As Scripting.TextStream

Public r_file As Scripting.TextStream

Public i As Integer

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Button1.Click

w_file = fso.CreateTextFile("D:\temp.sce") 'สรางไฟลสครปตชอวา temp.sce

w_file.WriteLine("A=[" & a0.Text & " " & a1.Text & ";" & a2.Text & " " & a3.Text

& "];") 'สรางตวแปรเมทรกซ A เทากบ a0.text - a3.text ตามลาดบ

w_file.WriteLine("k=[" & k.Text & "];") 'สรางตวแปร k เทากบ k.text

w_file.WriteLine("output1=(k*A)';") 'ให output1 มคาเทากบทรานสโพสของ k×A

w_file.WriteLine("output2=k*A';") 'ให output2 มคาเทากบ k คณทรานสโพสของ A

w_file.WriteLine("otext1=string(output1);") 'แปลงคา output1 เปนขอความ

w_file.WriteLine("otext2=string(output2);") 'แปลงคา output2 เปนขอความ

w_file.WriteLine("fid = mopen('D:\001.txt', 'w');") 'สรางไฟลผลลพธ 001.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext1(1));") 'นาขอมล output1(1) เขยนลง 001.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext1(3));") 'นาขอมล output1(3) เขยนลง 001.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext1(2));") 'นาขอมล output1(2) เขยนลง 001.txt

Page 95: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

86

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

w_file.WriteLine("mfprintf(fid,'%s\n',otext1(4));") 'นาขอมล output1(4) เขยนลง 001.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext2(1));") 'นาขอมล output2(1) เขยนลง 001.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext2(3));") 'นาขอมล output2(3) เขยนลง 001.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext2(2));") 'นาขอมล output2(2) เขยนลง 001.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext2(4));") 'นาขอมล output2(4) เขยนลง 001.txt

w_file.WriteLine("mclose(fid);") 'จบการเขยนขอมลลงไฟล 001.txt

w_file.WriteLine("exit") 'ออกจากโปรแกรม SCILAB

w_file.Close() 'จบการเขยนขอมลลงไฟลสครปต

Shell("C:\WINDOWS\scilab-4.1.2\bin\Scilex.exe -f D:\temp.sce", vbHide)

Timer1.Enabled = True 'เปดการทางาน Timer1

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Timer1.Tick

If fso.FileExists("D:\001.txt") = True And Timer1.Interval = 1000 Then

r_file = fso.OpenTextFile("D:\001.txt") 'เปดไฟล 001.txt

Do Until r_file.AtEndOfStream 'ตรวจสอบเงอนไข อานขอมลจาก 001.txt จบหรอไม

ac0.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง ac0.text

ac1.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง ac1.text

ac2.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง ac2.text

ac3.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง ac3.text

bc0.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง bc0.text

bc1.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง bc1.text

bc2.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง bc2.text

bc3.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง bc3.text

Loop 'วนลปไปตรวจสอบเงอนไข

r_file.Close() 'จบการอานขอมล

Dim con0() As TextBox = {a0, a1, a2, a3} 'ประกาศตวแปร con0 มขอมล

array เทากบ a0 - a3

Dim con1() As TextBox = {ak0, ak1, ak2, ak3} 'ประกาศตวแปร con1 มขอมล

array เทากบ ak0 - ak3

Dim con2() As TextBox = {bk0, bk1, bk2, bk3} 'ประกาศตวแปร con2 มขอมล

array เทากบ bk0 - bk3

Dim con3() As TextBox = {aa0, aa1, aa2, aa3} 'ประกาศตวแปร con3 มขอมล

array เทากบ aa0 - aa3

Dim con4() As TextBox = {ba0, ba1, ba2, ba3} 'ประกาศตวแปร con4 มขอมล

array เทากบ ba0 - ba3

For Me.i = 0 To 3 'ลป i = 0 จนถง i = 3

Page 96: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

87

49

50

51

52

53

54

55

56

57

con1(i).Text = k.Text 'นาขอมล k.text สงใหกบ con1(i)

con2(i).Text = k.Text 'นาขอมล k.text สงใหกบ con2(i)

con3(i).Text = con0(i).Text 'นาขอมล con0(i) สงใหกบ con3(i)

con4(i).Text = con0(i).Text 'นาขอมล con0(i) สงใหกบ con4(i)

Next 'วนลปทไปท for จนสนสดเงอนไข

Timer1.Enabled = False 'ปดการทางาน Timer1

End If 'จบการทางานของเงอนไข

End Sub

End Class 'จบการทางานของ Class เพอทดสอบการทางานของ Tab ทหนง

รปท 3.18 ตวอยางการคานวณเพอพสจนคณสมบต (kA)T = kAT

5) ทดสอบการทางานของโปรแกรมโดยการกดปม หรอกดปม <F5> ทคยบอรด จากนน

ทาการปอนขอมล k = 2 และเมทรกซ A เทากบ [1, 2; 3, 4] ตามรปท 3.18

Page 97: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

88

รปท 3.19 ฟอรมของ Tab ทสอง สาหรบการพสจน (A+B)T = AT + BT

3.3.2 การพสจนคณสมบต (A + B)T = AT + BT

การพสจนคณสมบตทสองนจะทาการออกแบบภายในฟอรมเดยวกน แตเปลยนเปนการใช Tab ท

สอง (แบบท 2) จากนนทาการออกแบบฟอรมภายใน Tab ทสองตามรปท 3.19 จากนนทาตาม

ขนตอนดงน

1) กาหนดคาคณสมบตของฟอรมสาหรบ Tab ทสองในรปท 3.19 ตามตารางท 3.6

2) เนองจากการเขยนโปรแกรม Tab ทหนง (หวขอท 3.3.1) ไดเรยกฟงกชน FileSystemObject

มาใชงานแลว ดงนนจงไมจาเปนตองเรยกฟงกชนนซาอกครง

Page 98: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

89

ตารางท 3.6 คาคณสมบตของฟอรมสาหรบ Tab ทสองในรปท 3.19

ออบเจกต / คอนโทรล คณสมบต คาทกาหนด

Form Text เมทรกซขนาด 2 × 2 พสจนคณสมบต

StartPosition CenterScreen

CommandButton2 Name Button2

Text คานวณ

Textbox (A11) Input Name at0

Text N/A

Textbox (A12) Input Name at1

Text N/A

Textbox (A21) Input Name at2

Text N/A

Textbox (A22) Input Name at3

Text N/A

Textbox (B11) Input Name bt0

Text N/A

Textbox B12) Input Name bt1

Text N/A

Textbox (B21) Input Name bt2

Text N/A

Textbox (B22) Input Name bt3

Text N/A

Textbox (11) Output Name ata0

Text N/A

Textbox (12) Output Name ata1

Text N/A

Textbox (13) Output Name bta0

Text N/A

Textbox (14) Output Name bta1

Text N/A

Page 99: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

90

ออบเจกต / คอนโทรล คณสมบต คาทกาหนด

Textbox (15) Output Name atb0

Text N/A

Textbox (16) Output Name atb1

Text N/A

Textbox (17) Output Name btb0

Text N/A

Textbox (18) Output Name btb1

Text N/A

Textbox (21) Output Name ata2

Text N/A

Textbox (22) Output Name ata3

Text N/A

Textbox (23) Output Name bta2

Text N/A

Textbox (24) Output Name bta3

Text N/A

Textbox (25) Output Name atb2

Text N/A

Textbox (26) Output Name atb3

Text N/A

Textbox (27) Output Name btb2

Text N/A

Textbox (28) Output Name btb3

Text N/A

Textbox C1(11) Output Name tac0

Text N/A

Textbox C1(12) Output Name tac1

Text N/A

Textbox C1(13) Output Name tac2

Page 100: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

91

ออบเจกต / คอนโทรล คณสมบต คาทกาหนด

Text N/A

Textbox C1(14) Output Name tac3

Text N/A

Textbox C2(11) Output Name tbc0

Text N/A

Textbox C2(12) Output Name tbc1

Text N/A

Textbox C2(13) Output Name tbc2

Text N/A

Textbox C2(14) Output Name tbc3

Text N/A

Timer2 Enabled False

Interval 1000

3) ดบเบลคลกทฟอรมหรอคลกทปม View Code ทหนาตางโซลชน แลวเขยนโคดโปรแกรม

โดยเขยนตอจากบรรทดท 569 (จากโคดของฟอรมสาหรบ Tab ทหนงในรปท 3.16) ดงน

โคดของฟอรมสาหรบ Tab ทสองในรปท 3.19

57

58

59

60

61

62

63

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

Handles Button2.Click

w_file = fso.CreateTextFile("D:\temp2.sce") 'สรางไฟลสครปตชอวา temp2.sce

w_file.WriteLine("A=[" & at0.Text & " " & at1.Text & ";" & at2.Text & " " &

at3.Text & "];") 'สรางตวแปรเมทรกซ A เทากบ at0.text - at3.text ตามลาดบ

w_file.WriteLine("B=[" & bt0.Text & " " & bt1.Text & ";" & bt2.Text & " " &

bt3.Text & "];") 'สรางตวแปรเมทรกซ B เทากบ bt0.text - bt3.text ตามลาดบ

w_file.WriteLine("output1=(A+B)';") 'ให output1 มคาเทากบทรานสโพสของ (A+B)

w_file.WriteLine("output2=A'+B';") 'ให output2 มคาเทากบทรานสโพสของ A บวก

กบทรานสโพสของ B

w_file.WriteLine("otext1=string(output1);") 'แปลง output1 เปนสายอกขระเกบใน otext1

9 คาสง End Class ทใชในบรรทดท 57 ตองตดทงกอน เพอใสโคดของฟอรมสาหรบ Tab ทสอง ในทางปฏบตฟอรมหนง

ฟอรมจะตองม Public Class และ End Class เพยงคเดยวเทานน

Page 101: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

92

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

w_file.WriteLine("otext2=string(output2);") 'แปลง output2 เปนสายอกขระเกบใน otext2

w_file.WriteLine("fid = mopen('D:\002.txt', 'w');") 'สรางไฟลผลลพธ 002.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext1(1));") 'นาขอมล output1(1) เขยนลง 002.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext1(3));") 'นาขอมล output1(3) เขยนลง 002.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext1(2));") 'นาขอมล output1(2) เขยนลง 002.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext1(4));") 'นาขอมล output1(4) เขยนลง 002.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext2(1));") 'นาขอมล output2(1) เขยนลง 002.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext2(3));") 'นาขอมล output2(3) เขยนลง 002.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext2(2));") 'นาขอมล output2(2) เขยนลง 002.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext2(4));") 'นาขอมล output2(4) เขยนลง 002.txt

w_file.WriteLine("mclose(fid);") 'จบการเขยนขอมลลงไฟล 002.txt

w_file.WriteLine("exit") 'ออกจากโปรแกรม SCILAB

w_file.Close() 'จบการเขยนขอมลลงไฟลสครปต

Shell("C:\WINDOWS\scilab-4.1.2\bin\Scilex.exe -f D:\temp2.sce", vbHide)

Timer2.Enabled = True 'เปดการทางาน Timer2

End Sub

Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Timer2.Tick

If fso.FileExists("D:\002.txt") = True And Timer2.Interval = 1000 Then

r_file = fso.OpenTextFile("D:\002.txt") 'เปดไฟล 002.txt

Do Until r_file.AtEndOfStream 'ตรวจสอบเงอนไข อานขอมลจาก 002.txt จบหรอไม

tac0.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง tac0.text

tac1.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง tac1.text

tac2.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง tac2.text

tac3.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง tac3.text

tbc0.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง tbc0.text

tbc1.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง tbc1.text

tbc2.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง tbc2.text

tbc3.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง tbc3.text

Loop 'วนลปไปตรวจสอบเงอนไข

r_file.Close() 'จบการอานขอมล

Dim con0() As TextBox = {at0, at1, at2, at3}

Dim con1() As TextBox = {bt0, bt1, bt2, bt3}

Dim con2() As TextBox = {ata0, ata1, ata2, ata3}

Dim con3() As TextBox = {atb0, atb1, atb2, atb3}

Dim con4() As TextBox = {bta0, bta1, bta2, bta3}

Dim con5() As TextBox = {btb0, btb1, btb2, btb3}

Page 102: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

93

100

101

102

103

104

105

106

107

108

109

For Me.i = 0 To 3 'ลป i = 0 จนถง i = 3

con2(i).Text = con0(i).Text 'นาขอมล con0(i) สงใหกบ con2(i)

con3(i).Text = con0(i).Text 'นาขอมล con0(i) สงใหกบ con3(i)

con4(i).Text = con1(i).Text 'นาขอมล con1(i) สงใหกบ con4(i)

con5(i).Text = con1(i).Text 'นาขอมล con1(i) สงใหกบ con5(i)

Next 'วนลปทไปท for จนสนสดเงอนไข

Timer2.Enabled = False 'ปดการทางาน Timer2

End If 'จบทางานเงอนไข

End Sub

End Class 'จบการทางานของ Class เพอทดสอบการทางานของ Tab ทหนงและสอง

รปท 3.20 ตวอยางการคานวณเพอพสจนคณสมบต (A + B)T = AT + BT

4) ทดสอบการทางานของโปรแกรมโดยการกดปม หรอกดปม <F5> ทคยบอรด จากนน

ปอนคาเมทรกซ A เทากบ [1, 2; 3, 4] และเมทรกซ B เทากบ [5, 6; 7, 8] และกดทปม

คานวณกจะไดผลลพธตามรปท 3.20

Page 103: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

94

รปท 3.21 ฟอรมของ Tab ทสาม สาหรบการพสจน (AB)T = BTAT

3.3.3 การพสจนคณสมบต (AB)T = BTAT

ในทานองเดยวกนการพสจนคณสมบตทสามจะออกแบบภายในฟอรมเดยวกน แตเปลยนเปนการ

ใช Tab ทสาม (แบบท 3) จากนนทาการออกแบบฟอรมภายใน Tab ทสามตามรปท 3.21

จากนนทาตามขนตอนดงน

1) กาหนดคาคณสมบตของฟอรมสาหรบ Tab ทสามในรปท 3.21 ตามตารางท 3.7

2) เชนเดยวกน เนองจากการเขยนโปรแกรม Tab ทหนง (หวขอท 3.3.1) ไดเรยกใชงานฟงกชน

FileSystemObject แลว ดงนนจงไมจาเปนตองเรยกฟงกชนนซาอกครง

Page 104: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

95

ตารางท 3.7 คาคณสมบตของฟอรมสาหรบ Tab ทสามในรปท 3.21

ออบเจกต / คอนโทรล คณสมบต คาทกาหนด

Form Text เมทรกซขนาด 2 × 2 พสจนคณสมบต

StartPosition CenterScreen

CommandButton3 Name Button3

Text คานวณ

Textbox (A11) Input Name au0

Text N/A

Textbox (A12) Input Name au1

Text N/A

Textbox (A21) Input Name au2

Text N/A

Textbox (A22) Input Name au3

Text N/A

Textbox (B11) Input Name bu0

Text N/A

Textbox B12) Input Name bu1

Text N/A

Textbox (B21) Input Name bu2

Text N/A

Textbox (B22) Input Name bu3

Text N/A

Textbox (11) Output Name aua0

Text N/A

Textbox (12) Output Name aua1

Text N/A

Textbox (13) Output Name bta0

Text N/A

Textbox (14) Output Name bua1

Text N/A

Page 105: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

96

ออบเจกต / คอนโทรล คณสมบต คาทกาหนด

Textbox (15) Output Name aub0

Text N/A

Textbox (16) Output Name aub1

Text N/A

Textbox (17) Output Name bub0

Text N/A

Textbox (18) Output Name bub1

Text N/A

Textbox (21) Output Name aua2

Text N/A

Textbox (22) Output Name aua3

Text N/A

Textbox (23) Output Name bua2

Text N/A

Textbox (24) Output Name bua3

Text N/A

Textbox (25) Output Name aub2

Text N/A

Textbox (26) Output Name aub3

Text N/A

Textbox (27) Output Name bub2

Text N/A

Textbox (28) Output Name bub3

Text N/A

Textbox C1(11) Output Name uac0

Text N/A

Textbox C1(12) Output Name uac1

Text N/A

Textbox C1(13) Output Name uac2

Page 106: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

97

ออบเจกต / คอนโทรล คณสมบต คาทกาหนด

Text N/A

Textbox C1(14) Output Name uac3

Text N/A

Textbox C2(11) Output Name ubc0

Text N/A

Textbox C2(12) Output Name ubc1

Text N/A

Textbox C2(13) Output Name ubc2

Text N/A

Textbox C2(14) Output Name ubc3

Text N/A

Timer2 Enabled False

Interval 1000

3) ดบเบลคลกทฟอรมหรอคลกทปม View Code ทหนาตางโซลชน แลวเขยนโคดโปรแกรม

โดยเขยนตอจากบรรทดท 10810 จากโคดของฟอรมสาหรบ Tab ทสองในรปท 3.19 ดงน

โคดของฟอรมสาหรบ Tab ทสามในรปท 3.21

109

110

111

112

113

114

115

116

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

Handles Button3.Click

w_file = fso.CreateTextFile("D:\temp3.sce") 'สรางไฟลสครปตชอวา temp3.sce

w_file.WriteLine("A=[" & au0.Text & " " & au1.Text & ";" & au2.Text & " " &

au3.Text & "];") 'สรางตวแปรเมทรกซ A เทากบ au0.text - au3.text ตามลาดบ

w_file.WriteLine("B=[" & bu0.Text & " " & bu1.Text & ";" & bu2.Text & " " &

bu3.Text & "];") 'สรางตวแปรเมทรกซ B เทากบ bu0.text - bu3.text ตามลาดบ

w_file.WriteLine("output1=(A*B)';") 'ให output1 เทากบ A คณ B

w_file.WriteLine("output2=B'*A';") 'ให output1 เทากบทรานสโพสของ A คณ

กบทรานสโพสของ B

w_file.WriteLine("otext1=string(output1);") 'แปลง output1 เปนสายอกขระเกบใน otext1

w_file.WriteLine("otext2=string(output2);") 'แปลง output2 เปนสายอกขระเกบใน otext2

10 ตองตดคาสง End Class ทใชในบรรทดท 109 ออกกอน เพอใหฟอรมทสรางขนมาสามารถใชงาน Tab ทงสาม Tab ได

Page 107: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

98

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

w_file.WriteLine("fid = mopen('D:\003.txt', 'w');") 'สรางไฟลผลลพธ 003.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext1(1));") 'นาขอมล output1(1) เขยนลง 003.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext1(3));") 'นาขอมล output1(3) เขยนลง 003.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext1(2));") 'นาขอมล output1(2) เขยนลง 003.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext1(4));") 'นาขอมล output1(4) เขยนลง 003.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext2(1));") 'นาขอมล output2(1) เขยนลง 003.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext2(3));") 'นาขอมล output2(3) เขยนลง 003.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext2(2));") 'นาขอมล output2(2) เขยนลง 003.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext2(4));") 'นาขอมล output2(4) เขยนลง 003.txt

w_file.WriteLine("mclose(fid);") 'จบการเขยนขอมลลงไฟล 003.txt

w_file.WriteLine("exit") 'ออกจากโปรแกรม SCILAB

w_file.Close() 'จบการเขยนขอมลลงไฟลสครปต

Shell("C:\WINDOWS\scilab-4.1.2\bin\Scilex.exe -f D:\temp3.sce", vbHide)

Timer3.Enabled = True 'เปดการทางาน Timer3

End Sub

Private Sub Timer3_Tick(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Timer3.Tick

If fso.FileExists("D:\003.txt") = True And Timer3.Interval = 1000 Then 'ตรวจสอบ

เงอนไขไฟล 003.txt มอยจรงหรอไมและหนวงเวลาเทากบ 1 วนาท

r_file = fso.OpenTextFile("D:\003.txt") 'เปดไฟล 003.txt

Do Until r_file.AtEndOfStream 'ตรวจสอบเงอนไข อานขอมลจาก 003.txt จบหรอไม

uac0.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง uac0.text

uac1.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง uac1.text

uac2.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง uac2.text

uac3.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง uac3.text

ubc0.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง ubc0.text

ubc1.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง ubc1.text

ubc2.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง ubc2.text

ubc3.Text = r_file.ReadLine 'นาขอมลทอานไดใสลง ubc3.text

Loop 'วนลปไปตรวจสอบเงอนไข

r_file.Close() 'จบการอานขอมล

Dim con0() As TextBox = {au0, au1, au2, au3}

Dim con1() As TextBox = {bu0, bu1, bu2, bu3}

Dim con2() As TextBox = {aua0, aua1, aua2, aua3}

Dim con3() As TextBox = {aub0, aub1, aub2, aub3}

Dim con4() As TextBox = {bua0, bua1, bua2, bua3}

Dim con5() As TextBox = {bub0, bub1, bub2, bub3}

Page 108: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

99

152

153

154

155

156

157

158

159

160

161

For Me.i = 0 To 3 'ลป i = 0 จนถง i = 3

con2(i).Text = con0(i).Text 'นาขอมล con0(i) สงใหกบ con2(i)

con3(i).Text = con0(i).Text 'นาขอมล con0(i) สงใหกบ con3(i)

con4(i).Text = con1(i).Text 'นาขอมล con1(i) สงใหกบ con4(i)

con5(i).Text = con1(i).Text 'นาขอมล con1(i) สงใหกบ con5(i)

Next 'วนลปทไปท for จนสนสดเงอนไข

Timer3.Enabled = False 'ปดการทางาน Timer3

End If 'จบทางานเงอนไข

End Sub

End Class 'จบการทางานของ Class เพอทดสอบการทางานของ Tab ทงสาม Tab

รปท 3.22 ตวอยางการคานวณเพอพสจนคณสมบต (AB)T = BTAT

Page 109: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

100

รปท 3.23 ฟอรมสาหรบหาคาลอการทมของ X ฐาน Base นนคอหาคา logBase(X)

4) ทดสอบการทางานของโปรแกรมโดยการกดปม หรอกดปม <F5> ทคยบอรด จากนนปอน

คาเมทรกซ A เทากบ [1, 2; 3, 4] และเมทรกซ B เทากบ [5, 6; 7, 8] และกดทปมคานวณ

กจะไดผลลพธตามรปท 3.22

3.4 การหาคาลอการทมฐานใดๆ

ในสวนนจะแสดงการใชโปรแกรม VB 2010 Express เพอสรางหนาตางสวนตอประสานสาหรบ

ใชหาคาลอการทมฐานใดๆ ดงตอไปน

1) เปดโปรแกรม VB 2010 Express แลวสรางโปรเจกตแบบ Windows Forms Application

จากนนออกแบบหนาฟอรมตามรปท 3.23

2) กาหนดคาคณสมบตของฟอรมในรปท 3.23 ตามตารางท 3.8

3) เรยกฟงกชน FileSystemObject มาใชงานโดยเลอกทเมน Project → Add Reference…

→ Microsoft Scripting Runtime และกดปม OK (ตามรปท 2.11 และ 2.12)

4) ดบเบลคลกทฟอรมหรอคลกทปม View Code ทหนาตางโซลชน แลวเขยนโคดโปรแกรม

ดงน

Page 110: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

101

ตารางท 3.8 คาคณสมบตของฟอรมในรปท 3.23

ออบเจกต / คอนโทรล คณสมบต คาทกาหนด

Form Text การหาผลลพธของ Log ฐานใด ๆ

StartPosition CenterScreen

CommandButton1 Name Button1

Text คานวณ

Textbox (X) Input Name TextBox1

Text N/A

Textbox (Base) Input Name TextBox2

Text N/A

Textbox (log) output Name TextBox3

Text N/A

Timer1 Enabled False

Interval 1000

โคดของฟอรมในรปท 3.23

1

2

3

4

5

6

7

8

9

10*

11

12

13

14

15

16

17

18

19

Public Class Form1

Public fso As New Scripting.FileSystemObject

Public w_file As Scripting.TextStream

Public r_file As Scripting.TextStream

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Button1.Click

TextBox3.Text = "" 'ลบขอมลใน textbox3.text

w_file = fso.CreateTextFile("D:\temp.sce") 'สรางไฟลสครปตชอวา temp.sce

w_file.WriteLine("x=" & TextBox1.Text & ";") 'สรางตวแปร x เทากบ Textbox1.text

w_file.WriteLine("Base=" & TextBox2.Text & ";")

w_file.WriteLine("exec('D:\logXN.sci');") 'เรยกใชงานฟงกชน logXN.sci

w_file.WriteLine("output=logXN(x, Base);") 'หาคา Log(X) ฐาน Base

w_file.WriteLine("otext=string(output);") 'แปลง output เปนสายอกขระเกบใน otext

w_file.WriteLine("fid = mopen('D:\001.txt', 'w');") 'สรางไฟลผลลพธ 001.txt

w_file.WriteLine("mfprintf(fid,'%s\n',otext);") 'นาขอมล otext เขยนลงในไฟล 001.txt

w_file.WriteLine("mclose(fid);") 'จบการเขยนขอมลลงไฟล 001.txt

w_file.WriteLine("exit") 'ออกจากโปรแกรม SCILAB

w_file.Close() 'จบการเขยนขอมลลงไฟลสครปต

Shell("C:\WINDOWS\scilab-4.1.2\bin\Scilex.exe -f D:\temp.sce", vbHide)

Timer1.Enabled = True 'เปดการทางาน Timer1

Page 111: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

102

20

21

22

23

24

25

26

27

28

29

30

31

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Timer1.Tick

If fso.FileExists("D:\001.txt") = True And Timer1.Interval = 1000 Then

r_file = fso.OpenTextFile("D:\001.txt") 'เปดไฟล 001.txt

Do Until r_file.AtEndOfStream 'ตรวจสอบเงอนไข อานขอมลจาก 001.txt จบหรอไม

TextBox3.Text = Val(r_file.ReadLine) 'นาขอมลทอานไดใสลง textbox3.text

Loop 'วนลปไปตรวจสอบเงอนไข

r_file.Close() 'จบการอานขอมล

Timer1.Enabled = False 'ปดการทางาน Timer1

End If 'จบทางานเงอนไข

End Sub

End Class

รปท 3.24 ตวอยางการหาคาลอการทมของ 8 ฐาน 2 ซงมคาเทากบ 3 นนคอ log2(8) = 3

หมายเหต ในบรรทดท 10 จะเปนการเรยกฟงกชน logXN.sci ในสารบบ D:\ ทผใชสราง

ขนมาตามขอกาหนดของโปรแกรม SCILAB ดงน

1

2

3

function y = logXN(x, N)

y = log(x)/log(N);

endfunction

5) ทดสอบการทางานของโปรแกรมโดยการกดปม หรอกดปม <F5> ทคยบอรด จากนน

ปอนขอมลดงน ให X มคาเทากบ 8 และ Base มคาเทากบ 2 แลวกดปม “คานวณ” หนง

ครงกจะไดผลลพธตามรปท 3.24

Page 112: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

103

รปท 3.25 ฟอรมสาหรบการบวกและลบสมการหหนาม

3.5 การบวกและลบสมการพหนาม

ในสวนนจะแสดงการใชโปรแกรม VB 2010 Express เพอสรางหนาตางสวนตอประสานสาหรบ

ใชบวกและลบสมการพหนาม ดงตอไปน

1) เปดโปรแกรม VB 2010 Express แลวสรางโปรเจกตแบบ Windows Forms Application

จากนนออกแบบหนาฟอรมตามรปท 3.25

2) กาหนดคาคณสมบตของฟอรมในรปท 3.25 ตามตารางท 3.9

3) เรยกฟงกชน FileSystemObject มาใชงานโดยเลอกทเมน Project → Add Reference…

→ Microsoft Scripting Runtime และกดปม OK (ตามรปท 2.11 และ 2.12)

4) ดบเบลคลกทฟอรมหรอคลกทปม View Code ทหนาตางโซลชน แลวเขยนโคดโปรแกรม

ดงน

Page 113: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

104

ตารางท 3.9 คาคณสมบตของฟอรมในรปท 3.25

ออบเจกต / คอนโทรล คณสมบต คาทกาหนด

Form Text การบวก ลบสมการหหนามดวย SCILAB

StartPosition CenterScreen

CommandButton1 Name Button1

Text คานวณ

Textbox p(x) Input Name TextBox1

Text N/A

Textbox q(x) Input Name TextBox2

Text N/A

WebBrowser1 output Name WebBrowser1

ScrollBarsEnabled False

Timer1 Enabled False

Interval 1000

โคดของฟอรมในรปท 3.25

1

2

3

4

5

6

7

8

9

10

11*

12*

13*

14

15

16

17

Public Class Form1

Public fso As New Scripting.FileSystemObject

Public w_file As Scripting.TextStream

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Button1.Click

w_file = fso.CreateTextFile("D:\temp.sce") 'สรางไฟลสครปตชอวา temp.sce

w_file.WriteLine("x=poly(0,'x');") 'สรางตวแปร x เปนตวแปรพหนาม

w_file.WriteLine("p=" & TextBox1.Text & ";") 'สรางตวแปร p เทากบ TextBox1.text

w_file.WriteLine("q=" & TextBox2.Text & ";") 'สรางตวแปร q เทากบ TextBox2.text

w_file.WriteLine("pq1=p+q;") 'ให pq1 มคาเทากบ p บวก q

w_file.WriteLine("pq2=p-q;") 'ให pq2 มคาเทากบ p ลบ q

w_file.WriteLine("exec('D:\pohtml01.sci',-1);") 'เรยกใชฟงกชน pohtml01.sci

w_file.WriteLine("exec('D:\pohtml02.sci',-1);") 'เรยกใชฟงกชน pohtml02.sci

w_file.WriteLine("exec('D:\pohtml03.sci',-1);") 'เรยกใชฟงกชน pohtml03.sci

w_file.WriteLine("p1 = pol2tex(p)") 'แปลงขอมล p เปน LaTeX และใหเทากบ p1

w_file.WriteLine("q1 = pol2tex(q)") 'แปลงขอมล p เปน LaTeX และใหเทากบ q1

w_file.WriteLine("pl1 = pol2tex(pq1)") 'แปลงขอมล pq1 เปน LaTeX และใหเทากบ pl1

w_file.WriteLine("pl2 = pol2tex(pq2)") 'แปลงขอมล pq2 เปน LaTeX และใหเทากบ p12

Page 114: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

105

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

w_file.WriteLine("pohtml01('D:\001.html');") 'กาหนดชอไฟล D:\001.html ดวยฟงกชน

pohtml01

w_file.WriteLine("pohtml02('D:\001.html',pl1,'p + q');") 'กาหนดเขยน p + q = pl1

ดวยฟงกชน pohtml02

w_file.WriteLine("pohtml02('D:\001.html',pl2,'p - q');") 'กาหนดเขยน p - q = pl2

ดวยฟงกชน pohtml02

w_file.WriteLine("pohtml03('D:\001.html');") 'จบไฟล D:\001.html ดวยฟงกชน

pohtml03

w_file.WriteLine("exit") 'ออกจากโปรแกรม SCILAB

w_file.Close() 'จบการเขยนขอมลลงไฟลสครปต

Shell("C:\WINDOWS\scilab-4.1.2\bin\Scilex.exe -f D:\temp.sce", vbHide)

Timer1.Enabled = True 'เปดการทางาน Timer1

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Timer1.Tick

If fso.FileExists("D:\001.html") = True And Timer1.Interval = 1000 Then

WebBrowser1.Navigate("D:\001.html") 'อานไฟล 001.html

Timer1.Enabled = False 'ปดการทางาน Timer1

End If 'จบทางานของเงอนไข

End Sub

End Class

หมายเหต ในบรรทดท 11 – 13 มการเรยกฟงกชน pohtml01.sci, pohtml02.sci

และ pohtml03.sci ในสารบบ D:\ ทผใชสรางขนมาตามขอกาหนดของโปรแกรม SCILAB

ดงน

1

2

3

4

5

6

7

8

9

10

function [] = pohtml01(ftext)

fid = mopen(ftext, 'w');

mfprintf(fid, "<html>\n<head>\n");

mfprintf(fid, "<meta http-equiv=Content-Type ...

content=text/html; charset=windows-874>\n");

mfprintf(fid, "</head>\n");

mfprintf(fid, "<style type=text/css>\n");

mfprintf(fid, "body {\n");

mfprintf(fid, "margin-left: 0px;\n");

mfprintf(fid, "margin-top: 0px;\n");

Page 115: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

106

11

12

13

14

15

16

17

mfprintf(fid, "margin-right: 0px;\n");

mfprintf(fid, "margin-bottom: 0px;\n");

mfprintf(fid, "}\n");

mfprintf(fid, "</style>\n");

mfprintf(fid, "<body>\n");

mclose(fid);

endfunction

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

function [] = pohtml02(ftext,stext,stype)

fid = mopen(ftext, 'a');

mfprintf(fid,"&nbsp;&nbsp;%s = ",stype);

mfprintf(fid,"&nbsp;&nbsp;");

Lstext = length(stext);

for i = 1:Lstext

L2stext = part(stext,i)

if L2stext =="^" then

elseif L2stext =="{" then

mfprintf(fid,"<sup>");

elseif L2stext =="}" then

mfprintf(fid,"</sup>");

elseif L2stext <> "\" & L2stext <> "*" then

mfprintf(fid,"%s",L2stext);

end

end

mfprintf(fid,"<br><br>\n");

mclose(fid);

endfunction

1

2

3

4

5

function [] = pohtml03(ftext)

fid = mopen(ftext, 'a');

mfprintf(fid,"</body>\n");

mfprintf(fid,"</html>\n");

mclose(fid);

endfunction

Page 116: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

107

รปท 3.26 ตวอยางการบวกและลบสมการหหนาม

5) ทดสอบการทางานของโปรแกรมโดยการกดปม หรอกดปม <F5> ทคยบอรด จากนนปอน

ขอมลทอยในรปของ LaTeX ดงน p(x) เทากบเลข x^2 + 50 และ q(x) เทากบ x^2 + 25

แลวกดปม “คานวณ” หนงครงกจะไดผลลพธตามรปท 3.26

3.6 การวาดกราฟสองมต

ในสวนนจะแสดงการใชโปรแกรม VB 2010 Express เพอสรางหนาตางสวนตอประสานสาหรบ

ใชวาดกราฟสองมตของสมการ y(x) นนคอสมการ y ทเปนฟงกชนของตวแปร x ดงน

1) เปดโปรแกรม VB 2010 Express แลวสรางโปรเจกตแบบ Windows Forms Application

จากนนออกแบบหนาฟอรมตามรปท 3.27

2) กาหนดคาคณสมบตของฟอรมในรปท 3.27 ตามตารางท 3.10

3) เรยกฟงกชน FileSystemObject มาใชงานโดยเลอกทเมน Project → Add Reference…

→ Microsoft Scripting Runtime และกดปม OK (ตามรปท 2.11 และ 2.12)

4) ดบเบลคลกทฟอรมหรอคลกทปม View Code ทหนาตางโซลชน แลวเขยนโคดโปรแกรม

ดงน

Page 117: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

108

รปท 3.27 ฟอรมสาหรบวาดกราฟสองมต

ตารางท 3.10 คาคณสมบตของฟอรมในรปท 3.27

ออบเจกต / คอนโทรล คณสมบต คาทกาหนด

Form

Text การวาดกราฟ 2 มต

StartPosition CenterScreen

TopMost True

WindowState Maximized

CommandButton1 Name Button1

Text คานวณ

Textbox1(x) คาเรมตน Name TextBox1

Text N/A

Textbox2 (x) คาระหวางขน Name TextBox2

Text N/A

Textbox3(x) คาสดทาย Name TextBox3

Text N/A

Textbox4 (y) Name TextBox4

Text N/A

PictureBox1 output

Name PictureBox1

BoderStyle FixedSingle

Size 610, 461

Timer1 Enabled False

Interval 1000

สวนทเปนเอาตพต (แสดงกราฟ) สวนทเปนอนพต (ปอนสมการ y

และชวงของคา x ทตองการวาดกราฟ)

Page 118: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

109

โคดของฟอรมในรปท 3.27

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

Public Class Form1

Public fso As New Scripting.FileSystemObject

Public w_file As Scripting.TextStream

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Button1.Click

PictureBox1.Refresh() 'รเฟรช PictureBox1

w_file = fso.CreateTextFile("D:\temp.sce") 'สรางไฟลสครปตชอวา temp.sce

w_file.WriteLine("x=" & TextBox1.Text & ":" & TextBox2.Text & ":" & TextBox3.Text

& ";") 'สรางตวแปร x มคาเทากบคาระหวาง TextBox1 ถง TexBox3 โดยมคาระยะหางคงท

เทากบ TextBox2

w_file.WriteLine("y=" & TextBox4.Text & ";") 'สรางตวแปร y เทากบ TextBox4

w_file.WriteLine("plot(x,y)" & ";") 'วาดกราฟ 2 มตจากคา X และ y

w_file.WriteLine("xs2gif(0,'D:\001.gif');") 'บนทกกราฟเปนรปรปเกบไวท D:\001.gif

w_file.WriteLine("exit") 'ออกจากโปรแกรม SCILAB

w_file.Close() 'จบการเขยนขอมลลงไฟลสครปต

Shell("C:\WINDOWS\scilab-4.1.2\bin\Scilex.exe -f D:\temp.sce", vbHide)

Timer1.Enabled = True 'เปดการทางาน Timer1

End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As

System.EventArgs) Handles Timer1.Tick

If fso.FileExists("D:\001.gif") = True And Timer1.Interval = 1000 Then

PictureBox1.ImageLocation = "D:\001.gif" 'อานไฟล 001.gif แสดง PictureBox1

Timer1.Enabled = False 'ปดการทางาน Timer1

End If 'จบการทางานของเงอนไข

End Sub

End Class

6) ทดสอบการทางานของโปรแกรมโดยการกดปม หรอกดปม <F5> ทคยบอรด จากนน

ทาการวาดกราฟสองมต เชน ถาตองการวาดรปสญญาณ y = sin(2πfx) เมอความถ f = 1

เฮรตซ กใหปอนขอมลของอนพต x = 0 : 0.01 : 2 และ y = sin(2*%pi*1*x) ตามรปท

3.28 (เมอ %pi ≈ 22/7 คอคา π) แลวกดปม “คานวณ” หนงครง จะไดผลลพธตามรปท 3.28

Page 119: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

110

รปท 3.28 ตวอยางการวาดกราฟสองมตของสมการ y = sin(2*%pi*1*x)

3.7 สรปทายบท บทนไดยกตวอยางการสรางสอการสอนดวยโปรแกรม Visual Basic รวมกบ SCILAB เพอเปน

แนวทางใหผอานสามารถนาไปพฒนาตอยอดหรอประยกตใชงานในดานอนๆ ได ซงประกอบดวย

การบวก/ลบ/คณ/หาร ของเลขสองจานวน การหาดเทอรมแนนตและอนเวอรสของเมทรกซ การ

พสจนคณสมบตของเมทรกซ การหาคาลอการทมฐานใดๆ การบวกและลบสมการพหนาม และ

การวาดกราฟสองมต

3.8 แบบฝกหดทายบท 1. จงเขยนโปรแกรมหาคาตวคณรวมนอย (ครน.) จานวน 3 คา

2. จงเขยนโปรแกรมแกสมการพหนามทเปนฟงกชนของตวแปรเดยว

3. จงเขยนโปรแกรมสาหรบวาดกราฟ 2 มต ดงรปท 1.5 (คาสง polarplot)

4. จงเขยนโปรแกรมสาหรบวาดกราฟ 3 มต ดงรปท 1.6 (คาสง plot3d)

อนพต

เอาตพต

Page 120: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

111

บทท 4 ความรเบองตนเกยวกบภาษา PHP

บทนจะกลาวถงประวตความเปนมาของภาษา PHP [8 – 10] โครงสรางทวไป คาสงพนฐานของ

ภาษา PHP และการจดการไฟล สาหรบการนาไปประยกตใชงานรวมกบโปรแกรม SCILAB

4.1 ประวตความเปนมาของ PHP

PHP ยอมาจาก “PHP Hypertext Preprocessor” (เดมยอมาจาก Personal Home Page) โดย

คาสงของ PHP จะอยในไฟลทเรยกวาสครปต (script) ในทางปฏบต PHP ถอเปนภาษาสครปต

ฝงแมขาย (server-side scripting language) ซงหมายถงการประมวลผลจะเกดขนบนเครองแมขาย

(server) แลวสงผลลพธทไดมายงเครองลกขาย (client) โดยทวไปการเขยน PHP จะแทรกอยใน

เอกสาร HTML (HyperText Markup Language) ดวยการเปดปายระบ (tag) <?php และปด

ดวย ?> หรอใชปายระบ <?...?> กไดเชนกน ดงนนภาษา PHP จงเปนทนยมนามาใชเขยน

เวบแอพลเคชน (web application) ทสามารถทางานโตตอบกบผใชงานได และเปนโอเพนซอรส

(open source) ซงผใชสามารถนามาใชงานไดฟร เพราะฉะนนภาษา PHP จงไดรบการพฒนาไป

อยางรวดเรวและเปนทนยมใชงานอยางแพรหลาย

4.2 การเตรยมตวกอนเขยนเวบไซตดวยภาษา PHP

ในสวนนจะอธบายการตดตงโปรแกรม AppServ และ Adobe Dreamweaver CS5.5 ทจาเปน

สาหรบการเขยนโปรแกรมเวบไซตภาษา PHP รวมกบ SCILAB

4.2.1 การตดตงโปรแกรม AppServ

หนงสอเลมนจะใชโปรแกรม AppServ ซงเปนชดตดตงทรวมซอฟตแวรฟรหลายๆ อยางมารวมกน

โดยมโปรแกรมสาเรจ (package) คอ Apache, PHP, MySQL และ phpMyAdmin ผใชสามารถ

Page 121: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

112

รปท 4.1 ตวอยางการตดตงโปรแกรม AppServ 2.5.10

รปท 4.2 การจดเกบไฟลและสารบบของโปรแกรม AppServ

ดาวนโหลดไดทเวบไซต www.appservnetwork.com โดยหนงสอเลมนไดใช AppServ เวอรชน

2.5.10 ตามรปท 4.1 ซงสามารถตดตงโปรแกรมไดตามปกต (ผสนใจศกษารายละเอยดการตดตง

โปรแกรมเพมเตมไดจากเวบไซต www.appservnetwork.com)

Page 122: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

113

นอกจากนการจดเกบไฟล PHP จะตองจดเกบไวใน Document Root ทผใชกาหนดดง

แสดงในรปท 4.2 สาหรบคาโดยปรยาย (default) ของ AppServ คอ C:\AppServ\www\ ซงเปน

สงสาคญมากและมผลตอการประมวลผลไฟล PHP ถาไมจดเกบไฟลไวใน Document Root กจะ

ไมสามารถประมวลผลไฟล PHP ได เนองจาก PHP จะประมวลผลบนเครองแมขายเทานน ดงนน

ในการเขยนโปรแกรม PHP รวมกบโปรแกรม SCILAB ไฟลตางๆ ทพฒนาขนมาจะตองเกบไวท

สารบบ www นเทานน

หมายเหต สาหรบการเขยนภาษา PHP ไฟลทไดจะถกเกบไวในเครองแมขายจาลองดวยโปรแกรม

AppServ น การตงหนาเรมตนจะตองตงชอไฟลวา index.php (หรอ index.html) เพอทจะชไปยง

หนาแรกของเวบไซตไดอยางถกตอง

4.2.2 การตดตงโปรแกรม Adobe Dreamweaver CS5.5

หนงสอเลมนจะใชโปรแกรม Adobe Dreamweaver CS5.5 เพอชวยในการออกแบบและเขยนหนา

เวบเพจ (web page) ซงเปนโปรแกรมทมลขสทธซอฟตแวร อยางไรกตามในทนจะยกตวอยางการ

ตดตงโปรแกรม Adobe Dreamweaver CS5.5 แบบ 30 วน (เวอรชนทดลองใชงาน) ซงสามารถ

ดาวนโหลดมาทดลองใชงานไดฟร (trail version) โดยมขนตอนดงน

1) ดาวนโหลดโปรแกรมไดทเวบไซต http://home.npru.ac.th/piya/webscilab/book2/program/DreamweaverCS5.5.exe.rar

หมายเหต ผใชสามารถเขาไปดาวนโหลดโปรแกรม Adobe Dreamweaver เวอรชนใหม ไดท

เวบไซด http://www.adobe.com/sea/downloads/

2) ทาการ Extract ไฟลโปรแกรม Adobe Dreamweaver CS5.5 และคลกทปม Next ตามรปท

4.3(ก) กจะไดหนาตางในรปท 4.3(ข) จากนนกดปม ACCEPT เพอยอมรบเงอนไขลขสทธ

ของโปรแกรม กจะไดหนาตางในรปท 4.3 (ค)

3) เลอกรายการ “Install this product as a trial.” ตามรปท 4.3 (ค) เพอใชงานแบบ 30 วน

และกดปม Next กจะไดหนาตางในรปท 4.3 (ง) เพอทาการเลอกทอยสาหรบตดตงโปรแกรม

และกดปม INSTALL ตามรปท 4.3 (ง) เพอเรมตดตงโปรแกรม

4) เมอระบบตดตงโปรแกรมเสรจ กจะแสดงหนาตาง “Thank You” ตามรปท 4.3 (จ) จากนน

ใหกดปม DONE กจะไดหนาตางในรปท 4.3 (ฉ) ซงเตอนวาสามารถใชงานไดอยางถกตอง

ภายใน 30 วน

5) กดปม START TRIAL ในรปท 4.3 (ฉ) เพอทดสอบการใชงานโปรแกรม Adobe Dreamweaver

CS5.5 กจะไดหนาตางเรมตนใชงานโปรแกรมนตามรปท 4.4

Page 123: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

114

(ก) (ข)

(ค) (ง)

(จ) (ฉ)

รปท 4.3 ขนตอนการตดตงโปรแกรม Adobe Dreamweaver CS5.5

Page 124: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

115

รปท 4.4 หนาตางเรมตนใชงานโปรแกรม Adobe Dreamweaver CS5.5

4.2.3 แนวทางการเขยนโปรแกรมเวบไซตภาษา PHP รวมกบ SCILAB

การสรางเวบไซตโดยใชภาษา PHP รวมกบโปรแกรม SCILAB จะตองตดตงโปรแกรม SCILAB

ไวท C:\WINDOWS จงสามารถเรยนใชงานโปรแกรม SCILAB ผานบรรทดคาสง (command

line) ของดอส (DOS) ได ซงเปนหวใจสาคญททาใหสามารถใชฟงกชน exec ของภาษา PHP ได

โดยผเขยนสรปโคดไดดงน

1 $path=$_SERVER["SystemRoot"];

2 $com = SCILAB -nwni -nb -f Parameter

3 exec($com);

เมอ $path หมายถงทอยของสารบบหลกคอ “C:\WINDOWS”, $com คอตวแปรสาหรบบนทก

คาโคดประมวลผลคาสง (command), SCILAB หมายถงทอยของโปรแกรม Scilex.exe, -nwni

หมายถงไมตองแสดงหนาตางของโปรแกรม SCILAB, -nb หมายถงไมแสดงขอความตอนรบ, -f

หมายถงสงใหโปรแกรม SCILAB ประมวลผลไฟลสครปต, Parameter หมายถงไฟลสครปตท

สงใหโปรแกรม SCILAB ประมวลผล, และ exec หมายถงคาสงประมวลผลโคดผานบรรทดคาสง

Page 125: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

116

4.3 เรมตนกบการเขยนภาษา PHP

4.3.1 การแสดงผล

คาสงทนยมใชการแสดงผลลพธของ PHP คอคาสง print และ echo ซงมรายละเอยดดงน

ฟงกชน print

ฟงกชน print มรปแบบการใชงานคอ

print(ผลลพธ); หรอ print ผลลพธ;

กจะแสดงคาวา “ผลลพธ” ออกหนาจอ เชน ถาใชคาสง

print("SCILAB");

print "SCILAB";

จะไดคาวา SCILAB ปรากฏทหนาจอ

ฟงกชน echo

ฟงกชน echo นยมนามาใชมากสด เพราะทางานไดรวดเรวกวาฟงกชน print เนองจากคาสงน

ไมมการตรวจสอบขอผดพลาดใดๆ รปแบบการใชงานคาสง echo มดงน

echo("ผลลพธ"); หรอ echo "ผลลพธ";

กจะแสดงคาวา “ผลลพธ” ออกหนาจอ เหมอนกบฟงกชน print

4.3.2 การเขยนคอมเมนต

การคอมเมนต (comment) หรอการเขยนคาอธบาย คอการแทรกขอความเขาไปในตวโปรแกรม

(เพอใชอธบายตวโปรแกรมซงทาใหงายตอการทาความเขาใจและแกไขโปรแกรมในภายหลง) แตจะ

ไมถกนาไปประมวลผล การเขยนคอมเมนตในภาษา PHP จะมลกษณะเดยวกบภาษาจาวาสครปต

(JavaScript) ซงม 2 รปแบบคอ

Page 126: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

117

การเขยนคอมเมนตแบบหนงบรรทดจะใชเครองหมายทบสองอน (double slash) “ // ” นาหนา

ขอความทตองการคอมเมนตทละบรรทด เชน //Comment PHP

การเขยนคอมเมนตแบบหลายบรรทดจะใชเครองหมาย /* เปนจดเรมตน และเครองหมาย */

เปนจดสนสด ของการคอมเมนต กลาวคอขอความทงหมด (หลายบรรทดกได) ทอยภายใน

เครองหมาย /* และ */ จะไมถกนาไปประมวลผล ตวอยางเชน

/* This is a comment for PHP.

This is the multiple-line comment. */

4.3.3 การกาหนดตวแปร

การเขยนโปรแกรม PHP จะเหมอนกบการเขยนโปรแกรมดวยภาษาอนๆ ซงจะตองมการกาหนด

ตวแปรเพอจองพนทในหนวยความจาสาหรบเกบขอมล ในทางปฏบตการกาหนดตวแปรทใชใน PHP

มขอกาหนดดงน

ตวแปรทกตวตองขนตนดวยเครองหมาย “$” และตามดวยตวอกษร (หามขนตนดวยตวเลข)

หรอเครองหมายสญประกาศ (underscores) “ _ ” (สญลกษณอนหามใช) เชน $name,

$data และ $_file เปนตน

ตวแปรใน PHP ไมจาเปนตองระบแบบชนดขอมล (data type) เพราะตวแปรแตละตวสามารถ

เกบขอมลชนดใดกได

โปรแกรม PHP จะพจารณาถงความแตกตางของตวอกษรตวพมพใหญกบอกษรตวพมพเลก

ดงนนตวแปรทมชอเหมอนกนแตใชตวอกษรตางกนจะถอวาเปนตวแปรคนละตวกน เชน $abc $ABC และ $aBC ถอเปนคนละตวกน

หมายเหต การกาหนดคาใหกบตวแปรชนดสายอกขระ (string) ตองกาหนดใหอยภายในเครองหมาย

อญประกาศเดยว “ '...' ” หรอเครองหมายอญประกาศ “ "..." ” เชน $name = "SCILAB"

ในขณะทการกาหนดคาใหกบตวแปรทเปนตวเลข สามารถระบคาเขาไปไดโดยไมตองใสเครองหมาย

อญประกาศเดยว (หรอเครองหมายอญประกาศ) เชน $number = 12

4.3.4 การใชเครองหมายอญประกาศเดยวและเครองหมายอญประกาศ

การกาหนดคาใหกบตวแปรชนดสายอกขระใน PHP สามารถใชไดทงเครองหมายอญประกาศเดยว

“ '...' ” หรอเครองหมายอญประกาศ “ "..." ” อยางไรกตามเครองหมายทงสองนมขอแตกตาง

เลกนอยในเรองของการแสดงผล กลาวคอถาตองการแสดงคาของตวแปรออกหนาจอผานทางคาสง

Page 127: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

118

print หรอ echo จะตองใชรวมกบเครองหมายอญประกาศ ถาใชกบเครองหมายอญประกาศเดยว

จะไมสามารถแสดงคาของตวแปรได แตจะแสดงชอของตวแปรแทน ใหพจารณาชดคาสงตอไปน

<?php

$sin = "SingleQuote";

$dou = "DoubleQuote";

echo 'This test is $sin และ $dou';

echo "This test is $sin และ $dou"; ?>

ผลลพธทไดคอ

This test is $sin และ $dou This test is SingleQuote และ DoubleQuote

ซงจะเหนไดวาคาของตวแปรจะถกแสดงผลออกมา กตอเมอคาสง echo ใชรวมกบเครองหมาย

อญประกาศเทานน

4.3.5 การนยามตวแปรลวงหนา

ตวแปรทถกนยามลวงหนา (predefined variable) คอตวแปรทโปรแกรม PHP ไดสรางไวลวงหนา

เพอความสะดวกและเปนคาพนฐานสาหรบการใชงาน โดยทวไปตวแปรเหลานจะเกบขอมลสาคญ

บางอยางไวและมลกษณะเปนอารเรย (array) ในทนจะกลาวถงตวแปรทถกนยามลวงหนาทจาเปน

ตอการใชงานเพอตดตอกบโปรแกรม SCILAB เทานน ผสนใจศกษารายละเอยดเพมเตมไดทไฟล

phpinfo.php ไปทหวขอ PHP Variables (อยในสารบบชอ C:\AppServ\www)

$_SERVER

ตวแปร $_SERVER ทใชเกบขอมลทเกยวของกบการเชอมตอระหวางลกขาย (client) และเครอง

แมขาย (server) เชน ชอโฮสต (host), เสนทาง (path) ในการเกบขอมล, และวธ (method) ใน

การสงขอมล ตวแปร $_SERVER เรมใชงานตงแต PHP 4.1.0 เปนตนมา (เวอรชนกอนหนาน

จะใชชอตวแปรนวา $HTTP_SERVER_VARS) การอางถงขอมลในตวแปร $_SERVER จะใช

รปแบบคอ

$_SERVER[‘variable_name’]

Page 128: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

119

เมอ variable_name คอขอมลทผใชตองการทราบ ซงการใชงาน PHP เพอตดตอกบโปรแกรม

SCILAB จะมการใชงานฟงกชนตอไปน

$_SERVER[‘SystemRoot’] เกบชอสารบบทเกบไฟลของระบบปฏบตการ

$_SERVER[‘DOCUMENT_ROOT’] เกบสารบบสทเดม (home directory) ซงคอสารบบ

ทเกบไฟลเวบไซตทผใชสรางขนทงหมด

4.3.6 แบบชนดขอมล

แบบชนดขอมล (data type) พนฐานในโปรแกรม PHP มดงน

แบบชนดขอมล คาอธบาย

ตรรกศาสตร คาทางตรรกะ มคาเปนจรง (True) หรอ เทจ (False)

เลขจานวนเตม เลขจานวนเตมบวก จานวนเตมลบ หรอศนย

จานวนจรง (float หรอ double) เลขทศนยม

สายอกขระ (string) ตวอกษรทงหมด

4.3.7 ตวดาเนนการเลขคณต

ตวดาเนนการเลขคณต (arithmetic operator) พนฐานในโปรแกรม PHP มดงน

ตวดาเนนการ ความหมาย ตวอยาง ($a=20 และ $b=3)

+ การบวก (addition) $a + $b = 23

- การลบ (subtraction) $a - $b = 17

* การคณ (multiplication) $a * $b = 60

/ การหาร (division) $a / $b = 6.66

% มอดลส (modulus) เปนการหาเศษทไดจากหาร $a % $b = 2

4.3.8 ตวดาเนนการเพม/ลดคา

ตวดาเนนการเพม/ลดคา (incrementing/decrementing operator) หมายถงตวดาเนนการ ++ หรอ -- ซงตองการตวถกดาเนนการเพยงตวเดยวและตองเปนตวแปรเทานน โดยจะเพมคาของตวแปร

หนงคาหรอลดคาของตวแปรหนงคา ตามลาดบ การใชงานมทงระบไวหนาตวแปรหรอหลงตวแปร

ซงจะมความหมายตางกน (เหมอนกบวธการใชในภาษาซ) ดงรายละเอยดในตอไปน

Page 129: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

120

ตวอยางการใชงาน ผลลพธ

++$a คาสงนจะทาการเพมคาของตวแปร $a ขน 1 คากอน นนคอ $a = $a + 1

แลวจงนาตวแปร $a ไปประมวลผลในชดคาสง

$a++ คาสงนจะนาตวแปร $a ไปประมวลผลในชดคาสงใหเรยบรอยกอน แลวจงเพม

คาของตวแปร $a ขน 1 คา

--$a คาสงนจะทาการลดคาของตวแปร $a ขน 1 คากอน นนคอ $a = $a - 1

แลวจงนาตวแปร $a ไปประมวลผลในชดคาสง

$a-- คาสงนจะนาตวแปร $a ไปประมวลผลในชดคาสงใหเรยบรอยกอน แลวจงลด

คาของตวแปร $a ขน 1 คา

4.3.9 ตวดาเนนการเปรยบเทยบ

ตวดาเนนการเปรยบเทยบ (comparison operator) เปนตวดาเนนการทใชในการตรวจสอบความ

สมพนธระหวางคาของตวแปร โดย

ถาความสมพนธเปนจรง ผลลพธทไดมคาเทากบ True (เปนจรง) หรอมคาทางตรรกะเทากบ 1

ถาความสมพนธเปนเทจ ผลลพธทไดมคาเทากบ False (เปนเทจ) หรอมคาทางตรรกะเทากบ 0

(แตจะไมแสดงผลลพธใดๆ ออกหนาจอ)

ตวดาเนนการ ชอ ตวอยาง คาอธบาย

== เทากบ (equal) $a == $b ใหคา True เมอ $a มคาเทากบ $b

=== เหมอนกบ

(identical) $a === $b

ใหคา True เมอ $a มคาเทากบ $b และตอง

เปนขอมลชนดเดยวกน

!= หรอ <> ไมเทากบ $a != $b ใหคา True เมอ $a มคาไมเทากบ $b

!== ไมเหมอนกบ $a !=== $b ใหคา True เมอ $a มคาไมเทากบ $b หรอเมอ

เปนขอมลคนละชนดกน

< นอยกวา $a < $b ใหคา True เมอ $a มคานอยกวา $b

> มากกวา $a > $b ใหคา True เมอ $a มคามากกวา $b

<= นอยกวา

หรอเทากบ $a <= $b ใหคา True เมอ $a มคามากกวาหรอเทากบ $b

>= มากกวา

หรอเทากบ $a >= $b ใหคา True เมอ $a มคานอยกวาหรอเทากบ

$b

Page 130: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

121

4.3.10 ตวดาเนนการทางตรรกะ

ตวดาเนนการตรรกะ (logical operator) เปนตวดาเนนการทใชเชอมความสมพนธระหวางคาของ

ตวแปรทเกดขนจากตวดาเนนการสมพนธ โดย

ถาความสมพนธสอดคลองกนผลลพธทได จะมคาเทากบ True หรอมคาทางตรรกะเทากบ 1

ถาความสมพนธไมสอดคลองกนผลลพธทได จะมคาเทากบ False หรอมคาทางตรรกะเทากบ 0

ตวดาเนนการตรรกะทใชในโปรแกรม PHP มดงน

ตวดาเนนการ ชอ ตวอยาง คาอธบาย

&& หรอ and และ $a && $b ใหคา True กตอเมอ $a และ $b เปนจรงทงค

(และในทางตรงกนขาม)

|| หรอ or หรอ $a || $b

ใหคา True เมอ $a หรอ $b ตวใดตวหนงเปนจรง

หรอเปนจรงทงสองตว มฉะนนจะใหคา False

(และในทางตรงกนขาม)

xor exclusive

or $a xor $b

ใหคา True เมอ $a หรอ $b ตวใดตวหนงเปนจรง

เทานน แตจะใหคา False เมอทงสองตวเปนจรง

หรอเทจ เหมอนกน

! นเสธ !$a ใหคาตรงกนขามกบ $a ถา $a เปนจรงจะไดคา

False แตถา $a เปนเทจจะไดคา True

4.3.11 การทดสอบเงอนไข

การทดสอบเงอนไขมความจาเปนมากสาหรบการเขยนโปรแกรมคอมพวเตอรทซบซอน เพอให

โปรแกรมทเขยนขนมาสามารถทางานไดถกตองตรงตามความตองการ หนงสอเลมนจะอธบาย

คาสงทดสอบเงอนไข 2 คาสงคอ คาสง if และ switch ซงมหลกการใชงานดงน

คาสง if

คาสง if จะทาการทดสอบเงอนไขความสมพนธวาเปนจรงหรอเทจ โดยมรปแบบการใชงานคอ

if (expression) { instruction_1;

instruction_n;

}

Page 131: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

122

กลาวคอถาผลการทดสอบเงอนไขในนพจนเปนจรง โปรแกรม PHP จะทาคาสงทงหมดทอยระหวาง

เครองหมายปกกาเปด { และเครองหมายปกกาปด } แตถาผลการทดสอบเปนเทจ โปรแกรม PHP

จะไมทาคาสงทงหมดทอยระหวางเครองหมายปกกา { ... } ตวอยางเชน

<?php

$a=200;

if ($a) {

echo 'คาของ $a คอ : ' .$a; }

?>

ซงใหผลลพธเปน

คาของ $a คอ : 200

คาสง if ยงสามารถนาไปใชในการตดสนใจทซบซอนมากขนได โดยการใชงานรวมกบ

คาสง else ซงมรปแบบการใชงานดงน

กลาวคอโปรแกรม PHP จะทาชดคาสง instructions_set1 เมอผลการทดสอบเงอนไขใน

นพจนเปนจรง แตจะทาชดคาสง instructions_set2 ถาผลการทดสอบเปนเทจ ตวอยางเชน

<?php

$a = 200; $b = 100; if($a < $b){

echo "คาของ $a < $b ";

if expression {

instructions_set1;

}

else {

instructions_set2;

}

Page 132: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

123

}else{

echo "คาของ $a > $b "; } ?>

ซงใหผลลพธเปน

คาของ 200 > 100

นอกจากนในการใชงานทมการตดสนใจทซบซอนมากยงขน ผใชกสามารถใชงานคาสง if

รวมกบ elseif ได โดยมรปแบบการใชงานดงน

กลาวคอถาผลการทดสอบเงอนไขในนพจน expression_1 เปนจรง โปรแกรม PHP จะทา

ชดคาสง instructions_set1 แตถาผลการทดสอบเปนเทจ โปรแกรม SCILAB กจะทา

การทดสอบเงอนไขในนพจน expression_2 ตอไปทนท โดยถาผลการทดสอบในนพจน

expression_2 เปนจรง โปรแกรม PHP กจะทาชดคาสง instructions_set2 แตถา

ผลการทดสอบเปนเทจ กจะทาชดคาสง instructions_set3

คาสง switch

คาสง switch เปนการตดสนใจแบบหลายทางเลอก โดยจะตรวจสอบเงอนไขตางๆ ตามทกาหนด

ถาเงอนไขใดเปนจรงกจะทาชดคาสงทอยภายในเงอนไขนน แลวจงออกจากคาสง switch รปแบบการใชงานคาสง switch มดงน

if expression_1 {

instructions_set1;

}

elseif expression_2 {

instructions_set2;

}

else {

instructions_set3;

}

Page 133: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

124

นนคอเรมตนคาสง switch จะตรวจสอบเงอนไขวาตวแปร var มคาเทากบเทาใด (ตามทกาหนด

ใน case) เชน ถา var = value1 โปรแกรม PHP จะทาชดคาสง instructions_set1

และถา var = value2 กจะทาชดคาสง instructions_set2 แตถา var มคาไมเทากบ

คาใดๆ ใน case โปรแกรม PHP จะทาชดคาสง instructions_set3 ตวอยางเชน <?php

$num = 100;

switch ( $num )

{

case 100 :

echo "Number1 = $num";

break;

case 50 :

echo "Number2 = $num";

break;

default :

echo "Number3 = $num";

break;

}

?>

ซงใหผลลพธคอ

Number1 = 100

switch (var) {

case value1:

instructions_set1;

break;

case value2:

instructions_set2;

break;

default:

instructions_set3;

break;

}

Page 134: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

125

4.3.12 การทาซา

บางครงในการเขยนโปรแกรมมความจาเปนตองคานวณชดคาสงบางอยางซาเปนจานวนหลายรอบ

ตามทกาหนด ซงในกรณนการใชคาสงวนซาจงมความจาเปนมาก โดยโปรแกรม PHP ไดเตรยม

คาสงสาหรบการวนซาไวอย 3 คาสงคอ คาสง for, while และ do-while ซงมหลกการใช

งานดงน

คาสง for

คาสง for เหมาะสาหรบการใชงานทตองการใหโปรแกรมทาซาชดคาสงเดมทอยภายในลป (loop)

เปนจานวนรอบตามทกาหนดไวในนพจน (expression) โดยมรปแบบการใชงานดงน

กลาวคอโปรแกรมจะทาซาคาสง (instruction) ทงหมดภายในลปเปนจานวนรอบตามทกาหนดโดย

ตวแปรทเปนไปตามเงอนไขของนพจน ตวอยางการใชงานเชน

<?php

for($i=1; $i<=5; $i++) {

echo "Hello! ".$i."<br>"; //การเชอมขอความกบตวแปรจะใชเครองหมายจด .

}

?>

ชดคาสงนหมายความวาเมอเรมตนใชงาน ตวแปร $i จะมคาเทากบ 1 แลวพมพผลออกหนาจอ

เปนคาวา “Hello! 1” และทาการขนบรรทดใหมดวยคาสง <br> จากนนทาการวนซาโดยใชตว

แปร $i เปนตวนบจานวนซาจากคา 1 เพมขนทละ +1 จนถงคา 5 ซงผลลพธของการประมวลผล

ชดคาสงนคอ

for (คาเรมตน; คาสนสด; คาสะสม) {

instruction_1;

instruction_n;

}

Page 135: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

126

Hello! 1

Hello! 2

Hello! 3

Hello! 4

Hello! 5

คาสง while คาสง while มลกษณะการทางานคลายกบคาสง for เพยงแตคาสง while จะมการทดสอบ

เงอนไขตามทกาหนดในนพจนทกรอบของการวนซา กลาวคอถาผลการทดสอบใหคาตรรกะเปนจรง

โปรแกรมจะทาซาชดคาสงภายในลปนนตออกหนงรอบ แตถาผลการทดสอบใหคาตรรกะเปนเทจ

โปรแกรมจะยกเลกการทางานชดคาสงภายในลปนนทนท คาสง while มรปแบบการใชงานดงน

ตวอยางเชน

<?php

$i = 1; while ($i <= 5) { echo "Hello! ".$i ."<br>";

$i++;

} ?>

ชดคาสงนใหผลลพธเทากบตวอยางของการใชคาสง for เพยงแตการใชคาสง while ตองกาหนด

คาเรมตนของตวแปร $i กอน เพอจะไดนาคา $i มาเปรยบเทยบกบคา 5 ตามเงอนไขทกาหนด

ดงนนสรปไดวาคาสง while และ for มลกษณะการทางานคลายกนมาก เพยงแตคาสง while

จะมการทดสอบเงอนไขกอนตดสนใจวาจะสงใหโปรแกรมทางานชดคาสงภายในลปหรอไม

while (expression) {

instruction_1;

instruction_n;

}

Page 136: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

127

คาสง do-while

คาสง do-while มลกษณะการทางานเหมอนกบคาสง while เพยงแตคาสง do-while จะทา

ชดคาสงทกาหนดกอน แลวจงทาการตรวจสอบเงอนไขทหลง ถาเงอนไขเปนจรงกจะกลบมาทางาน

ในชดคาสงเดมอกครง ทาเชนนไปเรอยๆ จนกระทงเงอนไขจะเปนเทจ รปแบบการใชงานคอ

ตวอยางเชน

<?php

$i = 1; do { echo "Hello! ".$i ."<br>"; $i++; } while ($i <= 5)

?>

ซงจะใหผลลพธดงนเทากบตวอยางของการใชคาสง for และ while

4.4 ฟงกชนและการใชงาน

ฟงกชน (function) คอกลมคาสงทถกรวบรวมไวดวยกนเพอใหการทางานตามทกาหนดหรอสราง

เปนคาสงใหมขนมาใชงานเพอความสะดวกและลดความซาซอนของโปรแกรมหลก โดยทวไป PHP

มฟงกชนสองแบบคอ ฟงกชนในตว (built-in function) ซงเปนฟงกชนทสามารถเรยกใชไดทนท

(เชน echo, fgets, fopen และ date) และฟงกชนทผใชสรางขนมา (user-defined function)

ในบทนจะอธบายวธการสรางฟงกชนใหมขนมาใชงาน การเรยกใชฟงกชน และฟงกชน

สาเรจรปทนยมใชงาน ใหพจารณาตวอยางตอไปนสาหรบการเขยนโปรแกรมแบบสรางฟงกชน

ขนมาใชงาน

do {

instruction_1;

instruction_n;

} while (expression);

Page 137: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

128

<?php

hello("Hello", 2);

hello("Project", 3);

function hello($txt, $n) { for($i=1; $i<=$n; $i++) { echo "$txt $i <br>";

} } ?>

โปรแกรมนจะมการสรางฟงกชน hello ขนมา ซงจะแสดงผลขอความ $txt เปนจานวน $n

ครงออกหนาจอ ซงผลลพธของโปรแกรมนคอ

Hello! 1

Hello! 2

Project! 1

Project! 2

Project! 3

จะเหนไดวาการสรางฟงกชนขนมาใชงานทาใหสามารถแสดงผลซากนไดดวยคาสงเพยง

คาสงเดยว เชน ตองการใหแสดงคาวา Hello จานวน 2 ครง และ Project จานวน 3 ครง

กใชเพยงคาสง hello("Hello", 2) และ hello("Project", 3) มฉะนนจะตองเขยนคาสงแสดงผลลพธซาหลายๆ ครง ดงน

<?php

echo "Hello 1"; echo "Hello 2"; echo "Project 1"; echo "Project 2"; echo "Project 3"; ?>

Page 138: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

129

4.4.1 การสรางฟงกชน

ถาตองการสรางฟงกชนใหมขนมาใชงานในโปรแกรม PHP โดยมลกษณะการทางานเหมอนกบ

ฟงกชนในตว กลาวคอมการสงผานคาของตวแปรตางๆ ไปใหกบฟงกชน จากนนฟงกชนกจะนาคา

ของตวแปรเหลานมาประมวลผลตามคาสงทมอยภายในตวฟงกชน แลวกสงผลลพธทไดออกมาจาก

ตวฟงกชน ขอดของการสรางฟงกชนใหมคอ ชวยทาใหการดแลแกไขโปรแกรมทาไดงายขน (เชน

เมอตองการแกไขชดคาสงบางอยางในโปรแกรม ถาสรางเปนฟงกชนกสามารถแกไขไดโดยงายเพยง

จดเดยว แตถาไมมการสรางฟงกชนกตองแกไขใหครบทกจดทมการใชงานชดคาสงนน ซงอาจเกด

ขอผดพลาดไดงาย) ดงนนในสวนนจะอธบายการสรางฟงกชนลกษณะตางๆ ดงน

ฟงกชนทไมมการรบคาอนพต

ฟงกชนทไมมการรบคาอนพตจะมรปแบบคอ

function FuncName() { instruction_set;

}

ตวอยางเชน พจารณาโปรแกรมคานวณพนทสเหลยมผนผา (แบบไมรบคาอนพต) ดงน

<?php

area();

function area() {

$a=3; $b=5;

echo $a * $b;

}

?>

ซงจะพบวาฟงกชน area ไมมการรบคาอนพต แตจะกาหนดคาใหกบตวแปรอยภายในฟงกชน

เพราะฉะนนฟงกชนแบบนจะเปนฟงกชนทไมยดหยนในการใชงาน

ฟงกชนทมการรบคาอนพต

ฟงกชนทมการรบคาอนพตจะมรปแบบคอ

Page 139: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

130

function FuncName(input1, ..., inputN) { instruction_set;

}

จะเหนไดวาฟงกชนแบบนมการรบคาตวแปรอนพต input1 ถง inputN เขาไปประมวลผลใน

ชดคาสง instruction_set ตวอยางเชน พจารณาโปรแกรมคานวณพนทสเหลยมผนผา

(แบบรบคาอนพต) ดงน

<?php

echo area(5, 10);

function area($a, $b) { return $a * $b; } ?>

ในทนฟงกชน area จะรบคาตวแปรอนพต $a และ $b เขาไปคานวณหาคาพนทสเหลยมและ

สงผลลพธทไดกลบดวยคาสง return นอกจากนการแสดงผลลพธของฟงกชนสามารถใชคาสง

แสดงผล (echo หรอ print) ตามดวยชอฟงกชนทระบคาอารกวเมนตไดเลย

4.4.2 ฟงกชนทเกยวกบสายอกขระ

โดยทวไปการสรางเวบไซตเพอตดตอกบ SCILAB จะใชฟงกชนทเกยวของกบการจดการสายอกขระ

จานวนมาก เนองจากการแสดงผลลพธทสงมาจากโปรแกรม SCILAB จะมรปแบบไมคงทและไม

สามารถนามาแสดงผลบนเวบเพจไดทนท จาเปนตองมการจดรปแบบใหเหมาะสมกอน ในทนจะ

อธบายเฉพาะฟงกชนทนาสนใจและเกยวของกบการใชงานรวมกบ SCILAB ดงน

ฟงกชน strlen

ฟงกชน strlen ใชหาความยาวของสายอกขระ (string) หรอนบจานวนตวอกษรในสายอกขระ

(นบชองวางเปน 1 ตวอกษรดวย) โดยรปแบบการใชเรยกงานคอ

strlen("สายอกขระ")

Page 140: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

131

ตวอยางเชน

<?php

echo strlen("Hello world!");

?>

จะใหผลลพธเทากบ 12 (นนคอมตวอกษรทงหมด 12 ตว)

ฟงกชน explode

ฟงกชน explode ใชแยกสายอกขระออกเปนสายอกขระยอยๆ ดวยการกาหนดสายอกขระหรอ

สญลกษณทจะใชแยก ผลลพธทไดจะถกเกบอยในรปแบบของอารเรย รปแบบการใชเรยกงานคอ

explode("สญลกษณทใชแยก", "สายอกขระ")

ตวอยางเชน

<?php

$str = "Hello world.";

print (explode(" ", $str));

?>

ในทนจะใชชองวาง (space) ในการแบงแยกสายอกขระ ซงผลลพธทไดคอ อารเรย[0] จะเกบคา

เทากบ "Hello" และอารเรย[1] จะเกบคาเทากบ "world."

ฟงกชน implode หรอ join

ฟงกชนนจะทางานตรงกนขามกบฟงกชน explode กลาวคอเปนการนาสายอกขระยอยมารวมกน

เปนสายอกขระเดยว ตามสญลกษณทใชรวม รปแบบการใชเรยกงานคอ

implode("สญลกษณทใชรวม", "อารเรยของสายอกขระ")

ตวอยางเชน

Page 141: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

132

<?php

$arr = array('Hello', 'World!', 'SCILAB', '&', 'PHP!');

echo implode(" ", $arr);

?>

ในทนจะใชชองวางในการรวมสายอกขระแตละตวทอยในอารเรย ซงจะใหผลลพธคอ

Hello World! SCILAB& PHP!

ฟงกชน strstr

ฟงกชน strstr ใชตดเอาเฉพาะสายอกขระทเรมตนดวยสายอกขระยอยทกาหนดจนถงตวอกษร

สดทายของสายอกขระตนฉบบ รปแบบการใชเรยกงานคอ

strstr("สายอกขระยอย", "สายอกขระตนฉบบ")

ตวอยางเชน

<?php

echo strstr("Hello world!", "w"); ?>

ชดคาสงนจะตดเอาสายอกขระทเรมตนดวยตวอกษร "w" จนถงตวอกษรสดทายของคาวา "Hello

world!" เพราะฉะนนในทนจะไดผลลพธคอ world!

ฟงกชน substr

ฟงกชน substr ใชตดสายอกขระเหมอนกบฟงกชน strstr แตสามารถกาหนดความยาวของ

สายอกขระทตองการได โดยมรปแบบการใชเรยกงานคอ

substr("สายอกขระตนฉบบ", ตาแหนงเรมตน, จานวนตวอกษรทตองการ)

Page 142: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

133

ตวอยางเชน

<?php

echo substr("Hello world!", 6, 5); ?>

ชดคาสงนจะตดเอาตวอกษรลาดบท 6 จนถงลาดบท 11 (รวม 5 ตวอกษร) จากคาวา "Hello

world!" ดงนนในทนจะไดผลลพธคอ world

ฟงกชน ltrim, rtrim และ trim

ฟงกชนนใชสาหรบการตดชองวางทอยดานซาย ดานขวา และทงสองขางของสายอกขระออกทงหมด

มรปแบบการเรยกใชงานคอ

ltrim("สายอกขระ") rtrim("สายอกขระ") trim("สายอกขระ")

ตวอยางเชน

<?php

$str = " Hello ";

echo ltrim($str)."<br>";

echo rtrim($str)."<br>";

echo trim($str)."<br>";

?>

ซงจะใหผลลพธคอ

"Hello "

" Hello"

" Hello "

Page 143: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

134

ฟงกชน stripslashes

ในการสงขอมลผานทางฟอรมภาษา PHP หรอเพมขอมลลงในฐานขอมล ตวอกษรบางประเภท เชน

เครองหมายอญประกาศ ("..."), อญประกาศเดยว ('...') และคา NULL จะถกใสดวยเครองหมาย

ทบกลบ (backslash) เพอใหระบความหมายในการเกบขอมล ดงนนในการนาขอมลเหลานมาใช

งาน จงจาเปนตองตดเครองหมายทบกลบออกจากขอมลกอน โดยใชฟงกชน stripslashes

ดงน

stripslashes("สายอกขระ")

ตวอยางเชน

echo stripslashes('H\xa0ello');

ฟงกชนนจะทาการตดเครองหมายทบกลบออก และแสดงขอความ “Hxa0ello” เทานน

4.4.3 ฟงกชนทเกยวกบตวเลข

ในทางปฏบตผลลพธทไดจากการคานวณดวยโปรแกรม SCILAB บางครงไมสามารถนาไปใชได

ทนท เพราะอาจอยในรปแบบของรหสไบนารหรอแอสก ดงนนจงจาเปนตองจดรปแบบของผลลพธ

ทเปนตวเลขเหลานกอนทจะนาไปแสดงผล ใน PHP มฟงกชนทใชในการจดรปแบบของตวเลขม

หลายฟงกชน ซงในทนจะกลาวเฉพาะฟงกชนสาคญๆ ทใชในการทางานรวมกบโปรแกรม SCILAB

เทานน

ฟงกชน number_format

ฟงกชน number_format มรปแบบการเรยกใชงานดงน

number_format(Fnum [, Dum ])

หรอ

number_format(Fnum, Dnum, Dpoint, Ssep)

Page 144: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

135

เมอ Fnum คอเลขจานวนจรง, Dnum คอเลขจานวนเตมทใชกาหนดจานวนตวเลขหลงจดทศนยม,

Dpoint คอเครองหมายทแทนจดทศนยม, และ Ssep คอเครองหมายทใชแยกหลกพน เชน

<?php

$num = 2553.500; echo number_format($num, 2, ".", "," ); ?>

จะใหผลลพธเทากบ 2,553.50 (มเลขหลงจดทศนยมเพยงสองตาแหนง)

4.5 การจดการไฟล

ในสวนนจะอธบายการสรางไฟล การอานไฟล การลบไฟล และการใชงานโปรแกรมภายนอก ดงน

4.5.1 การสรางไฟล

การสรางไฟลสาหรบเขยนไฟลสครปตของโปรแกรม SCILAB ทาไดโดยอาศยฟงกชน file_ put_contents ซงมรปแบบการใชงานดงน

file_put_contents(filename, data)

โดย filename คอชอไฟลทตองการสราง (ระบทอยของไฟลดวย) และ data คอขอมลสาย

อกขระทตองการเขยนลงในไฟล ตวอยางเชน

echo file_put_contents("test.txt", "This is test file");

จะใหผลลพธเปนไฟล test.txt ในสารบบทกาลงใชงาน โดยมขอความ This is test

file ปรากฏอยในไฟล test.txt

4.5.2 การอานไฟล

การอานไฟลออกมาเปนสายอกขระเพอนาคามาแสดงในฟอรมหรอหนาเวบไซตนน สามารถทาได

โดยใชฟงกชน file_get_contents ซงมรปแบบการใชงานคอ

Page 145: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

136

file_get_contents(filename)

เมอ filename คอชอไฟลทตองอานขอมล ตวอยางเชน

echo file_get_contents("test.txt");

จะใหผลลพธเปนขอมลทอยในไฟล test.txt ในสารบบทกาลงใชงาน

4.5.3 การลบไฟล

การลบไฟลใน PHP จะใชฟงกชน unlink ซงมรปแบบการใชงานคอ

unlink(filename)

โดยถาการลบไฟลสาเรจจะใหผลลพธเปนคาบลน True แตถาไมสาเรจกจะใหผลลพธเปน False

4.5.4 การใชงานโปรแกรมภายนอก

การเรยกใช (หรอสงประมวลผล) โปรแกรมภายนอกทาไดดวยการใชฟงกชน exec, system

หรอ shell_exec ซงมลกษณะการทางานคลายกน แตจะใชงานแตกตางกนเพอความสะดวก

ในการใชงานและตรงตามรปแบบของผลลพธทตองการ ในทนจะอธบายเพยงฟงกชน exec เทานน

ซงมรปแบบการใชงานคอ

exec($command [, array & $output [, int & $return_var]] );

เมอ $command คอคาสงทตองการใชงาน, $output คอตวแปรทใชเกบคาของผลลพธทไดจากคาสง $command, และ return_var คอคาทคาสง $command ใหคนกลบมา ตวอยางเชน <?php

exec(test.sci, $output);

print_r($output); //การแสดงคาทเปน array ตองใชคาสง print_r แทน echo

?>

Page 146: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

137

ชดคาสงนจะประมวลผลไฟลของโปรแกรม SCILAB ทชอวา test.sci แลวนาผลลพธทอยใน

รปของอารเรยไปเกบไวในตวแปร output จากนนจงนามาแสดงผลดวยคาสง print_r

4.6 สรปทายบท บทนไดสรปประวตความเปนมาของภาษา PHP โครงสรางทวไป คาสงพนฐานของภาษา PHP

และการจดการไฟล ซงจะเปนแนวทางในการนาไปประยกตใชงานรวมกบโปรแกรม SCILAB

สาหรบใชสรางสอการเรยนการสอนทจะอธบายในบทตอไป

4.7 แบบฝกหดทายบท 1. จงอธบายการใชงานคาสง stripslashes มาพอสงเขป

2. จงอธบายการใชงานคาสง file_put_contents(), file_get_contents() และ unlink()มาพอสงเขป

3. จงเขยนโปรแกรมบวกเลข 1 ถง 100 โดยใชคาสง for

4. จงเขยนโปรแกรมตดเกรดจานวน 4 เกรด คอ A, B, C และ D

Page 147: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

138

Page 148: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

139

บทท 5 การสรางสอการสอนผานเวบไซต

ในบทนจะแสดงตวอยางวธการสรางสอการสอนผานเวบไซตโดยใชโปรแกรมภาษา PHP รวมกบ

โปรแกรม SCILAB ซงประกอบดวยการบวก/ลบ/คณ/หาร ของเลขสองจานวน การหาดเทอร

มแนนตและอนเวอรสของเมทรกซ การพสจนสมบตของเมทรกซ การหาคาลอการทมฐานใดๆ

การบวกและลบสมการพหนาม และการวาดกราฟสองมต เพอเปนแนวทางใหผอานสามารถนาไป

พฒนาตอยอดหรอประยกตใชงานดานอนได

กอนการเขยนโปรแกรม PHP เพอตดตอกบโปรแกรม SCILAB ผใชจะตองตดตง

โปรแกรม SCILAB ทสารบบ C:\Windows\ และสรางโฟลเดอรชอวา phptoscilab ไวในสารบบ

C:\AppServ\www เพอเกบไฟลตวอยาง PHP นอกจากนการเขยนโปรแกรมดวยภาษา PHP ใน

บางตวอยางอาจมรปแบบทซบซอน ดงนนในทนจะใชโปรแกรมสาเรจรป Adobe Dreamwaver มา

ชวยในการออกแบบฟอรมตางๆ เพอความสะดวกและรวดเรวมากขน

5.1 การบวก/ลบ/คณ/หาร ของเลขสองจานวน

ในสวนนจะแสดงการสรางสอการสอนผานเวบไซต เพอใชสาหรบการบวก ลบ คณ และหาร ของ

เลขสองจานวน ดงตอไปน

1) เปดโปรแกรม Adobe Dreamweaver CS 5.5 และออกแบบหนาเวบไซตตามรปท 5.1

2) ไปทเมน Create New เพอสรางไฟล PHP ขนมา ตามรปท 5.2

3) กดเลอกทกลองเมน INSERT → Forms ตามรปท 5.3

4) กดเลอกทเครองมอ Forms และใสชอเวบเพจ calculator.php ทตองการสงขอมล (ในทนคอ

เวบเพจของตนเอง) ซงรปแบบการสงขอมลมอย 2 รปแบบคอ

Page 149: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

140

รปท 5.1 ฟอรม (หนาเวบไซต) สาหรบการบวก ลบ คณ และหาร ของเลขสองจานวน

รปท 5.2 การสรางไฟล PHP

รปท 5.3 การเลอกเครองมอทเกยวกบฟอรม (Forms)

POST คอรปแบบการสงขอมลของฟอรมแบบไมมขอจากดขนาดของขอมล ซงจะไมแสดง

ขอมลใหเหน เหมาะกบขอมลทตองการความปลอดภย โดยจะใชควบคกบคาสง $_POST

Page 150: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

141

รปท 5.4 การใสชอเวบเพจ calculator.php ในฟอรมสาหรบรปท 5.1

รปท 5.5 การเลอกเครองมอสาหรบสรางตาราง (Table)

GET คอรปแบบการสงขอมลของฟอรมแบบผานทาง URL ทาใหผใชสามารถมองเหน

ขอมลทสงไปได เหมาะกบขอมลทเปน keyword ในการคนหา

อยางไรกตามบทนจะใชเฉพาะวธ POST ตามทแสดงในรปท 5.4

5) เรมสรางตารางโดยการกดเลอกทกลองเมน INSERT → Common และเลอกเครองมอ

Table ตามรปท 5.5

Page 151: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

142

รปท 5.6 การตงคาตารางสาหรบรปท 5.1

รปท 5.7 การเลอกเครองมอ Text Field และ Button

6) กาหนดคาพารามเตอรตางๆ ของตารางดงน (แสดงผลลพธดงรปท 5.6)

Rows เทากบ 1

Columns เทากบ 4

Table width เทากบ 31 percent

Border thickness เทากบ 0 pixels

Cell padding เทากบ 4

Cell spacting เทากบ 4

7) กดทกลองเมน INSERT → Forms ในรปท 5.3 และเลอกเครองมอ Text Field และ Button

ตามรปท 5.7

Page 152: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

143

ตารางท 5.1 การกาหนดคาพารามเตอรของ Text Filed และ Button ในรปท 5.8

ออบเจกต ชอ คณสมบต คาทกาหนด

Text Field a1 Char width = 2 <? echo $a1; ?>

Text Field b1 Char width = 2 <? echo $b1; ?>

Button submit - + (บวก) Button submit - - (ลบ) Button submit - × (คณ) Button submit - / (หาร) Table สเหลอง = #FFFF00 ,สเขยว = #00CC66, สนาตาลออน = #FF9966

รปท 5.8 การใสรายละเอยดเวบเพจทสมบรณ

รปท 5.9 การเลอกเมน Code

8) กาหนดคาพารามเตอรของ Text Filed, Button และใสสตางๆ ตามตารางท 5.1 จะไดผลลพธ

ตามรปท 5.8

9) กดเลอกในสวนของเมน Code เพอทาการเขยนโปรแกรมภาษา PHP ตามรปท 5.9 ทาการ

บนทกโปรแกรมในชอไฟล “calculator.php” ไวในสารบบ C:\AppServ\www\phptoscilab

Page 153: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

144

โคดของการบวก/ลบ/คณ/หาร ของเลขสองจานวน

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

<?php

if($_POST["submit"]=="+ (บวก)") { //ตรวจสอบคาของ submit

$cal = "+";

}

elseif ($_POST["submit"]=="- (ลบ) ") {

$cal = "-";

}

elseif ($_POST["submit"]=="x (คณ) ") {

$cal = "*";

}

elseif($_POST["submit"]=="/ (หาร) ") {

$cal = "/";

}

if($_POST[a1]!="" and $_POST[b1]!="") {

$code = "int16([".stripslashes($_POST[a1])."$cal".stripslashes($_POST[b1])."])";

$code1 = "output = $code;\noutput = iconvert(output,0);

\nsavematfile('cal.txt','output');\nexit;";

file_put_contents("cal.sce", $code1); //สรางไฟลชอ cal.sce

$path=$_SERVER["SystemRoot"]; //สรางตวแปรทอยของวนโดวส

$com = "$path/scilab-4.1.2/bin/Scilex.exe -nwni -nb -f cal.sce"; //สรางตวแปร

สาหรบสงประมวลผลไฟลสครปต

exec($com); //ประมวลผลไฟลสครปต

$output = number_format(file_get_contents("cal.txt")); //อานไฟลผลลพธ

}

?>

หมายเหต โคคทงหมดนจะเขยนอยบนสดของโคดภาษา HTML

10) ทดสอบการทางานของโปรแกรมโดยการเปดโปรแกรมคนดหรอเบราวเซอร (browser) เชน

internet explorer (IE) จากนนพมพ URL คอ http://127.0.0.1/phptoscilab/calculator.php

และทาการปอนขอมลดงน A เทากบ 5 และ B เทากบ 5 และกดปม + (บวก) 1 ครง กจะได

ผลลพธตามรปท 5.10 ในทานองเดยวกนถากดปม “× (คณ)” หนงครง กจะไดผลลพธ

เทากบ 25

Page 154: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

145

รปท 5.10 ทดสอบการบวกเลขสองจานวน

5.2 การหาดเทอรมแนนตและอนเวอรสของเมทรกซ

ในทนจะแสดงการหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 2×2 และ 3×3 โดยจะสราง

หนาเพจเปน 3 หนาดงน

หนาเพจกาหนดขนาดของเมทรกซ

หนาเพจสาหรบหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 2×2

หนาเพจสาหรบหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 3×3

5.2.1 หนาเพจกาหนดขนาดของเมทรกซ

การสรางหนาเพจกาหนดขนาดของเมทรกซทาไดดงน

1) เปดโปรแกรม Adobe Dreamweaver CS 5.5 และออกแบบหนาเวบไซตตามรปท 5.11

2) ไปทเมน Create New เพอสรางไฟล PHP ขนมา (ตามรปท 5.2)

3) กดเลอกทกลองเมน INSERT → Forms (ตามรปท 5.3)

4) กดเลอกทเครองมอ Forms และใสชอเวบเพจ menuinvdet.php ทตองการสงขอมล (ในทน

คอเวบเพจของตนเอง) ตามทแสดงในรปท 5.12

5) เรมสรางตารางโดยการกดเลอกทกลองเมน INSERT → Common และเลอกเครองมอ

Table (ตามรปท 5.5)

Page 155: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

146

รปท 5.11 หนาเพจเลอกขนาดเมทรกซ 2×2 หรอ 3×3

รปท 5.12 การใสชอเวบเพจ menuinvdet.php ในฟอรมสาหรบรปท 5.11

6) กาหนดคาพารามเตอรตางๆ ของตารางดงน (แสดงผลลพธดงรปท 5.13)

Rows: เทากบ 1

Columns: เทากบ 1

Table width: 34 percent

Border thickness: 1 pixels

Page 156: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

147

รปท 5.13 การตงคาตารางสาหรบรปท 5.11

รปท 5.14 การใชเครองมอ Button สรางปม

Cell padding = 4

Cell spacting = 4

Height = 116

bgcolor = "#CCCCCC"

bordercolor = "#333333"

7) กดทกลองเมน INSERT → Forms (ตามรปท 5.3) และเลอกเครองมอ Button เพอสราง

ปม 2×2 และปม 3×3 ดงแสดงในรปท 5.14

8) กดเลอกในสวนของเมน Code เพอทาการเขยนโปรแกรมภาษา PHP เพอเชอมโยงไปยงหนา

เพจการหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 2×2 และ 3×3 (ตามรปท 5.9)

และบนทกโปรแกรมในชอ “menuinvdet.php” ไวในสารบบ C:\AppServ\www\phptoscilab

Page 157: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

148

โคดของหนาเพจกาหนดขนาดของเมทรกซ

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

<?php //โคดในสวนของภาษา PHP ททางานรวมกบโปรแกรม SCILAB

ob_start();

if($_POST["submit"]==" 2x2 ") { //ตรวจสอบคาของ submit

header('location:invdet2x2.php'); //ขามไปหนา invdet2x2.php

}elseif($_POST["submit"]==" 3x3 ") {

header('location:invdet3x3.php'); //ขามไปหนา invdet3x3.php

}

?>

<html> <!--โคดในสวนของภาษา HTML-->

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />

<title>การหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 2×2 และ 3×3</title>

</head>

<body>

<form id="form1" name="form1" method="post" action="menuinvdet.php">

<table width="34%" border="1" cellpadding="4" cellspacing="4" bordercolor=

"#333333" bgcolor="#CCCCCC">

<tr>

<td width="20%" height="116" valign="middle">

<div align="center">เมทรกซขนาด<br><br>

<input name="submit" type="submit" id="Submit" value=" 2×2 " />

&nbsp;&nbsp;

<input name="submit" type="submit" id="Submit" value=" 3×3 " />

<br>

<br>

</div></td>

</tr>

</table>

</form>

</body>

</html>

Page 158: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

149

รปท 5.15 หนาเพจของการหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 2×2

รปท 5.16 รปแบบตารางของเมทรกซขนาด 2×2 ทใชในรปท 5.15

5.2.2 หนาเพจสาหรบหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 2×2

การสรางหนาเพจสาหรบการหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 2 ×2 ทาไดดงน

1) หนาเพจสาหรบหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 2×2 จะถกออกแบบตาม

รปท 5.15 และการออกแบบตารางตามรปท 5.16 โดยในสวนของ Action Form ใหใสชอ

เวบเพจ invdet2x2.php ทตองการสงขอมล (ในทนคอเวบเพจของตนเอง) ตามรปท 5.17

ดเทอรมแนนต อนเวอรส

a2

a4

a1

a3

output out1 out3

out2 out4

Page 159: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

150

รปท 5.17 หนาเพจของการหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 2×2 (ตอ)

ตารางท 5.2 การกาหนดคาพารามเตอรของ Text Filed และ Button ในรปท 5.15

ออบเจกต ชอ คณสมบต คาทกาหนด

Text Field a1 Char width = 2 <? echo $a1; ?>

Text Field a2 Char width = 2 <? echo $a2; ?>

Text Field a3 Char width = 2 <? echo $a3; ?>

Text Field a4 Char width = 2 <? echo $a4; ?>

Text Field output Char width = 5 <? echo $output; ?>

Text Field out1 Char width = 5 <? echo number_format($exp1,2,'.',''); ?>

Text Field out2 Char width = 5 <? echo number_format($exp2,2,'.',''); ?>

Text Field out3 Char width = 5 <? echo number_format($exp3,2,'.',''); ?>

Text Field out4 Char width = 5 <? echo number_format($exp4,2,'.',''); ?>

Button submit - ดเทอรมแนนต

Button submit - อนเวอรส

Title bar - - การหาดเทอรมแนนตและอนเวอรสของเมทรกซ 2×2

2) กาหนดคาพารามเตอรของ Text Filed, Button และรายละเอยดสตางๆ ตามตารางท 5.2

กจะไดผลลพธตามรปท 5.15

Page 160: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

151

หมายเหต การซอนผลลพธ อธบายโดยถาตวแปร $sta เทากบ on1 จรงใหแสดงผลลพธของดเทอรมแนนต

ในบรรทดท 45 แตถาตวแปรมคาเทากบ on2 ใหแสดงผลลพธของอนเวอรสในบรรทดท 46 - 52

3) เขยนโคดภาษา PHP และบนทกไฟลชอวา “invdet2x2.php” ดงน

โคดของหนาเพจสาหรบหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 2×2

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

<?php //โคดในสวนของภาษา PHP ททางานรวมกบโปรแกรม SCILAB

if($_POST["submit"]=="ดเทอรมแนนต") { //ตรวจสอบคาของ submit

$cal = "det";

$sta = "on1";

}elseif($_POST["submit"]==" อนเวอรส ") {

$cal = "inv";

$sta = "on2";

}

if($_POST[a1]!="" and $_POST[a2]!="" and $_POST[a3]!="" and $_POST[a4]!="")

{ //ตรวจสอบคาวางของตวแปร

$code = "[".stripslashes($_POST[a1])." ".stripslashes($_POST[a2]).";".stripslashes

($_POST[a3])." ".stripslashes($_POST[a4])."]";

$code1 = "output = $cal($code);\noutput = iconvert(output,0);\nsavematfile

('invdet2x2.txt','output');\nexit;";

file_put_contents("invdet2x2.sce", $code1); //สรางไฟลสครปต

$path=$_SERVER["SystemRoot"]; //สรางตวแปรทอยของวนโดวส

$com = "$path/scilab-4.1.2/bin/Scilex.exe -nwni -nb -f invdet2x2.sce"; //สราง

ตวแปรสาหรบสงประมวลผลไฟลสครปต

exec($com); //ประมวลผลไฟลสครปต

$output = number_format(file_get_contents("invdet2x2.txt")); //อานไฟลผลลพธ

list($exp1, $exp2, $exp3, $exp4) = explode(" ", trim(file_get_contents

("invdet2x2.txt"))); //แยกขอมลลงตวแปร 4 ตว

}

?>

<html> <!--โคดในสวนของภาษา HTML-->

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />

<title>การหาดเทอรมแนนตและอนเวอรสของเมทรกซ 2×2</title>

</head>

<body>

Page 161: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

152

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

<form id="form1" name="form1" method="post" action="invdet2x2.php">

<table width="42%" border="0" cellpadding="4" cellspacing="4" bgcolor="#CCCCCC">

<tr>

<td width="38%" height="78" valign="top" bgcolor="#FFFF00"><div align=

"center">เมทรกซ A<br>

<input name="a1" type="text" size="2" value="<? echo $a1; ?>" />

&nbsp;

<input name="a2" type="text" size="2" value="<? echo $a2; ?>" />

<br>

<input name="a3" type="text" id="a3" value="<? echo $a3; ?>" size="2" />

&nbsp;

<input name="a4" type="text" id="a4" value="<? echo $a4; ?>" size="2" />

</div></td>

<td width="20%" valign="middle">

<div align="center">

<input name="submit" type="submit" id="Submit" value="ดเทอรมแนนต" />

<input name="submit" type="submit" id="Submit" value=" อนเวอรส " />

</div></td>

<td width="42%" valign="top" bgcolor="#FF9966"><div align="center">

<p>ผลลพธ<br>

<input name="output" type="text" id="output" value="<? echo $output; ?>" size="5"

<? if($sta=="on1"){echo "style='display:;'";}else{echo "style='display:none;'";}?>

/><br>

<input name="out1" type="text" id="out1" value="<? echo

number_format($exp1,2,'.',''); ?>"<? if($sta=="on2"){echo

"style='display:;'";}else{echo "style='display:none;'";} ?> size="5" />

&nbsp;

<input name="out2" type="text" id="out2" value="<? echo

number_format($exp2,2,'.',''); ?>"<? if($sta=="on2"){echo

"style='display:;'";}else{echo "style='display:none;'";}?> size="5" />

<br>

<input name="out3" type="text" id="out3" value="<? echo

number_format($exp3,2,'.',''); ?>"<? if($sta=="on2"){echo

"style='display:;'";}else{echo "style='display:none;'";}?> size="5" />

&nbsp;

Page 162: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

153

52

53

54

55

56

57

58

59

<input name="out4" type="text" id="out4" value="<? echo

number_format($exp4,2,'.',''); ?>"<? if($sta=="on2"){echo

"style='display:;'";}else{echo "style='display:none;'";}?> size="5" />

</p>

</div></td>

</tr>

</table>

</form>

</body>

</html>

รปท 5.18 หนาเพจของการหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 3×3

5.2.3 หนาเพจสาหรบหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 3×3

การสรางหนาเพจสาหรบการหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 3 ×3 ทาไดดงน

1) หนาเพจสาหรบหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 3×3 จะถกออกแบบตาม

รปท 5.18 และการออกแบบตารางตามรปท 5.19 โดยในสวนของ Action Form ใหใสชอ

เวบเพจ invdet3x3.php ทตองการสงขอมล (ในทนคอเวบเพจของตนเอง) ตามรปท 5.20

ดเทอรมแนนต อนเวอรส

a3 a6

a1

a4

output out1 out4

a7

a2

a8

a9a5

out7

out3 out6 out9

out2

out8

out5

Page 163: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

154

รปท 5.19 รปแบบตารางของเมทรกซขนาด 3×3 ทใชในรปท 5.18

รปท 5.20 หนาเพจของการหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 3×3 (ตอ)

2) กาหนดคาพารามเตอรของ Text Filed และ Button ตามตารางท 5.3 กจะไดผลลพธตามรป

ท 5.18

Page 164: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

155

ตารางท 5.3 การกาหนดคาพารามเตอรของ Text Filed และ Button ในรปท 5.18

ออบเจกต ชอ คณสมบต คาทกาหนด

Text Field a1 Char width = 2 <? echo $a1; ?>

Text Field a2 Char width = 2 <? echo $a2; ?>

Text Field a3 Char width = 2 <? echo $a3; ?>

Text Field a4 Char width = 2 <? echo $a4; ?>

Text Field a5 Char width = 2 <? echo $a5; ?>

Text Field a6 Char width = 2 <? echo $a6; ?>

Text Field a7 Char width = 2 <? echo $a7; ?>

Text Field a8 Char width = 2 <? echo $a8; ?>

Text Field a9 Char width = 2 <? echo $a9; ?>

Text Field output Char width = 5 <? echo $output; ?>

Text Field out1 Char width = 5 <? echo number_format($exp1,2,'.',''); ?>

Text Field out2 Char width = 5 <? echo number_format($exp2,2,'.',''); ?>

Text Field out3 Char width = 5 <? echo number_format($exp3,2,'.',''); ?>

Text Field out4 Char width = 5 <? echo number_format($exp4,2,'.',''); ?>

Text Field out5 Char width = 5 <? echo number_format($exp5,2,'.',''); ?>

Text Field out6 Char width = 5 <? echo number_format($exp6,2,'.',''); ?>

Text Field out7 Char width = 5 <? echo number_format($exp7,2,'.',''); ?>

Text Field out8 Char width = 5 <? echo number_format($exp8,2,'.',''); ?>

Text Field out9 Char width = 5 <? echo number_format($exp9,2,'.',''); ?>

Button submit - ดเทอรมแนนต

Button submit - อนเวอรส

Title bar - - การหาดเทอรมแนนตและอนเวอรสของเมทรกซ 3×3

หมายเหต การซอนผลลพธ อธบายโดยถาตวแปร $sta เทากบ on1 จรงใหแสดงผลลพธของดเทอรมแนนต

ในบรรทดท 58 แตถาตวแปรมคาเทากบ on2 ใหแสดงผลลพธของอนเวอรสในบรรทดท 59 - 75

3) เขยนโคดภาษา PHP และบนทกไฟลชอวา “invdet3x3.php” ดงน

โคดของหนาเพจสาหรบหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด 3×3

1

2

3

4

<?php //โคดในสวนของภาษา PHP รวมกบโปรแกรม SCILAB

if($_POST["submit"]=="ดเทอรมแนนต") { //ตรวจสอบคาของ Submit

$cal = "det";

$sta = "on1";

Page 165: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

156

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

$sta2 = 1;

}elseif($_POST["submit"]==" อนเวอรส ") {

$cal = "inv";

$sta = "on2";

$sta2 = 2;

$enter="\n";

}

if($_POST[a1]!="" and $_POST[a2]!="" and $_POST[a3]!="" and $_POST[a4]!=""

and $_POST[a5]!="" and $_POST[a6]!="" and $_POST[a7]!="" and $_POST[a8]!=""

and $_POST[a9]!=""){

$code = "[".stripslashes($_POST[a1])." ".stripslashes($_POST[a2])."

".stripslashes($_POST[a3]).";".stripslashes($_POST[a4])." ".stripslashes($_POST[a5])."

".stripslashes($_POST[a6]).";".stripslashes($_POST[a7])." ".stripslashes($_POST[a8])."

".stripslashes($_POST[a9])."]";

$code1 = "output = $cal($code);\notext=string(output);\nfid = mopen('invdet3x3.txt',

'w'); if $sta2==1 then \nmfprintf(fid,'%s\\n',otext);\nmclose(fid);\n elseif $sta2==2 then

\nmfprintf(fid,'%s\\n',otext(1));\nmfprintf(fid,'%s\\n',otext(4));\nmfprintf(fid,'%s\\n',otext(

7));\nmfprintf(fid,'%s\\n',otext(2));\nmfprintf(fid,'%s\\n

',otext(5));\nmfprintf(fid,'%s\\n',otext(8));\nmfprintf(fid,'%s\\n',otext(3));\nmfprintf(fid,'%

s\\n',otext(6));\nmfprintf(fid,'%s\\n',otext(9));\nmclose(fid);\n end\nexit;";

file_put_contents("invdet3x3.sce", $code1); //สรางไฟลสครปตชอวา invdet3x3.sce

$path=$_SERVER["SystemRoot"]; //สรางตวแปรทอยของ windows

$com = "$path/scilab-4.1.2/bin/Scilex.exe -nwni -nb -f invdet3x3.sce"; //สรางตวแปร

สง Run สครปต

exec($com); //ประมวลผลไฟลสครปต

$output = file_get_contents("invdet3x3.txt"); //อานไฟลผลลพธ

list($exp1, $exp2, $exp3, $exp4, $exp5, $exp6, $exp7, $exp8, $exp9) = explode("\n",

trim(file_get_contents("invdet3x3.txt"))); //แยกขอมลลงตวแปร 9 ตว

}

?>

<html> <!--โคดในสวนของภาษา HTML-->

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />

<title>การหาดเทอรมแนนต และอนเวอรสของเมทรกซ 3 x 3</title>

</head>

Page 166: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

157

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

<body>

<form id="form1" name="form1" method="post" action="invdet3x3.php">

<table width="73%" border="0" cellpadding="4" cellspacing="4"

bgcolor="#CCCCCC">

<tr>

<td width="38%" height="166" valign="top" bgcolor="#FFFF00"><div

align="center">เมทรกซ A<br>

<input name="a1" type="text" size="2" value="<? echo $a1; ?>" />

&nbsp;

<input name="a2" type="text" size="2" value="<? echo $a2; ?>" />

&nbsp;

<input name="a3" type="text" id="a3" value="<? echo $a3; ?>" size="2" />

<br>

<input name="a4" type="text" id="a4" value="<? echo $a4; ?>" size="2" />

&nbsp;

<input name="a5" type="text" id="a5" value="<? echo $a5; ?>" size="2" />

&nbsp;

<input name="a6" type="text" id="a6" value="<? echo $a6; ?>" size="2" />

<br>

<input name="a7" type="text" id="a7" value="<? echo $a7; ?>" size="2" />

&nbsp;

<input name="a8" type="text" id="a8" value="<? echo $a8; ?>" size="2" />

&nbsp;

<input name="a9" type="text" id="a9" value="<? echo $a9; ?>" size="2" />

</div></td>

<td width="18%" valign="middle">

<div align="center">

<input name="submit" type="submit" id="Submit" value="ดเทอรมแนนต" />

<input name="submit" type="submit" id="Submit" value=" อนเวอรส " />

</div></td>

<td width="44%" valign="top" bgcolor="#FF9966"><div align="center">

<p>ผลลพธ<br>

<input name="output" type="text" id="output" value="<? echo $output; ?>" size="10"

<? if($sta=="on1"){echo "style='display:;'";}else{echo "style='display:none;'";}?>

/><br>

Page 167: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

158

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

<input name="out1" type="text" id="out1" value="<? echo $exp1; ?>"<?

if($sta=="on2"){echo "style='display:;'";}else{echo "style='display:none;'";}?> size="10"

/>

&nbsp;

<input name="out2" type="text" id="out2" value="<? echo $exp2; ?>"<?

if($sta=="on2"){echo "style='display:;'";}else{echo "style='display:none;'";}?> size="10"

/>

&nbsp;

<input name="out3" type="text" id="out3" value="<? echo $exp3; ?>"<?

if($sta=="on2"){echo "style='display:;'";}else{echo "style='display:none;'";}?> size="10"

/>

<br>

<input name="out4" type="text" id="out4" value="<? echo $exp4; ?>"<?

if($sta=="on2"){echo "style='display:;'";}else{echo "style='display:none;'";}?> size="10"

/>

&nbsp;

<input name="out5" type="text" id="out5" value="<? echo $exp5; ?>"<?

if($sta=="on2"){echo "style='display:;'";}else{echo "style='display:none;'";}?> size="10"

/>

&nbsp;

<input name="out6" type="text" id="out6" value="<? echo $exp6; ?>"<?

if($sta=="on2"){echo "style='display:;'";}else{echo "style='display:none;'";}?> size="10"

/>

<br>

<input name="out7" type="text" id="out7" value="<? echo $exp7; ?>"<?

if($sta=="on2"){echo "style='display:;'";}else{echo "style='display:none;'";}?> size="10"

/>

&nbsp;

<input name="out8" type="text" id="out8" value="<? echo $exp8; ?>"<?

if($sta=="on2"){echo "style='display:;'";}else{echo "style='display:none;'";}?> size="10"

/>

&nbsp;

<input name="out9" type="text" id="out9" value="<? echo $exp9; ?>"<?

if($sta=="on2"){echo "style='display:;'";}else{echo "style='display:none;'";}?> size="10"

/>

Page 168: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

159

76

77

78

79

80

81

82

</p>

</div></td>

</tr>

</table>

</form>

</body>

</html>

รปท 5.21 ตวอยางการหาผลลพธของอนเวอรสเมทรกซขนาด 2×2

5.2.4 ทดสอบการใชงาน

ในสวนนจะทดสอบการทางานของเวบเพจสาหรบหาดเทอรมแนนตและอนเวอรสของเมทรกซขนาด

2 ×2 และ 3 ×3 ดงน

1) ทดสอบการทางานของโปรแกรมโดยการเปดเบราวเซอร IE จากนนพมพ URL คอ http://

127.0.0.1/phptoscilab/menuinvdet.php และปอนขอมล โดยแบงออกเปน 2 ตวอยางดงน

2) สาหรบตวอยางเมทรกซขนาด 2×2 เลอกขนาดของเมทรกซเปน 2×2 ในรปท 5.11 กจะได

เวบเพจในรปท 5.15 จากนนปอนขอมลเมทรกซ A เทากบ [1, 2; 3, 4] และกดปมหาคา

อนเวอรสของเมทรกซ A กจะไดผลลพธตามรปท 5.21 หรอถากดปมดเทอรมแนนตกจะได

ผลลพธเทากบ -2

Page 169: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

160

รปท 5.22 ตวอยางการหาผลลพธของอนเวอรสเมทรกซขนาด 3×3

3) สาหรบตวอยางเมทรกซขนาด 3×3 เลอกขนาดของเมทรกซเปน 3×3 ในรปท 5.11 กจะได

เวบเพจในรปท 5.18 จากนนปอนขอมลเมทรกซ A เทากบ [2, 2, 1; 1, 2, 4; 8, 2, 3] และ

กดปมหาคาอนเวอรสของเมทรกซ A จะไดผลลพธตามรปท 5.22 หรอถากดปมดเทอรมแนนตก

จะไดผลลพธเทากบ 40

5.3 การพสจนคณสมบตของเมทรกซ

ในสวนนจะแสดงตวอยางการใชโปรแกรม PHP สรางเวบเพจสาหรบพสจนคณสมบตของเมทรกซ

3 แบบคอ

(kA)T = kAT

(A + B)T = AT + BT

(AB)T = BTAT

เมอ k คอคาคงตว, A และ B คอเมทรกซจตรสขนาด 2×2, และ (⋅)T คอทรานสโพสของเมทรกซ

ดงรายละเอยดตอไปน

5.3.1 การพสจนคณสมบต (kA)T = kAT

การสรางหนาตางสวนตอประสานเพอใชในการพสจนคณสมบต (kA)T = kAT ทาไดดงน

1) เปดโปรแกรม Adobe Dreamwaver CS 5.5 ออกแบบฟอรมตามรปท 5.23 และออกแบบ

รปแบบตารางตามรปท 5.24 โดยในสวนของ Action Form ใหใสชอเวบเพจ matrix01.php

ดงแสดงในรปท 5.25

Page 170: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

161

รปท 5.23 เวบเพจของการพสจนคณสมบต (kA)T = kAT

ตารางท 5.4 การกาหนดคาพารามเตอรของ Text Filed และ Button ในสวนของ Input ในรปท 5.23

ออบเจกต ชอ คณสมบต คาทกาหนด

Text Field k Char width = 2 <? echo $k; ?>

Text Field a1 Char width = 2 <? echo $a1; ?>

Text Field a2 Char width = 2 <? echo $a2; ?>

Text Field a3 Char width = 2 <? echo $a3; ?>

Text Field a4 Char width = 2 <? echo $a4; ?>

Button submit2 - คานวณ

2) กาหนดคาพารามเตอรของ Text Filed และ Button ในฟอรมตางๆ ตามตารางท 5.4 – 5.6

k a1 a2

a3 a4

k11 a111

k33 a333

k11 a222

k33 a333

k1 a11

k33 a333

k2 a22

ao2

k1 a11

ao3 ao4 ao1 ao22

ao33 ao44ao11

I

II

Page 171: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

162

ตารางท 5.5 การกาหนดคาพารามเตอรของ Text Filed ในสวนของ Output I ในรปท 5.23

ออบเจกต ชอ คณสมบต คาทกาหนด

Text Field k1 Char width = 2 <? echo $k; ?>

Text Field a11 Char width = 2 <? echo $a1; ?>

Text Field k2 Char width = 2 <? echo $k; ?>

Text Field a22 Char width = 2 <? echo $a2; ?>

Text Field k3 Char width = 2 <? echo $k; ?>

Text Field a33 Char width = 2 <? echo $a3; ?>

Text Field k4 Char width = 2 <? echo $k; ?>

Text Field a44 Char width = 2 <? echo $a4; ?>

Text Field k11 Char width = 2 <? echo $k; ?>

Text Field a111 Char width = 2 <? echo $a1; ?>

Text Field k22 Char width = 2 <? echo $k; ?>

Text Field a222 Char width = 2 <? echo $a2; ?>

Text Field k33 Char width = 2 <? echo $k; ?>

Text Field a333 Char width = 2 <? echo $a3; ?>

Text Field k44 Char width = 2 <? echo $k; ?>

Text Field a444 Char width = 2 <? echo $a4; ?>

ตารางท 5.6 การกาหนดคาพารามเตอรของ Text Filed ในสวนของ Output II ในรปท 5.23

ออบเจกต ชอ คณสมบต คาทกาหนด

Text Field ao1 Char width = 2 <? echo number_format($out1,2,'.',''); ?>

Text Field ao2 Char width = 2 <? echo number_format($out2,2,'.','');; ?>

Text Field ao3 Char width = 2 <? echo number_format($out3,2,'.','');; ?>

Text Field ao4 Char width = 2 <? echo number_format($out4,2,'.','');; ?>

Text Field ao11 Char width = 2 <? echo number_format($out11,2,'.',''); ?>

Text Field ao22 Char width = 2 <? echo number_format($out22,2,'.',''); ?>

Text Field ao33 Char width = 2 <? echo number_format($out33,2,'.',''); ?>

Text Field ao44 Char width = 2 <? echo number_format($out44,2,'.',''); ?>

Page 172: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

163

รปท 5.24 รปแบบตารางของการพสจนคณสมบต (kA)T = kAT

Page 173: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

164

รปท 5.25 การออกแบบการพสจนคณสมบต (kA)T = kAT

3) เขยนโคดภาษา PHP และบนทกไฟลชอวา “matrix01.php” ดงน

โคดของหนาเพจสาหรบการพสจนคณสมบต (kA)T = kAT

1

2

3

4

<?php //โคดในสวนของภาษา PHP รวมกบโปรแกรม SCILAB

if($_POST[a1]!="" and $_POST[a2]!="" and $_POST[a3]!="" and $_POST[a4]!=""

and $_POST[k]!=""){

$a = "[".stripslashes($_POST[a1])."

".stripslashes($_POST[a2]).";".stripslashes($_POST[a3])."

".stripslashes($_POST[a4])."]";

$k = stripslashes($_POST[k]);

Page 174: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

165

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

$code1 = "output1 = ($k*$a)'\noutput2 = $k*$a'\noutput1 =

iconvert(output1,0);\nsavematfile('output1.txt','output1');\noutput2 =

iconvert(output2,0);\nsavematfile('output2.txt','output2');\nexit;";

file_put_contents("matrix01.sce", $code1); //สรางไฟลสครปตชอวา invdet2x2.sce

$path=$_SERVER["SystemRoot"]; //สรางตวแปรทอยของ windows

$com = "$path/scilab-4.1.2/bin/Scilex.exe -f matrix01.sce"; //สรางตวแปรสง Run

สครปต

exec($com); //ประมวลผลไฟลสครปต

list($out1, $out2, $out3, $out4) = explode(" ",

trim(file_get_contents("output1.txt"))); //แยกขอมลลงตวแปร 4 ตว

list($out11, $out22, $out33, $out44) = explode(" ",

trim(file_get_contents("output2.txt"))); //แยกขอมลลงตวแปร 4 ตว

}

?>

<html> <!--โคดในสวนของภาษา HTML-->

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />

<title>การพสจนคณสมบตท 1</title>

<style type="text/css">

<!--

.style4 {font-size: 60px}

-->

</style>

</head>

<body>

<form id="form1" name="form1" method="post" action="matrix01.php">

<table width="66%" border="0" cellpadding="4" cellspacing="4"

bgcolor="#CCCCCC">

<tr>

<td width="100%" height="32" valign="top" bgcolor="#FFFFFF"><div

align="center"><strong>คณสมบตท 1(KA)<sup>T</sup> =

KA<sup>T</sup></strong></div></td>

</tr>

</table>

<br>

Page 175: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

166

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

Input<br>

<table width="66%" border="0" cellpadding="4" cellspacing="4"

bgcolor="#CCCCCC">

<tr>

<td width="37%" height="107" valign="top" bgcolor="#FFFF99"><div

align="center"><br>

k =

<input name="k" type="text" id="k" value="<? echo $k; ?>" size="2" />

&nbsp;</div></td>

<td width="63%" valign="top" bgcolor="#FFFF99"><div align="center">

<table width="100%" border="0" cellpadding="0" cellspacing="0">

<tr>

<td width="41%" align="center" valign="middle">เมทรกซ A =</td>

<td width="59%"><table width="100%" border="0" cellspacing="0"

cellpadding="0">

<tr>

<td width="17%" valign="top"><span class="style4">[</span></td>

<td width="45%" valign="middle"><br>

<input name="a1" type="text" id="a1" value="<? echo $a1; ?>" size="2" />

&nbsp;

<input name="a2" type="text" id="a2" value="<? echo $a2; ?>" size="2" />

<br>

<input name="a3" type="text" id="a3" value="<? echo $a3; ?>" size="2" />

&nbsp;

<input name="a4" type="text" id="a4" value="<? echo $a4; ?>" size="2" /></td>

<td width="38%" valign="top"><span class="style4">]</span></td>

</tr>

</table>

</td>

</tr>

</table>

</div></td>

</tr>

<tr>

Page 176: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

167

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

<td height="44" colspan="2" valign="middle" bgcolor="#FFFFFF"><div

align="center">

<input name="submit2" type="submit" id="submit" value=" คานวณ " />

</div></td>

</tr>

</table>

<br>

Output<br>

<table width="66%" border="0" cellpadding="4" cellspacing="4"

bgcolor="#CCCCCC">

<tr>

<td height="66" valign="top" bgcolor="#99FF99"><table width="100%"

border="0" cellspacing="0" cellpadding="0">

<tr>

<td width="47%"><table width="100%" border="0" cellspacing="0"

cellpadding="0">

<tr>

<td width="8%" valign="middle"><span class="style4">(</span></td>

<td width="82%" valign="middle"><br>

<input name="k1" type="text" id="k1" value="<? echo $k; ?>" size="2" />

x

<input name="a11" type="text" id="a11" value="<? echo $a1; ?>" size="2" />

&nbsp;&nbsp;

<input name="k2" type="text" id="k2" value="<? echo $k; ?>" size="2" />

x

<input name="a22" type="text" id="a22" value="<? echo $a2; ?>" size="2" />

<br>

<input name="k3" type="text" id="k3" value="<? echo $k; ?>" size="2" />

x

<input name="a33" type="text" id="a33" value="<? echo $a3; ?>" size="2" />

&nbsp;&nbsp;

<input name="k4" type="text" id="k4" value="<? echo $k; ?>" size="2" />

x

<input name="a44" type="text" id="a44" value="<? echo $a4; ?>" size="2" /></td>

<td width="10%" valign="middle"><span class="style4">)</span></td>

Page 177: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

168

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

</tr>

</table></td>

<td width="9%"><span class="style4"><sup>T&nbsp;</sup>=</span></td>

<td width="37%"><table width="96%" border="0" align="center"

cellpadding="0" cellspacing="0">

<tr>

<td valign="top"><br>

<input name="k11" type="text" id="k11" value="<? echo $k; ?>" size="2" />

x

<input name="a111" type="text" id="a111" value="<? echo $a1; ?>" size="2" />

&nbsp;&nbsp;

<input name="k22" type="text" id="k22" value="<? echo $k; ?>" size="2" />

x

<input name="a222" type="text" id="a222" value="<? echo $a2; ?>" size="2" />

<br>

<input name="k33" type="text" id="k33" value="<? echo $k; ?>" size="2" />

x

<input name="a333" type="text" id="a333" value="<? echo $a3; ?>" size="2" />

&nbsp;&nbsp;

<input name="k44" type="text" id="k44" value="<? echo $k; ?>" size="2" />

x

<input name="a444" type="text" id="a444" value="<? echo $a4; ?>" size="2"

/></td>

</tr>

</table></td>

<td width="7%"><span class="style4"><sup>T</sup></span></td>

</tr>

</table></td>

</tr>

<tr>

<td height="95" valign="top" bgcolor="#FFCCCC"><table width="100%"

border="0" cellspacing="0" cellpadding="0">

<tr>

<td width="51%" align="center"><table width="62%" border="0"

cellpadding="0" cellspacing="0">

Page 178: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

169

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

<tr>

<td width="22%" align="center" valign="middle">C1 =</td>

<td width="78%"><table width="100%" border="0" cellspacing="0"

cellpadding="0">

<tr>

<td width="18%" valign="top"><span class="style4">[</span></td>

<td width="62%" valign="middle"><br>

<input name="ao1" type="text" id="ao1" value="<? echo

number_format($out1,2,'.',''); ?>" size="2" />

&nbsp;

<input name="ao2" type="text" id="ao2" value="<? echo

number_format($out2,2,'.','');; ?>" size="2" />

<br>

<input name="ao3" type="text" id="ao3" value="<? echo

number_format($out3,2,'.','');; ?>" size="2" />

&nbsp;

<input name="ao4" type="text" id="ao4" value="<? echo

number_format($out4,2,'.','');; ?>" size="2" /></td>

<td width="20%" valign="top"><span class="style4">]</span></td>

</tr>

</table></td>

</tr>

</table></td>

<td width="49%"><table width="62%" border="0" cellpadding="0"

cellspacing="0">

<tr>

<td width="22%" align="center" valign="middle">C2 =</td>

<td width="78%"><table width="100%" border="0" cellspacing="0"

cellpadding="0">

<tr>

<td width="18%" valign="top"><span class="style4">[</span></td>

<td width="70%" valign="middle"><br>

<input name="ao11" type="text" id="ao11" value="<? echo

number_format($out11,2,'.',''); ?>" size="2" />

&nbsp;

Page 179: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

170

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

<input name="ao22" type="text" id="ao22" value="<? echo

number_format($out22,2,'.',''); ?>" size="2" />

<br>

<input name="ao33" type="text" id="ao33" value="<? echo

number_format($out33,2,'.',''); ?>" size="2" />

&nbsp;

<input name="ao44" type="text" id="ao44" value="<? echo

number_format($out44,2,'.',''); ?>" size="2" /></td>

<td width="12%" valign="top"><span class="style4">]</span></td>

</tr>

</table></td>

</tr>

</table></td>

</tr>

</table></td>

</tr>

</table>

</form>

</body>

</html>

4) ทดสอบการทางานของโปรแกรมโดยการเปดเบราวเซอร IE จากนนพมพ URL คอ 127.0.0.1/

phptoscilab/matrix01.php จากนนปอนขอมล k เทากบ 2 และเมทรกซ A เทากบ [1, 2; 3,

4] แลวกดปม “คานวณ” หนงครง กจะไดผลลพธตามรปท 5.26

5.2.2 การพสจนคณสมบต (A+B)T = AT + BT

การพสจนคณสมบตทสองนจะทาการออกแบบตามรปท 5.27 โดยทาตามขนตอนดงน

1) เปดโปรแกรม Adobe Dreamwaver CS 5.5 ออกแบบฟอรมตามรปท 5.27 และออกแบบ

รปแบบตารางตามรปท 5.28 โดยในสวนของ Action Form ใหใสชอเวบเพจ matrix02.php

ดงแสดงในรปท 5.29

2) กาหนดคาพารามเตอรของ Text Filed และ Button ในฟอรมตางๆ ตามตารางท 5.7 – 5.10

Page 180: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

171

รปท 5.26 เวบเพจแสดงผลลพธของการพสจนคณสมบต (kA)T = kAT

รปท 5.27 เวบเพจของการพสจนคณสมบต (A+B)T = AT + BT

b1 b2

b3 b4

a11 a22

a33 a44

ao2ao3 ao4

ao1

a1 a2

a3 a4

b11

b33 b44

b22 a111 a222

a333 a444

b111

b333 b444

b222

ao22 ao33 ao44

ao11

I

II

Page 181: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

172

รปท 5.28 รปแบบตารางของการพสจนคณสมบต (A+B)T = AT + BT

Page 182: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

173

รปท 5.29 การออกแบบการพสจนคณสมบต (A+B)T = AT + BT

ตารางท 5.7 การกาหนดคาพารามเตอรของ Text Filed ในสวนของ Input A ในรปท 5.27

ออบเจกต ชอ คณสมบต คาทกาหนด

Text Field a1 Char width = 2 <? echo $a1; ?>

Text Field a2 Char width = 2 <? echo $a2; ?>

Text Field a3 Char width = 2 <? echo $a3; ?>

Text Field a4 Char width = 2 <? echo $a4; ?>

Page 183: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

174

ตารางท 5.8 การกาหนดคาพารามเตอรของ Text Filed และ Button ในสวนของ Input B ในรปท 5.27

ออบเจกต ชอ คณสมบต คาทกาหนด

Text Field b1 Char width = 2 <? echo $b1; ?>

Text Field b2 Char width = 2 <? echo $b2; ?>

Text Field b3 Char width = 2 <? echo $b3; ?>

Text Field b4 Char width = 2 <? echo $b4; ?>

Button submit2 - คานวณ

ตารางท 5.9 การกาหนดคาพารามเตอรของ Text Filed ในสวนของ Output I ในรปท 5.27

ออบเจกต ชอ คณสมบต คาทกาหนด

Text Field a11 Char width = 2 <? echo $a1; ?>

Text Field a22 Char width = 2 <? echo $a2; ?>

Text Field a33 Char width = 2 <? echo $a3; ?>

Text Field a44 Char width = 2 <? echo $a4; ?>

Text Field b11 Char width = 2 <? echo $b1; ?>

Text Field b22 Char width = 2 <? echo $b2; ?>

Text Field b33 Char width = 2 <? echo $b3; ?>

Text Field b44 Char width = 2 <? echo $b4; ?>

Text Field a111 Char width = 2 <? echo $a1; ?>

Text Field a222 Char width = 2 <? echo $a2; ?>

Text Field a333 Char width = 2 <? echo $a3; ?>

Text Field a444 Char width = 2 <? echo $a4; ?>

Text Field b111 Char width = 2 <? echo $b1; ?>

Text Field b222 Char width = 2 <? echo $b2; ?>

Text Field b333 Char width = 2 <? echo $b3; ?>

Text Field b444 Char width = 2 <? echo $b4; ?>

Page 184: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

175

ตารางท 5.10 การกาหนดคาพารามเตอรของ Text Filed ในสวนของ Output II ในรปท 5.27

ออบเจกต ชอ คณสมบต คาทกาหนด

Text Field ao1 Char width = 2 <? echo number_format($out1,2,'.',''); ?>

Text Field ao2 Char width = 2 <? echo number_format($out2,2,'.','');; ?>

Text Field ao3 Char width = 2 <? echo number_format($out3,2,'.','');; ?>

Text Field ao4 Char width = 2 <? echo number_format($out4,2,'.','');; ?>

Text Field ao11 Char width = 2 <? echo number_format($out11,2,'.',''); ?>

Text Field ao22 Char width = 2 <? echo number_format($out22,2,'.',''); ?>

Text Field ao33 Char width = 2 <? echo number_format($out33,2,'.',''); ?>

Text Field ao44 Char width = 2 <? echo number_format($out44,2,'.',''); ?>

3) เขยนโคดภาษา PHP และบนทกไฟลชอวา “matrix02.php” ดงน

โคดของหนาเพจสาหรบการพสจนคณสมบต (A+B)T = AT + BT

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

<?php //โคดในสวนของภาษา PHP รวมกบโปรแกรม SCILAB

if($_POST[a1]!="" and $_POST[a2]!="" and $_POST[a3]!="" and $_POST[a4]!=""

and $_POST[b1]!="" and $_POST[b2]!="" and $_POST[b3]!="" and $_POST[b4]!="") {

$a = "[".stripslashes($_POST[a1])." ".stripslashes($_POST[a2]).";".

stripslashes($_POST[a3])." ".stripslashes($_POST[a4])."]";

$b = "[".stripslashes($_POST[b1])." ".stripslashes($_POST[b2]).";".

stripslashes($_POST[b3])." ".stripslashes($_POST[b4])."]";

$code1 = "output1 = ($a+$b)'\noutput2 = $a'+$b'\noutput1 = iconvert(output1,0);

\nsavematfile('output1.txt','output1');\noutput2 = iconvert(output2,0);\nsavematfile

('output2.txt','output2');\nexit;";

file_put_contents("matrix02.sce", $code1); //สรางไฟลสครปตชอวา matrix02.sce

$path=$_SERVER["SystemRoot"]; //สรางตวแปรทอยของวนโดวส

$com = "$path/scilab-4.1.2/bin/Scilex.exe -nwni -nb -f matrix02.sce";

exec($com); //ประมวลผลไฟลสครปต

list($out1, $out2, $out3, $out4) = explode(" ", trim(file_get_contents("output1.txt")));

list($out11, $out22, $out33, $out44) = explode(" ",trim(file_get_contents("output2.txt")));

}

?>

<html> <!--โคดในสวนของภาษา HTML-->

<head>

Page 185: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

176

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />

<title>การพสจนคณสมบตท 2</title>

<style type="text/css">

<!--

.style4 {font-size: 60px}

.style6 {font-size: 36px}

-->

</style>

</head>

<body>

<form id="form1" name="form1" method="post" action="matrix02.php">

<div align="center">

<table width="66%" border="0" cellpadding="4" cellspacing="4" bgcolor="#CCCCCC">

<tr>

<td width="100%" height="32" valign="top" bgcolor="#FFFFFF"><div align=

"center"><strong>คณสมบตท 2 (A+B)<sup>T</sup> = A<sup>T</sup> + B<sup>T

</sup> </strong></div></td>

</tr>

</table>

<br>

Input<br>

<table width="66%" border="0" cellpadding="4" cellspacing="4" bgcolor="#CCCCCC">

<tr>

<td width="51%" height="107" valign="top" bgcolor="#FFFF99"><div align=

"center">

<table width="100%" border="0" cellpadding="0" cellspacing="0">

<tr>

<td width="28%" align="center" valign="middle">INPUT A =</td>

<td width="72%"><table width="100%" border="0" cellspacing="0"

cellpadding="0">

<tr>

<td width="17%" valign="top"><span class="style4">[</span></td>

<td width="45%" valign="middle"><br>

<input name="a1" type="text" id="a1" value="<? echo $a1; ?>" size="2" />

&nbsp;

Page 186: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

177

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

<input name="a2" type="text" id="a2" value="<? echo $a2; ?>" size="2" />

<br>

<input name="a3" type="text" id="a3" value="<? echo $a3; ?>" size="2" />

&nbsp;

<input name="a4" type="text" id="a4" value="<? echo $a4; ?>" size="2" /></td>

<td width="38%" valign="top"><span class="style4">]</span></td>

</tr>

</table></td>

</tr>

</table>

</div></td>

<td width="49%" valign="top" bgcolor="#FFFF99"><div align="center">

<table width="100%" border="0" cellpadding="0" cellspacing="0">

<tr>

<td width="28%" align="center" valign="middle">INPUT B =</td>

<td width="72%"><table width="100%" border="0" cellspacing="0"

cellpadding="0">

<tr>

<td width="17%" valign="top"><span class="style4">[</span></td>

<td width="48%" valign="middle"><br>

<input name="b1" type="text" id="b1" value="<? echo $b1; ?>" size="2" />

&nbsp;

<input name="b2" type="text" id="b2" value="<? echo $b2; ?>" size="2" />

<br>

<input name="b3" type="text" id="b3" value="<? echo $b3; ?>" size="2" />

&nbsp;

<input name="b4" type="text" id="b4" value="<? echo $b4; ?>" size="2" /></td>

<td width="35%" valign="top"><span class="style4">]</span></td>

</tr>

</table></td>

</tr>

</table>

</div></td>

</tr>

<tr>

Page 187: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

178

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

<td height="44" colspan="2" valign="middle" bgcolor="#FFFFFF"><div align=

"center">

<input name="submit2" type="submit" id="submit" value=" คานวณ " />

</div></td>

</tr>

</table>

<br>

Output<br>

<table width="75%" border="0" cellpadding="4" cellspacing="4" bgcolor="#CCCCCC">

<tr>

<td height="66" valign="top" bgcolor="#99FF99"><table width="100%"

border="0" cellspacing="0" cellpadding="0">

<tr>

<td width="40%" valign="top"><table width="100%" border="0" cellspacing="0"

cellpadding="0">

<tr>

<td width="42%"><table width="100%" border="0" cellspacing="0"

cellpadding="0">

<tr>

<td width="12%" valign="middle"><span class="style4">(</span></td>

<td valign="middle"><br>

<input name="a11" type="text" id="a11" value="<? echo $a1; ?>" size="2" />

<input name="a22" type="text" id="a22" value="<? echo $a2; ?>" size="2" />

<br>

<input name="a33" type="text" id="a33" value="<? echo $a3; ?>" size="2" />

<input name="a44" type="text" id="a44" value="<? echo $a4; ?>" size="2"

/></td>

</tr>

</table></td>

<td width="15%" align="left"><span class="style6">+</span></td>

<td width="43%"><table width="92%" border="0" cellspacing="0"

cellpadding="0">

<tr>

<td width="79%" valign="middle"><br>

<input name="b11" type="text" id="b11" value="<? echo $b1; ?>" size="2" />

Page 188: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

179

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

<input name="b22" type="text" id="b22" value="<? echo $b2; ?>" size="2" />

<br>

<input name="b33" type="text" id="b33" value="<? echo $b3; ?>" size="2" />

<input name="b44" type="text" id="b44" value="<? echo $b4; ?>" size="2"

/></td>

<td width="21%" valign="middle"><span class="style4">)</span></td>

</tr>

</table></td>

</tr>

</table></td>

<td width="11%" align="left" valign="top"><span class="style4"><span

class="style6"><sup>T</sup></span>=</span></td>

<td width="49%"><table width="100%" border="0" cellspacing="0"

cellpadding="0">

<tr>

<td width="48%"><table width="100%" border="0" cellspacing="0"

cellpadding="0">

<tr>

<td width="10%" valign="middle"><span class="style4">(</span></td>

<td width="57%" valign="middle"><br>

<input name="a111" type="text" id="a111" value="<? echo $a1; ?>" size="2" />

<input name="a222" type="text" id="a222" value="<? echo $a2; ?>" size="2" />

<br>

<input name="a333" type="text" id="a333" value="<? echo $a3; ?>" size="2" />

<input name="a444" type="text" id="a444" value="<? echo $a4; ?>" size="2"

/></td>

<td width="33%" valign="middle"><span class="style4">)<span

class="style6"><sup>T</sup></span></span></td>

</tr>

</table></td>

<td width="6%"><span class="style6">+</span></td>

<td width="46%"><table width="100%" border="0" cellspacing="0"

cellpadding="0">

<tr>

<td width="9%" valign="middle"><span class="style4">(</span></td>

Page 189: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

180

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

<td width="57%" valign="middle"><br>

<input name="b111" type="text" id="b111" value="<? echo $b1; ?>" size="2" />

<input name="b222" type="text" id="b222" value="<? echo $b2; ?>" size="2" />

<br>

<input name="b333" type="text" id="b333" value="<? echo $b3; ?>" size="2" />

<input name="b444" type="text" id="b444" value="<? echo $b4; ?>" size="2"

/></td>

<td width="34%" valign="middle"><span class="style4">)<span

class="style6"><sup>T</sup></span></span></td>

</tr>

</table></td>

</tr>

</table></td>

</tr>

</table>

<br></td>

</tr>

<tr>

<td height="95" valign="top" bgcolor="#FFCCCC"><table width="100%"

border="0" cellspacing="0" cellpadding="0">

<tr>

<td width="51%" align="center"><table width="62%" border="0"

cellpadding="0" cellspacing="0">

<tr>

<td width="22%" align="center" valign="middle">C1 =</td>

<td width="78%"><table width="100%" border="0" cellspacing="0"

cellpadding="0">

<tr>

<td width="18%" valign="top"><span class="style4">[</span></td>

<td width="62%" valign="middle"><br>

<input name="ao1" type="text" id="ao1" value="<? echo

number_format($out1,2,'.',''); ?>" size="2" />

&nbsp;

<input name="ao2" type="text" id="ao2" value="<? echo

number_format($out2,2,'.','');; ?>" size="2" />

Page 190: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

181

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

<br>

<input name="ao3" type="text" id="ao3" value="<? echo

number_format($out3,2,'.','');; ?>" size="2" />

&nbsp;

<input name="ao4" type="text" id="ao4" value="<? echo

number_format($out4,2,'.','');; ?>" size="2" /></td>

<td width="20%" valign="top"><span class="style4">]</span></td>

</tr>

</table></td>

</tr>

</table></td>

<td width="49%"><table width="62%" border="0" cellpadding="0"

cellspacing="0">

<tr>

<td width="22%" align="center" valign="middle">C2 =</td>

<td width="78%"><table width="100%" border="0" cellspacing="0"

cellpadding="0">

<tr>

<td width="18%" valign="top"><span class="style4">[</span></td>

<td width="70%" valign="middle"><br>

<input name="ao11" type="text" id="ao11" value="<? echo

number_format($out11,2,'.',''); ?>" size="2" />

&nbsp;

<input name="ao22" type="text" id="ao22" value="<? echo

number_format($out22,2,'.',''); ?>" size="2" />

<br>

<input name="ao33" type="text" id="ao33" value="<? echo

number_format($out33,2,'.',''); ?>" size="2" />

&nbsp;

<input name="ao44" type="text" id="ao44" value="<? echo

number_format($out44,2,'.',''); ?>" size="2" /></td>

<td width="12%" valign="top"><span class="style4">]</span></td>

</tr>

</table></td>

</tr>

Page 191: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

182

193

194

195

196

197

198

199

200

201

</table></td>

</tr>

</table></td>

</tr>

</table>

</div>

</form>

</body>

</html>

รปท 5.30 เวบเพจแสดงผลลพธของการพสจนคณสมบต (A+B)T = AT + BT

4) ทดสอบการทางานของโปรแกรมโดยการเปดเบราวเซอร IE จากนนพมพ URL คอ 127.0.0.1/

phptoscilab/matrix02.php จากนนปอนขอมลเมทรกซ A เทากบ [2, 3; 4, 5] และเมทรกซ

A เทากบ [4, 5; 6, 7] และกดปม “คานวณ” หนงครง กจะไดผลลพธตามรปท 5.30

Page 192: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

183

รปท 5.31 การเปลยนแถบชอเรองดวยโปรแกรม Dreamweaver

รปท 5.32 การเปลยนชอไฟลของฟอรมเวบไซตเปน matrix03.php ดวยโปรแกรม Dreamweaver

5.2.3 การพสจนคณสมบต (AB)T = ATBT

ในทานองเดยวกนการพสจนคณสมบตทสามจะออกแบบตามรปท 5.31 โดยทาตามขนตอนดงน

1) เปดโปรแกรม Adobe Dreamwaver CS 5.5 และทาการคดลอกโคดหรอไฟลตวอยางการ

พสจนคณสมบตท 2 โดยใหแกไขโคดบางบรรทดและบนทกเปนชอไฟลวา “matrix03.php”

ดงตอไปน

บรรทดท 5 เปลยนเครองหมายบวกเปนเครองหมายคณดงน

5

$code1 = "output1 = ($a*$b)'\noutput2 = $a'*$b'\noutput1 =

iconvert(output1,0);\nsavematfile('output1.txt','output1');\noutput2 =

iconvert(output2,0);\nsavematfile('output2.txt','output2');\nexit;";

บรรทดท 6 เปลยนชอไฟลเปน matrix03.sce ดดงน

6 file_put_contents("matrix03.sce", $code1);

บรรทดท 17 เปลยนชอแถบชอเรองเปน “การพสจนคณสมบตท 3” ดงน (รปท 5.31)

17 <title>การพสจนคณสมบตท 3</title>

บรรทดท 26 แกไขชอไฟลของฟอรมเวบไซตเปน matrix03.php ดงน (รปท 5.32)

26 <form id="form1" name="form1" method="post" action="matrix03.php">

Page 193: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

184

รปท 5.33 การเปลยนสมการของคณสมบตท 2 เปนคณสมบตท 3

รปท 5.34 การเปลยนเครองหมายบวกเปนเครองหมายคณ “×”

บรรทดท 30 แกไขสมการของคณสมบตท 2 เปนคณสมบตท 3 ดงน (รปท 5.33)

30 <td width="100%" height="32" valign="top" bgcolor="#FFFFFF"><div align=

"center"><strong>คณสมบตท 3 (AB)<sup>T</sup> = A<sup>T</sup>

B<sup>T</sup> </strong></div></td>

บรรทดท 105 และ 134 เปลยนเครองหมายบวกเปนเครองหมายคณดงน (รปท 5.34)

105 <td width="15%" align="left"><span class="style6">×</span></td>

134 <td width="6%"><span class="style6">×</span></td>

2) ทดสอบการทางานของโปรแกรมโดยการเปดเบราวเซอร IE จากนนพมพ URL คอ 127.0.0.1/

phptoscilab/matrix03.php จากนนปอนขอมลเมทรกซ A เทากบ [2, 3; 4, 5] และเมทรกซ

B เทากบ [4, 5; 6, 7] แลวกดปม “คานวณ” หนงครง กจะไดผลลพธตามรปท 5.35

5.3 การหาคาลอการทมฐานใดๆ

ในสวนนจะแสดงตวอยางการใชโปรแกรม PHP สรางเวบเพจสาหรบหาคาลอการทมฐานใดๆ ดงน

Page 194: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

185

รปท 5.35 เวบเพจแสดงผลลพธของการพสจนคณสมบต (AB)T = ATBT

รปท 5.36 ฟอรมการหาหาคาลอการทมฐานใดๆ

1) เรมตนเปดโปรแกรม Adobe Dreamwaver CS 5.5 ขนมา และออกแบบฟอรมตามรปท 5.36

Page 195: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

186

รปท 5.37 ตารางในสวนปอนขอมลของรปท 5.36

รปท 5.38 ตวอยางการใสสของพนตารางดวย Tab Editor

รปท 5.39 การสรางตารางในสวนแสดงผลลพธของรปท 5.36

2) สรางฟอรมและออกแบบตารางในสวนปอนขอมล และใส Textbox ตามรปท 5.37 โดยใสส

เสนขอบเทากบ #FFCC00 และสพนเทากบ #FFFF99 ผานทาง Tab Editor ตามรปท 5.38

3) ออกแบบตารางในสวนผลลพธ Textbox และปมคานวณ ตามรปท 5.39 – 5.40 และใสส

เสนขอบเทากบ #CCCC00 และสพนเทากบ #CCFF99 (ผานทาง Tab Editor)

Page 196: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

187

รปท 5.40 การสรางปมคานวณของรปท 5.36

ตารางท 5.11 การกาหนดคาพารามเตอรของ Text Filed และ Button ในรปท 5.36

ออบเจกต ชอ คณสมบต คาทกาหนด

Text Field x Char width = 10 <? echo $x; ?>

Text Field base Char width = 10 <? echo $base; ?>

Button submit2 - คานวณ

Text Field out Char width = 10 <? echo $out; ?>

รปท 5.41 การกาหนดชอเวบเพจในฟอรม Action ของรปท 5.36

4) กาหนดคาพารามเตอรของ Text Filed และ Button ในฟอรมตางๆ ตามตารางท 5.11

Page 197: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

188

5) ในสวนของฟอรม Action ใหใสชอเวบเพจ logx.php ตามรปท 5.41

6) เขยนโคดภาษา PHP และบนทกไฟลชอวา “logx.php” ดงน

โคดของหนาเพจสาหรบการหาคาลอการทมฐานใดๆ

1

2

3

4*

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

<?php //โคดในสวนของภาษา PHP รวมกบโปรแกรม SCILAB

if($_POST[x]!="" and $_POST[base]!="") {

$path1=$_SERVER["DOCUMENT_ROOT"]; //สรางตวแปรทอยของไฟล www

$code1 = "exec('$path1/phptoscilab/logXN.sci');\noutput=logXN($x, $base);

\nsavematfile('logx.txt','output');\nexit;"; //เขยนโคด SCILAB

file_put_contents("logx.sce", $code1); //สรางไฟลสครปตชอวา logx.sce

$path2=$_SERVER["SystemRoot"]; //สรางตวแปรทอยของ windows

$com = "$path2/scilab-4.1.2/bin/Scilex.exe -nwni -nb -f logx.sce";

exec($com); //ประมวลผลไฟลสครปต

$out = number_format(file_get_contents("logx.txt"));

}

?>

<html> <!--โคดในสวนของภาษา HTML-->

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />

<title>การหาผลลพธ Log ฐานใดๆ ดวย SCILAB </title>

</head>

<body>

<form id="form1" name="form1" method="post" action="logx.php">

<p>การหาผลลพธ Log ฐานใดๆ<br>

<br>

ปอนขอมล</p>

<table width="34%" border="1" cellpadding="0" cellspacing="0" bordercolor=

"#FFCC00" bgcolor="#FFFF99">

<tr>

<td height="51"><div align="center">x =

<input name="x" type="text" id="x" value="<? echo $x; ?>" size="10" />

&nbsp;&nbsp;Base =

<input name="base" type="text" id="base" value="<? echo $base; ?>" size="10" />

</div></td>

</tr>

Page 198: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

189

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

</table>

<br>

<table width="34%" border="1" cellpadding="0" cellspacing="0" bordercolor=

"#CCCC00" bgcolor="#CCFF99">

<tr>

<td height="51"><div align="center">Log x<sub>Base</sub> =&nbsp;

<input name="out" type="text" id="out" value="<? echo $out; ?>" size="10" />

<br>

</div></td>

</tr>

</table>

<br>

<table width="34%" cellpadding="0" cellspacing="0">

<tr>

<td height="51"><div align="center">

<input type="submit" name="Submit" value=" คานวณ " />

<br>

</div></td>

</tr>

</table>

<p>&nbsp;</p>

</form>

</body>

</html>

หมายเหต บรรทดท 4 จะเรยกฟงกชนทสรางขนใหมจากโปรแกรม SCILAB ซงมการทางาน

เหมอนกบฟงกชน logXN.sci ทใชในหวขอท 3.4 โดยจะตองเกบไฟลนไวทสารบบ C:\

AppServ\www\phptoscilab

7) ทดสอบการทางานของโปรแกรมโดยการเปดเบราวเซอร IE จากนนพมพ URL คอ

127.0.0.1/phptoscilab/logx.php จากนนปอนขอมลดงน ให X มคาเทากบ 8 และ Base ม

คาเทากบ 2 แลวกดปม “คานวณ” หนงครง กจะไดผลลพธตามรปท 5.42

Page 199: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

190

รปท 5.42 ตวอยางการหาคาลอการทมของ 8 ฐาน 2 ซงมคาเทากบ 3 ผานเวบไซต

ตารางท 5.12 การกาหนดคาพารามเตอรของ Text Filed และ Button ในรปท 5.43

ออบเจกต ชอ คณสมบต คาทกาหนด

Text Field p Char width = 20 <? echo $p; ?>

Text Field q Char width = 20 <? echo $q; ?>

Button Submit - คานวณ

OUTPUT <iframe src="<? echo $url; rand(1,3000); ?>" frameborder="0" height="100"></iframe>

5.4 การบวกและลบของสมการพหนาม

ในสวนนจะแสดงตวอยางการใชโปรแกรม PHP สรางเวบเพจสาหรบบวกและลบสมการพหนามดงน

1) เรมตนเปดโปรแกรม Adobe Dreamwaver CS 5.5 ขนมา และออกแบบฟอรมตามรปท 5.43

2) สรางฟอรมและออกแบบตารางในสวนปอนขอมล และใส Textbox ตามรปท 5.44 โดยใสส

เสนขอบเทากบ #FFCC00 และสพนเทากบ #FFFF99 (ผานทาง Tab Editor)

3) ออกแบบตารางในสวนผลลพธ Textbox และปมคานวณ ตามรปท 5.45 และใสสเสนขอบ

เทากบ #CCCC00 และสพนเทากบ #CCFF99 (ผานทาง Tab Editor)

4) กาหนดคาพารามเตอรของ Text Filed และ Button ในฟอรมตางๆ ตามตารางท 5.12

Page 200: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

191

รปท 5.43 เวบเพจของการบวกและลบสมการหหนาม

รปท 5.44 การสรางตารางในสวนปอนขอมลของรปท 5.43

Page 201: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

192

รปท 5.45 การสรางตารางในสวนแสดงผลลพธ

รปท 5.46 การกาหนดชอเวบเพจในฟอรม Action ของรปท 5.43

5) ในสวนของฟอรม Action ใหใสชอเวบเพจ polyx.php ตามรปท 5.46

<iframe src="<? echo $url; rand(1,3000); ?>"

frameborder="0" height="100"></iframe>

Page 202: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

193

6) เขยนโคดภาษา PHP และบนทกไฟลชอวา “polyx.php” ดงน

โคดของหนาเพจสาหรบการบวกและลบสมการพหนาม

1

2

3

4

5

6*

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

<?php //โคดในสวนของภาษา PHP รวมกบโปรแกรม SCILAB

$url = ""; //สรางตวแปร url เทากบคาวาง

if($_POST[p]!="" and $_POST[q]!="") {

$path1=$_SERVER["DOCUMENT_ROOT"]; //สรางตวแปรทอยของไฟล www

$url = "001.html"; //สรางตวแปร url เทากบไฟล 001.html

$code1 = "x=poly(0,'x');\np=$p;\nq=$q;\npq1=p+q;\npq2=p-q;\n

exec('$path1/phptoscilab/pohtml01.sci',-1);\nexec('$path1/phptoscilab/pohtml02.sci',-

1);\nexec('$path1/phptoscilab/pohtml03.sci',-1);\np1= pol2tex(p);\nq1= pol2tex(q);\n

pl1= pol2tex(pq1);\npl2= pol2tex(pq2);\npohtml01('$path1/phptoscilab/001.html');\n

pohtml02('$path1/phptoscilab/001.html',pl1,'p + q&nbsp;&nbsp;&nbsp;');\n

pohtml02('$path1/phptoscilab/001.html',pl2,'p - q&nbsp;&nbsp;&nbsp;');\n

pohtml03('$path1/phptoscilab/001.html');\nexit;"; //เขยนโคด SCILAB

file_put_contents("polyx.sce", $code1); //สรางไฟลสครปตชอวา polyx.sce

$path2=$_SERVER["SystemRoot"]; //สรางตวแปรทอยของวนโดวส

$com = "$path2/scilab-4.1.2/bin/Scilex.exe -nwni -nb -f polyx.sce";

exec($com); //ประมวลผลไฟลสครปต

}

?>

<html> <!--โคดในสวนของภาษา HTML-->

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />

<title>การบวกและลบสมการพหนาม</title>

</head>

<body>

<form id="form1" name="form1" method="post" action="polyx.php">

<p>การบวกและลบสมการพหนาม<br>

<br>

ปอนขอมล</p>

<table width="34%" border="1" cellpadding="0" cellspacing="0" bordercolor=

"#009933" bgcolor="#CCFFCC">

<tr>

<td height="76"><div align="center">

Page 203: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

194

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

<table width="100%" border="0" align="center" cellpadding="0"

cellspacing="0">

<tr>

<td width="23%"><div align="center">p(x)&nbsp;</div></td>

<td width="77%">=

<input name="p" type="text" id="p" value="<? echo $p; ?>" size="20" /></td>

</tr>

<tr>

<td><div align="center">q(x)</div></td>

<td>=

<input name="q" type="text" id="q" value="<? echo $q; ?>" size="20" /></td>

</tr>

</table>

</div></td>

</tr>

</table>

<br>

<table width="34%" border="1" cellpadding="0" cellspacing="0" bordercolor=

"#FF3399" bgcolor="#FF99FF">

<tr>

<td height="82" align="center" valign="middle"><br>

<iframe src="<? echo $url; rand(1,3000); ?>" frameborder="0" height="100"></iframe>

</td>

</tr>

</table>

<br>

<table width="34%" cellpadding="0" cellspacing="0">

<tr>

<td height="51"><div align="center">

<input type="submit" name="Submit" value=" คานวณ " />

<br>

</div></td>

</tr>

</table>

<p>&nbsp;</p>

Page 204: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

195

58

59

60

</form>

</body>

</html>

หมายเหต บรรทดท 6 จะมการเรยกฟงกชนทสรางขนใหมจากโปรแกรม SCILAB ซงมการ

ทางานเหมอนกบฟงกชน pohtml01.sci, pohtml02.sci และ pohtml03.sci ทใชในหวขอท

3.5 โดยจะตองเกบไฟลทงหมดนไวทสารบบ C:\AppServ\www\phptoscilab

7) ทดสอบการทางานของโปรแกรมโดยการเปดเบราวเซอร IE จากนนพมพ URL คอ 127.0.0.1/

phptoscilab/polyx.php จากนนปอนขอมลทอยในรปของ LaTeX ดงน p(x) เทากบเลข

x^2 + 50 และ q(x) เทากบ x^2 + 25 แลวกดปม “คานวณ” หนงครงกจะไดผลลพธตาม

รปท 5.47

รปท 5.47 ตวอยางการการบวกและลบสมการหหนามผานเวบไซต

Page 205: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

196

รปท 5.48 เวบเพจของการวาดกราฟสองมต

5.5 การวาดกราฟสองมต

ในสวนนจะแสดงตวอยางการใชโปรแกรม PHP สรางเวบเพจสาหรบวาดกราฟสองมตดงน

1) เรมตนเปดโปรแกรม Adobe Dreamwaver CS 5.5 ขนมา และออกแบบฟอรมตามรปท 5.48

2) สรางฟอรมและออกแบบตารางในสวนปอนขอมล และใส Textbox และ Button ตามรปท

5.49 โดยสพนเทากบ #FFFF99 (ผานทาง Tab Editor)

3) ออกแบบในสวนผลลพธ (แสดงผลลพธเปนรปภาพ) โดยใชเครองมอตามรปท 5.50

4) กาหนดคาพารามเตอรของ Text Filed และ Button ในฟอรมตางๆ ตามตารางท 5.11

5) ในสวนของฟอรม Action ใหใสชอเวบเพจ v2d.php ตามรปท 5.51

Page 206: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

197

รปท 5.49 การสรางตารางในสวนปอนขอมลของรปท 5.48

รปท 5.50 การออกแบบสวนแสดงผลลพธของรปท 5.48

ตารางท 5.13 การกาหนดคาพารามเตอรของ Text Filed และ Button ในรปท 5.48

ออบเจกต ชอ คณสมบต คาทกาหนด

Text Field x1 Char width = 4, Max chars = 2 <? echo $x1; ?>

Text Field x2 Char width = 4, Max chars = 4 <? echo $x2; ?>

Text Field x3 Char width = 4, Max chars = 2 <? echo $x3; ?>

Text Field f1 Char width = 4, Max chars = 2 <? echo $f1; ?>

Text Field y1 Char width = 30, Max chars = 30 <? echo $y1; ?>

Button Submit - คานวณ

OUTPUT <img src="test.gif?<?=rand(1,3000); ?>" width="610" height="461" border="1" >

<img src="test.gif?<?=rand(1,3000); ?>"

width="610" height="461" border="1" >

Page 207: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

198

รปท 5.51 การกาหนดชอเวบเพจในฟอรม Action ของรปท 5.48

6) เขยนโคดภาษา PHP และบนทกไฟลชอวา “logx.php” ดงน

โคดของหนาเพจสาหรบการวาดกราฟสองมต

1

2

3

4

5

6

7

8

9

10

<?php //โคดในสวนของภาษา PHP รวมกบโปรแกรม SCILAB

if($_POST[x1]!="" and $_POST[x2]!="" and $_POST[x3]!="" and $_POST[f1]!=""

and $_POST[y1]!="") {

$y1 = stripslashes($_POST[y1]);

$path1=$_SERVER["DOCUMENT_ROOT"]; //สรางตวแปรทอยของไฟล www

$path2=$_SERVER["SystemRoot"]; //สรางตวแปรทอยวนโดวส

$code1 = "x = $_POST[x1]:$_POST[x2]:$_POST[x3];\n f = $_POST[f1];\n y =

$y1;\n plot(x, y);\nxs2gif(0,'$path1/phptoscilab/test.gif');exit();";

file_put_contents("v2d.sce", $code1); //สรางไฟลสครปตชอ v2d.sce

$com = "$path2/scilab-4.1.2/bin/Scilex.exe -nwni -nb -f v2d.sce";

exec($com); //ประมวลผลไฟลสครปต

}

Page 208: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

199

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

?>

<html> <!--โคดในสวนของภาษา HTML-->

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-874">

<title>การใชงานวาดกราฟ 2 มต</title>

<style type="text/css">

<!--

.style1 {font-size: 12px}

-->

</style>

</head>

<body>

<form id="form1" name="form1" method="post" action="v2d.php">

<div align="center">การใชงานวาดกราฟ 2 มต<br>

<br>

</div>

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td width="64%"><img src="test.gif?<?=rand(1,3000); ?>" width="610" height="461"

border="1" ></td>

<td width="36%" align="center" valign="top"><table border="0" cellpadding="4"

cellspacing="4" bgcolor="#FFFF99">

<tr>

<td width="24" height="40">x =</td>

<td width="46"><div align="center"><span class="style1">คาเรมตน</span><br>

</div>

<div align="center">

<input name="x1" type="text" size="4" maxlength="2" value="<? echo $x1; ?>" />

</div></td>

<td width="65"><div align="center"><span class="style1">คาระหวางขน

</span><br>

:

<input name="x2" type="text" size="4" maxlength="4" value="<? echo $x2; ?>" />

</div></td>

<td width="61"><div align="center"><span class="style1">คาสดทาย

Page 209: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

200

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

</span><br>

:

<input name="x3" type="text" size="4" maxlength="2" value="<? echo $x3; ?>" />

</div></td>

</tr>

<tr>

<td>f = </td>

<td><div align="center">

<input name="f1" type="text" size="4" maxlength="2" value="<? echo $f1; ?>" />

</div></td>

<td><div align="center"></div></td>

<td><div align="center"></div></td>

</tr>

<tr>

<td>y = </td>

<td colspan="3"><div align="center">

<input name="y1" type="text" size="30" maxlength="30" value="<? echo $y1; ?>"

/>

</div></td>

</tr>

<tr>

<td colspan="4" bgcolor="#FFFFFF"><div align="center">

<input type="submit" name="Submit" value=" คานวณ " />

</div></td>

</tr>

</table></td>

</tr>

</table>

<br>

</form>

</body>

</html>

Page 210: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

201

รปท 5.52 ตวอยางการวาดกราฟสองมตของสมการ y = sin(2*%pi*f*x) ผานเวบไซต

7) ทดสอบการทางานของโปรแกรมโดยการเปดเบราวเซอร IE จากนนพมพ URL คอ 127.0.0.1/

phptoscilab/v2d.php จากนน ทาการวาดกราฟสองมต เชน ถาตองการวาดรปสญญาณ y =

sin(2πfx) เมอ f คอความถมหนวยเปนเฮรตซ กใหปอนขอมลของอนพต x = 0 : 0.01 : 2,

f =1 และ y = sin(2*%pi*f*x) แลวกดปม “คานวณ” หนงครงกจะไดผลลพธตามรปท 5.52

5.6 สรปทายบท บทนไดนาเสนอตวอยางวธการสรางสอการสอนผานเวบไซตโดยใชโปรแกรมภาษา PHP รวมกบ

โปรแกรม SCILAB ซงประกอบดวย การบวก/ลบ/คณ/หาร ของเลขสองจานวน การหาดเทอร

มแนนตและอนเวอรสของเมทรกซ การพสจนคณสมบตของเมทรกซ การหาคาลอการทมฐานใดๆ

การบวกและลบสมการพหนาม และการวาดกราฟสองมต เพอเปนแนวทางใหผอานสามารถนาไป

พฒนาตอยอดหรอประยกตใชงานดานอนได

กราฟสองมต

Page 211: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

202

5.7 แบบฝกหดทายบท 1. จงเขยนโปรแกรมหาคาจานวนเฉพาะตงแต 1 ถง N ผานเวบไซต

2. จงเขยนโปรแกรมหาคาตวคณรวมนอย (ครน.) จานวน 3 จานวน ผานเวบไซต

3. จงสรางโปรแกรมแกสมการพหนามทเปนฟงกชนของตวแปรเดยว ผานเวบไซต

4. จงเขยนโปรแกรมวาดกราฟ 2 มตดงรปท 1.5 (คาสง polarplot) ผานเวบไซต

5. จงเขยนโปรแกรมวาดกราฟ 3 มตดงรปท 1.6 (คาสง plot3d) ผานเวบไซต

Page 212: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

203

บทท 6 ความรเบองตนโปรแกรม SWISH Max

ในบทนจะอธบายพนฐานการใชงานโปรแกรม SWISH Max [11 – 13] ทใชสาหรบสรางไฟลภาพ

เคลอนไหวแบบแฟลช (flash animation) โดยจะเรมจากเครองมอตางๆ ของโปรแกรม SWISH Max

และคาสงพนฐานสาหรบการนาไปประยกตใชงานรวมกบโปรแกรม SCILAB

6.1 ประวตความเปนมาของโปรแกรม SWISH Max

SWISH Max เปนโปรแกรมทพฒนาโดยบรษท SWiSHzone.com สาหรบใชสรางงานทางดาน

กราฟก เชน โลโกโฆษณา แถบประกาศ เมน รวมถงการสรางเวบไซตแบบพลวต (dynamic) ท

สามารถโตตอบกบผใชได นอกจากนยงสามารถสรางงานแบบภาพเคลอนไหว (animation) เชน

การสรางรปภาพเคลอนไหวทมการเลนเสยงเพลงพรอมกนในเวลาเดยวกน เหมอนโปรแกรมแฟลช

แตทาไดสะดวกและรวดเรวกวา เพราะฉะนนจงทาให SWISH Max เปนโปรแกรมทนาสนใจสาหรบ

ผทตองการสรางงานแบบภาพเคลอนไหวเพอนาเสนองานผานทางเวบไซต รวมถงการออกแบบ

และพฒนาเวบไซตใหมรปแบบใหมทนาสนใจ

โดยทวไปโปรแกรม SWISH Max มขอดดงน

มเครองมอตางๆ ทชวยสรางชนงานไดหลากหลาย (ทงการสรางภาพนงและภาพเคลอนไหว) ท

สามารถใสลกเลน (effect) ไดมากกวา 230 แบบ

ควบคมการทางานดวยสครปต (script) เพอใหงานทสรางขนเปนไปตามความตองการ

แสดงผลในโปรแกรม Flash Player, Browser และ Media Player ไดโดยไมตองตดตงโปรแกรม

Macromedia Flash ในเครองคอมพวเตอร

นาเสนองานในรปแบบของไฟล Shockwave Flash (.swf) ทาใหนาไปใชสรางเวบเพจได

แปลงเปนไฟล avi เพอใชในการตดตอภาพยนตรได

โปรแกรม SWISH Max มลขสทธซอฟตแวร อยางไรกตามหนงสอเลมนจะใชโปรแกรม

SWISH Max4 เวอรชนทดลอง (trail version) ซงดาวนโหลดไดทเวบไซต www.swishzone.com

Page 213: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

204

รปท 6.1 ขนตอนการตดตงโปรแกรม SWISH Max4

6.2 การตดตงโปรแกรม SWISH Max4

หนงสอเลมนจะกลาวถงโปรแกรม SWISH Max เวอรชนทดลอง (ใชไดฟร 15 วน) โดยหลงจาก

ทาการดาวนโหลดไฟล SetupSWISH Max4.exe เสรจแลว ใหทาตามขนตอนดงน

1) กดดบเบลคลกทไฟลนเพอทาการตดตงโปรแกรม SWISH Max ตามขนตอนในรปท 6.1 (ก) – (ง)

จากนนกดปม “Install” ในรปท 6.1 (จ) เพอเรมตดตงโปรแกรม

(ค) (ง)

(ก) (ข)

(จ)

ตดตงตวเขารหส LAME

ACM เพมเตม

ยอมรบขอตกลงการใชงาน

เลอกสารบบในการตดตงโปรแกรม

ตดตงโปรแกรม

(ฉ)

Page 214: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

205

รปท 6.2 ขนตอนการตดตง LameACM (ตวเขารหส MP3)

2) ระหวางการตดตงโปรแกรม กจะปรากฏหนาตางใหตดตง LameACM (MP3 encoder) ตาม

รปท 6.1 (ฉ) ใหกดปม OK เพอทาการตดตง LameACM ตามขนตอนในรปท 6.2 (ก) – (ฉ)

3) เมอกดปม “Finish” ในรปท 6.2 (ฉ) กจะไดหนาตางเรมตนการใชงานโปรแกรม SWISH Max4

ตามรปท 6.3

4) กดปม Try ในรปท 6.3 เพอไปทหนาเวบเพจตามรปท 6.4

(ก) (ข)

(ค) (ง)

(จ) (ฉ)

เลอกสารบบในการตดตง LameACM

เปดใชงาน

โปรแกรม Swishmax

Page 215: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

206

รปท 6.3 หนาตางเรมตนการใชงานโปรแกรม SWISH Max4

รปท 6.4 เวบเพจสาหรบการลงทะเบยนแบบชวคราวของโปรแกรม SWISH Max4

5) ปอนอเมลสาหรบการลงทะเบยนแบบชวคราวในรปท 6.4 จากนนกดปม “Go” กจะไดหนาตาง

โปรแกรม SWISH Max4 ตามรปท 6.5

6) เปดอเมลทใชลงทะเบยน และเปดอเมลทสงมาจากบรษท SWiSHzone.com จะพบรหสผาน

ใหนารหสผานนมาวางในชองใสรหสผานในรปท 6.3 กจะสามารถใชงานโปรแกรม SWISH

Max4 ไดตามปกต

ชองใสรหสผาน

Page 216: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

207

รปท 6.5 เวบเพจหลงจากผานการลงทะเบยนแบบชวคราว

6.3 สวนตอประสานกบผใชของโปรแกรม SWISH Max4

เมอเปดโปรแกรม SWISH Max4 จะไดหนาตางตามรปท 6.6 โดยสามารถเรมตนใชงานไดโดยการ

สรางงานใหมขนมา (New) กจะไดหนาตางในรปท 6.7 ซงมสวนตอประสานกบผใชดงน

หมายเลข 1 คอเมนเพมสครปต (script) และลกเลน (effect) ลงในซน (scene)

หมายเลข 2 คอเฟรมแสดงชวงเวลา (timeline) ของภาพเคลอนไหว

หมายเลข 3 คอเครองมอ (tools) หรอกลองเครองมอทใชสาหรบเครองมอพนฐานทวไป

ตามทแสดงในตารางท 6.1

หมายเลข 4 คอซนจดหนา (layout scene) สาหรบแสดงรปและตวอกษรทจดวางไว

หมายเลข 5 คอ Properties ใชแกไขคาคณสมบตตางๆ

หมายเลข 6 คอหนาตางแสดงออบเจกต (object) ตางๆ ทใสเขามาในซน

หมายเลข 7 คอเมนหลก (main menu)

หมายเลข 8 คอแถบเครองมอเลนภาพยนตร (Play Movie)

บอกวารหสผานไดถกสงมาทอเมลทลงทะเบยนแลว

Page 217: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

208

รปท 6.6 หนาตางโปรแกรม SWISH Max4

รปท 6.7 สวนตอประสานกบผใชของโปรแกรม SWISH Max4

1

3

4

5

2

6

7 8

Page 218: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

209

ตารางท 6.1 รายละเอยดของเครองมอพนฐาน

สญลกษณ อปกรณ รายละเอยด

เลอก (Select) เลอก และยายวตถไดตามตองการ

เปลยนรปราง (Reshape) เมอกดคลกขวาทจดของ Shape เลอก Smooth จะ

เปลยนความโคงได

จดการภาพ (Fill Transform) แกไข หรอปรบขนาดภาพทอยใน Image เชน ภาพถาย

เคลอนไหว (Motion) กาหนดตาแหนงใหม ใหวตถ move ไปถงตาแหนงนน

เสน (Line) เขยนเสนตรง ถากาหนด effect เปน move จะกาหนด

properties ของ Rotate to เปน + หรอ - กได

ดนสอ (Pencil) วาดเสนไดโดยอสระ

รปหลายเหลยม (Bezier) กาหนดจด จนคลกจดเดม หรอกดดบเบลคลก

ขอความ (Text) เขยนขอความเปนภาษาไทยหรอภาษาองกฤษ

วงกลม (Ellipse) วาดวงกลม หรอวงร

สเหลยม (Rectangle) วาดสเหลยม

สเหลยมมน (Autoshape) วาดสเหลยมทเปลยนเปนวงกลมหรอวงรได

เลอน (Pan) ยายมมมอง

ยอ/ขยาย (Zoom) การยอและขยายมมมอง (กด Shift จะลดขนาด)

แกขนาด (Scale) ปรบขนาด กวาง และสง (ไมทาให frame1 เปลยน ถา

ปรบ frame20 ใน move)

แกขนาด (Resize) ปรบขนาด กวาง และสง (มผลตอ frame1 ถาปรบ

frame20 ใน move)

หมน (Rotate) หมนภาพตามตาแหนง Anchor

เลอนจด (Distort) ยายเฉพาะมมใดมมหนง ไมมผลตอมมอน

นอกจากนแถบเมนหลก (หมายเลข 7) ในรปท 6.7 รวบรวมคาสงทนยมใชงานดงน

เมน File ประกอบดวย

คาสง รายละเอยด

New สรางไฟลใหม

New Movie การสรางไฟลใหมสาหรบ Movie

Open เรยกไฟลทตองการใชงานโดยมนามสกลเปน .swf

Page 219: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

210

คาสง รายละเอยด

Save การบนทกงานชนงานปจจบนทตองการเกบไว

Save as การบนทกงานชนงานปจจบนทตองการโดยเปลยนเปนชอไฟลอน

Save All การบนทกงานทงหมด

Close ปดชนงานปจจบน

Close ปดชนงานทงหมด

New Project การสรางไฟลใหมสาหรบ Project

Open Project เรยกไฟลทตองการใชงานโดยมนามสกลเปน .swp

Samples เปดงานตวอยางทโปรแกรม SWISH Max4 มมาให เพอใชในการศกษา

Import to Libray การนาขอความ ภาพนง ภาพเคลอนไหว เสยง เขามาใชงาน โดยจะวางไวใน

ไลบรารกอน แลวจงเรยกออกมาใชงานทหลง

Import to Stage การนาขอความ ภาพนง ภาพคลอนไหว เสยง เขามาใชงาน โดยวางภาพบน

หนางานทนท

Test ทดสอบงานทสราง (กอน export งานไปใชจรง) ซงสามารถทดสอบแบบ

เลนผานโปรแกรม SWISH Max หรอทดสอบผานทางเบราวเซอรกได

Export การสงออกงานทสรางขนเพอนาไปใชงาน (ปกตจะเปนไฟลนามสกล

*.swf แตสามารถแปลงเปน .html หรอ .avi กได)

Export Seting การตงคาของการสงออกงาน

Conver Video to FLV แปลงไฟลวดโอเปนไฟล FLV

Recent Movies แสดงไฟลงานทเคยเปดมาแลว

Exit ออกจากโปรแกรม SWISH Max4

เมน Edit ประกอบดวย

คาสง รายละเอยด

Undo ยกเลกขนตอนทกาลงทา ณ ขณะนน

Redo ยกเลกการกระทาของ Undo

Cut object ตดออบเจกต

Copy object คดลอกออบเจกต

Paste EMF การวางเปนไฟล emf (ทตดหรอคดลอกมา)

Paste in Place การวางในพนท (ทตดหรอคดลอกมา)

Paste Special การวางแบบพเศษ (ทตดหรอคดลอกมา)

Delete Scene ลบออบเจกต

Select all Objects เลอกทกออบเจกตในพนทกาลงทางาน (working space)

Deselect All ยกเลกการเลอกออบเจกตทงหมด

Page 220: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

211

คาสง รายละเอยด

Find การคนหาออบเจกต

Replace การแทนท

Properties แสดงคณสมบตของออบเจกตทเลอก

Preference เปนเมนใชปรบทางเลอกการตงคาโปรแกรมสาหรบผใชงาน

เมน View ประกอบดวย

คาสง รายละเอยด

Toolbar แถบเครองมอ (มเมนยอยใหเปดใชงานตางๆ เชน Control bar)

Zoom ขยาย/ลด มมมอง (เชน Zoom in, Zoom out, View at 100%)

Show แสดงไมบรรทดเพออานวยความสะดวกในการกาหนดระยะ โดยจะมเมนยอย เชน

Show rulers และ Show grid เปนตน

Guides ระบเสนกรดแบบแนวนอน (Horizontal) และแนวตง (Vertical)

Snap to Grid ใหออบเจกตวงเขาหาเสนกรด (เมอนาออบเจกตมาวางใกลเสนกรด) เพอทาใหงาย

ตอการวางออบเจกตใหอยในแนวเดยวกน

เมน Insert ประกอบดวย

คาสง รายละเอยด

Scene การแทรกซน (ภายในชนงาน)

Button การแทรกปม (ภายในชนงาน)

Movie clip การแทรกคลปวดโอ (ภายในชนงาน)

External media การแทรกสอมเดยภายนอก (ภายในชนงาน)

Import Sound การแทรกเสยง (ภายนอกชนงาน)

Import Video การแทรกไฟลวดโอ (ภายนอกชนงาน)

Import Image การแทรกภาพ โดยทวไปเปนภาพนง แตสามารถแทรกภาพเคลอนไหว

ประเภท gif ได (ภายนอกชนงาน)

Import Animation การแทรกภาพเคลอนไหวประเภท swf, exe หรอ gif (ภายนอกชนงาน)

Import Vector การแทรกภาพนงประเภท vector เชนไฟล wmf (ภายนอกชนงาน)

Import Text การแทรกขอความ (ปรบแตงคณสมบตตางๆ ของขอความไดท Properties)

Effect การแทรกลกเลน (effect) ใหกบออบเจกตมใหเลอกมากกวา 230 แบบ

Script การแทรกสครปต

Insert Frame การแทรกเฟม 1 ครง (F5)

Delete Frame การลบเฟม 1 ครง (Shift+F5)

Insert Second การแทรกจานวนวนาทของลกเลนครงท 2 (Ctrl+F5)

Page 221: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

212

คาสง รายละเอยด

Delete Second การแทรกจานวนวนาทของลกเลนครงท 2 (Ctrl+Shift+F5)

เมน Modify ประกอบดวย

คาสง รายละเอยด

Movie เปลยน Properties ของ Movie (Ctrl+J)

Scenes แบงซนออกเปนซนเลกๆ

Convert เปลยน Object ทเลอกเปนรปแบบอนๆ เชนเปนปม (button) เปน

ภาพเคลอนไหว (Sprite) หรอเปนรปทรง (Shape) เปนตน

เมน Control ประกอบดวย

คาสง รายละเอยด

Play movie แสดงภาพเคลอนไหวทงไฟล โดยจะเรมจากซนแรกไปจนถงซนสดทาย

(ทไดกาหนดไวในโปรแกรม)

Play Timeline การแสดงผลของงานของลกเลนใน Timeline

Play effect ทดสอบการแสดงผลของลกเลน

Preview Frame ดการแสดงผลในเฟรม

Stop หยดการแสดงผลของภาพเคลอนไหว

Step forward แสดงผลของเฟรมตอไป

Step back ยอนกลบไปดการแสดงผลของเฟรมกอนหนาน 1 เฟรม

Cue to End ดเฟรมสดทายของซน

Rewind to start ดเฟรมแรกสดของซน

เมน Tools ประกอบดวย

คาสง รายละเอยด

Update Content ปรบปรงเนอหา เชน Project Movie เปนตน

FTP ปรบแตงการ upload ไฟลชนงานขน webserver

Preference ปรบทางเลอกสาหรบผใช

Customize ปรบแตงโปรแกรมใหเหมาะกบความตองการผใช

Keyboard map แสดงคยลด

เมน Window ประกอบเมนทแสดง Panel ของโปรแกรม SWISH Max4 ทงหมด

เมน Help ประกอบดวยคมอและตวอยางการใชงานโปรแกรม SWISH Max4 ทงหมด

Page 222: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

213

รปท 6.8 หนาตาง “New Movie or Project” ของโปรแกรม SWISH Max4

รปท 6.9 แสดงการตงคาคณสมบตของภาพยนตร (Movie Properties)

6.4 การสรางชนงานดวยโปรแกรม SWISH Max4

ในทนจะแสดงตวอยางการสรางชนงานดวยโปรแกรม SWISH Max4 ดงน

1) เปดโปรแกรม SWISH Max4 ขนมา จะไดหนาตาง “New Movie or Project” ตามรปท 6.8

2) เลอก default และกดปม OK ในรปท 6.8 จะไดหนาตางในรปท 6.9 จากนนคลกทปม Movie

properties (หมายเลข 5 ในรปท 6.7) และกาหนดขนาดความกวางเทากบ 500 pixels, ความสง

เทากบ 400 pixels, และ Frame Rate เทากบ 25 กจะไดหนาตางตามรปท 6.10

Page 223: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

214

รปท 6.10 หนาตางพนทใชงานทไดกาหนดตามรปท 6.9

รปท 6.11 การเลอกเมนยอยแทรกไฟลเสยง (Import Sound), แทรกไฟลวดโอ (Import Video), แทรกไฟล

รปภาพ (Import Image), และแทรกขอความ (Import Text) ในเมน Insert

6.4.1 การแทรกไฟลรปภาพ

เมอไดหนาตางพนทใชงานตามรปท 6.10 ถาตองการแทรกไฟลรปภาพเขาไปในพนทใชงานกทาได

ดงน ใหเลอกทเมน Insert → Import Image ตามรปท 6.11 จากนนเลอกรปในสารบบทตองการ

แลวกดปม “Open” ในรปท 6.12 กจะไดรปนนมาปรากฏบนพนทใชงานดงรปท 6.13

Page 224: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

215

รปท 6.12 การเลอกไฟลรปภาพในเมนยอย Import Image

รปท 6.13 สญรปและรปภาพทแทรกเขามา

รปภาพทแทรกเขามา

Page 225: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

216

รปท 6.14 การเลอกไฟลเสยงในเมนยอย Import Sound

รปท 6.15 สญรปของไฟลเสยงและไฟลรปภาพในหนาตางแสดงออบเจกต

รปท 6.16 การกดปม Play Movie

6.4.2 การแทรกไฟลเสยง

ในทานองเดยวกนถาตองการแทรกไฟลเสยงเขาไปในพนทใชงานในรปท 6.10 กทาไดดงน ใหไปท

เมน Insert → Import Sound ตามรปท 6.11 จากนนเลอกไฟลเสยงในสารบบทตองการ แลวกด

ปม “Open” ในรปท 6.14 จะไดสญรปของไฟลเสยงปรากฏในหนาตางแสดงออบเจกต (หมายเลข 6

ในรปท 6.7) ตามรปท 6.15 จากนนทดสอบฟงเสยงโดยการคลกทปม Play Movie (Ctrl+Enter)

ตามรปท 6.16 จะไดยนเสยงเพลงทไดแทรกเขามา

Page 226: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

217

รปท 6.17 การเลอกไฟลวดโอในเมนยอย Import Video

รปท 6.18 หนาตาง Import Video

6.4.3 การแทรกไฟลวดโอ

ในทานองเดยวกนถาตองการแทรกไฟลวดโอเขาไปในพนทใชงานในรปท 6.10 กทาไดดงน ไปท

เมน Insert → Import Video ตามรปท 6.11 จากนนเลอกไฟลวดโอในสารบบทตองการ แลวกด

ปม “Open” ในรปท 6.17 กจะแสดงหนาตาง Import Video ในรปท 6.18 ใหเลอกชอง Import

Page 227: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

218

รปท 6.19 สญรปและวดโอทแทรกเขามา

As เปน Embedded Video (ฝงไฟลวดโอเขาไปในไฟลแฟลช) และคลกทปม Import จากนนทดสอบ

การใชงานโดยการกดปม Play Movie (Ctrl+Enter) ตามรปท 6.16 จะเลนไฟล Video ทนาเขามา

จะเลนทงรปและเสยงดงรปท 6.19

6.4.4 การแทรกขอความ

นอกจากนถาตองการแทรกขอความเขาไปในพนทใชงานในรปท 6.10 กทาไดดงน ไปทเมน Insert

→ Import Text ตามรปท 6.11 จากนนเลอกไฟลขอความ (นามสกล .txt) ในสารบบทตองการ

แลวกดปม “Open” ในรปท 6.20 กจะผลลพธตามรปท 6.21

หมายเหต นอกจากนโปรแกรม SWISH Max ไดเตรยมหนาตางเครองมอ (หมายเลข 3 ในรปท 6.7)

สาหรบใชสรางขอความโดยตรงดงแสดงในรปท 6.22 กลาวคอถาตองการเขยนขอความลงในพนท

ใชงาน (หมายเลข 4 ในรปท 6.7) กใหกดเลอกทสญรป และคลกทพนทใชงาน จากนนพมพ

ขอความ “มหาวทยาลยราชภฏนครปฐม” กจะไดผลลพธตามรปท 6.21 เชนกน

วดโอทแทรกเขามา

Page 228: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

219

รปท 6.20 การเลอกไฟลขอความในเมนยอย Import Text

รปท 6.21 สญรปและขอความทแทรกเขามา

ขอความทแทรกเขามา

Page 229: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

220

รปท 6.22 หนาตางเครองมอ (หมายเลข 3 ในรปท 6.6)

รปท 6.23 การเปลยน (ซาย) ขนาดของเสน และ (ขวา) สเสน ในเมน Properties

6.4.5 การวาดเสนและวาดรป

การวาดเสนลงในชนงานสามารถทาไดโดยใชเครองมอ สาหรบวาดเสนตรง (อยในหนาตาง

เครองมอในรปท 6.22) หรอใชเครองมอ สาหรบวาดเสนโคง โดยผใชสามารถเปลยนลกษณะ

ของเสน (เชน ความหนา หรอส) ในเมน Properties ตวอยางเชน กาหนดคาความหนา (Thick-

ness) เพอเปลยนขนาดของเสนตามรปท 6.23 (ซาย) หรอกาหนดสของเสนตามรปท 6.23 (ขวา)

นอกจากนโปรแกรม SWISH Max ยงมเครองมอสรางรปทชอวา Autoshape เมอกดเลอก

ทสญรป จะแสดงเมน 3 รายการคอ 2D, 3D และ Frames ถาสมมตวาตองการสรางรปดาว

แบบสองมต กใหเลอกทรายการ 2D → Star ตามรปท 6.24 (ซาย) แลวนามาวาดทพนทใชงาน

กจะไดรปดาวตามรปท 6.24 (ขวา)

Page 230: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

221

รปท 6.24 (ซาย) การเลอกรปดาวในสญรป Autoshape และ (ขวา) รปดาวในพนทใชงาน

6.4.6 การบนทกชนงาน

เมอสรางชนงานเสรจแลว ถาตองการบนทกชนงานทสรางขน กทาไดโดยการคลกเลอกทเมน File

→ Save และตงชอไฟลตามตองการ แลวกดปม Save สงเกตวาเครองหมาย * ตรงแถบชอเรอง

(Title bar) จะหายไป

6.4.7 การสงออกชนงาน

โปรแกรม SWISH Max สามารถสงออก (export) ชนงานจากไฟลนามสกล .swi (นามสกลของไฟล

ในโปรแกรม SWISH Max) ไปเปนไฟลนามสกล .swf, .html, .exe หรอ .avi และสามารถนาไปใช

นาเสนอชนงานในเวบไซต วดโอ หรอสออนๆ ได โดยการคลกเลอกทเมน File → Export และเลอก

ชนดของไฟลทตองการเปลยน เชน swf และเลอกสารบบทตองเกบไฟลทสงมาไว และกดปม save

6.5 การใสลกเลน โปรแกรม SWISH Max สามารถใสลกเลน (Effect) เพอทาใหออบเจกตสามารถแสดงผลในรปของ

ภาพเคลอนไหวไดหลากหลาย ในทนจะขอยกตวอยางลกเลนทนาสนใจดงน

Fade in ใชสาหรบแสดงออบเจกตขนมาอยางชาๆ ในตาแหนงทตองการ

Fade out ใชสาหรบแสดงออบเจกตใหหายไปอยางชาๆ ในตาแหนงทตองการ

Zoom in ใชสาหรบแสดงการขยายออบเจกต (เหมอนมองออบเจกตในระยะใกล)

Zoom out ใชสาหรบแสดงการยอออบเจกต (เหมอนมองออบเจกตในระยะไกล)

Page 231: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

222

รปท 6.25 ขนตอนการใสลกเลนลงในออบเจกตทตองการ

Slide in ใชสาหรบแสดงการเคลอนทของออบเจกตเปนเสนตรง จากภายนอกหนาจอเขามาส

ภายในจอ โดยจะมคาสงยอยใหเลอกวาตองการใหเคลอนทมาจากทศทางใด

Slide out ใชสาหรบแสดงการเคลอนทของออบเจกตเปนเสนตรง จากภายในหนาจอไปส

ภายนอกจอ โดยจะมคาสงยอยใหเลอกวาตองการใหเคลอนทออกไปในทศทางใด

Blur ใชสาหรบแสดงผลออบเจกตอยางชาๆ โดยเรมจากภาพทไมชดจนเปลยนมาเปนภาพทชด

Appear into position ใชสาหรบแสดงออบเจกตใหปรากฏขนมาอยางชาๆ โดยจะมลกเลน

ยอยใหเลอกอกวาตองการใหหายหรอปรากฏในรปแบบใด

Disappear from position ใชสาหรบแสดงออบเจกตในหายไปอยางชาๆ โดยจะมลกเลนยอย

ใหเลอกอกวาตองการใหหายไปในรปแบบใด

Looping continuously ใชสาหรบแสดงออบเจกตในลกษณะทาซาแบบตอเนองไปเรอยๆ

โดยจะมลกเลนยอยใหเลอกอกวาตองการแสดงซาในรปแบบใด

One off ใชสาหรบแสดงออบเจกตโดยไมแสดง frame แรกโดยจะมลกเลนยอยใหเลอกอก

วาตองการแสดงแบบใด

Return to start ใชสาหรบแสดงผลออบเจกตในลกษณะการกลบสจดเรมตนโดยจะมลกเลน

ยอยใหเลอกอกวาตองการใหกลบสจดเรมตนในรปแบบใด

6.5.1 ตวอยางการใสลกเลนใหกบชนงาน

การใส Effect ใหกบชนงาน ทาไดโดยกดเลอกออบเจกตทตองการใสลกเลน (เชน รปดาว) ตาม

รปท 6.25 (หมายเลข 1) จากนนกดปม Add Effect (หมายเลข 2) และเลอกลกเลนทตองการ

เชน ถาเลอกลกเลนแบบจางเขามา กใหกดเลอกท Fade → Fade In (หมายเลข 3 – 4)

2

3 4

1

Page 232: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

223

รปท 6.26 การปรบแตงลกเลนของ Fade In

(ก) เฟรมท 1 (ข) เฟรมท 10 (ค) เฟรมท 20

รปท 6.27 ผลลพธทไดจากการใชลกเลน Fade In ณ เฟรมตางๆ

นอกจากนยงสามารถปรบแตงลกเลนไดโดยกดเลอกทเมน Effect ในหนาตางแสดงออบ

เจกต (หมายเลข 6 ในรปท 6.7) ซงจะแสดงคณสมบตของลกเลนทใชอยปรากฏขนมา โดยในทน

จะปรากฏ Fade In ตามรปท 6.26 จากนนจงสามารถปรบแตงคาตามตองการได เชน สมมตวา

เปลยนการแสดงผลหนวยเวลาจาก 10 เปน 20 ตามรปท 6.26 จากนนทดสอบโดยการกดปม Play

Movie (หมายเลข 8 ในรปท 6.7) กจะไดผลลพธ ณ ตาแหนงของเฟรมท 1, 10 และ 20

ดงแสดงในรปท 6.27

6.6 การใสสครปตเบองตน โปรแกรม SWISH Max มสครปตเตรยมไวใหมากมาย ในทนจะกลาวถงสครปตทนยมใชงานดงน

6.6.1 การใสสครปตเกยวกบการควบคมการแสดงผล

การใสสครปตเพอควบคมเฟรมมหลายรปแบบ ในทนจะยกตวอยางการกระโดดไปยงเฟรมทตองการ

โดยเลอกทเมน Add Script → Movie Control → Goto and stop → gotoAndStop(FRAME)

ใสคา 20

Page 233: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

224

รปท 6.28 ขนตอนการใสสครปตสาหรบการกระโดดไปยงเฟรมทตองการ (gotoAndPlay)

รปท 6.29 การแกไขสครปตในคาสง gotoAndPlay(FRAME)

ตารางท 6.2 สครปตอนๆ ทเกยวของกบควบคมการแสดงผล

สครปต รายละเอยด

Movie Control>gotoAndPlay>gotoAndPlay(FRAME) แสดงเฟรมทตองการ

Movie Control>gotoAndPlay>nextFrameAndPlay() แสดงเฟรมถดไป

Movie Control>gotoAndPlay>prevFrameAndPlay() แสดงเฟรมกอนหนา

Movie Control>gotoAndPlay>nextSceneAndPlay() แสดงซน (Scene) ถดไป

Movie Control>gotoAndPlay>prevSceneAndPlay() แสดงซน (Scene) กอนหนา

ตามรปท 6.28 กจะปรากฏหนาตางสครปตในรปท 6.29 จากนนใหทดลองแกไขสครปตโดยเปลยน

คา onFrame จาก 1 เปน 20 และคา GotoAndPlay จาก 1 เปน 10 ตามรปท 6.28 ซงในการ

ทางาน เมอเลนไปถงเฟรมท 20 แลวจะกระโดดกลบมาทเลนเฟรมท 10 (ซาไปเรอยๆ) ตารางท 6.2

แสดงตวอยางสครปตอนๆ ทเกยวของกบควบคมการแสดงผล

1

23

4

Page 234: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

225

รปท 6.30 ขนตอนการใสสครปตเพอเชอมโยงไปยงภายนอก (getURL)

รปท 6.31 การแกไขสครปตในคาสง getURL

6.6.2 การใสสครปตเพอสรางการเชอมโยง

การใสสครปตเพอเชอมโยงไปยงภายนอก เชน มหาวทยาลยราชภฏนครปฐม (www.npru.ac.th)

ทาไดโดยการเลอกชนงานหรอออบเจกตทตองการ และกดเลอกทเมน Add Script → Browser/

Network → getURL ตามรปท 6.30 จากนนใสชอเวบไซต http://www.npru.ac.th ในชอง URL

และเลอก _blank ในชอง Window (นนคอการสรางหนาเพจขนมาใหม) ดงแสดงในรปท 6.31

แลวทาการ Export ไฟลออกมาเปนโดยการเลอกทเมน File → Export → HTML+SWF... กจะ

ไดไฟล Movie1.html และ Movie1.swf โดยจะตองนาไปวางในสารบบ www เพอทดสอบการ

ทางาน ซงทาไดโดยการเปดเบราวเซอรขนมาและใสชอ URL เปน 127.0.0.1/Movie1.html กจะ

ปรากฏหนาเวบตามรปท 6.32 จากนนใหกดคลกทรปดาว กจะไดหนาตางใหมเปนหนาเวบของ

มหาวทยาลยราชภฏนครปฐม

1

2 3

Page 235: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

226

รปท 6.32 การทดสอบการทางานของสครปต getURL

รปท 6.33 ขนตอนการใสสครปตเกยวกบเสยง

6.6.3 การใสสครปตเกยวกบเสยง

การใสสครปตเกยวกบเสยงทาไดโดยการเลอกเฟรมหรอซนทตองการใสเสยง ตวอยางเชน สมมตวา

เลอก Scene_1 และเลอกวนาทแรกตามรปท 6.33 ใหกดเลอกทเมน Add Script → Sound →

playSound(…) และกดปม Import ตามรปท 6.34 จากนนเลอกไฟลเสยงทตองการและคลกทปม

Open (เชนเดยวกบรปท 6.14) กจะแสดงสญรปเพลงปรากฏอยในรายการตามรปท 6.35 และใน

สวนของหนาตางสครปต ใหใสชอไฟลเสยงทจะแทรกอยในสครปต ในทานองเดยวกนถาตองการ

ทดสอบการทางานกใหกดปม Play Movie (ตามรปท 6.16)

6.7 สรปทายบท

บทนไดอธบายพนฐานการใชงานโปรแกรม SWISH Max ทใชสาหรบสรางไฟลภาพเคลอนไหว

แบบแฟลช โดยเรมจากวธการตดตงโปรแกรม SWISH Max การใชเมนและเครองมอตางๆ ของ

โปรแกรม SWISH Max รวมทงคาสงพนฐานทจาเปนสาหรบการนาไปประยกตใชงานรวมกบ

โปรแกรม SCILAB เพอสรางสอการเรยนการสอน ซงจะอธบายในบทตอไป

คลกทรปดาว

Page 236: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

227

รปท 6.34 ขนตอนการใส สครปต เกยวกบเสยง (ตอ)

รปท 6.35 การใสไฟลเสยงเขาไปในเฟรมทตองการ

6.8 แบบฝกหดทายบท

1. จงอธบายประวตความเปนมาของโปรแกรม SWISH Max พอสงเขป

2. จงอธบายการใชงาน Import to Libray และ Import to Stage วาแตกตางกนอยางไร

3. จงยกตวอยางลกเลน (effect) ทใชไดในโปรแกรม SWISH Max มา 5 ลกเลน

4. ถาตองการแสดงผลออบเจกต (object) โดยเรมจากภาพทไมชดใหเปลยนมาเปนภาพทชด ควรใช

ลกเลน (effect) ใด

Page 237: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

228

5. ถาตองการสรางวตถเพอเชอมโยงเวบไซต Google ควรใชสครปตอะไร

6. จงสรางชนงานเพอนาเสนอรปตวเอง ใสเสยงเพลง และลกเลนไมนอยกวา 20 วนาท

Page 238: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

229

บทท 7 การสรางสอการสอนดวยโปรแกรม

SWISH Max และ SCILAB

ในบทนจะกลาวถงการเขยนแอคชนสครปต (AS: action script) ของโปรแกรม SWISH Max เพอ

นามาประยกตใชสรางสอการสอนรวมกบโปรแกรม SCILAB โดยเรมจากประวตความเปนมาของ

แอคชนสครปต การสงหรอโหลดขอมลระหวางไฟลภาพเคลอนไหวแบบแฟลช (flash animation)

กบไฟล PHP และแสดงตวอยางการสรางสอการสอนผานเวบไซตทมภาพเคลอนไหวแบบแฟลช

รวมกบโปรแกรม SCIlAB ซ งประกอบดวย การหากระแสภายในวงจรไฟฟา การหาตว

คณรวมนอย และการวาดกราฟสองมต

7.1 ประวตความเปนมาของแอคชนสครปต

แอคชนสครปต (หรอเรยกสนๆ วา AS) เปนภาษาทใชงานกบไฟลแฟลชเปนหลก โดยสามารถ

เขยนไดจากโปรแกรมอนๆ เชน AIR (Adobe integrated runtime) [14], FlexBuilder [15] หรอ

FlashDevelop [16] โดยประโยชนของ AS คอชวยใหผทใชงานแฟลชสามารถโตตอบกบออบเจกต

ตางๆ ได นอกจากนเมอ AS พฒนาไปมากขน การเชอมตอกบแหลงขอมลอนๆ กทาไดมากขน

รวมถงบางสงทแฟลชตองอาศยภาษาอนชวยในอดต กสามารถทาไดดวยตนเองในปจจบน

เพราะฉะนนนกพฒนา (developer) จงจาเปนตองตดตามการพฒนาเหลานอยสมาเสมอ

7.2 ขนตอนการเขยนสครปตโปรแกรม SWISH Max รวมกบ

SCILAB

การเขยนสครปตโปรแกรม SWISH Max รวมกบ SCILAB สามารถอธบายไดตามแผนภาพ

บลอกตามรปท 7.1

Page 239: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

230

รปท 7.1 แผนภาพบลอกแสดงการเขยนสครปตโปรแกรม SWISH Max รวมกบโปรแกรม SCILAB

7.2.1 การสงหรอโหลดขอมลระหวางไฟลภาพเคลอนไหวแบบแฟลชกบไฟล PHP

การเขยนแอคชนสครปตในโปรแกรม SWISH Max เพอสงหรอโหลดขอมลระหวางไฟลภาพ

เคลอนไหวแบบแฟลช (.swf) กบไฟล PHP มสครปตทใชงานหลกดงน

สครปตการสงขอมลไปยงไฟล PHP

1 sendAndLoad(url, target, method);

เมอ url คอชอไฟลทรบสงขอมล (เชน test.php), target คอตวแปรออบเจกตทเปน LoadVars หรอ

XML, และ method คอวธการสงขอมล (เชน POST, GET เปนตน)

สครปตการโหลดขอมลมายงไฟลภาพเคลอนไหวแบบแฟลช

1

2

3

target.onLoad = function(){

Parmeter1 = Parmeter2;

}

เมอ target คอตวแปรออบเจกตทเปน LoadVars หรอ XML, Parameter1 คอตวแปรรบขอมลใน

สครปตของโปรแกรม SWISH Max, และ Parameter2 คอตวแปรสงขอมลจากไฟล PHP

7.2.2 ตวอยางการสรางเวบไซตทมภาพเคลอนไหวแบบแฟลชรวมกบ SCILAB

ในหวขอนจะแสดงตวอยางการสรางสอการสอนผานเวบไซตทมภาพเคลอนไหวแบบแฟลชรวมกบ

โปรแกรม SCIlAB ทงสามแบบดงน

Flash Animation (.swf)

ไฟล PHP

SCILAB

โปรแกรม SWISH Max

โปรแกรม Dreamweaver

โปรแกรม SCILAB

Page 240: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

231

7.2.2.1 การคานวณหากระแสไฟฟาแบบภาพเคลอนไหว

จากกฎของโอหม (Ohm’s law) กระแสไฟฟา (I) ภายในวงจรไฟฟาหาไดจาก

R

V I = (แอมแปร)

โดยท V คอแรงดนไฟฟามหนวยเปนโวลต และ R คอตวความตานทานมหนวยเปนโอหม (ohm)

ดงนนการสรางสอการสอนผานเวบไซตเพอใชคานวณหากระแสไฟฟาในวงจรไฟฟาทาไดดงน

1) เปดโปรแกรม Adobe Dreamweaver CS 5.5 ขนมา และใหตงชอไฟลวา test.php เกบไวใน

สารบบ C:\AppServ\www\Flashtoscilab โดยใหพมพโคดในไฟลดงน

โคดภายในไฟล test.php

1

2

3

4

5

6

7

8

9

10

11

12

13

<?php

$V = stripslashes($_POST['V']); //รบขอมลจากแฟลชให $V

$R = stripslashes($_POST['R']); //รบขอมลจากแฟลชให $R

$output = ""; //เรมตนตวแปร

$code1 = "result = $V/$R;\nsavematfile('elec.txt','result');\nexit;"; //เขยนโคดลงใน

ตวแปรชอวา $code1

file_put_contents("elec.sce", $code1); //สรางไฟลชอ elec.sce

$path=$_SERVER["SystemRoot"];

$com = "$path/scilab-4.1.2/bin/Scilex.exe -nwni -nb -f elec.sce";

exec($com); //ประมวลผลไฟลสครปต

$output = number_format(file_get_contents("elec.txt"));

echo ("&total=$output"); //สงผลลพธ (total) ไปยงไฟลแฟลช

echo ("&code=$code1"); //สงผลลพธ (code) ไปยงไฟลแฟลช

?>

2) เปดโปรแกรม SWISH Max ขนมา และออกแบบฟอรมของภาพเคลอนไหวแบบแฟลช โดยม

การกาหนด Textbox ทสาคญดงน (ตามรปท 7.2)

Textbox รายละเอยด คณสมบต

V ใชรบขอมล V แรงดนไฟฟา Input

R ใชรบขอมล R ตวตานทาน Input

total_a แสดงคา I (กระแส) Dynamic

total_b แสดงโคดจากโปรแกรม SCILAB Dynamic

Page 241: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

232

รปท 7.2 การกาหนดคณสมบตของตวแปร R, V, total_a และ total_b

รปท 7.3 คณสมบตสาหรบความสวางของหลอดไฟ (Light)

3) ในทนภาพเคลอนไหวจะเปนแสงสวางของหลอดไฟทมขนาดเลกหรอขนาดใหญ โดยถา R มคา

มาก หลอดไฟกจะสวางนอย แตถา R มคานอย หลอดไฟกจะสวางมาก โดยในทนจะมการใช

Shape ซงกาหนดคาเรมตนความกวางเทากบ 0 และความยาวเทากบ 0 และตงชอวา Light

ดงแสดงในรปท 7.3 - 7.4

Page 242: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

233

รปท 7.4 การออกแบบสวนตอประสาน และการตงชอ Shape เทากบ Light

4) จากนนคลกปม “คานวณ” (ทสรางขนจาก Shape และตงชอวา button) และคลกท Tab สครปต

และพมพสครปตดงตอไปน

สครปต

1

2

3

4

5

6

7

8

9

10

11

12

on (release){

if (R.text >= 100){ //ตรวจสอบคา R วามขนาดเทาใด

Light._xscale = 0;

Light._yscale = 0;

}else if(R.text >= 90){

Light._xscale = 10;

Light._yscale = 10;

}else if(R.text >= 80){

Light._xscale = 20;

Light._yscale = 20;

}else if(R.text >= 70){

Light._xscale = 30;

R

Vbutton

Page 243: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

234

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

Light._yscale = 30;

}else if(R.text >= 60){

Light._xscale = 40;

Light._yscale = 40;

}else if(R.text >= 50){

Light._xscale = 50;

Light._yscale = 50;

}else if(R.text >= 40){

Light._xscale = 60;

Light._yscale = 60;

}else if(R.text >= 30){

Light._xscale = 70;

Light._yscale = 70;

}else if(R.text >= 20){

Light._xscale = 80;

Light._yscale = 80;

}else if(R.text >= 10){

Light._xscale = 90;

Light._yscale = 90;

}else if(R.text >= 5){

Light._xscale = 100;

Light._yscale = 100;

}else if(R.text >= 1){

Light._xscale = 120;

Light._yscale = 120;

}

var lv = new LoadVars(); //สรางตวแปรออบเจกตชอวา lv

lv.V = V.text; //สงคาตวแปร V.text ใหกบ lv.V

lv.R = R.text; //สงคาตวแปร R.text ใหกบ lv.R

lv.sendAndLoad("test.php",lv, "POST"); //สงคา V, R ไปยง test.php ในรปแบบ POST

lv.onLoad = function(){ //โหลดผลลพธจาก php มายงตวแปรในแฟลช

total_a.text = this.total; //รบคาตวแปร total มายงตวแปร total_a.text (ภายในแฟลช)

total_b.text = this.code; //รบคาตวแปร code มายงตวแปร total_b.text (ภายในแฟลช)

}

}

Page 244: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

235

รปท 7.5 ขนตอนการ Export ไฟลงาน

5) ทาการ Export ไฟลออกมา โดยเลอกท File → Export → HTML + SWF หรอกด Ctrl + P

ดงรปท 7.5 จากนนเลอกสารบบท C:\AppServ\www\flashtoscilab และตงชอวา electric.html

คลกปม save

6) ทดสอบการทางานโดยการเปดโปรแกรม Google Chrome และพมพ URL คอ 127.0.0.1/

flashtoscilab/electric.html ตามรปท 7.6

7) ทดลองปอนคา V = 5 และใสคา R = 70 จากนนกดปมคานวณ 1 ครง ซงจะพบวาหลอดไฟ

มความสวางนอย แตถาใสคา R = 1 จะพบวาหลอดไฟมความสวางมาก ตามรปท 7.7

Page 245: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

236

รปท 7.6 ผลลพธของเวบไซต electic.html

รปท 7.7 ผลลพธการปอนขอมลเวบไซต electic.html

R = 1

Page 246: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

237

7.2.2.2 การหาตวคณรวมนอยแบบภาพเคลอนไหว

การสรางสอการสอนผานเวบไซตเพอใชคานวณหาตวคณรวมนอย (ครน.) แบบภาพเคลอนไหว

ทาไดดงน

1) เปดโปรแกรม Adobe Dreamweaver CS 5.5 ขนมา และใหตงชอไฟลวา lcm.php เกบไวใน

สารบบ C:\AppServ\www\Flashtoscilab โดยใหพมพโคดในไฟลดงน

โคดภายในไฟล lcm.php

1

2

3

4

5

6

7

8

9

10

11

12

13

<?php

$input1 = stripslashes($_POST['input1']); //รบขอมลจากแฟลชให $input1

$input2 = stripslashes($_POST['input2']); //รบขอมลจากแฟลชให $input2

$input3 = stripslashes($_POST['input3']); //รบขอมลจากแฟลชให $input3

$output = "";

$code1 = "result = lcm(int16([$input1 $input2 $input3]));\noutput =

iconvert(result,0);\nsavematfile('lcm.txt','output');\nexit;"; //เขยนโคดลงในตวแปร

ชอวา $code1

file_put_contents("lcm.sce", $code1); //สรางไฟลชอ lcm.sce

$path=$_SERVER["SystemRoot"];

$com = "$path/scilab-4.1.2/bin/Scilex.exe -nwni -nb -f lcm.sce";

exec($com); //ประมวลผลไฟลสครปต

$output = number_format(file_get_contents("lcm.txt"));

echo ("&output=$output"); //สงผลลพธ (output) ไปยงไฟลแฟลช

?>

2) เปดโปรแกรม SWISH Max ขนมา และออกแบบฟอรมของภาพเคลอนไหวแบบแฟลชตาม

รปท 7.8 โดยมการกาหนด Textbox ทสาคญดงน (ตามรปท 7.9)

Textbox รายละเอยด คณสมบต

input1 กลองขอความสาหรบคาอนพตตวท 1 Input

input2 กลองขอความสาหรบคาอนพตตวท 2 Input

input3 กลองขอความสาหรบคาอนพตตวท 3 Input

output กลองขอความสาหรบแสดงผลลพธ Dynamic

Page 247: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

238

รปท 7.8 การออกแบบสวนตอประสานการหาตวคณรวมนอย (ครน.)

รปท 7.9 การกาหนดคณสมบตของตวแปร input1, input2, input3 และ output

3) ในทนจะใชลกเลนทมชอวา “Squeeze and cascade in” สาหรบแสดงภาพเคลอนไหว โดยให

Duration เทากบ 20 สาหรบ bginput และ bgoutput แสดงดงในรปท 7.10

bginput

bgoutput

input1 input2 input3

output

button

Page 248: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

239

รปท 7.10 แสดง Time line ทแทรกลกเลนไวเรยบรอยแลว

4) จากนนคลกปม “คานวณ” (ทสรางขนจาก Shape และตงชอวา button) และคลกท Tab สครปต

และพมพสครปตดงตอไปน

สครปต

1

2

3

4

5

6

7

8

9

10

on (release){

var lv = new LoadVars(); //สรางตวแปรออบเจกตชอวา lv

lv.input1 = input1.text; //สงคาตวแปร input1.text ใหกบ lv.input1

lv.input2 = input2.text; //สงคาตวแปร input2.text ใหกบ lv.input2

lv.input3 = input3.text; //สงคาตวแปร input3.text ใหกบ lv.input3

lv.sendAndLoad("lcm.php",lv, "POST"); //สงคา input1, input2 และ input3 ไปยง

lcm.php ในรปแบบ POST

lv.onLoad = function(){

output.text = this.output; //รบคาตวแปร code มายงตวแปร total_b.text (ภายในแฟลช)

}

}

5) ทาการ Export ไฟลออกมา โดยเลอกท File → Export → HTML + SWF หรอกด Ctrl + P

จากนนเลอกสารบบท C:\AppServ\www\flashtoscilab และตงชอวา lcm.html คลกปม save

6) ทดสอบการทางานโดยการเปดโปรแกรม Google Chrome และพมพ URL คอ 127.0.0.1/

flashtoscilab/lcm.html ตามรปท 7.11

Page 249: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

240

รปท 7.11 ผลลพธเวบไซต lcm.html

รปท 7.12 ผลลพธทไดจากการปอนขอมลผานเวบไซต lcm.html

7) ทดลองปอนคาตวเลขสามจานวนคอ 12, 15 และ 30 จากนนกดปมคานวณกจะไดผลลพธเปน

คาตวคณรวมนอยของเลขสามจานวนนเทากบ 60 และแสดงเปลยนสสลบไปมาตามรปท 7.12

7.2.2.3 การวาดกราฟสองมตแบบภาพเคลอนไหว

การสรางสอการสอนผานเวบไซตเพอใชการวาดกราฟสองมตแบบภาพเคลอนไหวทาไดดงน

1) เปดโปรแกรม Adobe Dreamweaver CS 5.5 ขนมา และใหตงชอไฟลวา 2d.php เกบไวใน

สารบบ C:\AppServ\www\Flashtoscilab โดยใหพมพโคดในไฟลดงน

Page 250: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

241

โคดภายในไฟล 2d.php

1

2

3

4

5

6

7

8

9

10

11

12

<?php

$x1 = stripslashes($_POST['x1']); //รบขอมลจากแฟลชให $x1

$x2 = stripslashes($_POST['x2']); //รบขอมลจากแฟลชให $x2

$x3 = stripslashes($_POST['x3']); //รบขอมลจากแฟลชให $x3

$f = stripslashes($_POST['f']); //รบขอมลจากแฟลชให $f

$y = stripslashes($_POST['y']); //รบขอมลจากแฟลชให $y

$code1 = "x = $x1:$x2:$x3;\n f = $f;\n y = $y;\n plot(x, y);\n

xs2gif(0,'test.gif');exit();"; //เขยนโคดลงในตวแปรชอวา $code1

file_put_contents("f2d.sce", $code1); //สรางไฟลชอ f2d.sce

$path=$_SERVER["SystemRoot"];

$com = "$path/scilab-4.1.2/bin/Scilex.exe -nwni -nb -f f2d.sce";

exec($com); //ประมวลผลไฟลสครปต

?>

2) เปดโปรแกรม SWISH Max ขนมา และออกแบบฟอรมของภาพเคลอนไหวแบบแฟลชตามรป

ท 7.13 โดยมการกาหนด Textbox ทสาคญดงน (ตามรปท 7.14)

Textbox รายละเอยด คณสมบต

x1 สาหรบตวแปร x1 คาเรมตน Input

x2 สาหรบตวแปร x2 คาระหวางขน Input

x3 สาหรบตวแปร x3 คาสดทาย Input

f สาหรบตวแปร f คาความถ Input

Y สาหรบตวแปร y คาสมการ Input

Page 251: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

242

รปท 7.13 การออกแบบสวนตอประสานการวาดกราฟสองมตแบบภาพเคลอนไหว

รปท 7.14 การกาหนดคณสมบตของตวแปร x1, x2, x3, f และ y

x1 x2 x3

yf

Page 252: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

243

รปท 7.15 ขนตอนการเปลยน Shape เปนรปแบบ Movie Clip

3) ในทนจะใช Shape สฟาคอยๆ จางออก และแสดงกราฟทสรางขนจากสมการเพอแสดงภาพ

เคลอนไหว โดยการวาด Shape ทมขนาด 610×461 pixels และตงชอวา pic จากนนกดคลก

ขวา และเลอก Convert → Convert to Movie Clip ตามทแสดงในรปท 7.15

4) จากนนสราง Shape สฟาขนาด 550×512 pixels ปดทบ pic และใชลกเลนโดยการกดคลกขวา

ท Time Line และเลอก Fade → Fade out ตามรปท 7.16 และ 7.17

1

34

2

Page 253: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

244

รปท 7.16 ขนตอนใสลกเลน Fade Out

รปท 7.17 แสดง Time line ทใสลกเลน Fade Out

5) สรางปมคานวณโดยใชเครองมอ Rectangle tool วาดรปสเหลยมจานวน 1 อน และใชเครองมอ

Text tool พมพขอความ “คานวณ” ตามรปท 7.18

5

67

Page 254: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

245

รปท 7.18 การสรางปม “คานวณ”

6) จากนนคลกปม “คานวณ” (ทสรางขนจาก Shape ชอวา button) และคลกท Tab สครปต และ

พมพสครปตดงตอไปน

สครปต

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

on (press) {

var lv = new LoadVars(); //สรางตวแปรออบเจกตชอวา lv

lv.x1 = x1.text; //สงคาตวแปร x1.text ใหกบ lv.x1

lv.x2 = x2.text; //สงคาตวแปร x2.text ใหกบ lv.x2

lv.x3 = x3.text; //สงคาตวแปร x3.text ใหกบ lv.x3

lv.f = f.text; //สงคาตวแปร f.text ใหกบ lv.f

lv.y = y.text; //สงคาตวแปร y.text ใหกบ lv.y

lv.sendAndLoad("2d.php", lv, "POST"); //สงคา x1, x2, x3, f และ y ไปยง 2d.php ใน

รปแบบ POST

lv.onLoad = function(){

d = new Date(); //สรางตวแปรออบเจกตชอวา d

kill = d.getTime(); //สรางตวแปร kill ใหมคาเทากบเวลาปจจบน

pic.loadMovie("test.gif"+"?kill="+kill); //โหลดไฟลรปกราฟ (test.gif) เขามาโดยสราง

ตวแปรชอวา kill เพอระบรปกราฟลาสดในขณะนน (ถาไมใสจะไมเปลยนรปกราฟ)

gotoAndPlay(1);

play();

pic._x = -30;

pic._y = 0;

pic._xscale = 100;

Page 255: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

246

18

19

20

pic._yscale = 100;

}

}

รปท 7.19 ผลลพธของเวบไซต f2d.html

7) ทาการ Export ไฟลออกมา โดยเลอกท File → Export → HTML + SWF หรอกด Ctrl + P

จากนนเลอกสารบบท C:\AppServ\www\flashtoscilab และตงชอวา f2d.html คลกปม save

8) ทดสอบการทางานโดยการเปดโปรแกรม Google Chrome และพมพ URL คอ 127.0.0.1/

flashtoscilab/f2d.html ตามรปท 7.19

9) ทดลองปอนคา x = 0 : 0.01 : 2, f = 1, และ y = sin(2*%pi*x*f) จากนนกดปม “คานวณ”

กจะพบวามการ Fade Out ของ Shape สฟา 1 ครง แลวจงเปลยนเปนรปกราฟทโปรแกรม

SCILAB วาดขนมา ดงรปท 7.20

Page 256: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

247

รปท 7.20 ผลลพธทไดจากการทดลองวาดกราฟ y = sin(2*%pi*x*f)

7.3 สรปทายบท

บทนสรปขนตอนการเขยนแอคชนสครปตของโปรแกรม SWISH Max เพอนามาประยกตใชสราง

สอการสอนรวมกบโปรแกรม SCILAB โดยเรมจากประวตความเปนมาของแอคชนสครปต การสง

หรอโหลดขอมลระหวางไฟลภาพเคลอนไหวแบบแฟลชกบไฟล PHP และแสดงตวอยางการสราง

สอการสอนผานเวบไซตทมภาพเคลอนไหวแบบแฟลชรวมกบโปรแกรม SCIlAB นอกจากนผเขยน

ไดพฒนาตวอยางสอการสอนแบบภาพเคลอนไหวเรอง “เมทรกซ” เพอใหผอานไดทดลองใชงาน

ซงสามารถดศกษาไดทเวบไซต http://scilab.npru.ac.th/matrix/index.php

Page 257: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

248

7.4 แบบฝกหดทายบท

1. จงเขยนโปรแกรมการบวกเมทรกซสองเมทรกซแบบภาพเคลอนไหว

2. จงเขยนโปรแกรมการหาคาดเทอรมแนนท (Determinant) ของเมทรกซแบบภาพเคลอนไหว

3. จงสรางโปรแกรมการหาไมเนอร (Minor) ของเมทรกซแบบภาพเคลอนไหว

4. จงเขยนโปรแกรมวาดกราฟ 2 มตโดยใสลกเลน 1 วธ ตามรปท 1.5 (คาสง polarplot)

5. จงเขยนโปรแกรมวาดกราฟ 3 มตโดยใสลกเลน 1 วธ ตามรปท 1.6 (คาสง plot3d)

Page 258: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

249

บรรณานกรม

[1] SCILAB [online], Available http://www.scilab.org [Access: October 17, 2012]

[2] CeCILL [online], Available http://www.cecill.info/index.en.html [Access: October

17, 2012]

[3] MATWORKS [online], Available http://www.mathworks.com [Access: October 17,

2012]

[4] ปยะ โควนททววฒน, คมอโปรแกรมภาษา SCILAB สาหรบผเรมตน (ฉบบปรบปรงใหม),

เพชรเกษมการพมพ, 2551

[5] Visual Basic [online], Available http://msdn.microsoft.com/en-us/library/vstudio/

2x7h1hfk.aspx [Access: April 13, 2013].

[6] พรอมเลศ หลอวจตร, คมอเรยน Visual Basic 2010, ซเอดยเคชน, มนาคม 2554.

[7] PHP [online], Available http://php.net/ [Access: April 14, 2013]

[8] ภาษาพเอชพ [online], Available http://th.wikipedia.org/wiki/ภาษาพเอชพ [Access:

April 14, 2013]

[9] PHP Tutorial [online], Available http://www.w3schools.com/php/ [Access: April

14, 2013]

[10] PHP [online], Available http://www.thaicreate.com/php.html [Access: April 14,

2013]

[11] Swishmax [online], Available http://www.swishzone.com [Access: April 14, 2013]

[12] bmk2 [online], Available http://www.bmk2.net/study/swishmax.doc [Access: April

14, 2013]

[13] thaiall [online], Available http://www.thaiall.com/swishmax/indexo.html [Access:

April 14, 2013]

Page 259: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก

250

[14] Adobe AIR [online], Available http://www.adobe.com/products/air.html [Access:

April 14, 2013]

[15] Google Developer [online], Available https://developers.google.com/maps/

documentation/flash/tutorial-flexbuilder [Access: April 14, 2013]

[16] FlashDevelop [online], Available http://www.flashdevelop.org/ [Access: April 14,

2013]

Page 260: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก
Page 261: ALL - BOOK - V3 - home.npru.ac.thhome.npru.ac.th/piya/webscilab/file/Scilab_Book2.pdf · หนังสือเล่มนี้จะเริ่มต้นอธ ิบายจาก