อาเรย์ ภาษาซี : 1

ภาษา Cทำความรู้จักกับ Array : อาร์เรย์เป็นชนิดข้อมูลประเภทหนึ่งที่นำชนิดข้อมูลพื้นฐานอย่างชนิดข้อมูลแบบตัวอักษร(char)ชนิดข้อมูลแบบเลขจำนวนเต็ม(int) และชนิดข้อมูลแบบเลขจำนวนจริง(float) มาประยุกต์เป็นชนิดข้อมูลประเภทนี้ ซึ่งโครงสร้างข้อมูลของ Array (Array structure) จะเก็บข้อมูลต่างจากชนิดข้อมูลพื้นฐานทั่วไปแล้ว ตัวแปรนี้จะสามารถเก็บค่าได้เพียง 1 ค่าต่อตัวแปร 1 ตัวเท่านั้น แต่หากประกาศตัวแปรให้มีชนิดข้อมูลเป็นอาร์เรย์แล้ว ภายใน1 ตัวแปรจะสามารถเก็บค่าได้มากกว่า1 ค่า ซึ่งจะเก็บเท่าได้ก็ขึ้นอยู่กับการกำหนดขนาดของ Array ที่ได้กำหนดไว้ ครับ

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

int num1 ,num2 ,num3 ,num4 ,num5 ,num6 ,num7 ,num8 ,num9                ,num10 ,num11 ,num12 ,num13 ,num14 ,num15 ,num16 ,num17          ,num18 ,num19 ,num20 ,num21 ,num22 ,num23 ,num24 ,num25          ,num26 ,num27 ,num28 ,num29 ,num30 ,num31 ,num32 ,num33          ,num34 ,num35 ,num36 ,num37 ,num38 ,num39 ,num40 ,num41          ,num42 ,num43 ,num44 ,num45 ,num46 ,num47 ,num48 ,num49          ,num50;

เห็นปะครับเพียงแค่ประกาศตัวแปรก็เหนื่อยแล้ว แถมจะต้องเขียนในการรับค่าเข้าด้วย ฟังก์ชั่น scanf(); แบบทีละตัว ไม่ต้องบอกเลยว่าลำบากลากเลือดแน่ๆท่าคิดภาพไม่ออกก็ลองคิดว่าต้องเขียน scanf(“%d”,&num1); ไปเรื่อยๆจนถึง scanf(“%d”,&num50);นะครับ ^_^

เราจะเห็นได้ว่าเมื่อมีข้อมูลมากขึ้นเท่าใด การใช้ชนิดข้อมูลพื้นฐานนั้นก็ยิ่งไม่สะดวกมากขึ้นตามไปด้วยเพราะนอกจากจะสิ้นเปลืองตัวแปรในการจัดเก็บแล้ว การจัดดการขอมูลก็ลำบากมากขึ้นด้วย ลองคิดดูนะครับนี้แค่สุ่มมา50 คน ท่า 500 คนละ หรือ 5000 คน โอ๋แม่เจ้าคงไม่ต้องบอกนะว่ามันจะเป็นยังไง ดังนั้นจึงได้มีการนำชนิดข้อมูลแบบ  อาร์เรย์มาใช้งาน เพื่ออำนวยความสะดวกสะบายในการจัดการกับข้อมูลโดยจากตัวอย่างข้างบนหากนำอาร์เรย์ มาประยุกต์ใช้เก็บค่า 50 ค่า สามารถทำได้โดยง่ายดังนี้

int num[50];

ทำการประการตัวแปรเพียงเท่านี้ก็สามารถเก็บค่าตัวแปรได้ถึง 50 ค่าแล้วละครับเหมือนกับกรณีตัวอย่างด้านบนทุกประการกล่าวคือ กรณีใช้ตัวแปร num เพียง 1 ตัวประกาศให้มีชนิดข้อมูลเป็นอาร์เรย์ชนิดเลขจำนวนเต็มที่มีขนาด 30 ช่อง ดังนั้นจึงเก็บค่าเลขจำนวนเต็มได้ถึง 30 ค่า และหากต้องการรับค่า 30 ค่าเข้ามาเก็บไว้ในตัวแปรสามารถทำได้โดย

   for(i=0;i<50;i++) {
           scanf("%d",&num[i]);
        }

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

สุดท้ายนี้ผมก็ขอจบเรื่อง อาเรย์ ไว้เท่านี้ก่อนนะครับไว้มาต่อกันที่ บทความ อาเรย์ ภาษาซี : 2 จะกล่าวถึงเรื่องอาร์เรย์ 1 มิติ นะครับ และหวังว่าบทความนี้จะทำให้ทุกท่านที่อ่านเห็นความสำคัญของ ตัวแปรประเภท อาร์เรย์ นะครับ

0 ความคิดเห็น:

แสดงความคิดเห็น