บทที่ 8 อาร์เรย์และโครงสร้าง

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
หลักการโปรแกรม 1 Lecture 12: อาร์เรย์หนึ่งมิติ
Advertisements

Array ธนวัฒน์ แซ่ เอียบ. The concept of array อาเรย์ : กลุ่มของข้อมูลที่มีชนิดเดียวกันและถูก จัดเก็บเรียงลำดับต่อเนื่องกัน ตัวแปร x สามารถจัดเก็บค่ามากกว่า.
ความรู้เบื้องต้นเกี่ยวกับระบบฐานข้อมูล
คอมพิวเตอร์ช่วยสอน (CAI)
การใช้งานโปรแกรม SPSS
วิทยาลัยเทคโนโลยีบริหารธุรกิจอยุธยา
Chapter 10 Arrays Dept of Computer Engineering Khon Kaen University.
ชนิดของข้อมูล และการคำนวณทางคณิตศาสตร์
1 Search & Sort Search & Sort วรวิทย์ พูลสวัสดิ์.
การเขียนโปรแกรมภาษาปาสคาล โดยใช้โครงสร้างหลักทั้ง 3 โครงสร้าง
กาญจนา ทองบุญนาค สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
การวิเคราะห์ขั้นตอนวิธีการแก้ปัญหา
หน่วยที่ 6 แถวลำดับ (Array)
ระดับชั้น มัธยมศึกษาปีที่ ๑ ใช้เพื่อคลิ๊กไปสู่ หน้าถัดไป ใช้เพื่อคลิ๊กกลับ หน้าเดิม ใช้เพื่อคลิ๊กกลับสู่ หน้าหลัก ใช้คลิ๊กเมื่อต้องการ ออกจากระบบ.
ตัวแปร และชนิด ข้อมูล. ตัวแปร การกำหนดตัวแปรเป็นการใช้ ชื่อตัวแปรแทน ตำแหน่งบนหน่วยความจำ สำหรับเก็บ ข้อมูลระหว่างการ ประมวลผล ซึ่งอาจเป็นข้อมูลนำเข้า.
ARRAY & PRINTF สาขางานคอมพิวเตอร์ธุรกิจอาจารย์จิรา ภรณ์ เขตกุฎี
Intro Excel 2010 ข้อมูลจาก... ellession1.htm.
เรื่อง หลักการเขียนโปรแกรม เบื้องต้น จัดทำโดย นางสาวชาดา ศักดิ์บุญญารัตน์
การจัดกิจกรรมการ เรียนรู้แบบการทำ โครงงานคอมพิวเตอร์ การจัดกิจกรรมการ เรียนรู้แบบการทำ โครงงานคอมพิวเตอร์ ครูชาญณรงค์ ปานเลิศ โรงเรียนพระบางวิทยา ครูชาญณรงค์
ซอร์ฟแวร์ ( Software ). Microsoft excel Microsoft excel Microsoft power point.. Link Link.
วิชากฎหมายอาคาร รหัสวิชา ท-ป-น (2-0-2) หลักสูตรประกาศนียบัตรวิชาชีพ ปวช.2556 ประเภทวิชาช่างอุตสาหกรรม สาขาวิชาช่างก่อสร้าง สาขาวิชาช่างโยธา.
ฐานข้อมูล.
อาจารย์อภิพงศ์ ปิงยศ Lab 05 : Microsoft Excel (Part3) พท 260 เทคโนโลยีสารสนเทศและการสื่อสารทางการท่องเที่ยว อาจารย์อภิพงศ์ ปิงยศ.
การตรวจสอบคุณภาพเครื่องมือ
สถิติเบื้องต้นสำหรับการวิเคราะห์ข้อมูล
หน่วยที่ 1 ข้อมูลทางการตลาด. สาระการเรียนรู้ 1. ความหมายของข้อมูลทางการตลาด 2. ความสำคัญของข้อมูลทางการตลาด 3. ประโยชน์ของข้อมูลทางการตลาด 4. ข้อจำกัดในการหาข้อมูลทาง.
เกม คณิตคิดเร็ว.
Microsoft Access 2007 การสร้างฟอร์ม
stack #2 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
รายการ(List) [1] ผู้สอน อาจารย์ ยืนยง กันทะเนตร
โปรแกรมย่อย อาจารย์สมเกียรติ ช่อเหมือน
หน่วยการเรียนที่ 6 เรื่อง การจัดการฐานข้อมูลด้วย PHP Function
บทสรุป ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
โครงสร้างข้อมูลและอัลกอริทึมเบื้องต้น
บทที่ 1 สถาปัตยกรรมของระบบฐานข้อมูล (Database Architecture)
แล้วทำการเรียงลำดับข้อมูลใหม่โดยเรียงจากน้อยไปหามาก
BC320 Introduction to Computer Programming
โครงสร้างภาษา C Arduino
หน่วยการเรียนที่ 4 เรื่อง การควบคุมทิศทางการทำงาน
บทที่ 7 การเขียนโปรแกรม แบบวนรอบทำซ้ำ (Loop)
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
เซต (SET) ประวัติย่อของวิชาเซต ความหมายของเซต การเขียนแทนเซต
รายวิชา ไมโครโปรเซสเซอร์ในงานอุตสาหกรรม
ขั้นตอนการออกแบบ ผังงาน (Flow Chart)
การเขียนโปรแกรมแบบวนซ้ำ: คำสั่ง while คำสั่ง do….while
กำหนดกรอบระยะเวลาการขึ้นทะเบียนปี2556/57 1. ข้าว
กลุ่มเกษตรกร.
Data storage II Introduction to Computer Science ( )
บทที่ 6 แนวคิดเทคโนโลยีเสมือนจริง
บริษัท พัฒนาวิชาการ (2535) จำกัด
บทที่ 9 การทำซ้ำ (Loop).
Week 5 C Programming.
ผู้ช่วยศาสตราจารย์จุฑาวุฒิ จันทรมาลี
คำสั่งวนรอบ (Loop).
สาขาวิชาคอมพิวเตอร์ธุรกิจ โดย อาจารย์กิตติพงษ์ ภู่พัฒน์วิบูลย์
หน่วยที่ 6 อะเรย์ของอักขระ
บทที่ 9 การเรียงลำดับข้อมูล (Sorting)
บทที่ 7 การประมวลผลอาร์เรย์
2 โครงสร้างข้อมูลแบบสแตก (STACK).
บทที่ 2 โครงสร้างข้อมูลแบบแถวลำดับหรืออาร์เรย์ (Array)
ชัยพฤกษ์รัตนาธิเบศร์ - วงแหวน
Chapter 3 : Array.
กลุ่มส่งเสริมอาชีพการเกษตร
Array Sanchai Yeewiyom
Array: One Dimension Programming I 9.
สัปดาห์ที่ 9 Designs by SolidWorks
การเขียนโปรแกรมด้วยภาษาไพทอน การเขียนโปรแกรมแบบทางเลือก
โครงการถ่ายทอดเทคโนโลยีถนนรีไซเคิลเพื่อลดขยะพลาสติกใน 4 ภูมิภาค
พอยเตอร์ #include <stdio.h> void main() { int age; int *pointer;
Computer Game Programming
ใบสำเนางานนำเสนอ:

บทที่ 8 อาร์เรย์และโครงสร้าง บทที่ 8 อาร์เรย์และโครงสร้าง

สาระการเรียนรู้ ตัวแปรอาร์เรย์ ตัวแปรโครงสร้าง หน่วยที่ 8 อาร์เรย์และโครงสร้าง

สมรรถนะการเรียนรู้ บอกความหมายของตัวแปรอาร์เรย์ได้ ประกาศตัวแปรอาร์เรย์ 1 มิติได้ ประกาศตัวแปรอาร์เรย์ 2 มิติได้ เขียนโปรแกรมเข้าถึงตัวแปรอาร์เรย์ได้ บอกความหมายของตัวแปรโครงสร้างได้ ประกาศตัวแปรโครงสร้างได้ กำหนดค่าเริ่มต้นให้กับตัวแปรโครงสร้างได้ เขียนโปรแกรมเข้าถึงตัวแปรโครงสร้างได้ ป้อนและทดสอบโปรแกรมตามตัวอย่างได้ หน่วยที่ 8 อาร์เรย์และโครงสร้าง

แผนผังความคิด (Mind Mapping) ของหน่วยการเรียนรู้ อาร์เรย์และโครงสร้าง ตัวแปรอาร์เรย์ ตัวแปรโครงสร้าง อาร์เรย์ 1 มิติ อาร์เรย์ 2 มิติ อาร์เรย์หลายมิติ บิตฟิลด์ ยูเนียน Enumerations คำนวณสถิติพื้นฐาน การจัดเรียงข้อมูล ตัวอย่างโปรแกรม หน่วยที่ 8 อาร์เรย์และโครงสร้าง

อาร์เรย์ (Array) ตัวแปรชุด หรือ อาร์เรย์ (Array) เป็นโครงสร้างข้อมูลพื้นฐานและใช้งานมากที่สุด ทำหน้าที่ในการจองเนื้อที่ในหน่วยความจำ โดยใช้ชื่อตัวแปรเดียว อ้างถึงข้อมูลโดยใช้ตัวชี้หรือดัชนี (Index) ในภาษาซี ค่าของตัวชี้ของตัวแปรชุดตัวแรกจะมีค่าเป็น 0 ตัวต่อไปจะมีค่าเป็น 1,2,… จนถึง n-1 หน่วยที่ 8 อาร์เรย์และโครงสร้าง

อาร์เรย์ 1 มิติ (One Dimension Array) ใช้ในการจัดเก็บข้อมูลโดยตัวชี้ตำแหน่งอ้างอิงแถว (Row) รูปแบบการประกาศตัวแปรอาร์เรย์ 1 มิติ type var_name [row]; เช่น 1. int arr[5]; เป็นการประกาศตัวแปรอาร์เรย์ชื่อ arr จองไว้ 5 แถว คือ arr[0] arr[1] arr[2] arr[3] arr[4] 2. char fname[30][40]; เป็นการประกาศตัวแปรข้อความ (String) ที่มีความยาว 29 อักขระแบบอาร์เรย์ชื่อ fname จองไว้ 40 แถว ซึ่งมีลักษณะเป็นอาร์เรย์ 2 มิติของตัวแปรอักขระที่มี 30 คอลัมน์ 40 แถว นั่นเอง หน่วยที่ 8 อาร์เรย์และโครงสร้าง

อาร์เรย์ 2 มิติ (Two Dimension Array) ใช้ในการจัดเก็บข้อมูลในลักษณะตาราง โดยตัวชี้ตำแหน่งอ้างอิงแถว (Row) และคอลัมน์ (Column) รูปแบบการประกาศตัวแปรอาร์เรย์ 1 มิติ type var_name [row][column]; เช่น 1. int arr[5][3]; เป็นการประกาศตัวแปรอาร์เรย์ชื่อ arr จองไว้ 5 แถว 3 คอลัมน์ คือ arr[0][0], arr[0][1], arr[0][2] arr[1][0], arr[1][1], arr[1][2] arr[2][0], arr[2][1], arr[2][2] arr[3][0], arr[3][1], arr[3][2] arr[4][0], arr[4][1], arr[4][2] หน่วยที่ 8 อาร์เรย์และโครงสร้าง

อาร์เรย์ 3 มิติ (Three Dimension Array) มีลักษณะการประกาศในทำนองเดียวกัน แต่เพิ่มความลึก หรือเรียกว่าจำนวนแผ่น แต่ในเบื้องต้นนี้จะกล่าวเพียงอาร์เรย์ 2 มิติ ส่วนอาร์เรย์หลายมิติ โปรแกรมโดยทั่วไปมักไม่ค่อยมีใช้กัน จะมีก็จะเกี่ยวข้องกับการประมวลผลภาพหรือด้านกราฟิก 3 มิติ หรือ 4 มิติ รูปแบบการประกาศตัวแปรอาร์เรย์ หลาย มิติ type var_name [row][column][dept]…[…]; หน่วยที่ 8 อาร์เรย์และโครงสร้าง

การหาค่าสูงสุด ค่าต่ำสุด ค่าผลรวมและค่าเฉลี่ยของชุดข้อมูล ในการเขียนโปรแกรมรับค่าข้อมูลจากแป้นพิมพ์หรืออ่านมาจากแฟ้มข้อมูล เพื่อนำมาเก็บไว้ในตัวแปรอาร์เรย์ มี 2 กรณีคือ กรณีที่ทราบจำนวนข้อมูล ในการเขียนโปรแกรมจะใช้ โครงสร้างของคำสั่งวนรอบหรือลูป (Loop) ไม่ว่าจะเป็นคำสั่ง do-while, while หรือคำสั่ง for ส่วนอีกกรณีคือไม่ทราบจำนวนที่แน่นอนของจำนวนข้อมูล จะใช้เทคนิคการอ่านข้อมูลเข้ามาที่ละตัวเพื่อมาเปรียบเทียบกับข้อมูลที่กำหนดขึ้น ซึ่งข้อมูลที่กำหนดขึ้นนี้ จะเป็นข้อมูลที่ไม่มีอยู่ในข้อมูลชุดนั้น เช่น ถ้าอ่านคะแนนที่มีค่าระหว่าง 0-100 เข้ามา เราอาจกำหนดข้อมูลที่ใช้เปรียบเทียบเป็น 999 หรือ -999 ซึ่งจะเป็นการตรวจเพื่อให้สิ้นสุดการรับข้อมูล หน่วยที่ 8 อาร์เรย์และโครงสร้าง

การจัดเรียงข้อมูล (Sorting) การประมวลผลข้อมูลที่เป็นกระบวนการหลักอย่างหนึ่งในโปรแกรมต่าง ๆ ที่เกี่ยวข้องกับการจัดการข้อมูล ก็คือการจัดเรียงข้อมูล (Sorting) ข้อมูลที่จะนำมาจัดเรียงจะถูกจัดเก็บในแบบของตัวแปรอาร์เรย์ หรือตัวแปรโครงสร้างแบบอาร์เรย์ ส่วนวิธีการจัดเรียงข้อมูลนั้น มีมากมายหลายวิธี ได้แก่ แบบ bubble, cocktail, exchange, selection, insertion, shell, merge, heap, quick เป็นต้น ถึงแม้ว่าวิธีการจัดเรียงข้อมูลที่เร็วที่สุด ซึ่งมีความซับซ้อน ทำความเข้าใจได้ยาก ก็อาจไม่เหมาะกับงานที่มีข้อมูลน้อย ๆ เพราะการบำรุงรักษาโปรแกรม ต้องสามารถกระทำได้ อาจไม่ใช่บุคคล คนเดียวกับผู้เขียนโปรแกรมคนแรกของงานชิ้นนั้น ดังนั้นอาจเลือกใช้วิธีที่คนส่วนใหญ่ควรจะรู้จักและสามารถพัฒนาหรือปรับปรุงโปรแกรมในภายหลังได้ แต่เป็นวิธีการที่มีเสถียรภาพและความถูกต้องแม่นยำในการประมวลผล หน่วยที่ 8 อาร์เรย์และโครงสร้าง

การจัดเรียงข้อมูลแบบ Exchange Sort i 0 n-2 +1 j i+1 n-1 x[i]<->x[j] x[i]>x[j] Exchange Return Yes No หน่วยที่ 8 อาร์เรย์และโครงสร้าง

Exchange Sort int x[1000],n; // exchange Sort void exchange() { int i,j; for (i=0; i<=n-2; i++) for (j=i+1; j<=n-1; j++) if (x[i]>x[j]) swap(i,j); } void swap(int a, int b) if (a != b) int t=x[a]; x[a]=x[b]; x[b]=t; หน่วยที่ 8 อาร์เรย์และโครงสร้าง

การจัดเรียงข้อมูลแบบ Bubble Sort No Bubble i 0 m-2 +1 do x[i]>x[i+1] x[i]<->x[i+1] m=m-1 f=1? Returan Yes f=1 f=0 m=n หน่วยที่ 8 อาร์เรย์และโครงสร้าง

Bubble Sort int x[1000],n; // Bubble Sort void bubble() { int f,i,m,n; m = n; do { f=0; for (i=0; i<=m-2; i++) if (x[i] > x[i+1]) { swap(i,i+1); f=1; } m--; } while (f==1); หน่วยที่ 8 อาร์เรย์และโครงสร้าง

การจัดเรียงข้อมูลแบบ Insertion Sort +1 Insertion Return j t = x[i] i Cond_ -1 x[j]=x[j-1] Cond_ j>0 and x[j-1]>t x[j] = t หน่วยที่ 8 อาร์เรย์และโครงสร้าง

Insertion Sort int x[1000],n; // insertion Sort void insertion() int i, j, t; for (i = 1; i < n; i++) { t = x[i]; for (j = i; j > 0 && x[j-1] > t; j--) x[j] = x[j-1]; } x[j] = t; หน่วยที่ 8 อาร์เรย์และโครงสร้าง

ตัวแปรโครงสร้าง โครงสร้างหรือสตรักเจอร์ เป็นข้อมูลโครงสร้างที่ประกอบด้วยสมาชิก (Member) หลายตัว โดยแต่ละตัวอาจมีชนิดของข้อมูลแตกต่างกัน หน่วยที่ 8 อาร์เรย์และโครงสร้าง

การประกาศโครงสร้าง ในการเขียนโปรแกรมใช้งานตัวแปรโครงสร้าง จะต้องมีการนิยามโครงสร้างและประกาศตัวแปรโครงสร้างก่อน จึงจะสามารถใช้ตัวแปรโครงสร้างนั้นได้ รูปแบบการประกาศโครงสร้าง struct <structure_name> { type var1; type var2; type varN; } [<var1_structure>][,<var2_structure>,...]; หน่วยที่ 8 อาร์เรย์และโครงสร้าง

ตัวอย่างโครงสร้าง struc person { char id[13]; char fname[30]; int age; char address[40]; char tel[10]; } cust1, cust2, emps[30]; โครงสร้างข้างต้นนี้ ประกอบด้วยสมาชิก (Member) 5 สมาชิก ได้แก่ id, fname, age, address, tel หลังจากนิยามโครงสร้างแล้ว ยังได้ประกาศตัวแปรโครงสร้าง 2 ตัวเป็นแบบทั่วไป คือ cust1 และ cust2 ส่วน emps เป็นตัวแปรโครงสร้างที่เป็นตัวแปรชุดหรือตัวแปรอาร์เรย์ 1 มิติ หน่วยที่ 8 อาร์เรย์และโครงสร้าง

การประกาศตัวแปรโครงสร้าง หลังจากได้มีการนิยามโครงสร้างไว้แล้ว เราสามารถประกาศตัวแปรโครงสร้างได้ดังนี้ รูปแบบการประกาศตัวแปรโครงสร้าง struc <structure_name> var_struct [,var_struct,...]; เช่น struc person cust3, cust4; หรือประกาศเป็นตัวแปรชุด struc person boss[5]; หน่วยที่ 8 อาร์เรย์และโครงสร้าง

ตัวแปรโครงสร้างเป็นสมาชิกหนึ่งในตัวแปรโครงสร้าง struc date { int dd; int mm; int yy; } struct employee { char id_code[13]; char emp_name[30]; struct date birthday; } emp[20]; หน่วยที่ 8 อาร์เรย์และโครงสร้าง

การเข้าถึงสมาชิกของตัวแปรแบบโครงสร้าง การเข้าถึงทำได้โดยการอ้างถึงชื่อตัวแปรโครงสร้างคั่นด้วยจุด(.) แล้วตามด้วย ชื่อสมาชิกที่ต้องการ รูปแบบ var_struct.member เช่น การกำหนดค่าให้กับสมาชิก emp[0].salary = 56000.00f; การรับค่าจากแป้นพิมพ์ scanf("%f",&emp[0].salary); การแสดงผลทางจอภาพ printf("Salary = %10.2f",emp[0].salary); หน่วยที่ 8 อาร์เรย์และโครงสร้าง

บิตฟิลด์ (Bit Field) บิตฟิลด์เป็นตัวแปรโครงสร้างประเภทหนึ่ง ซึ่งสามารถกำหนดขนาดหน่วยความจำเป็นจำนวนบิตให้กับสมาชิกแต่ละตัว ทำให้ประหยัดหน่วยความจำที่สุด รูปแบบ Type var_name : size Size มีหน่วยเป็นบิต ตัวอย่างโครงสร้างแบบบิตฟิลด์หรับเก็บลักษณะของไพ่ (Card) สามารถกำหนดได้ดังนี้ struct bitcard { unsigned face : 4; // 2^4 = 16, (ไพ่มี 13 หน้า) unsigned suit : 2; // 2^2 = 4, (ไพ่มี 4 แบบ) unsigned color : 1; // 2^1 = 2, (ไพ่มี 2 สี) } หน่วยที่ 8 อาร์เรย์และโครงสร้าง

ยูเนียน (Unions) เป็นข้อมูลโครงสร้างอีกแบบหนึ่ง แต่มีข้อแตกต่างกันกับตัวแปรโครงสร้าง คือสมาชิกแต่ละตัวของตัวแปรโครงสร้างจะใช้หน่วยความจำคนละตัวกัน ส่วนยูเนียนสมาชิกแต่ละตัวจะใช้หน่วยความจำร่วมกัน การนิยามและการใช้งานคล้ายกับตัวแปรโครงสร้าง เพียงเปลี่ยนคีย์เวิร์ดจาก struct มาเป็น union เท่านั้น หน่วยที่ 8 อาร์เรย์และโครงสร้าง

ข้อมูลชนิด Enumerations ในภาษาซี เราสามารถสร้างตัวแปรประเภทใหม่ขึ้นมาเก็บข้อมูลแบบเรียงลำดับได้ ข้อมูลประเภทนี้เรียกว่า enumeration รูปแบบ enum new_type {data set} var [,var,...]; เช่น enum months {Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec}; หน่วยที่ 8 อาร์เรย์และโครงสร้าง

อาร์เรย์และโครงสร้าง จบการนำเสนอ บทที่ 8 อาร์เรย์และโครงสร้าง จัดทำและเรียบเรียงโดย จุฑาวุฒิ จันทรมาลี วันที่ 9 มี.ค. 59