Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
ETE183 การเขียนโปรแกรมคอมพิวเตอร์สำหรับ
วิศวกรรมไฟฟ้า
ผศ.ดร.วชิราพรรณ แก้วประพนัธ์อ.ชนกชนม์ สังวรโยธิน
บทท่ี 12 ตัวแปรโครงสร้าง
บทท่ี 12
ความหมายของ ตัวแปรโครงสร้าง
Typedef และ Struct
การสร้างโครงสร้างข้อมูล
การนำโครงสร้างข้อมูลมาใช ้
การประยุกต์โครงสร้างข้อมูลกับอารเ์รย์
โครงสร้างข้อมูล Data Structure
?
โครงสร้างข้อมูล
คือ กลุ่มของตัวแปรที่สามารถสร้างและเก็บไว้ในตัวแปรเดียวกัน เราเรียกว่า “โครงสร้างข้อมูล” เราสามารถสร้างและออกแบบโครงสร้างข้อมูลของเราได้ตามที่ต้องการ โดยโครงสร้างข้อมูลจะมีสมาชิกที่เป็นตัวแปร (members) และฟังก์ชันได้ในเวลาเดียวกัน
นักเรียน ถ้าหากพูดถึง “นักเรียน” จะนึกถึงข้อมูล
อะไรบ้าง ที่ไม่ใช่การกระทำ
นักเรียน
ช่ือข้อมูล ชนิดการเก็บข้อมูลรหัสนักเรียน char arrayช่ือ stringภาควิชา stringช้ันปี intเกรดเฉลี่ย float
นักเรียน 5 คน
ถ้าหากมีนักเรียน 5 คน จะต้องเก็บข้อมูลอย่างไร
รหัสนักเรียนของคนที่ 1รหัสนักเรียนของคนที่ 2รหัสนักเรียนของคนที่ 3รหัสนักเรียนของคนที่ 4รหัสนักเรียนของคนที่ 5
ชื่อของคนที่ 1ชื่อของคนที่ 2ชื่อของคนที่ 3ชื่อของคนที่ 4ชื่อของคนที่ 5
ภาควิชาของคนที่ 1ภาควิชาของคนที่ 2ภาควิชาของคนที่ 3ภาควิชาของคนที่ 4ภาควิชาของคนที่ 5
ชั้นปีของคนที่ 1ชั้นปีของคนที่ 2ชั้นปีของคนที่ 3ชั้นปีของคนที่ 4ชั้นปีของคนที่ 5
เกรดเฉล่ียของคนที่ 1เกรดเฉล่ียของคนที่ 2เกรดเฉล่ียของคนที่ 3เกรดเฉล่ียของคนที่ 4เกรดเฉล่ียของคนที่ 5
นักเรียน 5 คน
ลองนำมาจัดอยู่ในรูปแบบของอาร์เรย์รหัสนักเรียน [5];ช่ือ [5];
ภาควิชา [5];ช้ันปี [5];
เกรดเฉลี่ย [5];
โครงสร้างข้อมูลของ “นักเรียน”
โครงสร้างข้อมูลของ “นักเรียน”
โครงสร้างข้อมูล นักเรียน{
รหัสนักเรียน;ช่ือ;ภาควิชา;ช้ันปี;เกรดเฉลี่ย;
};
นำโครงสร้างมาใช้
นักเรียน นักเรียนคนท่ี1; นักเรียนคนท่ี1.รหัสนักเรียน;นักเรียนคนท่ี1.ช่ือ;นักเรียนคนท่ี1.ภาควิชา;นักเรียนคนท่ี1.ช้ันป;ีนักเรียนคนท่ี1.เกรดเฉล่ีย;
นำโครงสร้างมาใช้
เมื่อมีนักเรียน 5 คน เราใช ้array เข้ามาช่วย
นักเรียน นักเรียนคนท่ี[5];
นำโครงสร้างมาใช้
นักเรียนคนท่ี[0].รหัสนักเรียน;นักเรียนคนท่ี[0].ช่ือ;นักเรียนคนท่ี[0].ภาควิชา;นักเรียนคนท่ี[0].ช้ันป;ีนักเรียนคนท่ี[0].เกรดเฉล่ีย;
นักเรียนคนท่ี[1].รหัสนักเรียน;นักเรียนคนท่ี[1].ช่ือ;นักเรียนคนท่ี[1].ภาควิชา;นักเรียนคนท่ี[1].ช้ันป;ีนักเรียนคนท่ี[1].เกรดเฉล่ีย;
Structure
ความแตกต่างระหว่าง Array กับ Structure
struct
รูปแบบการสร้างโครงสร้างแบบ
struct
• การสร้างโครงสร้างและสร้างตวัแปรโครงสร้างพร้อมกนั
1
• การสร้างโครงสร้างไว้ก่อน แล้วนําโครงสร้างมาสร้างเป็นตวัแปรโครงสร้างทีหลงั
2
1
การสร้างโครงสร้างและสร้างตัวแปรโครงสร้างพร้อมกัน
2
การสร้างโครงสร้างไว้ก่อน แล้วนำโครงสร้างมาสร้างเป็นตัวแปรโครงสร้างทีหลัง
การอ้างอิงถึงสมาชิกของ structure
การอ้างถึงสมาชิกใน structure ไม่สามารถจะอ้างถึงช่ือตัวแปรใน structure ได้โดยตรง แต่จะต้องกำหนดตัวแปรโครงสร้างขึ้นมาก่อน จากนั้นจึงจะสามารถอ้างอิงสมาชิกตัวแปรท่ีอยู่ในโครงสร้างได้ โดยใช้ช่ือตัวแปรโครงสร้าง ตามด้วยจุด (.) และตามด้วยช่ือสมาชิกตัวแปรในโครงสร้าง เช่น >…..
การอ้างอิงถึงสมาชิกของ structure
struct STD { char name[31];
float midterm;char grade;
} student, stud;
student.name = “Wacheerapan”;student.midterm = 25.23;
stud.name = “Chanokchon”;stud.grade = ‘A’;
การนำตัวแปรโครงสร้างไปใช ้
struct STD { char name[31];
float midterm;char grade;
} student, stud; scanf(“%s”,&student.name);scanf(“%f”,&student.midterm)if (student.midterm > 15) {
printf(“%s, Good.”,student.name)}else {
printf(“%s, %.2f is bad.”,student.name, student.midterm);}
typedefstruct
รูปแบบการสร้างโครงสร้างแบบ
typedef
typedef struct { ชนิดข้อมูล ชื่อรายการ; ชนิดข้อมูล ชื่อรายการ; ชนิดข้อมูล ชื่อรายการ; ชนิดข้อมูล ชื่อรายการ; } ชื่อสตรักเจอร์;
การนำโครงสร้างtypedef ไปสร้างเป็นตัวแปรโครงสร้าง
#define MAX_LEN 12typedef struct {
char name[MAX_LEN];int id;float gpa;char major[10];
} student_t;
student_t s;student_t stu1, stu2, stu3;
การนำตัวแปรโครงสร้าง
typedef ไปใช้
typedef struct{
int month, day, year;} DATE;
main() {DATE d1;
d1.month = 12;d1.day = 2;d1.year = 1970;
}
การนำตัวแปรโครงสร้าง
typedef ไปใช้
typedef struct{
int month, day, year;} DATE;
main() {DATE d1 = {12, 2, 1970};
}
การนำตัวแปรโครงสร้าง
typedef ไปใช้
typedef struct{
int month, day, year;} DATE;
main() {DATE d1, d2;d1 = {12, 2, 1970};d2 = d1;
}
การนำตัวแปรโครงสร้างไปใช้กับอาร์เรย์
การนำตัวแปรโครงสร้างไปใช้กับอาร์เรย์
กรณีท่ีต้องการใช้ตัวแปรโครงสร้างซ้ำกันหลายๆตัว เราสามารถใช้คุณสมบัติของอาร์เรย์กับตัวแปรโครงสร้างได้ ตัวอย่างเช่นต้องการสร้างตัวแปรโครงสร้าง “student” 10 ชุด จะสามารถกำหนดเป็นตัวแปรอาร์เรย์โครงสร้างได้คือ student[10];
การนำตัวแปรโครงสร้างไปใช้กับอาร์เรย์
การนำตัวแปรโครงสร้างไปใช้กับอาร์เรย์
ประเมินการสอน
เข้าไปประเมินการสอนในระบบ ete.tido.tech
Mini Project
1. Videoแสดงความคืบหน้าของงาน อพัโหลดลง youtube แล้วนําลงิค์ใสล่งในไฟล์ .txtสง่ในระบบ ภายใน วนัศกุร์ทีE 10พ.ย. 2560เวลา 23.59น.
2. ไฟล์นําเสนอ+ไฟล์โปรแกรมทีEใช้ในการสอบจบมินิโปรเจค บีบอดัลงใน zip สง่ในระบบภายใน วนัจนัทร์ทีE20พ.ย.2560เวลา 13.00น.