ขณะที่สิ่งแวดล้อมของ
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.
เป็นบูลีน สตริง ฟังก์ชัน ไลบรารี โพลีโนเมียลและอื่นๆ สำหรับรายการที่ สมบูรณ์ใช้คำสั่ง -->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?)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น