ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
1
ARRAY
2
Array คืออะไร? จำเป็นแค่ไหน?
ตารางเช่น ตารางบัญชี ตารางคะแนนสอบ ซึ่งตัวแปรธรรมดาไม่สามารถจัดการได้ ลักษณะของตาราง ตารางมิติเดียว (1 Dimension) ตารางสองมิติ (2 Dimension) รายรับของร้านอาหารในคาเฟ่ต์ คนที่ คะแนนสอบ เดือนที่ 1 2 3 4 8 7 10 9 1 2 3 4 6700 5800 3504 8900 4350 5500 4560 8010 6200 7450 9800 2500 3400 2800 2450 ร้านที่
3
ตารางประกอบด้วย 1 2 3 4 1 2 3 4 8 7 10 9 หมายเลขสดมภ์ 6700 5800 3504
ตารางสองมิติ (2 Dimension) ตารางมิติเดียว (1 Dimension) ชื่อของตาราง คนที่ คะแนนสอบ รายรับของร้านอาหารในคาเฟ่ต์ หมายเลขสดมภ์ เดือนที่ 8 7 10 9 1 2 3 4 1 2 3 4 6700 5800 3504 8900 4350 5500 4560 8010 6200 7450 9800 2500 3400 2800 2450 ร้านที่ ข้อมูลในตาราง หมายเลขช่อง หมายเลขแถว ข้อมูลในตาราง (มีหลายค่า)
4
Array 1 มิติ 100 85 64 92 81 ชื่อของ Array Score Index (หมายเลขช่อง)
เทียบได้กับตารางที่มีแถวเดียวหรือ column เดียว (ตารางมิติเดียว) ข้อมูล 1 ช่องเรียกว่า 1 element ชื่อของ Array Score 100 85 64 92 81 Index (หมายเลขช่อง) Score หมายเลข 3 มีค่า 64 Score หมายเลข 1 มีค่า 100 เวลาเราจะอ้างถึงข้อมูลใน Array 1 มิติ เราจะต้องบอก ชื่อของ Array และหมายเลขช่องเช่น score ช่องที่ 1 มีค่า 100
5
การประกาศตัวแปร Array 1 มิติ
เช่น int a[20]; //รับข้อมูลชนิดตัวเลขจำนวนเต็ม ได้ 20 ชุด char c[15]; //รับข้อมูลชนิดอักขระได้ 14 ตัว float score[24]; //รับข้อมูลชนิดตัวเลขจำนวนจริง ได้ 24 ชุด
6
int score[5]; //ประกาศตัวแปร
score[0] = 13; //กำหนด element แรกมีค่า 13 score[4] = 42; // กำหนด element สุดท้ายมีค่า 42 random values เพราะยังไม่มีการกำหนดค่าให้ 6570 -5673 18253 22541 -1068 score score[0] score[1] score[2] score[3] score[4] ใน memory 13 42
7
ประกาศ array 5 ช่อง แต่กำหนดค่าเพียง 2 ช่อง
#include<stdio.h> void main() { int i; int score[5]; score[0]=13; score[4]=42; for(i=0;i<5;i++) printf("Score[%d] = %d\n",i,score[i]); }
8
scanf(“%d”,&score[0]); scanf(“%d”,&score[1]); scanf(“%d”,&score[2]);
เขียนโปรแกรมดังตัวอย่างด้านล่างนี้ การรับและแสดงค่าตัวเลข โดยใช้ Array 1 มิติ { 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]);
9
โจทย์ Array 1 มิติ เขียนโปรแกรมรับตัวเลขจำนวนเต็ม N จำนวน โดยให้ผู้ใช้ป้อนจำนวนตัวเลขที่ต้องการ แล้วแสดงผลรวมและค่าเฉลี่ยของตัวเลขชุดนั้น (นำตัวอย่าง array2.cpp มาแก้ไข แล้วบันทึกไฟล์ชื่อ array3.cpp )
10
Array 2 มิติ MyNumber 11 9 45 12 13 76 90 34 4 1 54 74 7 1 2 3 Row No.
เทียบได้กับตารางที่มีแถวมากกว่า 1 แถวและมีสดมภ์ (column) มากกว่า 1 สดมภ์ MyNumber ชื่อ Array 11 9 45 12 13 76 90 34 4 1 54 74 7 1 2 3 Row No. MyNumber แถว 2 สดมภ์ 5 มีค่า 1 MyNumber แถว 3 สดมภ์ 4 มีค่า 11 Column No. เวลาเราจะอ้างถึงข้อมูลใน Array 2 มิติเราจะต้องบอก ชื่อของ Array, หมายเลขแถว และหมายเลขสดมภ์
11
ถ้ากำหนด int b[4][3]; 7 2 3 5 1 8 -3 Row 0 Row 1 Row 2 Row 3 1 2 3
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
12
#include<stdio.h> //array2D.cpp
void main() { int i,j; int b[4][3]={{7,2,3}, //4 แถว 3 คอลัมน์ {5,0,1}, {2,8,0}, {-3,0,0} }; for(i=0;i<4;i++) //ลูปนอก ซึ่งเป็นตำแหน่งแถว for(j=0;j<3;j++) //ลูปใน ซึ่งเป็นตำแหน่ง คอลัมน์ printf("%d ",b[i][j]); } printf("\n");
13
โปรแกรมรับข้อมูลสินค้า เพื่อคำนวณ VAT และราคาสุทธิ โดยจัดเก็บในตัวแปร ARRAY
#include<stdio.h> #define RATE 0.07 #define N 5 void main() { char prod[N][15]; float price[N],vat[N],net[N]; int i; for(i=0;i<N;i++) printf("Enter Product Name : "); scanf("%s",&prod[i]); printf("\tprice : "); scanf("%f",&price[i]); vat[i]=price[i]*RATE; net[i]=price[i]+vat[i]; } printf("No. product price vat7%% Net\n"); //ส่วนของการแสดงผล printf("%2d %-10s %10.2f %8.2f %10.2f\n",i+1,prod[i],price[i],vat[i],net[i]);
14
โจทย์ Array 2 มิติ เขียนโปรแกรมโดยการใช้ Array 2 มิติ [3 x 5]เพื่อแสดงค่า ดังต่อไปนี้ (array2D2.cpp) A B C D E 1 2 3 4 5 a b c d e
15
โจทย์ Array 2 มิติ (ต่อ) 2. เขียนโปรแกรมเพื่อคำนวณค่าคอมมิชชั่น 0.25% จากยอดขาย ให้รับชื่อพนักงาน และยอดขาย ของพนักงานจำนวน 5 คน และแสดง ชื่อพนักงาน ยอดขาย ค่าคอมมิชชั่นและเงินรายได้รวม (array2D3.cpp)
16
C Strings ในภาษาซีใช้ array of character ในการเก็บสายอักขระ(string)
เพิ่ม null character “\0” ต่อท้ายอักขระตัวท้าย เป็นการบอกจุดสิ้นสุด สตริง
17
C Strings ในภาษาซีมี standard library function เกี่ยวกับสตริงให้ใช้งาน
ที่ใช้งานบ่อยๆ ได้แก่ strcpy(สตริงปลายทาง, สตริงต้นทาง) strlen(ตัวแปรสตริง)
18
ตัวอย่าง s M W I T \0 char s[10]; strcpy(s, “MWIT”);
memory
19
Note!! assignment operator หรือ เครื่องหมายเท่ากับ (=) ไม่สามารถ ใช้กำหนดค่าให้กับตัวแปรสตริงได้ ต้องใช้ฟังก์ชัน strcpy() เท่านั้น strcpy(s, “MWIT”); S = “MWIT” ;
20
“Mahidol Wittayanusorn”
Question จะเกิดอะไรขึ้น ถ้าเราเก็บข้อความ “Mahidol Wittayanusorn” ลงในตัวแปร char s[10]; ข้อความจะถูกเก็บไว้ในตัวแปร s และจะบันทึกตัวอักษรที่เกินไปด้วย ซึ่งอาจไปบันทึกทับข้อมูลที่ถูกเก็บไว้ถัดจากตัวแปร s
21
ตัวอย่าง char s[10]; int len; strcpy(s, “MWIT”); len = strlen(s); printf(“%d”, len); ผลลัพธ์ 4
22
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 (+)
23
โจทย์ 4 ตรวจสอบ string ที่ผู้ใช้ป้อนเข้ามาว่าเป็น palindrome หรือไม่
เช่น level success deed maimai
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.