ตัวแปรชุด Arrays.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
ชนิดของข้อมูลในโปรแกรม Interactive C
Advertisements

Pointers. Why have pointers? / pointers ทำให้ฟังก์ชันหรือส่วนของ โปรแกรมสามารถใช้งานข้อมูลร่วมกันได้ / ใช้ pointers ในการสร้างโครงสร้างข้อมูลที่ ซับซ้อนได้
Arrays.
รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
โดยอาจารย์ศิริพร ศักดิ์บุญญารัตน์ ครูชำนาญการ โรงเรียนมหิดลวิทยานุสรณ์
ตัวแปรชุด การเขียนโปรแกรมภาษาคอมพิวเตอร์ 1
ข้อมูลชนิดอาร์เรย์ Array (บทที่ 5)
BC322 ครั้งที่ 10 ตัวแปรชุด (Array)
พอยน์เตอร์ (Pointer) Chapter Introduction to Programming
ข้อมูลชนิดโครงสร้าง (Structure Data)
ตัวแปรชุด (Array) Chapter Introduction to Programming
Principles of Programming
Principles of Programming
ตัวแปรชนิดโครงสร้าง (Structure)
Data Type part.II.
Lecture 11: อาร์เรย์แบบหลายมิติ
Lecture 10: อาร์เรย์หนึ่งมิติ
ทบทวน อาร์เรย์ (Array)
Structure Programming
Array.
ชนิดของข้อมูลและตัวดำเนินการ
Arrays and Pointers.
Structure.
ARRAY.
Week 6 ประกาศค่าตัวแปร.
อาเรย์ (Array).
ตัวแปรชุด.
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
Arrays.
Arrays.
บทที่ 12 Structure and union Kairoek choeychuen
Kairoek Choeychuen M.Eng (Electrical), KMUTT
บทที่ 6 ตัวแปรอาร์เรย์ (Array of Variable)
ARRAY ข้อมูลชนิดอาร์เรย์
1 RECORD TYPE ข้อมูลชนิดเรคอร์ด SCC : Suthida Chaichomchuen
ข้อมูลชนิดอาร์เรย์ ประเภทของข้อมูลที่ผ่านมาส่วนใหญ่ในตอนต้นๆจะเป็นข้อมูลเดี่ยว โดยตัวแปรหนึ่งตัวสามารถเก็บข้อมูลได้หนึ่งตัว ถ้าหากต้องการเก็บข้อมูลหลายตัวจะต้องประกาศตัวแปรหลายตัว.
บทที่ 11 การเขียนโปรแกรมภาษาซี
ข้อมูลพื้นฐานและตัวดำเนินการ
อาร์เรย์และข้อความสตริง
บทที่ 2 อาร์เรย์ อาร์เรย์ คือ ชุดของตัวแปรเดียวกัน ซึ่งสมาชิกของอาร์เรย์จะเป็นตัวแปรพื้นฐาน จำนวนสมาชิกในอาร์เรย์มีขนานแน่นอน และสมาชิกของอาร์เรย์แต้ละตัว.
อาร์เรย์ (Array).
อาร์เรย์ (Array).
ตัวแปร (Variable) คือ ชื่อที่ตั้งขึ้นเพื่อเก็บข้อมูลในหน่วยความจำ สามารถเก็บข้อมูลชนิดใดก็ ได้ ลักษณะที่สำคัญ ค่าที่จัดเก็บ เมื่อปิดโปรแกรมข้อมูลจะหายไป.
บทที่ 7 คำสั่งสำหรับเขียนโปรแกรม
บทที่ 8 อาร์เรย์.
ตัวแปรกับชนิดของข้อมูล
ฟังก์ชัน ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ ศูนย์คอมพิวเตอร์
แถวลำดับ (array) ง40202 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
ค33212 คณิตศาสตร์คอมพิวเตอร์ 6
การดำเนินการบนเมทริกซ์
ง30212 พื้นฐานการเขียนโปรแกรม ศูนย์คอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
ค33212 คณิตศาสตร์คอมพิวเตอร์ 6
ง30212 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
ปฏิบัติการครั้งที่ 10 pointer. หน่วยความจำ หน่วยความจำนั้นเสมือนเป็นช่องว่างไว้เก็บ ของที่มีหมายเลขประจำติดไว้ที่แต่ละช่อง เพื่อใช้ในการระบุตำแหน่งของช่องได้
ตัวแปรกับชนิดของข้อมูล
เสรี ชิโนดม Array in PHP เสรี ชิโนดม
ความหมาย การประกาศ และการใช้
อาร์เรย์ (Arrays).
คำสั่งเกี่ยวกับการรับ และแสดงผล
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
ตัวแปร Array แบบ 1 มิติ การเขียนโปรแกรมแบบวนซ้ำ
1. Global variable คือ ตัวแปรที่กำหนดหรือประกาศไว้นอกฟังก์ชันใด ๆ ทุกฟังก์ชัน สามารถนำตัวแปรประเภท Global ไปใช้ได้ทุกฟังก์ชัน.
บทที่ 2 โครงสร้างของภาษา C.
ตัวแปร และชนิดข้อมูล.
การเขียนโปรแกรม (ภาษาซี)
บทที่ 6 ตัวแปรชุดและ สตริง รายวิชา ง การเขียนโปรแกรมเชิง วัตถุ Reading: ใบความรู้ บทที่ 6.
Programming assignments ชื่องาน (subject) : program เขียนด้วยภาษา C หรือ C++ มีทั้งหมด 7 ข้อ กำหนดส่ง 29 กรกฎาคม 2554.
รูปแบบของการใช้คำสั่ง for for( ตัวแปร = ค่าเริ่มต้น ; นิพจน์ตรรกะ ; ค่าเพิ่มหรือค่าลด ) { statement(s); } ตัวอย่าง กรณีกำหนดการวนซ้ำเป็นค่าคงที่ For(n=1;n
Computer Programming Asst. Prof. Dr. Choopan Rattanapoka
ใบสำเนางานนำเสนอ:

ตัวแปรชุด Arrays

ข้อมูลแต่ละตัวเรียกว่าเป็นสมาชิกของตัวแปรชุด ตัวแปรชุด (Arrays) กลุ่มของข้อมูลซึ่งมีชนิดข้อมูลเป็นอย่างเดียวกัน อ้างถึงกลุ่มข้อมูลชุดนี้ด้วยชื่อตัวแปรเดียวกัน ข้อมูลแต่ละตัวเรียกว่าเป็นสมาชิกของตัวแปรชุด สมาชิกแต่ละตัวจะมีหมายเลข/ดัชนีี(index) กำกับ สมาชิกตัวที่ ๑ สมาชิกตัวที่ ๒ สมาชิกตัวที่ N ...

ตัวแปรชุด(Arrays) การประกาศตัวแปรชุด การอ้างถึงหรือการเรียกใช้ข้อมูลของตัวแปรชุด ความสัมพันธ์ระหว่างตัวแปรชุดกับตัวแปรพอยน์เตอร์ การส่งผ่านตัวแปรชุดให้กับฟังก์ชัน

N เป็นค่าคงที่สัญลักษณ์ กำหนดโดย การประกาศตัวแปรชุด รูปแบบ (1) ชนิดข้อมูล ชื่อตัวแปร [จำนวนสมาชิก]; int score [10]; char id[8], name[N]; N เป็นค่าคงที่สัญลักษณ์ กำหนดโดย #define N 25 การจัดสรรเนื้อที่ในหน่วยความจำ สมาชิกแต่ละตัวจะถูกจัดสรรที่ในหน่วยความจำแบบต่อเนื่อง ขนาดหน่วยความจำของแต่ละตัวจะขึ้นกับชนิดข้อมูล เช่นตัวแปร score จะใช้เนื้อที่ขนาด 2 x10=20 ไบต์ 2 ไบต์ 2 ไบต์ 2 ไบต์ id จะใช้เนื้อที่ขนาด 1 x 8 = 8 ไบต์ name จะใช้เนื้อที่ขนาด 1 x 25 = 25 ไบต์ score จะใช้เนื้อที่ขนาด 2 x 10 = 20 ไบต์ สมาชิกตัวที่ ๑ สมาชิกตัวที่ ๒ สมาชิกตัวที่ 10 ...

การอ้างถึงหรือการเรียกใช้ข้อมูลของตัวแปรชุด รูปแบบ ชื่อตัวแปรชุด [ดัชนี หรือ ตัวบ่งชี้ ] ในภาษา C ดัชนี มีชนิดข้อมูลเป็นจำนวนเต็ม ดัชนีตัวแรกมีค่าเป็น 0 เสมอ อาจอยู่ในรูปค่าคงที่ หรือ ตัวแปร หรือ นิพจน์ที่ให้ค่าเป็นจำนวนเต็ม score ตัวบ่งชี้ 0 1 9 score [0] /* อ้างถึงสมาชิกตัวแรกของ score */ score [i] /* สมาชิกหมายเลข i */ score [i+1] /* สมาชิกหมายเลข i+ 1 */ สมาชิกตัวที่ ๑ สมาชิกตัวที่ ๒ สมาชิกตัวที่ 10 ...

ตัวอย่างชุดคำสั่งภาษา C กำหนดค่าเริ่มต้นให้กับสมาขิกทุกตัวของ score มีค่าเป็น 0 int i, score[10]; for (i= 0; i<10; i++) score[i] = 0; ... score[0] score[1] score[9]

การประกาศตัวแปรชุดพร้อมกับกำหนดค่าเริ่มต้น รูปแบบ (2) ชนิดข้อมูล ชื่อตัวแปร [ ] = { ค่าเริ่มต้นตัวที่ 1, ค่าเริ่มต้นตัวที่ 2, … ค่าเริ่มต้นตัวสุดท้าย }; (3) ชนิดข้อมูล ชื่อตัวแปร [n] = {ค่าเริ่มต้นตัวที่ 1,ค่าเริ่มต้นตัวที่ 2, … ค่าเริ่มต้นตัวสุดท้าย}; n ค่า int X[ ] = {5, 2, 4, 1, 3}; char id[8] = { ‘2’,’3’,’0’,’5’,’1’,’7’,’1’,’\0’ }; 5 2 4 1 3 X[0] X[1] X[2] X[3] X[4] id[0] id[1] id[2] id[3] id[4] id[5] id[6] id[7] ‘2’ ‘3’ ‘0’ ‘5’ ‘1’ ‘7’ ‘\0’

ตัวอย่างชุดคำสั่งภาษา C เรียงลำดับคะแนนจากน้อยไปมาก #define N 5 : int i, j, tmp, score[N]= {5, 2, 4, 1, 3}; for (i = 0; i< N -1; i++) for (j = i+1; j< N; j++) if (score[i] > score[ j]) { tmp = score[i]; score[i] = score[ j]; score[j] = tmp; }

ตัวแปรชุดหลายมิติ int a[2][3] ={{1,2,3},{4,5,6}}; ตัวแปรชุด 2 มิติ (two dimensional arrays) int a[2][3] ={{1,2,3},{4,5,6}}; แถว 0 1 2 3 แถว 1 4 5 6 เพื่อเข้าให้ถึงข้อมูลซึ่งเป็นสมาชิกของตัวแปรชุด จะต้องใช้ตัวบ่งชี้เท่ากับจำนวนมิติ a[0][0] /*สมาชิกที่อยู่ในแถวแรก สดมภ์แรก*/ a[1][2] /*สมาชิกที่อยู่ในแถวที่สอง สดมภ์ที่ ๓ */ a[k][k+1] /*สมาชิกที่อยู่ในแถว k สดมภ์ k+1*/ 1 2 3 4 5 6

ตัวอย่าง #define Size 3 : int m, n, I [Size][Size]; ชุดคำสั่งเพื่อสร้างเมทริกเอกลักษณ์ (Identity matrix) ขนาด n x n Identity matrix เป็นเมทริกซ์ ที่ค่าสมาชิกทุกตัวมีค่าเป็น 0 ยกเว้นสมาชิกในแนวทะแยงที่ตำแหน่งแถวเท่ากับตำแหน่งคอลัมน์จะมีค่าเป็น 1 เช่น I เป็นเมทริกซ์เอกลักษณ์ขนาด 3 x 3 I = 1 0 0 0 1 0 0 0 1 #define Size 3 : int m, n, I [Size][Size]; for (m = 0; m< Size; m++) for (n = 0; n<Size; n++) I [m][n] = (m == n ? : 1 : 0);

ชื่อตัวแปรชุด[ดัชนี หรือ ตัวบ่งชี้ ] สรุป ตัวแปรชุด หมายถึง กลุ่มของข้อมูลซึ่งมีชนิดข้อมูลเป็นอย่างเดียวกัน อ้างถึงกลุ่มข้อมูลชุดนี้ด้วยชื่อตัวแปรเดียวกัน และ อ้างถึงสมาชิกแต่ละตัวด้วยชื่อตัวแปรชุดพร้อมระบุหมายเลข/ดัชนี การประกาศตัวแปรชุด (1) ชนิดข้อมูล ชื่อตัวแปร [จำนวนสมาชิกในมิติที่ 1] [จำนวนสมาชิกในมิติที่ 2]; (2) ชนิดข้อมูล ชื่อตัวแปร []={ค่าคงที่ตัวที่ 1,ค่าคงที่ตัวที่ 2,…, ค่าคงที่ตัวสุดท้าย}; (3) ชนิดข้อมูล ชื่อตัวแปร [n] = {ค่าคงที่ตัวที่ 1, ค่าคงที่ตัวที่ 2, …, ค่าคงที่ตัวสุดท้าย}; การอ้างถึงหรือการเรียกใช้ข้อมูลของตัวแปรชุด ชื่อตัวแปรชุด[ดัชนี หรือ ตัวบ่งชี้ ] ในภาษา C ดัชนี มีชนิดข้อมูลเป็นจำนวนเต็ม ดัชนีตัวแรกมีค่าเป็น 0 เสมอ อาจอยู่ในรูปค่าคงที่ หรือ ตัวแปร หรือ นิพจน์ที่ให้ค่าเป็นจำนวนเต็ม จำนวนมิติของตัวแปรชุด จะบอกถึงจำนวนดัชนีที่ต้องใช้เพื่อระบุถึงสมาชิกของตัวแปรชุด

ความสัมพันธ์ระหว่างตัวแปรชุดกับตัวแปรพอยน์เตอร์ ตัวแปรพอยน์เตอร์ เป็น ตัวแปรซึ่งเก็บค่าแอดเดรสหรือตำแหน่งในหน่วยความจำ เราสามารถเปลี่ยนแปลงค่าของตัวแปรพอยน์เตอร์ได้ ตัวแปรชุด เป็นชื่อที่เราใช้อ้างถึงกลุ่มของข้อมูล ในภาษา C เมื่อเราอ้างถึงชื่อตัวแปรชุดเราจะได้เป็นค่าของตำแหน่งใน หน่วยความจำ เราไม่สามารถเปลี่ยนค่านี้ได้ int x[ ] = {10, 20, 30, 40, 50}; 10 20 30 40 50 x[0] x[1] x[2] x[3] x[4] *x *(x+1) *(x+2) *(x+3) *(x+4) เมื่ออ้างถึง x เราจะได้ แอดเดรสของสมาชิกตัวแรก

ตัวอย่าง // Demonstrate array and address of elements # include <stdio.h> void main ( ) { int indx, data [5] = {10, 20, 30, 40, 50}; printf(“Starting address of array is %u\n”, data); for (indx=0; indx < 5; indx++) printf (“address of element %u = %u \t data is %d\n”, indx+1, data+indx, *(data+indx)); }

การใช้ตัวแปรพอยน์เตอร์กับแอเรย์ #define N 10 : int i, *p, A[N], sum = 0; // summing an array using subscripts for (i=0; i<N; i++) sum += A[i]; // using pointer for (p=A; p<&A[N]; p++) sum += *p; // using an array variable as a pointer sum += *(A + i); // using pointer with subscripts for (p=A, i=0; i<N; i++) sum += p[i];

int a[2][3] ={{1,2,3},{4,5,6}}; ตัวแปรชุดหลายมิติ (2) 1 2 3 4 5 6 a : address of the first row *a : address of the 1st column of the 1st row **a : element of the 1st column of the 1st row a[0][0] /*สมาชิกที่อยู่ในแถวแรก สดมภ์แรก*/ *a + j : address of the jth column of the 1st row * (a + i) : address of the 1st column of the ith row * (a + i)+j : address of the jth column of the ith row *(* (a + i)+j) : element of the jth column of the ith row *(a[i] + j) = ? *(&a[0][0] + 3*i + j) = ?

การส่งผ่านตัวแปรชุดให้กับฟังก์ชัน // Function to sum elements of an array // array A is passed as a pointer, Size of array is passed as separate int int sum (int A[], int Size) { int i, s=0; for (i=0; i<Size; i++) s += A[i]; return s; } // at the calling side int sum ( int [], int ) ; // prototype of sum function // Various ways that sum() might be called Invocation What gets computed and returned sum(v, 100) v[0] + v[1] +…+ v[99] sum(&v[7], k-7) v[7] + v[8] +…+ v[k-1] sum(v+7, 2*k) v[7] + v[8] + …+ v[2*k+6]

การส่งผ่านตัวแปรชุดให้กับฟังก์ชัน Call by value : ส่งได้แค่สมาชิกของตัวแปรชุด ที่ส่วนของการประกาศพารามิเตอร์ ประกาศให้พารามิเตอร์มีชนิดข้อมูลเป็นอย่างเดียวกับค่าที่ต้องการส่งผ่าน Call by reference : ส่งเป็น address ของสมาชิกตัวแรกของตัวแปรชุดที่ต้องการประมวลผล ที่ส่วนหัวของการประกาศฟังก์ชัน (Function header) ในส่วนของการประกาศพารามิเตอร์ หากพารามิเตอร์เป็นตัวแปรชุด 1 มิติไม่ต้องระบุจำนวนสมาชิก แต่ถ้าเป็นตัวแปรชุด 2 มิติ ให้ระบุเฉพาะจำนวนสมาชิกของมิติที่สอง (จำนวนคอลัมน์) พารามิเตอร์ที่ใช้รับค่าของตัวแปรชุด อาจจะถูกประกาศในลักษณะของ ตัวแปรพอยน์เตอร์ได้