Lab 4


char และ String

ทบทวนคุณสมบัติบางประการของ char และ String ที่ต้องใช้ในปฏิบัติการครั้งนี้

 

ISBN

หนังสือที่พิมพ์กันทั้งหลายในโลกนี้จะมีหมายเลข ISBN ขนาด 10 หลัก ตัวอย่างเช่น

หนังสือ "การออกแบบและวิเคราะห์อัลกอริทึม" เขียนโดยสมชาย ประสิทธิ์จูตระกูล จัดพิมพ์โดยสำนักงานพัฒนาวิทยาศาสตร์และเทคโนโลยีแห่งชาติ มี ISBN คือ 974 229 026 1

เลขสิบหลักของ ISBN นั้นมีเลขหลักที่สิบ (หลักขวาสุด) เป็นตัวตรวจสอบความถูกต้องของอีก 9 ตัวทางซ้าย (เรียกว่า check digit)   ให้ dk แทนตัวเลขหลักที่ k จะได้ว่า check digit ต้องมีค่าเท่ากับ

เช่น ถ้า 9 หลักซ้ายของ ISBN คือ 974229026 สามารถคำนวณ check digit ได้

1x9 + 2x7 + 3x4 + 4x2 + 5x2 + 6x9 + 7x0 + 8x2 + 9x6 = 177

check digit คือ 177 mod 11  =  1

เนื่องจากขั้นตอนสุดท้ายในการหา check digit มาจากการ mod ด้วย 11 ซึ่งมีค่าได้ตั้งแต่ 0 ถึง 10  สำหรับกรณีที่ได้ค่าเป็น 10  จะใช้ตัวอักษร X ที่ตำแหน่ง check digit

สิ่งที่ต้องการ

เขียนโปรแกรมเพิ่มใน ISBN ให้ทำงานดังนี้

    • รอรับ ISBN จากผู้ใช้ทางแป้นพิมพ์
    • ตรวจสอบว่า ISBN ที่ได้รับถูกต้องหรือไม่
    • ISBN ที่ไม่ถูกต้องมี 4 แบบคือ
      1. มีไม่ครบ หรือมีเกิน 10 หลัก
      2. เก้าหลักทางซ้ายมีบางตัวไม่ใช่ตัวเลข หรือ
        หลักที่สิบ (ขวาสุด) ไม่ใช่ตัวเลขและไม่ใช่ X
      3. check digit มีค่าไม่ถูกต้องตามกฎ
    • ให้แสดงผลของการตรวจสอบทางจอภาพ ดังนี้
      • ถ้าถูกต้อง ให้แสดงคำว่า CORRECT
      • ถ้าไม่ถูกต้อง
        • แบบที่ 1 ให้แสดงคำว่า INCORRECT 1
        • แบบที่ 2 ให้แสดงคำว่า INCORRECT 2
        • แบบที่ 3 ให้แสดงคำว่า INCORRECT 3

ดังตัวอย่างข้างล่างนี้

             


คะแนนเต็ม : 10 คะแนน

  • เมื่อเขียนเสร็จ
    • ถ้าต้องการสั่งทำงาน และกรอกข้อมูลเอง ก็ให้กดปุ่ม F5
    • แต่ถ้าต้องการให้ระบบตรวจสอบความถูกต้องและให้คะแนนด้วย ให้กดปุ่ม F6
      (ระบบจะสุ่มข้อมูล 20 คำ แล้วส่งไปทดสอบโปรแกรม ISBN ที่เขียนขึ้น ถ้าทำงานถูกต้องก็ให้คะแนน ชุดละ 0.5 คะแนน)
  • เมื่อใดที่ระบบถามว่าจะส่งผลหรือไม่ ก็ควรให้ส่ง
    (จะส่งกี่ครั้งก็ได้ ระบบจะเก็บครั้งที่ได้คะแนนมากที่สุด)
  • หมายเหตุ : จะให้ระบบตรวจสอบความถูกต้องกี่ครั้งก็ได้