Structure.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Suphot Sawattiwong Function ใน C# Suphot Sawattiwong
Advertisements

Pointers. Why have pointers? / pointers ทำให้ฟังก์ชันหรือส่วนของ โปรแกรมสามารถใช้งานข้อมูลร่วมกันได้ / ใช้ pointers ในการสร้างโครงสร้างข้อมูลที่ ซับซ้อนได้
Arrays.
สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
โดยอาจารย์ศิริพร ศักดิ์บุญญารัตน์ ครูชำนาญการ โรงเรียนมหิดลวิทยานุสรณ์
ตัวแปรชุด การเขียนโปรแกรมภาษาคอมพิวเตอร์ 1
Computer Programming 1 LAB Test 3
บทที่ 7 รีเคอร์ซีฟ ระหว่างการออกแบบเขียนโปรแกรมแบบบนลงล่าง (Top-down Design) จะมีงานย่อย(Subtask) เพื่อแก้ปัญหาในแต่ละเรื่อง และผู้เขียนโปรแกรมต้องการใช้งานย่อยในลักษณะที่เรียกตัวเองขึ้นมาทำงาน.
BC322 ครั้งที่ 10 ตัวแปรชุด (Array)
พอยน์เตอร์ (Pointer) Chapter Introduction to Programming
ข้อมูลชนิดโครงสร้าง (Structure Data)
ตัวแปรชุด (Array) Chapter Introduction to Programming
บทที่ 11 การเขียนโปรแกรมโดยใช้ข้อมูลชนิดพอยท์เตอร์
Chapter 7 ขอบเขตของตัวแปร Variable Scope.
ตัวแปรชนิดโครงสร้าง (Structure)
หลักการโปรแกรม 1 Lecture 3: ตัวแปร, นิพจน์คณิตศาสตร์, การคำนวณทางคณิตศาสตร์,การดำเนินการกับสายอักขระ.
Lecture 10: อาร์เรย์หนึ่งมิติ
ทบทวน อาร์เรย์ (Array)
Structure Programming
ชนิดของข้อมูลและตัวดำเนินการ
Arrays and Pointers.
LAB # 4 Computer Programming 1 1. พิจารณาโปรแกรมต่อไปนี้
LAB # 5 Computer Programming 1 1.
LAB # 4.
Week 6 ประกาศค่าตัวแปร.
ตัวชี้ P O I N T E R Created By Tasanawan Soonklang
อาเรย์ (Array).
ฟังก์ชั่น function.
Lecture no. 6 Structure & Union
การรับข้อมูลเบื้องต้นโดยใช้ฟังก์ชั่น scanf
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
Arrays.
ตัวแปรแบบโครงสร้าง.
บทที่ 12 Structure and union Kairoek choeychuen
บทที่ 6 ตัวแปรอาร์เรย์ (Array of Variable)
C Programming Lecture no. 9 Structure.
ข้อมูลชนิดอาร์เรย์ ประเภทของข้อมูลที่ผ่านมาส่วนใหญ่ในตอนต้นๆจะเป็นข้อมูลเดี่ยว โดยตัวแปรหนึ่งตัวสามารถเก็บข้อมูลได้หนึ่งตัว ถ้าหากต้องการเก็บข้อมูลหลายตัวจะต้องประกาศตัวแปรหลายตัว.
การเขียนโปรแกรมคอมพิวเตอร์และอัลกอริธึม
หน่วยที่ 14 การเขียนโปรแกรมย่อย
อาร์เรย์และข้อความสตริง
อาร์เรย์ (Array).
อาร์เรย์ (Array).
บทที่ 7 คำสั่งสำหรับเขียนโปรแกรม
ตัวแปรกับชนิดของข้อมูล
ฟังก์ชัน ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ศูนย์คอมพิวเตอร์
ฟังก์ชันรับข้อมูล ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
แถวลำดับ (array) ง40202 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
ง30212 พื้นฐานการเขียนโปรแกรม ศูนย์คอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
ตัวแปรกับชนิดของข้อมูล
Week 2 Variables.
Week 12 Engineering Problem 2
Computer Programming for Engineers
ตัวแปรชุด Arrays.
Object-Oriented Programming
วิชา COSC2202 โครงสร้างข้อมูล (Data Structure)
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
บทที่ 6 โครงสร้างข้อมูลเบื้องต้น
ตัวแปร Array แบบ 1 มิติ การเขียนโปรแกรมแบบวนซ้ำ
โครงสร้างข้อมูลแบบรายการโยง (Link List)
ข้อมูลแบบโครงสร้างและยูเนียน
โครงสร้างข้อมูลแบบลิงก์ลิสต์
1. Global variable คือ ตัวแปรที่กำหนดหรือประกาศไว้นอกฟังก์ชันใด ๆ ทุกฟังก์ชัน สามารถนำตัวแปรประเภท Global ไปใช้ได้ทุกฟังก์ชัน.
บทที่ 11 การจัดการข้อมูลสตริง
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การเขียนโปรแกรม (ภาษาซี)
บทที่ 6 ตัวแปรชุดและ สตริง รายวิชา ง การเขียนโปรแกรมเชิง วัตถุ Reading: ใบความรู้ บทที่ 6.
Function. วัตถุประสงค์การเรียนรู้ ให้รู้จักว่าฟังก์ชันคืออะไร ให้รู้จักว่าเราสร้างฟังก์ชันเพื่อจุดประสงค์ใด หรือ เพื่อประโยชน์ใด ให้รู้จักประเภทของฟังก์ชัน.
Programming assignments ชื่องาน (subject) : program เขียนด้วยภาษา C หรือ C++ มีทั้งหมด 7 ข้อ กำหนดส่ง 29 กรกฎาคม 2554.
Computer Programming การเขียนโปรแกรม คอมพิวเตอร์ สัปดาห์ที่ 6 คำสั่งควบคุมการทำงานแบบ เงื่อนไขและคำสั่งควบคุมการ ทำงานแบบวนซ้ำ.
Computer Programming Asst. Prof. Dr. Choopan Rattanapoka
ใบสำเนางานนำเสนอ:

Structure

Overview รู้จักกับ structure การประกาศและใช้งาน structure การประกาศและใช้งาน union

Structure

ฐานข้อมูลระเบียนประวัติการศึกษา นิสิต มหาวิทยาลัยเกษตรศาตร์ ID NAME AGE ADDRESS COURSE ID COURSE NAME COURSE DESC CREDIT STUDENT ID COURSE ID[4] GRADE[4] COURSE GRADE

STUDENT ID in memory NAME AGE ID NAME AGE ADDRESS ADDRESS STUDENT

GRADE ID in memory COURSE GRADE ID COURSE ID[4] GRADE[4] GRADE

What is structure ? Structure – โครงสร้าง คือ กลุ่มของข้อมูลที่มีชนิดเหมือนกันหรือต่างกันก็ได้ ซึ่งนำมารวมกลุ่มแล้วเรียกเป็นชื่อเดียวกัน Structure มีประโยชน์มากในการสร้างและจัดการโครงสร้างข้อมูลที่ซับซ้อน

Structure Vs Array Structures ไม่เหมือนกับ arrays structure สามารถมี array ในตัวมันเองได้ structure สามารถเขียนให้ซับซ้อนหรือธรรมดาก็ได้ขึ้นอยู่กับความต้องการของ programmer

ข้อสังเกตุ ข้อสังเกต struct เป็นคำสงวน ซึ่งมันจะทำหน้าที่เป็นชนิดข้อมูลชนิดใหม่เรียกว่า aggregate type จุดประสงค์ของ structures คือเป็นการให้ tool สำหรับการสร้างรูปแบบของตัวแปรตามที่เราต้องการ structure มีส่วนประกอบ 2 ส่วนคือ structure-name ชื่อของ structure variables (called members) ภายใน structure ซึ่งทุกตัวแปร variable ภายใน structure เองก็จะมีชื่อของมันเองด้วย

Declaration and Syntax structure จะถูกประกาศเหมือนกับการสร้างแม่แบบของตัวแปร ตัวอย่างการประกาศ ซึ่งทั้งนี้ต้องประกาศไว้ส่วนหัวของโปรแกรม struct PersonalData { char name[namesize]; char address[addresssize]; int YearOfBirth; int MonthOfBirth; int DayOfBirth; };

จากตัวอย่างเป็นการประกาศโครงสร้างของ struct PersonalData โดยที่ประกอบไปด้วย ตัวแปร string ที่เราจะเรียกว่า name ตัวแปร string ที่เราจะเรียกว่า address ตัวแปร integers 3 ตัวที่เราจะเรียกว่า YearOfBirth, MonthOfBirth และ DayOfBirth ตัวแปรใดที่ประกาศชนิดเป็น struct PersonalData ก็จะมีส่วนต่างๆดังที่กล่าวไปแล้ว

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

struct PersonalData x; ขั้นต่อไป เนื่องจากว่าเป็นการสร้างโครงสร้างไว้ยังไม่มีเนื้อที่ในหน่วยความจำ เป็นเพียงการประกาศข้อมูลชนิดใหม่ ตัวอย่างการประกาศ struct PersonalData x; เป็นการประกาศตัวแปร x ที่มีชนิดเป็น struct PersonalData

X struct PersonalData x; Memory Other variable name address YearOfBirth MonthOfBirth DayOfBirth

Declaration and Syntax รูปแบบการประกาศ structure struct [ชื่อโครงสร้าง] { [<ชนิดตัวแปร> <สมาชิกตัวที่ 1>]; [<ชนิดตัวแปร> <สมาชิกตัวที่ 2>]; . } [ตัวแปรที่ 1], [ตัวแปรที่ 2]; การนำ structure ที่ประกาศแล้วไปใช้ในส่วนอื่นของโปรแกรม struct [ชื่อโครงสร้าง] [ตัวแปรที่ 1];

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

ตำแหน่งในแกน x X Y ตำแหน่งในแกน y

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;

struct spoint{ int x, y; } p1; รูปแบบที่ 1 เป็นการประกาศรูปแบบโครงสร้างและตั้งชื่อรูปแบบนี้ว่า spoint พร้อมกับทําการประกาศตัวแปรสําหรับโครงสร้างนี้ 1 ตัว คือ p1 การประกาศโครงสร้างในรูปแบบนี้สามารถนําโครงสร้างนี้ไปใช้สําหรับการประกาศตัวแปรใหม่ที่มีโครงสร้างเหมือนกับ p1 ได้โดยไม่ต้องประกาศโครงสร้างนี้ใหม่ หากต้องการประกาศตัวแปร p3 ซึ่งมีโครงสร้างรูปแบบเดียวกับ p1 สามารถทําได้โดยเพิ่มคําสั่งต่อไปนี้ struct spoint p3;

Example 1 ตัวอย่างที่ 1 ประกาศชื่อ structure พร้อมประกาศตัวแปร #include <stdio.h> struct spoint { int x, y; } p1; struct spoint p2; int main() { struct spoint p3; //... } ชื่อโครงสร้าง ตัวแปร

struct { int x, y; } p1; แบบที่ 2 เป็นการประกาศรูปแบบโครงสร้างหนึ่งขึ้นมา พร้อมกับการประกาศตัวแปรสำหรับโครงสร้าง 1 ตัว คือ p1

Example 2 ตัวอย่างที่ 2 ประกาศตัวแปร แต่ไม่ประกาศชื่อของ structure #include <stdio.h> struct { int x, y; } p1; int main() { //... } ตัวแปร

struct spoint{ int x, y; }; struct spoint p1; แบบที่ 3 คล้ายกับรูปแบบที่ 1 เป็นการประกาศโครงสร้างแต่ไม่ประกาศตัวแปรพร้อมกับประกาศโครงสร้าง แต่จะมีการประกาศตัวแปรทีหลัง

Example 3 ตัวอย่างที่ 3 ประกาศชื่อ structure แต่ประกาศตัวแปรภายหลัง #include <stdio.h> struct spoint { int x, y; }; struct spoint p1; int main() { struct spoint p2; //... } ชื่อโครงสร้าง ตัวแปร

typedef typedef ใช้ประกาศชนิดตัวแปรชนิดใหม่ มีรูปแบบคือ typedef struct { int x, y; } tpoint; ประกาศชนิดตัวแปรชื่อ tpoint เป็นแบบ structure typedef int INTEGER; ประกาศชนิดตัวแปรชื่อ INTEGER เป็นชนิด int ประกาศชนิดตัวแปรชื่อ char100 เป็น array ของ char ขนาด 100 typedef char[100] char100;

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;

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; //... } ชื่อโครงสร้าง ชื่อชนิดข้อมูล ตัวแปร

Example 5 ตัวอย่างที่ 5 ประกาศ structure เป็นชนิดตัวแปรชนิดใหม่ แต่ไม่ประกาศชื่อ structure #include <stdio.h> typedef struct { int x, y; } tpoint; tpoint p1; int main() { tpoint p2; //... } ชื่อชนิดข้อมูล ตัวแปร

การอ้างถึงสมาชิกของตัวแปรแบบ structure <ชื่อโครงสร้าง>.<ชื่อสมาชิก> ตัวอย่าง #include <stdio.h> struct spoint { int x, y; } p1; int main() { p1.x = 10; } ใช้งาน p1.x เหมือนตัวแปรปกติ

การกำหนดค่าเริ่มต้นให้ตัวแปรแบบ 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};

การกำหนดค่าให้ตัวแปร structure p1.x = 10; p1.y = 20; กำหนดค่าตัวแปร structure โดยตรงไม่ได้ (ยกเว้นตอนกำหนดค่าเริ่มต้น) p1 = {10,20}; ตัวแปรแบบ structure ที่เป็นชนิดเดียวกันสามารถกำหนดค่าให้กันได้ p1 = p2; ถ้า p1 และ s2 เป็น structure คนละตัวให้ค่ากันไม่ได้ p1 = s2;

การเปรียบเทียบตัวแปร structure if (p1 == p2) การเปรียบเทียบตัวแปร structure ใช้การเปรียบเทียบสมาชิก if ((p1.x == p2.x) && (p1.y == p2.y))

การใช้ตัวแปร structure กับ cin และ cout cout << p1; cin >> p1; การใช้งานใช้ผ่านสมาชิกของ structure นั้น cout << p1.x << p2.y; Cin >> p1.x >> p2.y;