ไซแลบติวเตอร์ 3
การดำเนินการเมทริกซ์
การสร้างเมทริกซ์และการดำเนินการเมทริกซ์อย่างง่าย
การดำเนินการเมทริกซ์ สร้างผนึกรวมไว้ในตัวไซแลบ คือ การบวก การลบ การคูณ ทรานสโพส อินเวิร์สชั่น ดีเตอร์มีแนนท์ ฟังก์ชันตรีโกณ ล็อก ฟังก์ชันเอ็กโพเนนเชี่ยล และ อื่นๆ อีกมาก ให้ศึกษาตัวอย่างต่อไปนี้
-->a=[1 2 3] สร้างเว็คเตอร์แถวหนึ่ง
-->a=[1; 2; 3] สร้างเว็คเตอร์คอลัมน์หนึ่ง
-->a=[1 2 3]' สร้างเว็คเตอร์คอลัมน์เหมือนกับทีกล่าวถึงมาแล้วข้างบน
-->x=[1 2 3]; y=[4 5 6 7]; สร้างเมทริกซ์ a ซึ่งเกิดจากการรวมของ x และ y เทียบได้เหมือนกัน -->a=[x y] (จำนวนแถวเท่ากัน)
-->a=[1 2 3; 4 5 6; 7 8 9]; กำหนด 3x3 เมทริกซ์เซมิโคลอนแสดงให้เห็นการจบแถวหนึ่งๆ
-->b=a'; ทรานสโพส a และเก็บไว้ใน b. เครื่องหมาย Apostrophe(‘) คือตัวกระทำ
ทรานสโพส
-->c=a+b บวก a กับ bและเก็บผลไว้ใน c. a และ b จะต้องมีขนาดเท่ากัน
ans = ถ้าเป็นอย่างอื่นไซแลบจะรายงานข้อผิดพลาด 2 6 10
6 10 14
10 14 18
-->d=a-b ลบ b ออกจาก a และเก็บผลใน d.
-->e=a*b คูณ a ด้วย b และเก็บผลไว้ใน e. a และ b ต้องเทียบได้ตรงกันสำหรับการคูณ
ans = เมทริกซ์
14 32 50
6 10 14
50 122 194
-->f=[3 1 2; 1 5 3; 2 3 6]; กำหนด 3x3 เมทริกซ์ด้วชื่อ f.
-->g=inv(f)0.4285714 0. -0.1428571 อินเวิร์ทเมทริกซ์ f และเก็บผลไว้ใน g. fจะต้องเป็น square และมีค่าบวก
0. 0.2857143 -0.1428571 แน่นอน(square and positive definite) การเตือนจะปรากฏขึ้นถ้าไม่ถูกต้อง
-0.1428571 -0.1428571 0.2857143 ตามงื่อนไข
-->f*g คำตอบต้องเป็น identity matrix
-->det(f) Determinant ของ f.
ans =
49
-->log(a) เมทริกซ์ของ log ของแต่ละองค์ประกอบของ a.
การดำเนินการเมทริกซ์บางอย่างเช่นการคูณ เอ็กโพเนนเชียล สามารถดำเนนการตามลำดับ
องค์ประกอบเป็นหลัก
-->a .* b คูณกันแต่ละองค์ประกอบ (Element by element multiplication)ans =
30 36 42
66 81 96
102 126 150
-->a^2 ให้ผลเหมือนกันกับ a*a.
ans =
30 36 42
66 81 96
102 126 150
-->a .^2 แต่ละองค์ประกอบยกกำลังสอง
ans =
1 4 9
16 25 36
49 64 81
การบวกเมทริก และการลบเมทริกซ์ เป็นการดำเนินการตามองค์ประกอบ ส่วนการบวกและการลบตามองค์ประกอบจะให้ผลเป็นข้อผิดพลาด ดังเช่นa. + b จะให้ข้อผิดพลาด error
a. - b
มีฟังก์ชันที่อำนวยความสะดวกบางอย่าง เพื่อใช้ในเมทริกซ์ที่ใช้กันทั่วไป เล่น เมทริกซ์ศูนย์ (zero matrices) เมทริกซ์ไอเดนติตี (identity matrices) และอื่นๆ
-->a=zeros(5,8) สร้าง 5x8 matrix ด้วยทุกองค์ประกอบเป็นศูนย์
-->b=ones(4,6) สร้าง 4x6 matrix ด้วยทุกองค์ประกอบเป็น 1
-->c=eye(3,3) สร้าง 3x3 identity matrix
-->d=eye(3,3)*10 สร้าง 3x3 diagonal matrix
-->x = rand(3,5) สร้างเมทริกซ์ มี3แถว 5 คอลัมน์ องค์ประกอบเมทริกซ์จากการสุ่ม
ตัวเลขมีค่า 0 – 1
-->y = int(rand(3,5)*100); สร้างเมทริกซ์ 3 แถว 5 คอลัมน์องค์ประกอบเป็นเลขจำนวนเต็มสุ่ม
ระหว่าง 0 และ 100
เป็นไปได้ที่จะหาขนาด(size) ความยาว (length) และชนิด(type) ของตัวแปรไซแลบ เช่น
-->y=[1:5; 6:10;11:15]; size คืนกลับค่าจำนวนแถวและคอลัมน์-->size(y) ในเมทริกซ์ y
ans =
3. 5.
-->length(y) จำนวนองค์ประกอบใน y
ans =
15
สร้างช่วงของตัวเลขที่ที่ทำเป็นเว็คเตอร์ ให้ศึกษาคำสั่งต่อไปนี้
-->a=[1:5] สร้างเว็คเตอร์ มี 5 องค์ประกอบดังนี้ [1, 2, 3, 4, 5]
-->b=[0:0.5:5] สร้างเวคเตอร์หนึ่งมี 11 องค์ประกอบดังนี้
[0, 0.5, 1.0,1.5, ... 4.5, 5.0]
ช่วงที่ต้องการเริ่มจากค่าเริ่มต้น ค่าที่เพิ่ม และ ค่าสุดท้าย แยกด้วยโคลอน (:). ถ้ากำหนดเพียงสองค่า (ให้แยกด้วยเพียงโคลอนเดียว ด้วยค่าเริ่มต้นและค่าสุดท้าย และคิดให้มีการเพิ่มค่าทีละ 1(a:b เป็นรูปแบบย่อของ a:1:b ซึ่ง a และ b เป็นสเกลล่า) การเพิ่มจะเป็นค่าลบ หากค่าเริ่มต้นมากกว่าค่าท้าย
ช่วง(range) มีบทบาทสำคัญในการดำเนินการ sub-matrics จะเห็นได้ในในติวเตอเรียลต่อไป
ในการสร้างเมทริกซ์ว่างด้วยคำสั่ง
-->a=[]
-->size(a)
ans =
0 0
-->whos - name a
Name Type Size Bytes
a constant 0x0 0
ans constant 1x2 0
แบบฝึกหัด 3 การสร้างเมทริกซ์ และการดำเนินการพื้นฐานเมทริกซ์บางอย่าง
1. สามารถใช้ตัวดำเนินการ .+ เหมือนกับที่ใช้ตัวดำเนินการ .* หรือไม่ ? (Ans: ไม่ได้ จริงแล้วก็ไม่จำเป็นต้องใช้ แทนกัน ).
2. ขนาดของเมทริกซ์ว่างเป็นเท่่าใด a = []? (Ans: Size 0 x 0)
3. ขณะที่สร้างช่วง สามารถที่จะกำหนดการเพิ่มช่วงแบบลบได้หรือไม่? (Ans: ได้ ถ้าค่าเริ่มต้นมากกว่าค่าท้าย)
4. ใช้คำสั่งใดในการสร้างค่า 0-2pi ที่การเพิ่มขึ้นทีละ p/16? (Ans: 0:%pi/16:2*%pi).
5. คำสั่งใดที่แยกองค์ประกอบทางแนวทะแยง ของเมทริกซ์จรุรัส ให้อยู่ในรูปของเว็คเตอร์? (Ans: a = diag(x) สร้างเวคเตอร์หนึ่งที่มีองค์ประกอบตามแนวทะแยงของเมทริกซ์ x ).
6. กำหนด square matrix a, แล้วสร้างเป็น matrix b ที่องค์ประกอบตามแนวทะแยงที่เหมือนกับใน เมทริกซ์ a แต่องค์ประกอบอื่นทั้งหมดเป็น 0 ? (Ans: b = eye(a) .* a).
7. ให้สกัดเทอม off-diagonal (ที่ offset of 1) ของเมทริกซ์จตุรัส(square matrix)ให้อยู่ในรูปเวคเตอร์
(Ans: b = diag(x, 1) เพื่อที่จะสะกัดเทอมดังกล่าว ตามแนวทะแยงและ b = diag(x, -1) เพื่อสะกัด เทอมด้านล่าง ตามแนวทะแยง b = diag(x) คือทางลัดสำหรับ b = diag(x, 0). ค่าปริยาย offset เป็น zero
8. ให้สร้างเมทริกซ์ขนาด 5x5 ให้มีองค์ประกอบตามที่ต้องการตามแนวทะแยง, ด้านบนแนวทะแยง และด้านล่างแนวทะแยง (Ans: b = diag([1:5]) สร้างเมทริกซ์ขนาด 5x5 ที่ซึ่งองค์ประกอบตามแนวทะแยงเป็นองค์ประกอบของเว็คเตอร์ [1 2 3 4 5]).
9. ให้สร้างเมทริกซ์ขนาด5x5 ให้มีองค์ประกอบที่ต้องการทางด้านบนของแนวทะแยงหลัก (Ans: b = diag([1:4], 1) ให้สร้างเมทริกซ์ขนาด 5x5 ของจำนวนศูนย์ และนำองค์ประกอบของเว็คเตอร์ [1 2 3 4] ด้านบนแนวทะแยงหลัก เพื่อวางเว็คเตอร์ตามด้านล่างของแนวทะแยงหลัก โดยใช้ b= diag([1:4], -1)).
10. ให้สร้างเมทริกซ์แบบ tri-diagonal ขนาด 5x5 ด้วยองค์ประกอบเฉพาะตามด้านบนและล่างตามแนวทะแยง(Ans: b = diag([1:5]) + diag([6:9], 1) + diag([10:13], -1) จะนำเว็คเตอร์ [1 2 3 4 5] บนแนวทะแยงหลัก, [6 7 8 9] อยู่บนแนวทะแยง ด้านบนของแนวทะแยงหลัก
-->a=[1 2 3] สร้างเว็คเตอร์แถวหนึ่ง
-->a=[1; 2; 3] สร้างเว็คเตอร์คอลัมน์หนึ่ง
-->a=[1 2 3]' สร้างเว็คเตอร์คอลัมน์เหมือนกับทีกล่าวถึงมาแล้วข้างบน
-->x=[1 2 3]; y=[4 5 6 7]; สร้างเมทริกซ์ a ซึ่งเกิดจากการรวมของ x และ y เทียบได้เหมือนกัน -->a=[x y] (จำนวนแถวเท่ากัน)
-->a=[1 2 3; 4 5 6; 7 8 9]; กำหนด 3x3 เมทริกซ์เซมิโคลอนแสดงให้เห็นการจบแถวหนึ่งๆ
-->b=a'; ทรานสโพส a และเก็บไว้ใน b. เครื่องหมาย Apostrophe(‘) คือตัวกระทำ
ทรานสโพส
-->c=a+b บวก a กับ bและเก็บผลไว้ใน c. a และ b จะต้องมีขนาดเท่ากัน
ans = ถ้าเป็นอย่างอื่นไซแลบจะรายงานข้อผิดพลาด 2 6 10
6 10 14
10 14 18
-->d=a-b ลบ b ออกจาก a และเก็บผลใน d.-->b=a'; ทรานสโพส a และเก็บไว้ใน b. เครื่องหมาย Apostrophe(‘) คือตัวกระทำ
ทรานสโพส
-->c=a+b บวก a กับ bและเก็บผลไว้ใน c. a และ b จะต้องมีขนาดเท่ากัน
ans = ถ้าเป็นอย่างอื่นไซแลบจะรายงานข้อผิดพลาด 2 6 10
6 10 14
10 14 18
-->e=a*b คูณ a ด้วย b และเก็บผลไว้ใน e. a และ b ต้องเทียบได้ตรงกันสำหรับการคูณ
ans = เมทริกซ์
14 32 50
6 10 14
50 122 194
ans = เมทริกซ์
14 32 50
6 10 14
50 122 194
-->f=[3 1 2; 1 5 3; 2 3 6]; กำหนด 3x3 เมทริกซ์ด้วชื่อ f.
-->g=inv(f)0.4285714 0. -0.1428571 อินเวิร์ทเมทริกซ์ f และเก็บผลไว้ใน g. fจะต้องเป็น square และมีค่าบวก
0. 0.2857143 -0.1428571 แน่นอน(square and positive definite) การเตือนจะปรากฏขึ้นถ้าไม่ถูกต้อง
-0.1428571 -0.1428571 0.2857143 ตามงื่อนไข
-->f*g คำตอบต้องเป็น identity matrix
-->det(f) Determinant ของ f.
ans =
49
ans =
49
-->log(a) เมทริกซ์ของ log ของแต่ละองค์ประกอบของ a.
การดำเนินการเมทริกซ์บางอย่างเช่นการคูณ เอ็กโพเนนเชียล สามารถดำเนนการตามลำดับ
องค์ประกอบเป็นหลัก
-->a .* b คูณกันแต่ละองค์ประกอบ (Element by element multiplication)ans =
30 36 42
66 81 96
102 126 150
30 36 42
66 81 96
102 126 150
-->a^2 ให้ผลเหมือนกันกับ a*a.
ans =
30 36 42
66 81 96
102 126 150
ans =
30 36 42
66 81 96
102 126 150
-->a .^2 แต่ละองค์ประกอบยกกำลังสอง
ans =
1 4 9
16 25 36
49 64 81
ans =
1 4 9
16 25 36
49 64 81
การบวกเมทริก และการลบเมทริกซ์ เป็นการดำเนินการตามองค์ประกอบ ส่วนการบวกและการลบตามองค์ประกอบจะให้ผลเป็นข้อผิดพลาด ดังเช่นa. + b จะให้ข้อผิดพลาด error
a. - b
a. - b
มีฟังก์ชันที่อำนวยความสะดวกบางอย่าง เพื่อใช้ในเมทริกซ์ที่ใช้กันทั่วไป เล่น เมทริกซ์ศูนย์ (zero matrices) เมทริกซ์ไอเดนติตี (identity matrices) และอื่นๆ
-->a=zeros(5,8) สร้าง 5x8 matrix ด้วยทุกองค์ประกอบเป็นศูนย์
-->b=ones(4,6) สร้าง 4x6 matrix ด้วยทุกองค์ประกอบเป็น 1
-->c=eye(3,3) สร้าง 3x3 identity matrix
-->d=eye(3,3)*10 สร้าง 3x3 diagonal matrix
-->x = rand(3,5) สร้างเมทริกซ์ มี3แถว 5 คอลัมน์ องค์ประกอบเมทริกซ์จากการสุ่ม
ตัวเลขมีค่า 0 – 1
-->y = int(rand(3,5)*100); สร้างเมทริกซ์ 3 แถว 5 คอลัมน์องค์ประกอบเป็นเลขจำนวนเต็มสุ่ม
ระหว่าง 0 และ 100
-->x = rand(3,5) สร้างเมทริกซ์ มี3แถว 5 คอลัมน์ องค์ประกอบเมทริกซ์จากการสุ่ม
ตัวเลขมีค่า 0 – 1
-->y = int(rand(3,5)*100); สร้างเมทริกซ์ 3 แถว 5 คอลัมน์องค์ประกอบเป็นเลขจำนวนเต็มสุ่ม
ระหว่าง 0 และ 100
เป็นไปได้ที่จะหาขนาด(size) ความยาว (length) และชนิด(type) ของตัวแปรไซแลบ เช่น
-->y=[1:5; 6:10;11:15]; size คืนกลับค่าจำนวนแถวและคอลัมน์-->size(y) ในเมทริกซ์ y
ans =
3. 5.
-->length(y) จำนวนองค์ประกอบใน y
ans =
15
ans =
3. 5.
-->length(y) จำนวนองค์ประกอบใน y
ans =
15
สร้างช่วงของตัวเลขที่ที่ทำเป็นเว็คเตอร์ ให้ศึกษาคำสั่งต่อไปนี้
-->a=[1:5] สร้างเว็คเตอร์ มี 5 องค์ประกอบดังนี้ [1, 2, 3, 4, 5]
-->b=[0:0.5:5] สร้างเวคเตอร์หนึ่งมี 11 องค์ประกอบดังนี้
[0, 0.5, 1.0,1.5, ... 4.5, 5.0]
[0, 0.5, 1.0,1.5, ... 4.5, 5.0]
ช่วงที่ต้องการเริ่มจากค่าเริ่มต้น ค่าที่เพิ่ม และ ค่าสุดท้าย แยกด้วยโคลอน (:). ถ้ากำหนดเพียงสองค่า (ให้แยกด้วยเพียงโคลอนเดียว ด้วยค่าเริ่มต้นและค่าสุดท้าย และคิดให้มีการเพิ่มค่าทีละ 1(a:b เป็นรูปแบบย่อของ a:1:b ซึ่ง a และ b เป็นสเกลล่า) การเพิ่มจะเป็นค่าลบ หากค่าเริ่มต้นมากกว่าค่าท้าย
ในการสร้างเมทริกซ์ว่างด้วยคำสั่ง
-->a=[]
-->size(a)
ans =
0 0
-->whos - name a
Name Type Size Bytes a constant 0x0 0
ans constant 1x2 0
แบบฝึกหัด 3 การสร้างเมทริกซ์ และการดำเนินการพื้นฐานเมทริกซ์บางอย่าง
1. สามารถใช้ตัวดำเนินการ .+ เหมือนกับที่ใช้ตัวดำเนินการ .* หรือไม่ ? (Ans: ไม่ได้ จริงแล้วก็ไม่จำเป็นต้องใช้ แทนกัน ).
(Ans: b = diag(x, 1) เพื่อที่จะสะกัดเทอมดังกล่าว ตามแนวทะแยงและ b = diag(x, -1) เพื่อสะกัด เทอมด้านล่าง ตามแนวทะแยง b = diag(x) คือทางลัดสำหรับ b = diag(x, 0). ค่าปริยาย offset เป็น zero
ไซแลบติวเตอร์เรียล 2 พื้นที่ทำงานและไดเร็คทอรีทำงาน
(The Workspace and Working Directory)
ขณะที่สิ่งแวดล้อมของ Scilab เป็นด้านที่มองเห็นได้ของ Scilab, ยังมีด้านอื่นที่ไม่สามารถที่มองเห็นได้ นั่นก็คือเนื้อที่ความจำที่ตัวแปรทั้งหมดและฟังก์ชันถูกเก็บไว้ และเรียกบริเวณนี้ว่าพื้นที่ทำงาน (Workspace) มีหลายครั้งที่จำเป็นต้องตรวจสอบเนื้อที่เก็บ เพื่อที่จะตรวจสอบดู่ว่าเป็นตัวแปรหนึ่ง หรือฟังก์ชันหนึ่งได้กำหนดไว้หรือไม่ คำสั่งต่อไปนี้ช่วยให้ผู้ใช้ตรวจสอบเนื้อที่ความจำ ได้แก่ who , whos และ who_user(). ให้ใช้ความช่วยเหลือออนไลน์เพื่อเรียนรู้มากขึ้นเกี่ยวกับคำสั่งเหล่านี้
คำสั่ง who แสดงรายการชื่อของตัวแปรในบริเวณทำงาน Scilab ให้สังเกตว่าชื่อตัวแปรที่นำหน้าด้วย “%” มีตัวแปรเฉพาะหลายตัวที่ใช้เป็นประจำและดังนั้นได้กำหนดไว้ก่อนใน Scilab. รวมทั้ง
%pi(π ), %e ( e ), %i (✓-1 ), %inf ( ∞ ), %nan (NaN) และอื่นๆ
%pi(π ), %e ( e ), %i (✓-1 ), %inf ( ∞ ), %nan (NaN) และอื่นๆ
คำสั่ง whos แสดงรายการตัวแปร ตามด้วยจำนวนความจำที่ใช้ในบริเวณทำงาน ตัวแปรที่แสดงรายการสามารถเลือกบนฐานชนิด หรือชื่อ ดังบางตัวอย่างดังนี้
-->whos() แสดงเนื้อหาทั้งหมดของพื้นที่ทำงาน รวมทั้งฟังก์ชัน ไลบรารี และตัวคงที่
-->whos -type constants แสดงเฉพาะตัวแปรที่สามารถเก็บตัวคงที่จำนวนจริงและเชิงซ้อน ชนิดอื่น เป็นบูลีน สตริง ฟังก์ชัน ไลบรารี โพลีโนเมียลและอื่นๆ สำหรับรายการที่ สมบูรณ์ใช้คำสั่ง -->help typeof.
-->whos -name nam แสดงรายการตัวแปรทั้งหมด ซึ่งชื่อขึ้นต้นด้วยตัวอักขระ nam
เพื่อที่จะเข้าใจว่า Scilab จัดการอย่างไรกับตัวเลข ให้ทดลองคำสั่งต่อไปนี้ และตามด้วยการใช้คำสั่ง whos ดังต่อไปนี้
-->a1=5; กำหนดตัวแปรจำนวนจริงด้วยชื่อ 'a1'
-->a2=sqrt(-4) กำหนดตัวแปรตัวเลขเชิงซ้อนด้วยชื่อ 'a2'
-->a3=[1, 2; 3, 4] กำหนดเมทริกซ์ 2x2 ด้วยชื่อ 'a3'
-->whos -name a แสดงรายการตัวแปรที่ชื่อขึ้นต้นด้วยตัวอักษร 'a'
Name Type Size Bytes
a3 constant 2 by 2 48
a2 constant 1 by 1 32
a1 constant 1 by 1 24
ต่อไปให้ทดลองคำสั่งต่อไปนี้:
-->a1=sqrt(-9) แปลง 'a1'ให้เป็นเลขเชิงซ้อน to a complex number
-->whos -name a สังเกตว่าตอนนี้t 'a'เป็นตัวเลขเชิงซ้อน
-->a1=a3 แปลง 'a1' ไปเป็นเมทริกซ์
-->whos -name a สังเกตว่า 'a' ตอนนี้เป็นเมทริกซ์
-->save('ex01.dat') บันทึกตัวแปรทั้งหมดในพื้นที่ทำงานไปยังไฟล์ในดิสค์ชื่อ ex01.dat
-->load('ex01.dat') โหลดหรือเรียกตัวแปรทุกตัวจากไฟล์ในดิสค์ex01.dat มายังพื้นที่ทำงาน
ให้สังเกตจุดสำคัญต่อไปนี้
Scilab จัดให้ตัวเลขสเกลล่าเป็เมทริกซ์ขนาด 1x1 (และไม่เป็นเหมือนตัวเลขธรรมดา)
เพราะว่าชนิดข้อมูลพื้นฐานใน Scilab เป็นเมทริกซ์อย่างหนึ่ง
Scilab แปลงชนิดของตัวแปรโดยอัตโนมัติตามความต้องการตามสถานะการณ์ จึงไม่จำเป็นต้องมีการกำหนดชนิดของตัวแปร
แบบฝึกหัด 2 พื้นที่ทำงานและไดเร็คทอรีทำงาน
1. ชนิดข้อมูลที่ใช้ได้ในไซน์แลบมีอะไรบ้าง ?
(ตอบ: ให้พิมพ์คำสั่ง help type ก็จะแสดงรายการชนิดข้อมูลที่มีใช้)2. คำสั่งอะไรที่แสดงรายการตัวแปรทั้งหมดที่มีอยู่ในพื้นที่ทำงานไซแลบที่ขึ้นต้นด้วยอักขระ”sa”?
(ตอบ: whos –name sa)
3. ใช้คำสั่งใดแสดงรายการตัวแปรทั้งหมดในพื้นที่ทำงานไซแลบที่มีชนิดข้อมูลเป็นบูลีน
(ตอบ: whos –type Boolean)
4. ตัวคงที่ piในไซแลบหาค่าได้อย่างไร ?
(ตอบ %pi)
5. คำสั่งใดที่ใช้หาว่าไดเรคทอรีทำงานล่าสุดเป็นอะไรอยู่ที่ไหน?
(ตอบ: pwd )
6. ที่ใดที่สามารถหาไดเรคทอรีทำงานปัจจุบันล่าสุดได้?
(ตอบ: จากไฟล์เมนู disp Current Directory)
7. เปลี่ยนไดเรคทอรีทำงานปัจจุบัน/ล่าสุดไปเป็นตำแหน่งที่แตกต่างออกไปได้อย่างไร?
(ตอบ: cd (“chane directory”) หรือไปที่เมนูไฟล์ Change Directory และเลือกไดเรคทอรีที่จะไป ในไดอะล็อกบ็อก)8. ทำไมจึงเป็นเรื่องสำคัญการที่รู้ไดเร็คทอรีทำงานปัจจุบันล่าสุด?
(ตอบ เพราะว่าเป็นตำแหน่งโดยปริยายที่ไซแลบบันทึกไฟล์ทั้งหมดไว้ นอกจากว่าได้ระบุตำแหน่งเส้นทางเต็มในการเข้าถึงไว้อย่างชัดเจน)9. ไซแลบเป็นภาษาที่เน้นการใช้ชนิดข้อมูลหรือไม่
(ตอบ สำหรับภาษาที่เน้นชนิดข้อมูลนั้น แต่ละตัวแปรและชนิดข้อมูลของตัวแปรจะต้องกำหนดก่อนเป็นสิ่งแรก ก่อนที่จะนำไปใช้ ยิ่งกว่านั้น ทันทีที่กำหนดชนิดแล้วมักจะไม่สามารถเปลี่ยนชนิด ให้ดูในวิกิพีเดียสำหรับนิยามของ การเน้นชนิดข้อมูล (strongly Typed) เหมือนกับที่ได้เขียนไว้ หรือไม่ และอะไรคือ static typing และ type safety?)
1. ชนิดข้อมูลที่ใช้ได้ในไซน์แลบมีอะไรบ้าง ?
(ตอบ: ให้พิมพ์คำสั่ง help type ก็จะแสดงรายการชนิดข้อมูลที่มีใช้)2. คำสั่งอะไรที่แสดงรายการตัวแปรทั้งหมดที่มีอยู่ในพื้นที่ทำงานไซแลบที่ขึ้นต้นด้วยอักขระ”sa”?
(ตอบ: whos –name sa)
3. ใช้คำสั่งใดแสดงรายการตัวแปรทั้งหมดในพื้นที่ทำงานไซแลบที่มีชนิดข้อมูลเป็นบูลีน
(ตอบ: whos –type Boolean)
4. ตัวคงที่ piในไซแลบหาค่าได้อย่างไร ?
(ตอบ %pi)
5. คำสั่งใดที่ใช้หาว่าไดเรคทอรีทำงานล่าสุดเป็นอะไรอยู่ที่ไหน?
(ตอบ: pwd )
6. ที่ใดที่สามารถหาไดเรคทอรีทำงานปัจจุบันล่าสุดได้?
(ตอบ: จากไฟล์เมนู disp Current Directory)
7. เปลี่ยนไดเรคทอรีทำงานปัจจุบัน/ล่าสุดไปเป็นตำแหน่งที่แตกต่างออกไปได้อย่างไร?
(ตอบ: cd (“chane directory”) หรือไปที่เมนูไฟล์ Change Directory และเลือกไดเรคทอรีที่จะไป ในไดอะล็อกบ็อก)8. ทำไมจึงเป็นเรื่องสำคัญการที่รู้ไดเร็คทอรีทำงานปัจจุบันล่าสุด?
(ตอบ เพราะว่าเป็นตำแหน่งโดยปริยายที่ไซแลบบันทึกไฟล์ทั้งหมดไว้ นอกจากว่าได้ระบุตำแหน่งเส้นทางเต็มในการเข้าถึงไว้อย่างชัดเจน)9. ไซแลบเป็นภาษาที่เน้นการใช้ชนิดข้อมูลหรือไม่
(ตอบ สำหรับภาษาที่เน้นชนิดข้อมูลนั้น แต่ละตัวแปรและชนิดข้อมูลของตัวแปรจะต้องกำหนดก่อนเป็นสิ่งแรก ก่อนที่จะนำไปใช้ ยิ่งกว่านั้น ทันทีที่กำหนดชนิดแล้วมักจะไม่สามารถเปลี่ยนชนิด ให้ดูในวิกิพีเดียสำหรับนิยามของ การเน้นชนิดข้อมูล (strongly Typed) เหมือนกับที่ได้เขียนไว้ หรือไม่ และอะไรคือ static typing และ type safety?)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น