บทที่ 12 Structure and union Kairoek choeychuen

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Pointers. Why have pointers? / pointers ทำให้ฟังก์ชันหรือส่วนของ โปรแกรมสามารถใช้งานข้อมูลร่วมกันได้ / ใช้ pointers ในการสร้างโครงสร้างข้อมูลที่ ซับซ้อนได้
Advertisements

ครั้งที่ 9 Function(ต่อ).
รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
ตัวแปรประเภทตัวชี้ (Pointer)
โดยอาจารย์ศิริพร ศักดิ์บุญญารัตน์ ครูชำนาญการ โรงเรียนมหิดลวิทยานุสรณ์
ตัวแปรชุด การเขียนโปรแกรมภาษาคอมพิวเตอร์ 1
การเขียนโปรแกรมด้วยคำสั่งเบื้องต้น
ข้อมูลชนิดสตริง String บทที่ 8
Introduction to C Programming
BC322 ครั้งที่ 6 Text file BC322 : computer Programming (Week6)
ครั้งที่ 8 Function.
BC322 ครั้งที่ 13 Array 2 มิติ BC322 Computer Programming-Array Processing.
Department of Computer Business
การรับค่าและแสดงผล.
พอยน์เตอร์ (Pointer) Chapter Introduction to Programming
ข้อมูลชนิดโครงสร้าง (Structure Data)
สายอักขระและ การประมวลผลสายอักขระ (String and String manipulation)
บทที่ 11 การเขียนโปรแกรมโดยใช้ข้อมูลชนิดพอยท์เตอร์
Chapter 7 ขอบเขตของตัวแปร Variable Scope.
ตัวแปรชนิดโครงสร้าง (Structure)
Data Type part.II.
ทบทวน อาร์เรย์ (Array)
Structure Programming
Array.
Structure.
Week 6 ประกาศค่าตัวแปร.
ตัวชี้ P O I N T E R Created By Tasanawan Soonklang
อาเรย์ (Array).
ฟังก์ชั่น function.
ปฏิบัติการครั้งที่ 9 ฟังก์ชัน.
ตัวแปรชุด.
Lecture no. 6 Structure & Union
การรับข้อมูลเบื้องต้นโดยใช้ฟังก์ชั่น scanf
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
Arrays.
Kairoek Choeychuen M.Eng (Electrical), KMUTT
บทที่ 6 ตัวแปรอาร์เรย์ (Array of Variable)
C Programming Lecture no. 9 Structure.
C Programming Lecture no. 6: Function.
SCC : Suthida Chaichomchuen
ข้อมูลชนิดอาร์เรย์ ประเภทของข้อมูลที่ผ่านมาส่วนใหญ่ในตอนต้นๆจะเป็นข้อมูลเดี่ยว โดยตัวแปรหนึ่งตัวสามารถเก็บข้อมูลได้หนึ่งตัว ถ้าหากต้องการเก็บข้อมูลหลายตัวจะต้องประกาศตัวแปรหลายตัว.
บทที่ 11 การเขียนโปรแกรมภาษาซี
ข้อมูลพื้นฐานและตัวดำเนินการ
หน่วยที่ 14 การเขียนโปรแกรมย่อย
อาร์เรย์และข้อความสตริง
บทที่ 3 สตริงและ เรคคคอร์ค
อาร์เรย์ (Array).
ตัวแปรกับชนิดของข้อมูล
ฟังก์ชัน ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ศูนย์คอมพิวเตอร์
แถวลำดับ (array) ง40202 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
ปฏิบัติการครั้งที่ 10 pointer. หน่วยความจำ หน่วยความจำนั้นเสมือนเป็นช่องว่างไว้เก็บ ของที่มีหมายเลขประจำติดไว้ที่แต่ละช่อง เพื่อใช้ในการระบุตำแหน่งของช่องได้
ตัวแปรกับชนิดของข้อมูล
การประมวลผลสายอักขระ
Computer Programming for Engineers
คำสั่งเกี่ยวกับการรับ และแสดงผล
Output of C.
ตัวแปร Array แบบ 1 มิติ การเขียนโปรแกรมแบบวนซ้ำ
ข้อมูลแบบโครงสร้างและยูเนียน
Java Programming Java Structure and Datatype,Variable
หน่วยที่ 4 โครงสร้างโปรแกรมภาษาซี
การกระทำทางคณิตศาสตร์
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การเขียนโปรแกรม (ภาษาซี)
1 สตริง (String) การประกาศค่าตัวแปรสตริง การกำหนดค่าสตริง การอ้างอิงตัวอักษรแต่ละตัวในสตริง ฟังก์ชั่นที่ใช้ในการจัดการสตริง ฟังก์ชั่นในการเปลี่ยนรูปแบบของสตริง.
Function. วัตถุประสงค์การเรียนรู้ ให้รู้จักว่าฟังก์ชันคืออะไร ให้รู้จักว่าเราสร้างฟังก์ชันเพื่อจุดประสงค์ใด หรือ เพื่อประโยชน์ใด ให้รู้จักประเภทของฟังก์ชัน.
Variable, Constant. Variable คือชื่อที่ตั้งขึ้นมาเพื่อจองพื้นที่ใน หน่วยความจำสำหรับ พักข้อมูล.
Computer Programming Asst. Prof. Dr. Choopan Rattanapoka
บทที่ 11 พอยเตอร์ C Programming C-Programming. จันทร์ดารา Surin Campus : มีอะไรบ้างในบทนี้  ตัวแปรพอยเตอร์ (Pointer) เป็นตัว แปรที่แปลกและแตกต่างไปจากตัว.
ภาษา C เบื้องต้น.
ใบสำเนางานนำเสนอ:

บทที่ 12 Structure and union Kairoek choeychuen

ใช้เก็บข้อมูลแบบโครงสร้าง (structure) ข้อมูลแบบโครงสร้างคือกลุ่มข้อมูลที่อาจสัมพันธ์ หรือไม่สัมพันธ์กันก็ได้เช่น ข้อมูลพนักงานของบริษัทแห่งหนึ่ง ชื่อ นามสกุล เพศ อายุ ตำแหน่ง เงินเดือน Thomas Tomasi Male 55 Director 100,000 John Paker 45 Computer Eng. 19,000

รูปแบบ 1 struct struct_name{ data_type1 var_name1; data_type2 var_name2; … data_type n var_nanme n; } ref_struct_name;

ตัวอย่างรูปแบบ 1 struct employee{ char name[10]; char surname[13]; char sex[6]; int age; char position; int salary; } emp;

รูปแบบ 2 struct struct_name{ data_type1 var_name1; data_type2 var_name2; … data_type n var_nanme n; }; struct struct_name ref_struct_name;

ตัวอย่างรูปแบบ 2 struct employee{ char name[10]; char surname[13]; char sex[6]; int age; char position; int salary; }; Struct employee emp;

- ใช่สร้างชนิดข้อมูลเฉพาะ ที่ผู้เขียนโปรแกรมต้องการ คีย์เวิร์ด typedef - ใช่สร้างชนิดข้อมูลเฉพาะ ที่ผู้เขียนโปรแกรมต้องการ รูปแบบ1: ชนิดข้อมูลปกติ typedef data_type name; รูปแบบ2: ชนิดข้อมูลโครงสร้าง typedef struct{ data_type1 var_name1; … data_type n var_nanme n; }struct_name; struct_name ref_struct_name; คีย์เวิร์ด typedef

ตัวอย่างรูปแบบ1: ชนิดข้อมูลปกติ typedef int NUM; typedef char CHA; ตัวอย่างรูปแบบ2: ชนิดข้อมูลโครงสร้าง typedef struct{ char student_id[10]; int points; float grade; }STUDENT; STUDENT std; คีย์เวิร์ด typedef

ตัวอย่าง การกำหนดค่าเริ่มต้นให้ ตัวแปรชนิด struct ตัวอย่างที่ 1 struct person{ char name[10]; int age;}; struct person ps = {“Somchai”, 21}; struct รูปแบบที่ 2

ตัวอย่าง การกำหนดค่าเริ่มต้นให้ ตัวแปรชนิด struct ตัวอย่างที่ 2 struct rentroom{ int roomNum; char res_name[10]; char sex; }room1 = {1,“Somchai”}; หมายเหตุ: sex ไม่ถูกกำหนดค่าเริ่มต้น จะเก็บค่า default , เช่น sex เก็บ \0 struct รูปแบบที่ 1

ตัวอย่าง การกำหนดค่าเริ่มต้นให้ ตัวแปรชนิด struct ตัวอย่างที่ 3 typedef struct { int roomNum; char res_name[10]; char sex; }rentroom; rentroom rr = {1,“Somying”, ‘F’}; struct รูปแบบ typedef

Read and write structured data การอ่านและเขียนข้อมูล แบบโครงสร้าง รูปแบบการอ่านฯ ตัวแปรรับค่า = ref_name_struct.data_type; รูปแบบการเขียนฯ ref_name_stract.data_type = ข้อมูล; Read and write structured data

Run program เขียนข้อมูล ใส่ rr อ่านข้อมูล จาก rr หมายเหตุ: //atoi แปลง สตริง เป็น จำนวนเต็ม #รูปแบบ: จำนวนเต็ม = atoi(สตริง); //atof แปลง สตริง เป็น จำนวนจริง #รูปแบบ: จำนวนจริง = atof(สตริง);

การคัดลอกข้อมูลระหว่าง สตรัคเจอร์ struct number{ int a; char b; float c; }num1 = {1, ‘a’, 1.1}, num2 = {2, ‘b’, 2.2}; num1 = num2; คัดลอกข้อมูลจาก num2 ไป num1

สตรัคเจอร์ซ้อนสตรัคเจอร์ (Nested structure) struct time{ int hour; int min; int sec; }; struct sms s = {“Kairoek”, “Hello”, {16,54,55}}; กำหนดค่าเริ่มต้น สตรัค time ใน สตรัค sms ด้วย สัญลักษณ์ {…} struct sms{ char sender[10]; char msg[40]; struct time t; }; s.t.hour = 17; strcpy(s.msg, “Hi”); เปลี่ยนค่า hour ใน สตรัค time ของ สตรัค sms และค่า msg ใน สตรัค sms ประกาศ สตรัค time ใน สตรัค sms

อาร์เรย์ของสตรัคเจอร์ struct number{ int a; char b; float c; }num1 = {1, ‘a’, 1.1}, num2 = {2, ‘b’, 2.2}; ประกาศ อาร์เรย์ของสตรัค num จำนวน 2 ตัวพร้อมกำหนดค่าเริ่มต้น struct number{ int a; char b; float c; }num[2] = {{1, ‘a’, 1.1}, {2, ‘b’, 2.2}};

การกำหนดค่าให้อาร์เรย์ของสตรัคเจอร์ struct number{ int a; char b; float c; }num[2] = {{1, ‘a’, 1.1}, {2, ‘b’, 2.2}}; num[0].a = 11; num[0].b = ‘c’; num[0].c = 1.2; num[1].a = 12; num[1].b = ‘d’; num[1].c = 11; int i; for (i = 0;i<2;i++) { scanf("%d",&num[i].a); getche(num[i].b); scanf("%f",&num[i].c); } หรือ

พอยน์เตอร์ของสตรัคเจอร์ typedef struct{ int a; char b; } TEST; TEST t = {1, ‘a’}; TEST *pt; pt = &t; t.a = 2; (*pt).a = 3; pt->a = 4; กำหนด พอยน์เตอร์ pt เป็นชนิด TEST กำหนด พอยน์เตอร์ pt ชี้ที่ สตรัค t กำหนดค่าให้กับ สมาชิก a ของสตรัค t ทำได้ 3 แบบ

ฟังก์ชันที่มีการรับค่าและส่งค่าของสตรัคเจอร์ รูปแบบฟังก์ชันโปรโตไทป์ struct ชื่อสตรัค ชื่อฟังก์ชัน(struct ชื่อสตรัค) รูปแบบฟังก์ชัน struct ชื่อสตรัค ชื่อฟังก์ชัน(struct ชื่อสตรัค ชื่อตัวแปรชนิดสตรัค)

ฟังก์ชันที่มีการรับค่าและส่งค่าของสตรัคเจอร์ ต่อ #include<stdio.h> #include<conio.h> struct data change(struct data); struct data{ int a; char b;}d = {1, ‘A’}; main(){ printf(“Before\n”); printf(“a = %d\n”, d.a); printf(“b = %c\n”, d.b); d = change(d); ต่อ printf(“after\n”); printf(“a = %d\n”, dd.a); printf(“b = %d\n”, dd.b); struct data change(stract data dt){ dt.a = 2; dt.b = ‘B’; return dt; }

Union (ยูเนียน) structure union struct s1{ int a; float b; char c[5]; - สมาชิกแต่ละตัวใน ยูเนียน ใช้หน่วยความจำร่วมกัน structure union struct s1{ int a; float b; char c[5]; }ss1; union u1{ int a; float b; char c[5]; }uu1;

structure หน่วยความจำ a b c union หน่วยความจำ a b c struct s1{ int a; float b; char c[5]; }ss1; หน่วยความจำ a b c union หน่วยความจำ union u1{ int a; float b; char c[5]; }uu1; a b c

#include<stdio.h> union number{ int x; double y; }; void main() { union number value; value.x = 100; value.y = 95578.25; printf(“Value of x = %d\n”, value.x); printf(“Value of y = %f\n”, value.y); }