ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
1
Arrays
2
Arrays array หรือแถวลำดับ คือโครงสร้างข้อมูลที่สามารถเก็บข้อมูลชนิดเดียวกัน เป็นกลุ่มหรือชุดที่เรียงต่อกันเป็นแถว array จะมีโครงสร้างเป็นแบบเชิงเส้น(Linear) ดังนั้น เราสามารถระบุค่าถัดไปหรือก่อนหน้าของแต่ละค่าใน array ได้
3
การระบุตำแหน่งหรือค่าใน array จะใช้ตัวเลข index
score[0] คือ คะแนนสอบของนักเรียนคนที่ 1 score[23] คือ คะแนนสอบของนักเรียนคนที่ 24 จะเห็นว่า ตัวแปร array ง่ายต่อการอ้างอิงเพื่อใช้งาน ซึ่งถ้าไม่ใช้ array จะต้องประกาศตัวแปรถึง 24 ตัว เช่น score1, score2, …, score24
4
ชนิดข้อมูล ชื่อตัวแปร[ขนาดของarray];
การประกาศตัวแปร ชนิดข้อมูล ชื่อตัวแปร[ขนาดของarray]; เช่น int a[20]; char c[15]; float score[24];
5
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
6
{ 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]);
7
โจทย์ 1 รับเลขจำนวนเต็ม 5 ตัวแล้วหาผลรวมของตัวเลขที่มีค่ามากกว่าค่าเฉลี่ยของตัวเลขทั้ง 5 ตัวนี้ เช่น input : average : 5.00 output : 16
8
โจทย์ 2 รับเลขจำนวนเต็ม 5 ตัว เก็บไว้ในเซต A และอีก 5 ตัวเก็บไว้ในเซต B แล้วหา A union B A intersect B A – B B - A
9
Multidimensional Arrays
ตัวอย่างการประกาศ array 2 มิติ ขนาด 10 x 10 โดยเก็บเลขจำนวนเต็ม กำหนดค่าแรกและค่าสุดท้ายเป็น 13 int board[10][10]; board[0][0] = 13; board[9][9] = 13;
10
ถ้ากำหนด 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]; 1 2 3 7 2 3 5 1 8 -3 Rows Columns
11
ถ้ากำหนด 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 Page 0 7 2 3 5 1 8 -3 1 2 3 Rows Page 1 Page 0
12
โจทย์ 3 เขียนโปรแกรมคำนวณหาผลบวก ลบ และผลคูณเมตริกซ์ขนาด 3 x 3 A + B
A x B
13
C Strings ในภาษาซีใช้ array of character ในการเก็บสายอักขระ(string)
เพิ่ม null character “\0” ต่อท้ายอักขระตัวท้าย เป็นการบอกจุดสิ้นสุดสตริง
14
C Strings ในภาษาซีมี standard library function เกี่ยวกับสตริงให้ใช้งาน
ที่ใช้งานบ่อยๆ ได้แก่ strcpy(สตริงปลายทาง, สตริงต้นทาง) strlen(ตัวแปรสตริง)
15
ตัวอย่าง char s[10]; strcpy(s, “MWIT”); s M W I T \0
memory
16
Note!! assignment operator หรือ เครื่องหมายเท่ากับ (=) ไม่สามารถใช้กำหนดค่าให้กับตัวแปรสตริงได้ ต้องใช้ฟังก์ชัน strcpy() เท่านั้น strcpy(s, “MWIT”); S = “MWIT” ;
17
“Mahidol Wittayanusorn”
Question จะเกิดอะไรขึ้น ถ้าเราเก็บข้อความ “Mahidol Wittayanusorn” ลงในตัวแปร char s[10]; ข้อความจะถูกเก็บไว้ในตัวแปร s และจะบันทึกตัวอักษรที่เกินไปด้วย ซึ่งอาจไปบันทึกทับข้อมูลที่ถูกเก็บไว้ถัดจากตัวแปร s
18
ตัวอย่าง 4 char s[10]; int len; strcpy(s, “MWIT”); len = strlen(s);
printf(“%d”, len); ผลลัพธ์ 4
19
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 (+)
20
โจทย์ 4 ตรวจสอบ string ที่ผู้ใช้ป้อนเข้ามาว่าเป็น palindrome หรือไม่
เช่น level success deed maimai
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.