ตัวแปรชนิดโครงสร้าง (structure)

14
ตตตตตตตตตต ตตตตตตตตต (Structure) http:// www.renvi.src.ku.ac.th

Upload: etoile

Post on 22-Mar-2016

36 views

Category:

Documents


3 download

DESCRIPTION

ตัวแปรชนิดโครงสร้าง (Structure). http://www.renvi.src.ku.ac.th. QUIZ. 4. Today Agenda. struct ?. 1. 2. การใช้งานตัวแปรชนิดโครงสร้าง. ตัวแปรชนิดโครงสร้างกับอาร์เรย์. 3. เกริ่นนำเกี่ยวกับ สตรัคเจอร์. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: ตัวแปรชนิดโครงสร้าง  (Structure)

ตัวแปรชนิดโครงสรา้ง (Structure)http://www.renvi.src.ku.ac.th

Page 2: ตัวแปรชนิดโครงสร้าง  (Structure)

Today Agenda

struct ?1

การใชง้านตัวแปรชนิดโครงสรา้ง2

ตัวแปรชนิดโครงสรา้งกับอารเ์รย์3

QUIZ4

2

Page 3: ตัวแปรชนิดโครงสร้าง  (Structure)

เกริน่นำาเก่ียวกับสตรคัเจอร์

สตรคัเจอร ์(Structure) คือ โครงสรา้งขอ้มูลท่ีนำาเอาขอ้มูลท่ีมปีระเภทขอ้มูลชนิดพื้นฐานท่ีแตกต่างกันแต่มคีวามสมัพนัธกั์นมารวมกันเป็นโครงสรา้งขอ้มูลชนิดใหม ่เชน่ การเก็บขอ้มูลนิสติ (student) จะต้องประกอบไปด้วยขอ้มูลรหัสนิสติ, ชื่อ (name), นามสกลุ (surname), สาขาวชิา (major), คณะ (faculty) เป็นต้น

3

student0

namesurnam

emajorfaculty

student1

namesurnam

emajorfaculty

student2

namesurnam

emajorfaculty

Page 4: ตัวแปรชนิดโครงสร้าง  (Structure)

การใชง้านตัวแปรชนิดโครงสรา้ง

1 •กำ�หนดโครงสร�้ง

2 •สร�้งตัวแปรจ�กโครงสร�้งท่ีกำ�หนด

3 •กำ�หนดค�่ใหก้ับสม�ชกิของตัวแปร

4 •แสดงผลค�่สม�ชกิของตัวแปร

4

Page 5: ตัวแปรชนิดโครงสร้าง  (Structure)

การกำาหนดโครงสรา้งตัวแปรชนิดโครงสรา้งก่อนจะสรา้งตัวแปรชนิดสตรคัเจอรม์าใชง้านได้นัน้ เรา

ต้องกำาหนดโครงสรา้งขอ้มูลสำาหรบัตัวแปรนัน้ก่อน ดังน้ี

5

รูปแบบท่ี 1struct ชื่อของโครงสรา้งท่ีจะสรา้ง {

ชนิดขอ้มูลพื้นฐาน ชื่อตัวแปร;

ชนิดขอ้มูลพื้นฐาน ชื่อตัวแปร;

… ชนิดขอ้มูลพื้นฐาน ชื่อ

ตัวแปร;};

ตัวอยา่งการใชง้านstruct student {

int stu_id;char

stu_name[20];char

stu_surname[20];char major[20];char

faculty[20];};

Page 6: ตัวแปรชนิดโครงสร้าง  (Structure)

การกำาหนดโครงสรา้งตัวแปรชนิดโครงสรา้ง (ต่อ)

6

รูปแบบท่ี 2typedef struct {

ชนิดขอ้มูลพื้นฐาน ชื่อตัวแปร;

ชนิดขอ้มูลพื้นฐาน ชื่อตัวแปร;

… ชนิดขอ้มูลพื้นฐาน ชื่อ

ตัวแปร;} ชื่อของโครงสรา้งท่ีจะสรา้ง;

ตัวอยา่งการใชง้านtypedef struct {

int stu_id;char

stu_name[20];char

stu_surname[20];char major[20];char

faculty[20];} STUDENT;

Page 7: ตัวแปรชนิดโครงสร้าง  (Structure)

การสรา้งตัวแปรชนิดโครงสรา้ง

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

7

หากกำาหนดโครงสรา้งในรูปแบบท่ี 1struct ชนิดของขอ้มูลชนิด

โครงสรา้ง ชื่อตัวแปร;เชน่struct student stu1, stu2; หากกำาหนดโครงสรา้งในรูปแบบท่ี 2

ชนิดของขอ้มูลชนิดโครงสรา้ง ชื่อตัวแปร;เชน่STUDENT stu1, stu2;

Page 8: ตัวแปรชนิดโครงสร้าง  (Structure)

การกำาหนดค่าเริม่ต้นให้กับตัวแปรชนิดโครงสรา้งคล้ายกับการกำาหนดค่าเริม่ต้นให้กับอารเ์รย ์กำาหนดค่า

ไวใ้น { } และแยกค่าแต่ละค่าด้วยเครื่องหมาย , (comma) เชน่

8

หากกำาหนดโครงสรา้งในรูปแบบท่ี 1struct student stu = {101, “Steve”, “Josh”, “CS”, “RENVI”};

หากกำาหนดโครงสรา้งในรูปแบบท่ี 2STUDENT stu = {101, “David”, “Paul”, “IT”, “RENVI”};

Page 9: ตัวแปรชนิดโครงสร้าง  (Structure)

การอ้างถึงสมาชกิในตัวแปรชนิดโครงสรา้ง

การอ้างถึงตัวแปรหรอืสมาชกิแต่ละตัวในตัวแปรประเภท struct สามารถทำาได้ด้วยรูปแบบดังนี้

9

ชื่อตัวแปรชนิดโครงสรา้ง.ชื่อตัวแปรสมาชกิ

Page 10: ตัวแปรชนิดโครงสร้าง  (Structure)

การกำาหนดขอ้มูลให้กับตัวแปรชนิดโครงสรา้งการกำาหนดค่าต้องกำาหนดให้ถกูต้องตามชนิดขอ้มูล

ของสมาชกิ

10

1. typedef struct {2. int stu_id;3. char stu_name[20];4. char stu_surname[20];5. }STUDENT;6. STUDENT stu;7. printf("Enter student ID: ");8. scanf(“____", __________);9. printf("Enter name: ");10. scanf(“____", __________);11. printf("Enter surname: ");12. scanf(“____", ___________);13. printf("ID: %d, Name: %s, Surname: %s", stu.stu_id, stu.stu_name,

stu.stu_surname);}

Page 11: ตัวแปรชนิดโครงสร้าง  (Structure)

การแสดงผลสมาชกิในตัวแปรชนิดโครงสรา้ง (ต่อ)สมาชกิของตัวแปรชนิดโครงสรา้งเป็นตัวแปรชนิดพื้น

ฐานเราจงึใชค้ำาสัง่ printf() ตามปกติ โดยใชร้หัสควบคมุการแสดงผลให้ถกูต้องตามชนิดขอ้มูลสมาชกิ

1. typedef struct {2. int stu_id;3. char stu_name[20];4. char stu_surname[20];5. }STUDENT;6. STUDENT stu = {101, "Steve", "Jobs"};7. printf("----- Student Info -----\n\n");8. printf("Student ID: ____\n", __________);9. printf("Name: ____\n", __________);10. printf("Surname: ____\n", __________);

11

Page 12: ตัวแปรชนิดโครงสร้าง  (Structure)

ตัวแปรชนิดโครงสรา้งกับการใชอ้ารเ์รย์

เราสามารถสรา้งตัวแปรอารเ์รยข์องตัวแปรชนิดโครงสรา้งได้ ในกรณีท่ีมคีวามจำาเป็นต้องใชตั้วแปรชนิดโครงสรา้งตัวเดียวกันหลาย ๆ ตัว

12

ตัวอยา่งการใชง้านtypedef struct {

int stu_id;char

stu_name[20];char

stu_surname[20];char major[20];char

faculty[20];};STUDENT stu[10];

stu[0]name

surname

majorfaculty

stu[9]name

surname

majorfaculty

….

….

Page 13: ตัวแปรชนิดโครงสร้าง  (Structure)

ตัวแปรชนิดโครงสรา้งกับการใชอ้ารเ์รย ์(ต่อ)

1. typedef struct {2. int stu_id;3. char stu_name[20];4. char stu_surname[20];5. }STUDENT;6. STUDENT stu[5];7. for(i=0; i<5; i++){8. printf("Enter student ID: ");9. scanf(“____", __________);10. printf("Enter name: ");11. scanf(“____", __________);12. printf("Enter surname: ");13. scanf(“____", ___________);14. printf("Added !\n\n");15.} 16.for(i=0; i<5; i++){17. printf("%d. ID: ____\tName: ____\tSurname: ____\n", i+1,__________,

__________, __________);18.}

13

Page 14: ตัวแปรชนิดโครงสร้าง  (Structure)

http://www.renvi.src.ku.ac.th