ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
1
Structure
2
Overview รู้จักกับ structure การประกาศและใช้งาน structure
การประกาศและใช้งาน union
3
Structure
4
ฐานข้อมูลระเบียนประวัติการศึกษา นิสิต มหาวิทยาลัยเกษตรศาตร์
ID NAME AGE ADDRESS COURSE ID COURSE NAME COURSE DESC CREDIT STUDENT ID COURSE ID[4] GRADE[4] COURSE GRADE
5
STUDENT ID in memory NAME AGE ID NAME AGE ADDRESS ADDRESS STUDENT
6
GRADE ID in memory COURSE GRADE ID COURSE ID[4] GRADE[4] GRADE
7
What is structure ? Structure – โครงสร้าง คือ กลุ่มของข้อมูลที่มีชนิดเหมือนกันหรือต่างกันก็ได้ ซึ่งนำมารวมกลุ่มแล้วเรียกเป็นชื่อเดียวกัน Structure มีประโยชน์มากในการสร้างและจัดการโครงสร้างข้อมูลที่ซับซ้อน
8
Structure Vs Array Structures ไม่เหมือนกับ arrays
structure สามารถมี array ในตัวมันเองได้ structure สามารถเขียนให้ซับซ้อนหรือธรรมดาก็ได้ขึ้นอยู่กับความต้องการของ programmer
9
ข้อสังเกตุ ข้อสังเกต struct เป็นคำสงวน ซึ่งมันจะทำหน้าที่เป็นชนิดข้อมูลชนิดใหม่เรียกว่า aggregate type จุดประสงค์ของ structures คือเป็นการให้ tool สำหรับการสร้างรูปแบบของตัวแปรตามที่เราต้องการ structure มีส่วนประกอบ 2 ส่วนคือ structure-name ชื่อของ structure variables (called members) ภายใน structure ซึ่งทุกตัวแปร variable ภายใน structure เองก็จะมีชื่อของมันเองด้วย
10
Declaration and Syntax
structure จะถูกประกาศเหมือนกับการสร้างแม่แบบของตัวแปร ตัวอย่างการประกาศ ซึ่งทั้งนี้ต้องประกาศไว้ส่วนหัวของโปรแกรม struct PersonalData { char name[namesize]; char address[addresssize]; int YearOfBirth; int MonthOfBirth; int DayOfBirth; };
11
จากตัวอย่างเป็นการประกาศโครงสร้างของ struct PersonalData
โดยที่ประกอบไปด้วย ตัวแปร string ที่เราจะเรียกว่า name ตัวแปร string ที่เราจะเรียกว่า address ตัวแปร integers 3 ตัวที่เราจะเรียกว่า YearOfBirth, MonthOfBirth และ DayOfBirth ตัวแปรใดที่ประกาศชนิดเป็น struct PersonalData ก็จะมีส่วนต่างๆดังที่กล่าวไปแล้ว
12
char address[addresssize]; int YearOfBirth; int MonthOfBirth;
struct PersonalData { char name[namesize]; char address[addresssize]; int YearOfBirth; int MonthOfBirth; int DayOfBirth; }; PersonalData name address YearOfBirth MonthOfBirth DayOfBirth
13
struct PersonalData x;
ขั้นต่อไป เนื่องจากว่าเป็นการสร้างโครงสร้างไว้ยังไม่มีเนื้อที่ในหน่วยความจำ เป็นเพียงการประกาศข้อมูลชนิดใหม่ ตัวอย่างการประกาศ struct PersonalData x; เป็นการประกาศตัวแปร x ที่มีชนิดเป็น struct PersonalData
14
X struct PersonalData x; Memory Other variable name address
YearOfBirth MonthOfBirth DayOfBirth
15
Declaration and Syntax
รูปแบบการประกาศ structure struct [ชื่อโครงสร้าง] { [<ชนิดตัวแปร> <สมาชิกตัวที่ 1>]; [<ชนิดตัวแปร> <สมาชิกตัวที่ 2>]; . } [ตัวแปรที่ 1], [ตัวแปรที่ 2]; การนำ structure ที่ประกาศแล้วไปใช้ในส่วนอื่นของโปรแกรม struct [ชื่อโครงสร้าง] [ตัวแปรที่ 1];
16
ตัวอย่าง หากต้องการสร้างโครงสร้างข้อมูลที่เก็บจุดใน 2 มิติ พิจารณา
จุดในระบบ 2 มิติ ต้องเก็บข้อมูลอะไรบ้าง (x, y) ตำแหน่งในแกน x และ y เก็บเป็นชนิดข้อมูลแบบอะไร
17
ตำแหน่งในแกน x X Y ตำแหน่งในแกน y
18
Declaration and Syntax (Cont.)
รูปแบบการประกาศ structure สามารถทำได้หลายแบบ struct spoint{ int x, y; } p1; typedef struct spoint { int x, y; } tpoint; tpoint p1; struct spoint p2; struct { int x, y; } p1; struct spoint{ int x, y; }; struct spoint p1; typedef struct { int x, y; } tpoint; tpoint p1;
19
struct spoint{ int x, y; } p1; รูปแบบที่ 1 เป็นการประกาศรูปแบบโครงสร้างและตั้งชื่อรูปแบบนี้ว่า spoint พร้อมกับทําการประกาศตัวแปรสําหรับโครงสร้างนี้ 1 ตัว คือ p1 การประกาศโครงสร้างในรูปแบบนี้สามารถนําโครงสร้างนี้ไปใช้สําหรับการประกาศตัวแปรใหม่ที่มีโครงสร้างเหมือนกับ p1 ได้โดยไม่ต้องประกาศโครงสร้างนี้ใหม่ หากต้องการประกาศตัวแปร p3 ซึ่งมีโครงสร้างรูปแบบเดียวกับ p1 สามารถทําได้โดยเพิ่มคําสั่งต่อไปนี้ struct spoint p3;
20
Example 1 ตัวอย่างที่ 1 ประกาศชื่อ structure พร้อมประกาศตัวแปร
#include <stdio.h> struct spoint { int x, y; } p1; struct spoint p2; int main() { struct spoint p3; //... } ชื่อโครงสร้าง ตัวแปร
21
struct { int x, y; } p1; แบบที่ 2 เป็นการประกาศรูปแบบโครงสร้างหนึ่งขึ้นมา พร้อมกับการประกาศตัวแปรสำหรับโครงสร้าง 1 ตัว คือ p1
22
Example 2 ตัวอย่างที่ 2 ประกาศตัวแปร แต่ไม่ประกาศชื่อของ structure
#include <stdio.h> struct { int x, y; } p1; int main() { //... } ตัวแปร
23
struct spoint{ int x, y; }; struct spoint p1; แบบที่ 3 คล้ายกับรูปแบบที่ 1 เป็นการประกาศโครงสร้างแต่ไม่ประกาศตัวแปรพร้อมกับประกาศโครงสร้าง แต่จะมีการประกาศตัวแปรทีหลัง
24
Example 3 ตัวอย่างที่ 3 ประกาศชื่อ structure แต่ประกาศตัวแปรภายหลัง
#include <stdio.h> struct spoint { int x, y; }; struct spoint p1; int main() { struct spoint p2; //... } ชื่อโครงสร้าง ตัวแปร
25
typedef typedef ใช้ประกาศชนิดตัวแปรชนิดใหม่ มีรูปแบบคือ
typedef struct { int x, y; } tpoint; ประกาศชนิดตัวแปรชื่อ tpoint เป็นแบบ structure typedef int INTEGER; ประกาศชนิดตัวแปรชื่อ INTEGER เป็นชนิด int ประกาศชนิดตัวแปรชื่อ char100 เป็น array ของ char ขนาด 100 typedef char[100] char100;
26
typedef struct spoint {
int x, y; } tpoint; tpoint p1; struct spoint p2; typedef struct { รูปแบบที่ 4 และ 5 เป็นการกําหนดชนิดข้อมูลใหม่โดยใช้คําสั่ง typedef เพื่อให้สามารถ อ้างถึงรูปแบบโครงสร้างได้สั้นลงจากรูปแบบที่ 2 เมื่อต้องการประกาศตัวแปรใหม่ต้อง อ้างถึงโครงสร้างด้วยคำสั่ง struct spoint point1; หากใช้การประกาศโครงสร้างในรูปแบบที่ 4 หรือ 5 สามารถประกาศตัวแปรใหม่ด้วยคําสั่ง tpoint point1;
27
Example 4 ตัวอย่างที่ 4 ประกาศ structure เป็นชนิดตัวแปรชนิดใหม่ พร้อมประกาศชื่อโครงสร้าง #include <stdio.h> typedef struct spoint { int x, y; } tpoint; tpoint p1; struct spoint p2; int main() { tpoint p3; struct spoint p4; //... } ชื่อโครงสร้าง ชื่อชนิดข้อมูล ตัวแปร
28
Example 5 ตัวอย่างที่ 5 ประกาศ structure เป็นชนิดตัวแปรชนิดใหม่ แต่ไม่ประกาศชื่อ structure #include <stdio.h> typedef struct { int x, y; } tpoint; tpoint p1; int main() { tpoint p2; //... } ชื่อชนิดข้อมูล ตัวแปร
29
การอ้างถึงสมาชิกของตัวแปรแบบ structure
<ชื่อโครงสร้าง>.<ชื่อสมาชิก> ตัวอย่าง #include <stdio.h> struct spoint { int x, y; } p1; int main() { p1.x = 10; } ใช้งาน p1.x เหมือนตัวแปรปกติ
30
การกำหนดค่าเริ่มต้นให้ตัวแปรแบบ structure
ตัวอย่าง struct spoint { int x, y; } p1 = {10,10}; struct spoint p2 = {20,20}; typedef struct spoint { int x, y; } tpoint; tpoint p1 = {10,10};
31
การกำหนดค่าให้ตัวแปร structure
p1.x = 10; p1.y = 20; กำหนดค่าตัวแปร structure โดยตรงไม่ได้ (ยกเว้นตอนกำหนดค่าเริ่มต้น) p1 = {10,20}; ตัวแปรแบบ structure ที่เป็นชนิดเดียวกันสามารถกำหนดค่าให้กันได้ p1 = p2; ถ้า p1 และ s2 เป็น structure คนละตัวให้ค่ากันไม่ได้ p1 = s2;
32
การเปรียบเทียบตัวแปร structure
if (p1 == p2) การเปรียบเทียบตัวแปร structure ใช้การเปรียบเทียบสมาชิก if ((p1.x == p2.x) && (p1.y == p2.y))
33
การใช้ตัวแปร structure กับ cin และ cout
cout << p1; cin >> p1; การใช้งานใช้ผ่านสมาชิกของ structure นั้น cout << p1.x << p2.y; Cin >> p1.x >> p2.y;
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.