วันอาทิตย์ที่ 28 มิถุนายน พ.ศ. 2552

Structure

struct payroll{
int acct_no;
float salary;
};
struct customer{
int code_no;
char name[30];
int age;
char occupation[20];
char address[60];
char sex[6];
struct payroll salary1;
}
customer1;

สรุปการเรียน DTS01-24-06-2552

อาเรย์ (Array)

ตัวแปรอาเรย์สามารถเก็บข้อมูลหลายๆข้อมูลไว้ได้โดยไม่ต้องใช้ตัวแปรหลายตัว เช่นถ้าต้องการเก็บอายุของเพื่อนทั้ง 20 คน ถ้าเราใช้ตัวแปรแบบ int เราจะต้องประกาศตัวแปร age1, age2, age3,.....,age20 ให้เป็นแบบ int ซึ่งเป็นการประกาศตัวแปรถึง 20 ตัวด้วยกัน แต่ถ้าใช้อาเรย์เราประกาศตัวแปร age ให้เป็นอาเรย์แบบ int เพียงตัวเดียวก็สามารถเก็บค่าทั้ง 20 ค่าได้แล้ว

อาเรย์ 1 มิติ (One-Dimensional Array)

เราสามารถสร้างตัวแปรอาเรย์ของข้อมูลชนิดต่างๆได้ไม่ว่าจะเป็นอาเรย์แบบ int, char, float ดังตัวอย่างต่อไปนี้
void main()
{
int age [5];
double grade [5];
char s [5];....}

จากตัวอย่างเป็นการประกาศตัวแปรชื่อ age ให้เป็นอาเรย์ของข้อมูลชนิด int ที่มีขนาดเท่ากับ 5 ดังนั้นตัวแปร age จะสามารถเก็บเลขจำนวนเต็มได้ถึง 5 จำนวน สำหรับตัวแปร grade ถูกประกาศเป็นอาเรย์ของข้อมูลชนิด double และมีขนาดเท่ากับ 5 เช่นเดียวกัน เราจึงสามารถเก็บเลขทศนิยมไว้ในตัวแปร grade ได้ 5 จำนวน และการประกาศตัวแปร s ให้เป็นอาเรย์ของข้อมูลชนิด char ที่มีขนาด 5 ตัวอักษร

จึงเก็บตัวอักษรได้ 5 ตัวเมื่อเราประกาศตัวแปรอาเรย์ทั้ง 3 ตัวคือ age, grade และ s แล้ว ในหน่วยความจำจะมีการจองพื้นที่เอาไว้ตามจำนวนที่กำหนด โดยตัวแปร age และ grade นั้นจะมีการเตรียมพื้นที่ว่างในหน่วยความจำสำหรับเก็บค่าตัวแปรละ 5 ค่า และตัวแปร s ก็มีการเตรียมพื้นที่เอาไว้เก็บตัวอักษร 5 ตัว

การนำค่าใส่ลงไปในตัวแปรอาเรย์ตัวแปรอาเรย์นั้นสามารถเก็บค่าได้หลายๆค่า โดยแต่ละค่าก็จะเหมือนกับเป็นตัวแปร 1 ตัว เช่นถ้าเราประกาศตัวแปร int age [5] ก็เหมือนกับว่าเรามีตัวแปร age ถึง 5 ตัว ซึ่งแต่ละตัวนี้เราเรียกว่าสมาชิกของอาเรย์ การอ้างถึงสมาชิกของอาเรย์จะต้องใช้หมายเลขลำดับ โดยเริ่มจาก 0,1,2,...ไปเรื่อยๆจนถึง” ขนาดของอาเรย์ลบด้วย 1” เช่นถ้าเราสร้างอาเรย์ int age [5] การอ้างถึงสมาชิกของอาเรย์จะใช้หมายเลข 0 ถึง 4 ถ้าเรานำเอาค่า 20, 21, 23, และ 26 มากำหนดให้กับสมาชิกลำดับที่ 0, 1, 2 และ 3 ของอาเรย์ age ตามลำดับ

เราจะเขียนโปรแกรมดังนี้

int age [5];
age [0] = 20;
age [1] = 21;
age [2] = 23;
age [3] = 26;
จะเห็นว่าตัวแปร age เป็นอาเรย์แบบ int ซึ่งเก็บเลขจำนวนเต็มได้ 5 ค่า แต่จากตัวอย่างเรากำหนดค่าให้กับสมาชิกลำดับที่ 0 ถึง 3 โดยไม่ได้กำหนดค่าให้กับสมาชิกลำดับที่ 4 เพราะว่าการใส่ข้อมูลลงในอาเรย์นั้นไม่จำเป็นจะต้องใส่ทุกๆช่องให้ครบจึงจะใช้งานได้ ช่องใดไม่ได้ใส่ค่าลงไป มันก็ไม่เก็บค่าอะไรไว้จะเป็นช่องว่างๆไปโดยอัตโนมัติ
อาเรย์ของข้อมูลชนิด char คือตัวแปรสตริงตัวแปรอาเรย์ของข้อมูลชนิด char อีกนัยหนึ่งก็คือตัวแปรแบบข้อความหรือตัวแปรสตริง(String) ตัวแปรสตริงคือการนำเอาตัวแปรแบบ char มาเรียงต่อๆกัน ซึ่งตัวแปร char ที่เรียงต่อกันก็เรียกได้ว่าเป็นตัวแปรอาเรย์ของข้อมูลชนิด char นั่นเอง จึงสรุปได้ว่า ”สตริง” กับ “อาเรย์ของ ข้อมูลชนิด char” คือสิ่งเดียวกัน
ตัวแปรอาเรย์ของข้อมูลชนิด char จะแตกต่างจากอาเรย์ของ int, double หรือแบบอื่นๆ เพราะว่าสมาชิกตัวสุดท้ายของอาเรย์แบบ char จะใช้เก็บรหัสสิ้นสุดข้อความ ด้วยเหตุนี้ถ้าเราประกาศตัวแปรอาเรย์แบบ char เพื่อเก็บข้อความ เราจะต้องประกาศอาเรย์ให้มีขนาดมากกว่าจำนวนตัวอักษรของข้อความที่ต้องการเก็บอย่างน้อย 1 ตัวอักษร
สมมติว่าเราประกาศตัวแปรอาเรย์แบบ char เพื่อที่จะเก็บคำว่า “Computer” ซึ่งมีทั้งหมด 8 ตัวอักษร เราจะต้องประกาศตัวแปรอาเรย์แบบ char ที่มีขนาด 9 ตัวอักษร นอกจากนี้การกำหนดค่าให้กับตัวแปรอาเรย์แบบ char หรือตัวแปรสตริงนี้ยังสามารถทำไปพร้อมกับการประกาศตัวแปรได้เลย ดังนี้
char s[5] = “GIRL”;
หรือchar s[5] = { ‘G’, ‘I’, ‘R’, ‘L’ }

การนำค่าในอาเรย์ไปใช้การใช้งานตัวแปรอาเรย์แบบ char นั้น โดยมากจะใช้รับค่าที่เป็นข้อความ เช่นชื่อ, เบอร์โทรศัพท์, ที่อยู่, อีเมล์, ชื่อเว็ปไซท์ เป็นต้น ดังตัวอย่างต่อไปนี้

#include void main()
{
char s[10];
printf (“What is your name?\n”);
scanf (“%s”, s);
printf (“You are %s. \n”, s);
}
ผลการรันโปรแกรม
What is your name?
robertYou are robert.

จากตัวอย่างเราได้ประกาศอาเรย์ s เอาไว้ 10 ช่อง เพื่อให้เพียงพอต่อการเก็บชื่อโดยประมาณเอาไว้ 10

อาเรย์ 2 มิติ (Two-Dimensional Array)

อาเรย์ 2 มิติจะเก็บข้อมูลไว้ในลักษณะของตาราง การสร้างอาเรย์ 2 มิตินั้นเราจะเขียนโค้ดภาษาซีดังนี้
int a[3][3];
int b[2][3];
การนำค่าที่ต้องการเก็บในอาเรย์เราจะต้องอ้างถึงลำดับของสมาชิกช่องนั้นๆ ทั้งลำดับในแนวนอนและลำดับในแนวตั้ง หรือจะมองในลักษณะของคู่ลำดับก็ได้ดังรูปต่อไปนี้
int a[3][3];
a[0][0] a[1][0] a[2][0]
a[0][1] a[1][1] a[2][1]
a[0][2] a[1][2] a[2][2]

จะเห็นว่าหมายเลขลำดับของอาเรย์ในแต่ละแนวเริ่มต้นจาก 0 จนถึง “ขนาดในแนวนั้นลบด้วย 1” เช่น ถ้าประกาศอาเรย์ 2 มิติขนาด 3x3 ลำดับในแนวนอนก็จะเริ่มจาก 0 ถึง 2 รวมทั้งหมด 3 ช่อง และในแนวตั้งก็จะเริ่มจาก 0 ถึง 2 รวมทั้งหมด 3 ช่องเช่นกัน

สำหรับวิธีการนำเอาข้อมูลใส่ลงในตัวแปรอาเรย์ 2 มิตินี้ก็จะใช้หลักการเดียวกันกับอาเรย์ 1 มิติ โดยระบุช่องที่ต้องการใส่ค่าลงไป เช่นถ้าจะใส่ค่า 10 ลงในช่อง a[1][2] เราจะเขียนโปรแกรมดังนี้
int a[3][3];
a[1][2] = 10;
int a[3][3];
a[0][0] a[1][0] a[2][0]
a[0][1] a[1][1] a[2][1]
a[0][2] 10 a[2][2]

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



Record or Structure

เป็นโครงสร้างข้อมูลที่ประกอบขึ้นจากข้อมูลพื้นฐานต่างประเภทกัน รวมเป็นหนึ่งชุด คือ จะประกอบด้วย Date element หรือ field ต่างประเภทกันอยู่ด้วยกันในภาษาซี ก็คือการกำหนดข้อมูลเป็นรูปแบบของ Structure

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

การประกาศสมาชิกแต่ละตัวของ structure
สมาชิกแต่ละตัว จะเป็นตัวแปรธรรมดา พอยน์เตอร์ หรือ structure ตัวอื่นก็ได้ แต่ชื่อสมาชิกต้องแตกต่างกัน
ตัวอย่าง
struct employee{
char name[30];
int age;
float salary;
}personal;
เป็นการกำหนดให้ตัวแปร employee เป็นชื่อกลุ่ม structure ที่ประกอบด้วย name[30],age และ salary โดยมีตัวแปร personal เป็นตัวแปรชนิดโครงสร้าง ที่มีข้อมูลแบบเดียวกันตัวแปร employee

การอ้างถึงตัวแปรที่อยู่ในตัวแปรชนิดโครงสร้าง
รูปแบบ
struct-variable element-name
struct-vaiable ชื่อตัวแปรชนิดโครงสร้าง
element-name ชื่อตัวแปรที่อยู่ภายใน structure
ตัวอย่าง
struct empl;yee{
char name[30];
char address[20];
float salary;
}personal;
ถ้าต้องการนำตัวแปร salary มาใช้งานก็จะอ้างถึงตัวแปร salary ได้โดย
personal salary

อะเรย์ชริดโครงสร้าง
รูปแบบ
struct struct-name{
type name-1;
type name-2;
.....................
type name-n;
}struct-array variable;
ตัวอย่าง
struct employee{
char name[30];
int age;
float salary;
}input[5];
จากตัวอย่าง input เป็นอะเรย์มีสมาชิกสูงสุดได้ 5 ตัว การอ้างถึงสมาชิกในอะเรย์ ทำได้โดยการระบุ subscript และระบุสมาชิก ใน structure
รูปแบบ
struct-array-name[subscript].member-name
ตัวอย่าง
ถ้าต้องการเรียกใช้เงินเดือนของสมาชิกของอะเรย์ input ตัวที่ 2 สามารถอ้างถึงได้ดังนี้
input[1].salary

วันศุกร์ที่ 26 มิถุนายน พ.ศ. 2552

ประวัติส่วนตัว

ชื่อ-นามสกุล: นายสมชาย เดเบาะ

เกิด: วันพุธที่ 6 พฤษภาคม 2530

ส่วนสูง/น้ำหนัก: 172 ซม./63 กก.

ภูมิลำเนาเดิม: 11 ม. 4 ต. ธารน้ำทิพย์ อ. เบตง จ. ยะลา 95110

ที่อยู่ปัจจุบัน: 471/24 ถ. ราชวิถึ ซ. ส่วนบุคคล ราชเทวี กรุงเทพฯ 10400

จบจาก: วิทยาลัยการอาชีพเบตง

ปัจจุบัน: ปีสาม คณะวิทยาการจัดการ มหาวิทยาลัยราชภัฏสวนดุสิต

สีตา: น้ำตาลสีที่ชอบ: ขาว, ดำ, เอิร์ธโทน เช่น สีอิฐ, สีเขียว, สีเบจ

แนวเพลงที่ชอบ: ป๊อปร็อค

หนังที่ชอบดู: แนวดราม่า แอคชั่น

นักแสดงไทยที่ชื่นชอบ: เป้ยปานวาด แอน ป็อก

สัตว์เลี้ยงที่ชอบ: นก แมวงานอดิเรก: ดูหนัง ฟังเพลง ค้นคว้า เล่นเน็ต

กีฬาที่ชอบ: แบตมินตัน

ความสนใจ: การท่องเที่ยว การเดินทาง สุขภาพ บ้าน รถยนต์ เทคโนโลยี

ความใฝ่ฝัน: ข้าราชการพลเรือน

อุปนิสัย: ไม่ดื่มเหล้า ไม่สูบบุหรี่ เป็นคนตรง ไม่ชอบการดูถูกเหยียดหยาม

คติประจำใจ: ทำวันนี้ให้ดีที่สุด

คติในการดำเนินชีวิต: อ่อนน้อมถ่อมตน สุภาพเรียบร้อย ถูกกาลเทศะ

อีเมล์: somchai_bt@hotmail.com

เว็บไซต์: http://langyala.blogspot.com/

เบอร์โทรศัพท์: 0800713960