Arrays.

Slides:



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

Pointers. Why have pointers? / pointers ทำให้ฟังก์ชันหรือส่วนของ โปรแกรมสามารถใช้งานข้อมูลร่วมกันได้ / ใช้ pointers ในการสร้างโครงสร้างข้อมูลที่ ซับซ้อนได้
Arrays.
รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
โครงสร้างโปรแกรมภาษา C
สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
ตัวแปรประเภทตัวชี้ (Pointer)
โดยอาจารย์ศิริพร ศักดิ์บุญญารัตน์ ครูชำนาญการ โรงเรียนมหิดลวิทยานุสรณ์
ตัวแปรชุด การเขียนโปรแกรมภาษาคอมพิวเตอร์ 1
การเขียนโปรแกรมด้วยคำสั่งเบื้องต้น
BC322 ครั้งที่ 10 ตัวแปรชุด (Array)
ตัวแปรชุด (Array) Chapter Introduction to Programming
Principles of Programming
Principles of Programming
Lecture 11: อาร์เรย์แบบหลายมิติ
Lecture 10: อาร์เรย์หนึ่งมิติ
ทบทวน อาร์เรย์ (Array)
Array.
Arrays and Pointers.
ARRAY.
Week 6 ประกาศค่าตัวแปร.
รับและแสดงผลข้อมูล.
โจทย์ Array 12 มี.ค จงเขียนโปรแกรมเพื่ออ่านข้อมูลเข้าเป็นจำนวนเต็ม 10 จำนวน แล้วหาผลรวมของเลขเหล่านั้น.
อาเรย์ (Array).
คำสั่งควบคุมการทำงาน
ตัวแปรชุด.
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
Arrays.
Kairoek Choeychuen M.Eng (Electrical), KMUTT
บทที่ 6 ตัวแปรอาร์เรย์ (Array of Variable)
ARRAY ข้อมูลชนิดอาร์เรย์
2.5 ตัวแปรชุดมิติเดียวและตัวแปรชุดสองมิติ
ข้อมูลชนิดอาร์เรย์ ประเภทของข้อมูลที่ผ่านมาส่วนใหญ่ในตอนต้นๆจะเป็นข้อมูลเดี่ยว โดยตัวแปรหนึ่งตัวสามารถเก็บข้อมูลได้หนึ่งตัว ถ้าหากต้องการเก็บข้อมูลหลายตัวจะต้องประกาศตัวแปรหลายตัว.
บทที่ 11 การเขียนโปรแกรมภาษาซี
ข้อมูลพื้นฐานและตัวดำเนินการ
หน่วยที่ นิพจน์ในภาษา C
หน่วยที่ 1 พื้นฐานภาษา C
หน่วยที่ 14 การเขียนโปรแกรมย่อย
อาร์เรย์และข้อความสตริง
อาร์เรย์ (Array).
อาร์เรย์ (Array).
การคำนวณทางคณิตศาสตร์ ตัวดำเนินการ
ตัวแปร (Variable) คือ ชื่อที่ตั้งขึ้นเพื่อเก็บข้อมูลในหน่วยความจำ สามารถเก็บข้อมูลชนิดใดก็ ได้ ลักษณะที่สำคัญ ค่าที่จัดเก็บ เมื่อปิดโปรแกรมข้อมูลจะหายไป.
Chapter 3 เครื่องหมายและการคำนวณ
ตัวแปรกับชนิดของข้อมูล
โครงสร้างข้อมูลแบบคิว
ง30212 การเขียนโปรแกรมภาษาคอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
แถวลำดับ (array) ง40202 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
ตัวดำเนินการในภาษาซี
การรับและพิมพ์ข้อมูลเบื้องต้น
ตัวแปรกับชนิดของข้อมูล
Week 2 Variables.
Week 12 Engineering Problem 2
การประมวลผลสายอักขระ
Computer Programming for Engineers
ความหมาย การประกาศ และการใช้
ตัวแปรชุด Arrays.
วิธีการเขียนโปรแกรมเพื่อทำงานกับข้อมูล โดยที่ ข้อมูลนั้นจะต้อง 1. เป็นประเภทเดียวกัน | ตัวเลข, ตัวอักษร 2. มีขนาดเท่ากัน ? ARRAY คืออะไร.
Computer Programming การเขียนโปรแกรมคอมพิวเตอร์
โครงสร้างโปรแกรมภาษาซี
Output of C.
ตัวแปร Array แบบ 1 มิติ การเขียนโปรแกรมแบบวนซ้ำ
หลักการเขียนโปรแกรม ( )
การกระทำทางคณิตศาสตร์
ตัวแปร และชนิดข้อมูล.
การเขียนโปรแกรม (ภาษาซี)
stack #1 ผู้สอน อาจารย์ ยืนยง กันทะเนตร
การเขียนโปรแกรม (ภาษาซี)
Week 13 Basic Algorithm 2 (Searching)
บทที่ 6 ตัวแปรชุดและ สตริง รายวิชา ง การเขียนโปรแกรมเชิง วัตถุ Reading: ใบความรู้ บทที่ 6.
ใบสำเนางานนำเสนอ:

Arrays

Arrays array หรือแถวลำดับ คือโครงสร้างข้อมูลที่สามารถเก็บข้อมูลชนิดเดียวกัน เป็นกลุ่มหรือชุดที่เรียงต่อกันเป็นแถว array จะมีโครงสร้างเป็นแบบเชิงเส้น(Linear) ดังนั้น เราสามารถระบุค่าถัดไปหรือก่อนหน้าของแต่ละค่าใน array ได้

score 6570 score[0] score[1] score[2] score[3] score[4]

การระบุตำแหน่งหรือค่าใน array จะใช้ตัวเลข index score[0] คือ คะแนนสอบของนักเรียนคนที่ 1 score[23] คือ คะแนนสอบของนักเรียนคนที่ 24 จะเห็นว่า ตัวแปร array ง่ายต่อการอ้างอิงเพื่อใช้งาน ซึ่งถ้าไม่ใช้ array จะต้องประกาศตัวแปรถึง 24 ตัว เช่น score1, score2, …, score24

ชนิดข้อมูล ชื่อตัวแปร[ขนาดของarray]; การประกาศตัวแปร ชนิดข้อมูล ชื่อตัวแปร[ขนาดของarray]; เช่น int a[20]; char c[15]; float score[24];

int score[5]; score[0] = 13; //set first element score[4] = 42; //set last element random values เพราะยังไม่มีการกำหนดค่าให้ 6570 -5673 18253 22541 -1068 score score[0] score[1] score[2] score[3] score[4] ใน memory 13 42

{ int score[5]; scanf(“%d”,&score[0]); scanf(“%d”,&score[1]); scanf(“%d”,&score[2]); scanf(“%d”,&score[3]); scanf(“%d”,&score[4]); printf(“%d ”,score[0]); printf(“%d ”,score[1]); printf(“%d ”,score[2]); printf(“%d ”,score[3]); printf(“%d ”,score[4]); } { int score[5]; } int i; for(i=0;i<5;i++) scanf(“%d”,&score[i]); for(i=0;i<5;i++) printf(“%d”,score[i]);

array - initialize int a[5] = { 1, 2, 3, 4, 5}; printf(“%d”, a[3]);

printf(“%d”, a[3]); จะได้ผลลัพธ์อย่างไร array - initialize int a[5] = { 1, 2, 3}; printf(“%d”, a[3]); จะได้ผลลัพธ์อย่างไร

โจทย์ 1 รับเลขจำนวนเต็ม เก็บใส่ในตัวแปรชุด A และ B ซึ่งมีขนาดเท่ากับ 5 แล้วหาผลบวกของข้อมูลในตำแหน่งที่ตรงกันของตัวแปร A และ B แล้วแสดงผล A : 1 3 4 6 4 B : 1 2 3 4 5 A+B : 2 5 7 10 9

โจทย์ 2 รับเลขจำนวนเต็ม 5 ตัวแล้วหาผลรวมของตัวเลขที่มีค่ามากกว่าค่าเฉลี่ยของตัวเลขทั้ง 5 ตัวนี้ เช่น input : 10 3 2 6 4 average : 5.00 output : 16

โจทย์ 3 รับเลขจำนวนเต็ม 5 ตัว เก็บไว้ในเซต A และอีก 5 ตัวเก็บไว้ในเซต B แล้วหา A union B A intersect B A – B B - A

C Strings ในภาษาซีใช้ array of character ในการเก็บสายอักขระ(string) เพิ่ม null character ‘\0’ ต่อท้ายอักขระตัวท้าย เป็นการบอกจุดสิ้นสุดสตริง

เช่น char code[6]; [0] [1] [2] [3] [4] [5] code 1 byte

‘F’ ‘O’ ‘K’ ‘Y’ ‘\0’ เช่น char name[6]=“FOKKY”; [0] [1] [2] [3] [4] [5] name ‘F’ ‘O’ ‘K’ ‘Y’ ‘\0’ 1 byte

‘J’ ‘A’ ‘N’ ‘\0’ เช่น char str[6]=“JAN”; [0] [1] [2] [3] [4] [5] str 1 byte

คำสั่งรับค่า - แสดงผลสตริง ตัวอย่าง scanf(“%s”,ชื่อตัวแปรสตริง); scanf(“%s”,name); //สังเกตว่าไม่ต้องใส่ & หน้าตัวแปร name gets(ชื่อตัวแปร); gets(name); คำสั่งแสดงผล ตัวอย่าง printf(“%s”,ชื่อตัวแปรสตริง); printf(“%s”,name); puts(ชื่อตัวแปร); puts(name);

C Strings ในภาษาซีมี standard library function เกี่ยวกับสตริงให้ใช้งาน ที่ใช้งานบ่อยๆ ได้แก่ strlen(ชื่อตัวแปรสตริง) strcpy(ชื่อตัวแปรสตริงปลายทาง, ชื่อตัวแปรสตริงต้นทาง)

ตัวอย่าง char s[10]; strcpy(s, “MWIT”); s M W I T \0 memory 0 1 2 3 4 5 6 7 8 9

Note!! assignment operator หรือ เครื่องหมายเท่ากับ (=) ไม่สามารถใช้กำหนดค่าให้กับตัวแปรสตริงได้ ต้องใช้ฟังก์ชัน strcpy() เท่านั้น strcpy(s, “MWIT”);  S = “MWIT” ; 

“Mahidol Wittayanusorn” Question จะเกิดอะไรขึ้น ถ้าเราเก็บข้อความ “Mahidol Wittayanusorn” ลงในตัวแปร char s[10]; ข้อความจะถูกเก็บไว้ในตัวแปร s และจะบันทึกตัวอักษรที่เกินไปด้วย ซึ่งอาจไปบันทึกทับข้อมูลที่ถูกเก็บไว้ถัดจากตัวแปร s

ตัวอย่าง 4 char s[10]; int len; strcpy(s, “MWIT”); len = strlen(s); printf(“%d”, len); ผลลัพธ์ 4

string.h strcpy(dest_string, source_string); int a = strlen(string); strcat(dest_string, source_string); int a = strcmp(string1, string2); string1 == string2 if a == 0 string1 < string2 if a is negative (-) string1 > string2 if a is positive (+)

โจทย์ 4 ตรวจสอบ string ที่ผู้ใช้ป้อนเข้ามาว่าเป็น palindrome หรือไม่ เช่น level  success  deed  maimai 

Multidimensional Arrays ตัวอย่างการประกาศ array 2 มิติ ขนาด 10 x 10 โดยเก็บเลขจำนวนเต็ม กำหนดค่าแรกและค่าสุดท้ายเป็น 13 int board[10][10]; board[0][0] = 13; board[9][9] = 13;

ถ้ากำหนด int b[4][3]; 7 2 3 5 1 8 -3 Row 0 Row 1 Row 2 Row 3 0 1 2 1 2 Memory Row 0 Row 1 Row 2 Row 3 7 2 3 5 1 8 -3 … b[0][0] b[0][1] b[0][2] b[1][0] b[1][1] b[1][2] b[2][0] b[2][1] b[2][2] b[3][0] b[3][1] b[3][2] ถ้ากำหนด int b[4][3]; 0 1 2 1 2 3 7 2 3 5 1 8 -3 Rows Columns

ถ้ากำหนด int b[2][4][3]; Page 0 Memory 7 2 3 5 1 8 -3 … b[0][0] Row 0 Row 1 Row 2 Row 3 7 2 3 5 1 8 -3 … b[0][0] b[0][1] b[0][2] b[1][0] b[1][1] b[1][2] b[2][0] b[2][1] b[2][2] b[3][0] b[3][1] b[3][2] ถ้ากำหนด int b[2][4][3]; Columns 0 1 2 Page 0 7 2 3 5 1 8 -3 1 2 3 Rows Page 1 Page 0

array - initialize int a[2][3] = { 1, 2, 3, 4, 5, 6};

array - initialize int a[][] = { { 1, 2, 3 }, {4, 5, 6 } };

โจทย์ 5 เขียนโปรแกรมคำนวณหาผลบวก ลบ และผลคูณเมตริกซ์ขนาด 3 x 3 A + B A x B