Course Content
วิชาคอมพิวเตอร์เพื่ออาชีพ 5 (ง30245) ชั้นมัธยมศึกษาปีที่ 6 แผนการเรียนศิลป์คำนวณ/สหศิลป์ ภาคเรียนที่ 1 ปีการศึกษา 2564
About Lesson

การใช้งานค่าคงที่กับอาเรย์
        ต่อไปเป็นตัวอย่างในการใช้งานค่าคงที่กับอาเรย์ โดยจะมีค่าคงที่สำหรับการกำหนดขนาดของอาเรย์ และใส่ชื่อและคะแนนของผู้เล่นลงไปในอาเรย์ และโปรแกรมจะบอกผู้เล่นที่ชนะ ซึ่งคือผู้ที่ได้รับคะแนนสูงสุด

using System;
class Constant
{   
     static void Main(string[] args)   
     {       
          const int SIZE = 5;        

          string[] names = new string[SIZE];       
          int[] scores = new int[SIZE];        

          Console.WriteLine(“Enter name and score of {0} players”, SIZE);       
          for (int i = 0; i < SIZE; i++)       
          {           
               Console.Write(“Player {0} name: “, i + 1);           
               names[i] = Console.ReadLine();           
               Console.Write(“Player {0} score: “, i + 1);           
               scores[i] = Int32.Parse(Console.ReadLine());       
          }        
          int maxIndex= 0;        

          for (int i = 0; i < SIZE; i++)       
          {           
               if (scores[i] > scores[maxIndex])           
               {               
                    maxIndex = i;           
               }       
          }        
          Console.WriteLine(“{0} is the winner with score {1}”,             
               names[maxIndex], scores[maxIndex]);   
     }
}

          ในตัวอย่าง ได้มีการประกาศค่าคงที่ SIZE สำหรับกำหนดขนาดของอาเรย์ที่จะใช้เก็บชื่อและคะแนน ในโปรแกรมได้มีการสร้างอาเรย์ names และ scores ที่มีขนาดตามที่ได้กำหนดในค่าคงที่ SIZE คือ 5 นั่นหมายความว่า มีการสร้างอาเรย์เหล่านี้มาสำหรับเก็บชื่อและคะแนนของผู้เล่นจำนวน 5 คน

for (int i = 0; i < SIZE; i++)
{    
     Console.Write(“Player {0} name: “, i + 1);    
     names[i] = Console.ReadLine();    
     Console.Write(“Player {0} score: “, i + 1);    
     scores[i] = Int32.Parse(Console.ReadLine());
}

        ต่อมาเราใช้คำสั่ง For loop ในการวนอ่านชื่อและคะแนนลงไปในอาเรย์ทั้งสอง โดยการวนนั้นจะวนตามจำนวนค่าคงที่ SIZE ซึ่งใช้ตัวแปร i เป็น index ของอาเรย์

int maxIndex= 0; 
for (int i = 0; i < SIZE; i++)
{   
     if (scores[i] > scores[maxIndex])   
     {       
          maxIndex = i;   
     }
}

        Loop ต่อมาเป็นการหาคนที่ได้คะแนนมากที่สุด เพราะว่าเรามีอาเรย์สองตัวแปร ดังนั้นเราจะหาว่า Index ไหนของอาเรย์ที่จะมีคะแนนมากที่สุดใน scores ซึ่งก็จะเป็น Index เดียวกันกับชื่อในอาเรย์ names เราได้ใช้คำสั่ง For loop ในการวนซ้ำสำหรับเปรียบเทียบเพื่อหาค่าสูงสุด และในตอนท้ายเราจะได้ Index ของอาเรย์ที่มีค่าสูงสุด

Enter name and score of 5 players
Player 1 name: Marcus
Player 1 score: 52
Player 2 name: Mateo
Player 2 score: 34
Player 3 name: Danny
Player 3 score: 80
Player 4 name: Emily
Player 4 score: 61
Player 5 name: Kate
Player 5 score: 26
Danny is the winner with score 80

        ผลลัพธ์การทำงานของโปรแกรม โดยมีการกรอกชื่อและคะแนนของผู้เล่นทั้ง 5 คนลงไป และโปรแกรมได้มีการคำนวณผู้ชนะที่มีคะแนนมากที่สุดคือ Danny ซึ่งมีคะแนน 80 คะแนน
        จากในทั้งสองตัวอย่างที่ผ่านมา คุณจะเห็นได้ว่าเราสามารถใช้ค่าคงที่ในการช่วยให้การเขียนโปรแกรมมีประสิทธิภาพมากขึ้น และในตัวอย่างที่สอง เราใช้ค่าคงที่ SIZE สำหรับแทนด้วย 5 นั่นหมายความว่ามันจะเป็นเรื่องง่ายถ้าหากเราต้องการที่จะประกาศอาเรย์ที่มีขนาดเป็น 10 หรือ 20 เราเพียงแค่เปลี่ยนจากค่าคงที่เท่านั้น ดังนั้นมันจึงช่วยลดความผิดพลาดและความสับสนในการเขียนโปรแกรมได้เป็นอย่างมาก

Exercise Files
No Attachment Found
No Attachment Found