สงสัยข้อสอบครูผู้ช่วยกรณีพิเศษ กศจ. กทม. ครั้งที่ 2/2560 วิชาเอก - คอมพิวเตอร์ ครับ
โจทย์ถามว่า
"ข้อใดต่อไปนี้เขียนเลขฐานไม่ถูกต้อง"
1. 5A2
16
2. 2073
8
3. 290
10
4. 1010.10
2 <--- ข้อนี้มั่วเลขฐาน 2 ครับ เพราะจำไม่ได้ แต่ตัวเลขเป็นทศนิยมและทศนิยมหลักสุดท้ายเป็น 0 ครับ
จากการวิเคราะห์ด้วยตัวเองพบว่ามันก็สามารถเขียนได้ทุกแบบ ไม่มีแบบไหนผิด แต่มีข้อ 3 กับ ข้อ 4 ที่น่าจะพอเป็นไปได้
ข้อ 3.
29010
เลขฐาน 10 ไม่จำเป็นต้องใส่ฐาน ซึ่งจะเขียน 290 หรือ 290
10 มันก็ไม่ผิดในระบบเลขฐาน แค่ไม่จำเป็นต้องเขียน หรือมีผู้เชี่ยวชาญด้านคณิตศาสตร์ท่านอื่นช่วยชี้แจงหน่อยครับ
ข้อ 4.
1010.102
- เลขฐานสองในวิชาคณิตศาสตร์สามารถมีทศนิยมได้ และทศนิยมตัวสุดท้ายเป็น 0 ก็ไม่จำเป็นต้องเขียนเช่นกัน 123.40 ก็เท่ากับ 123.4 หรือ 101110.1100 ก็มีค่าเท่ากับ 101110.11 จะเขียน 0 ต่อท้ายหรือไม่ก็ไม่ผิด แค่ไมจำเป็นต้องเขียน ประเด็นเดียวกับตัวเลือกข้อ 3 ครับ
- แต้ถ้าในวิชาคอมพิวเตอร์ เลขฐาน 2, 8, 16 จะไม่มีระบบทศนิยม ถ้าเขียนทศนิยมแบบนี้ก็อาจจะมองว่าผิดได้ แต่...ข้อสอบข้อถัดไปกลับให้หาผลบวกของเลขฐานสอง 1111.011
2 (15.375) + 11.101
2 (3.625) ซึ่งมันก็จะตอบว่า 10011
2 (19) ซึ่งโจทย์ก้ให้เลขฐาน 2 ที่เป็นทศนิยมมา แบบนี้จะบอกว่า เลขฐาน 2 มีทศนิยมแล้วผิด ก็ไม่ได้อีก
รบกวนผู้เชี่ยวชาญทางคณิตศาสตร์และคอมพิวเตอร์ชี้แนะหน่อย ขอบคุณมากครับ
เพิ่มเติมอีกหนึ่งข้อครับ
โจทย์ถามว่า
"ผลลัพธ์ของคำสั่ง printf("\nABC"); คือข้อใด" <-- ABC ผมจำข้อความไม่ได้นะครับ
ตัวเลือกมีดังนี้ (อาจจะจำได้ไม่ทั้งหมดนะครับ)
1. แสดงผล:"ABC"
2. แสดงผล:"\nABC"
3. แสดงผล:ABC
4. แสดงผล:\nABC
ซึ่งหากมองเผินๆ แล้วข้อ 3 น่าจะถูกต้องที่สุด แต่ในความเป็นจริง \n คือ Escape Sequence ของภาษาที่หมายถึงการขึ้นบรรทัดใหม่ แต่ตัวเลือกทั้ง 4 ข้อไม่มีข้อใดแสดงให้เห็นการขึ้นบรรทัดใหม่เลยครับ นี่ยังไม่นับว่าระบบปฏิบัตการที่ใช้ว่าเป็น Unix / Linux / Windows / Mac ที่ใช้การขึ้นบรรทัดใหม่ไม่เหมือนกันอีก \n บ้าง \r บ้าง \r\n แต่ก็ยังโชดดี Compiler ภาษา C ในปัจจุบันจะ Convert ให้ถูกต้องกับ OS โดยอัตโนมัติแล้ว
สงสัยข้อสอบครูผู้ช่วย 2/2560 วิชาเอก - คอมพิวเตอร์ ครับ
โจทย์ถามว่า
"ข้อใดต่อไปนี้เขียนเลขฐานไม่ถูกต้อง"
1. 5A216
2. 20738
3. 29010
4. 1010.102 <--- ข้อนี้มั่วเลขฐาน 2 ครับ เพราะจำไม่ได้ แต่ตัวเลขเป็นทศนิยมและทศนิยมหลักสุดท้ายเป็น 0 ครับ
จากการวิเคราะห์ด้วยตัวเองพบว่ามันก็สามารถเขียนได้ทุกแบบ ไม่มีแบบไหนผิด แต่มีข้อ 3 กับ ข้อ 4 ที่น่าจะพอเป็นไปได้
ข้อ 3. 29010
เลขฐาน 10 ไม่จำเป็นต้องใส่ฐาน ซึ่งจะเขียน 290 หรือ 29010 มันก็ไม่ผิดในระบบเลขฐาน แค่ไม่จำเป็นต้องเขียน หรือมีผู้เชี่ยวชาญด้านคณิตศาสตร์ท่านอื่นช่วยชี้แจงหน่อยครับ
ข้อ 4. 1010.102
- เลขฐานสองในวิชาคณิตศาสตร์สามารถมีทศนิยมได้ และทศนิยมตัวสุดท้ายเป็น 0 ก็ไม่จำเป็นต้องเขียนเช่นกัน 123.40 ก็เท่ากับ 123.4 หรือ 101110.1100 ก็มีค่าเท่ากับ 101110.11 จะเขียน 0 ต่อท้ายหรือไม่ก็ไม่ผิด แค่ไมจำเป็นต้องเขียน ประเด็นเดียวกับตัวเลือกข้อ 3 ครับ
- แต้ถ้าในวิชาคอมพิวเตอร์ เลขฐาน 2, 8, 16 จะไม่มีระบบทศนิยม ถ้าเขียนทศนิยมแบบนี้ก็อาจจะมองว่าผิดได้ แต่...ข้อสอบข้อถัดไปกลับให้หาผลบวกของเลขฐานสอง 1111.0112 (15.375) + 11.1012 (3.625) ซึ่งมันก็จะตอบว่า 100112 (19) ซึ่งโจทย์ก้ให้เลขฐาน 2 ที่เป็นทศนิยมมา แบบนี้จะบอกว่า เลขฐาน 2 มีทศนิยมแล้วผิด ก็ไม่ได้อีก
รบกวนผู้เชี่ยวชาญทางคณิตศาสตร์และคอมพิวเตอร์ชี้แนะหน่อย ขอบคุณมากครับ
เพิ่มเติมอีกหนึ่งข้อครับ
โจทย์ถามว่า "ผลลัพธ์ของคำสั่ง printf("\nABC"); คือข้อใด" <-- ABC ผมจำข้อความไม่ได้นะครับ
ตัวเลือกมีดังนี้ (อาจจะจำได้ไม่ทั้งหมดนะครับ)
1. แสดงผล:"ABC"
2. แสดงผล:"\nABC"
3. แสดงผล:ABC
4. แสดงผล:\nABC
ซึ่งหากมองเผินๆ แล้วข้อ 3 น่าจะถูกต้องที่สุด แต่ในความเป็นจริง \n คือ Escape Sequence ของภาษาที่หมายถึงการขึ้นบรรทัดใหม่ แต่ตัวเลือกทั้ง 4 ข้อไม่มีข้อใดแสดงให้เห็นการขึ้นบรรทัดใหม่เลยครับ นี่ยังไม่นับว่าระบบปฏิบัตการที่ใช้ว่าเป็น Unix / Linux / Windows / Mac ที่ใช้การขึ้นบรรทัดใหม่ไม่เหมือนกันอีก \n บ้าง \r บ้าง \r\n แต่ก็ยังโชดดี Compiler ภาษา C ในปัจจุบันจะ Convert ให้ถูกต้องกับ OS โดยอัตโนมัติแล้ว