วันเสาร์ที่ 27 มิถุนายน พ.ศ. 2552

DTS02-24-06-2552

สรุป
เรื่อง Array and Record

-การดําเนินการเกี่ยวข้องกับอะเรย์ 1 มิติ หลายมิติ
-การส่งค่าของอะเรย์ ในโปรแกรม และฟังก์ชัน
-การดําเนินการที่เกี่ยวข้องกับ เรคคอร์ด
-ความสัมพันธ์ระหว่าง เรคคอร์ด กับอะเรย์ และอะเรย์ชนิดโครงสร้าง

อะเรย์เป็นโครงสร้างข้อมูลที่เรียกว่า Linear List มีลักษณะคล้ายเซ็ตในคณิตศาสตร์ คือ อะเรย์จะประกอบด้วยสมาชิกที่มีจํานวนคงที่ มีรูปแบบข้อมูลเป็นแบบเดียวกัน สมาชิกแต่ละตัวใช้เนื้อที่จัดเก็บที่มีขนาดเท่ากัน เรียงต่อเนื่องในหน่วยความจําหลัก

การกำหนด Array

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

ข้อกําหนดของการกําหนดค่าต่ำสุดและค่าสูงสุดของ subscript คือ

1.ค่าต่ำสุดต้องมีค่าน้อยกว่าหรือเท่ากับค่าสูงสุดเสมอ
2.ค่าต่ำสุด เรียกว่า ขอบเขตล่าง (lower bound)
3.ค่าสูงสุด เรียกว่า ขอบเขตบน (upper bound)

ขนาดของ index แต่ละตัว ของ Array หาได้จาก
(ขนาดของ subscript = upper bound – lower bound + 1)
จํานวนสมาชิกหรือขนาดของอะเรย์ n มิติ หาได้จาก
(ขนาดของอะเรย์ = ผลคูณของขนาดของsubscript แต่ละตัว)

อะเรย์ 1 มิติ
อะเรย์ 2 มิติ

รูปแบบของอะเรย์ 1มิติ
data-type array-name[expression]

data-type คือ ประเภทของข้อมูลอะเรย์ เช่น inchar float
array-name คือ ชื่อของอะเรย์
expression คือ นิพจน์จำนวนเต็มซึ่งระบุจำนวนสมาชิกของอะเรย์

ตัวอย่าง char a[4]; int num[10];





การประกาศอาร์กิวเมนต์ในฟังก์ชันเป็นอะเรย์


1. มีการประกาศขนาดของอะเรย์ที่ทำหน้าที่ในการรับค่า


2. ไม่ต้องมีการประกาศขนาดของอะเรย์ที่ทำหน้าที่ในการรับค่า


3. ตัวแปรที่ทำหน้าที่รับค่าถูกกำหนดเป็นพอยน์เตอร์



รูปแบบของอะเรย์ 2 มิติ


type array-name[n] [m];


type หมายถึง ชนิดของตัวแปรที่ต้องการประกาศเป็นอะเรย์


array-name หมายถึง ชื่อของตัวแปรที่ต้องการประกาศเป็นอะเรย์


n หมายถึง ตัวเลขที่แสดงตำแหน่งของแถว


m หมายถึง ตัวเลขที่แสดงตำแหน่งของคอลัมน์



ตัวอย่าง



หมายถึง คอมพิวเตอร์จะจองเนื้อที่ในหน่วยความจำ จำนวน 6 ที่สำหรับตัวแปร a กำหนดค่าเริ่มต้นได้หลายลักษณะ

ตัวอย่าง

กำหนดค่าเริ่มต้นให้ int a[2][3]

int a[2][3] = {1,2,3,4,5,6}; หรือ

int a[2][3] = {{1,2,3},{4,5,6}}; หรือ

int a[][3] = {{1,2,3},{4,5,6}};


Record or Structure


Structure คือ โครงสร้างที่สมาชิกแต่ละตัวมีประเภทข้อมูลแตกต่างกันได้ โดยที่ใน structure อาจมีสมาชิกเป็นจํานวนเต็ม ทศนิยม อักขระ อะเรย์หรือพอยเตอร์ หรือแม้แต่ structure ด้วยกันก็ได้

struct เป็นคําหลักที่ต้องมีเสมอ

struc-nameชื่อกลุ่ม structure

type ชนิดของตัวแปรที่อยู่ในกลุ่ม structure

name-n ชื่อของตัวแปรที่อยู่ในกลุ่ม structure

struc-variable ชื่อตัวแปรชนิดโครงสร้าง

คือ ตัวแปรที่มีโครงสร้าง เหมือนกับที่ประกาศไว้ในชื่อของกลุ่ม structure อาจมีหรือไม่มีก็ได้ถ้ามีมากกว่า 1 ชื่อ แยกกันด้วยเครื่องหมายคอมม่า (,)


การผ่าน structure ให้ฟังก์ชัน ประเภทของการส่งผ่าน structure ให้ฟังก์ชันนั้น มี่ 2 ประเภท คือ

1. ส่งสมาชิกแต่ละตัวของ structure
2. ส่งทั้ง structure

1. ส่งสมาชิกแต่ละตัวของ structureสมาชิกแต่ละตัวของ structure สามารถส่งเป็นอาร์กิวเมนต์ ของฟังก์ชันและส่งกลับจากฟังก์ชันได้โดยใช้ค่าส่ง return ซึ่งมีทั้งการส่งค่าของตัวแปรที่อยู่ในตัวแปรstructure และก็ส่งตำแหน่งที่อยู่ของตัวแปรนั้น ๆ ไปยังฟังก์ชัน

2. ส่งผ่านทั้ง structure ให้กับฟังก์ชันจะส่งผ่านในลักษณะของพอยน์เตอร์ไปยัง structure โดยหลักการจะเหมือนกับการส่งผ่านอะเรย์ไปให้ฟังก์ชัน ซึ่งเป็นลักษณะที่เรียกว่า Pass by reference

ส่งงาน

struct notebook
{

char brand[30];

char series[20];

int price;

char cpu[30];

char ram[30];

float lcd;

int hdd;

char cd[10];

}product={"Acer","4935G-742G32Mn/C011",27900, "CORE 2 Duo 2.13 GHz.","2048/667",14.1,320,"DVD-RW"};

จากด้านบนกำหนดให้ notebook เป็นชื่อ structureโดยมีตัวแปร char brand[30] , char series[20] , int price , char cpu[30] , char ram[30] , float lcd , int hdd , char cd[10] โดยมี product เป็นตัวแปรชนิดโครงสร้างข้อมูล ชนิดเดียวกับ notebook

brand[30] = Acer

series[20] = 4935G-742G32Mn/C011

price = 27900

cpu[30] = CORE 2 Duo 2.13 GHz .

ram[30] = 2048/667

lcd = 14.1

hdd = 320

cd[10] = DVD-RW





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