ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
1
2.5 ตัวแปรชุดมิติเดียวและตัวแปรชุดสองมิติ
ตัวแปรที่ใช้ในผังโปรแกรม ตัวแปรเดี่ยว การตั้งชื่อตัวแปรเพื่อใช้แทนข้อมูล เพียง 1 จำนวน เท่านั้น เช่น A , B , X , TOT, NAME เป็นต้น ตัวแปรชุด (ARRAY) การตั้งชื่อตัวแปรในหน่วยความจำที่ใช้ชื่อเพียงตัวเดียว แต่มีตัวเลขแสดงตำแหน่งกำกับไว้เพื่อเป็นการบอกว่า เป็นตัวแปรตัวที่เท่าไร เช่น X(1) , X(2), X(3) เป็นต้น
2
โครงสร้างภายในเครื่องคอมพิวเตอร์จะถือว่าทั้งหมดนี้
ตัวแปรชุดมิติเดียว (ONE-DIMENSION ARRAY)เป็นตัวแปรชุดที่มีตัวเลขแสดงตำแหน่งเพียงตัวเดียว X X(3) X(5) 1 2 3 4 5 โครงสร้างภายในเครื่องคอมพิวเตอร์จะถือว่าทั้งหมดนี้ เป็นเนื้อที่ที่ถูกจองต่อเนื่องกันไปเป็นลำดับ ซึ่งสามารถระบุตำแหน่งข้อมูลที่ต้องการได้ โดยระบุตัวพ่วง (Subscript)
3
ตัวแปรชุดสองมิติ (TWO-DIMENSION ARRAY)
เป็นตัวแปรชุดที่มีการจัดข้อมูลเป็นแถวเป็นคอลัมน์ เช่นข้อมูลแบบ Matrix จะมีตัวเลขที่แสดงตำแหน่ง 2 ตัว โดยตัวแรกจะเป็นตัวเลขที่แสดงตำแหน่งแถว ตัวที่สองจะเป็นตัวเลขที่แสดงตำแหน่งคอลัมน์ X 1 2 3 4 5 6 X(2,3) X(5,3)
4
การเขียนผังโปรแกรมโดยใช้ตัวแปรชุด
ตัวอย่างการเขียนผังโปรแกรมเพื่อแก้ปัญหาโดยใช้ตัวแปรชุด ที่พบเห็นบ่อยคือ การคำนวณเมตริกซ์ เช่น [C]mxn = [A]mxn + [B]mxn หรือ [C]mxn = [A]mxn * [B]mxn จำเป็นต้องใช้ตัวแปรชุดในการคำนวณดังกล่าว ผังโปรแกรมแสดงการอ่านข้อมูลที่เป็นเมตริกซ์ เช่น a[3][2] a11 a12 a21 a22 a31 a32
5
no yes Flowchart แปรค่า I ตั้งแต่ 1 ถึง M อ่านข้อมูล A(I,J) โดย
READ M,N I = 0 J = 0 I = I + 1 J = J + 1 Read A(I,J) J = N? I = M? no yes แปรค่า I ตั้งแต่ 1 ถึง M อ่านข้อมูล A(I,J) โดย เปลี่ยนค่า J ตั้งแต่ 1 จนถึง N ส่วนค่า I เป็นค่าเต็มตลอด อ่านข้อมูล A[I,J] เรียบร้อย Flowchart
6
Read X(I) I = 1…10 Print X(I) I = 1…10
การเขียนผังโปรแกรมเพื่อความสะดวกสามารถที่จะเขียนรูปที่ง่ายแสดงการอ่านหรือการพิมพ์เมตริกซ์หรือตัวแปรชุดได้ดังนี้ ตัวแปรชุดมิติเดียว Read X(I) I = 1…10 จะหมายถึง การอ่านข้อมูลจากอุปกรณ์อ่านข้อมูล 10 จำนวนไปไว้ที่ X(1) ถึง X(10) ตามลำดับ Print X(I) I = 1…10 หมายถึง การนำเอาค่าตัวแปรชุดตั้งแต่ X(1) ถึง X(10) แสดงทางอุปกรณ์แสดงผล
7
Read A(I,J) I = 1,2…M J = 1,2….N Print A(I,J) I = 1,2…M J = 1,2….N
ตัวแปรชุด 2 มิติ Read A(I,J) I = 1,2…M J = 1,2….N จะหมายถึง การอ่านข้อมูลจากอุปกรณ์อ่านข้อมูล M จำนวนไปไว้ที่ X(1) ถึง X(M) ตามลำดับ Print A(I,J) I = 1,2…M J = 1,2….N หมายถึง การนำเอาค่าตัวแปรชุดตั้งแต่ X(1) ถึง X(M) แสดงทางอุปกรณ์แสดงผล
8
ตัวอย่างที่ 12 อ่านข้อมูลเข้ามา N จำนวน แล้วหาค่าที่มากที่สุดและน้อยที่สุด อธิบาย MAX MIN MIN MAX 2 1 MAX MIN 3 4 MIN MAX
9
ตัวแปรและความหมายของตัวแปรที่ใช้มีดังนี้
N = เก็บค่าของจำนวนข้อมูลที่จะอ่านเข้ามา X(I) = เก็บค่าของข้อมูลตัวที่ I MAX = เก็บค่าที่มากที่สุดที่พบ(Maximum) MIN = เก็บค่าที่น้อยที่สุดที่พบ (Minimum)
10
START Read N Read X(I) i = 1…N i = 1 MAX=X(i) MIN=X(i)
Flowchart START Read N Read X(I) i = 1…N i = 1 MAX=X(i) MIN=X(i) 2 1 (ต่อ)
11
i < N Print MAX MIN i = i + 1 STOP MAX=X(i) MIN=X(i)
No Yes i < N Print MAX MIN i = i + 1 No Yes X(i)>MAX? STOP MAX=X(i) No Yes X(i)<MIN? MIN=X(i) 2
12
อธิบาย การสลับ เราจะทำการสลับค่าในตัวแปรชุด เดิม มีค่าในตัวแปรชุด 5 1
ตัวอย่างที่ 13 โปรแกรมอ่านข้อมูลไม่ทราบจำนวนมาเก็บไว้แล้วทำการเรียงลำดับ(Sort) ข้อมูลเหล่านี้ เรียงจากน้อยไปมาก โดยตรวจสอบข้อมูลตัวสุดท้ายด้วยเลข 999 อธิบาย การสลับ เราจะทำการสลับค่าในตัวแปรชุด เดิม มีค่าในตัวแปรชุด ผลที่ต้องการคือ 5 1 a[L] a[L+1] Temp = a[L] นำ a[L] มา ไว้ที่ temp 1 1 นำ a[L+1]--> a[L] a[L] = a[L+1] 1 5 นำ temp --> a[L+1] a[L+1]=temp Temp 5
13
ตัวแปรและความหมายของตัวแปรที่ใช้มีดังนี้ a(i) = เก็บข้อมูลตัวที่ i
CHECK = เป็นตัวชี้ว่าข้อมูลเรียงลำดับหรือยัง ถ้า CHECK = 1 แสดงว่ามีการสลับที่อย่างน้อย 1 ครั้ง(ข้อมูลยังไม่เรียง) ถ้า CHECK = 0 แสดงว่าไม่เกิดการสลับที่ (ข้อมูลเรียงลำดับแล้ว) Temp = เก็บค่าข้อมูลชั่วคราวในการสลับที่ข้อมูล N = จำนวนข้อมูลทั้งหมด L = เป็นตัวพ่วงและเป็นตัวนับจำนวนข้อมูล
14
1 2 Flowchart START i = 0 i = i + 1 Read a[i] N Y L = 1 TO N Print
N= i - 1 CHECK = 1 1 N Y Check=1 2 L = 1 TO N Print a[L] STOP (ต่อ)
15
2 1 L=1 CHECK = 0 N Y L < N N Y CHECK = 1 L = L + 1 a[L]>a[L+1]
Temp=a[L] a[L]=a[L+1] a[L+1]=Temp CHECK = 1 1 L = L + 1
16
ตัวอย่างที่ 14 จงเขียนผังโปรแกรมเพื่อบวกเมตริกซ์ 2 เมตริกซ์ คือ [A]mxn = [B]mxn + [C]mxn อธิบาย เช่น เมตริกซ์ขนาด 2*3 มีวิธีการบวกดังนี้ เมื่อ aij = bij + cij จะได้ a11 a12 a13 a21 a22 a23 b11 b12 b13 b21 b22 b23 c11 c12 c13 c21 c22 c23 + = 2*3
17
1 START Read m,n Read Aij i = 1,…,m j = 1,…,n Read Bij i = 1…m j = 1…n
Flowchart START j = 0 Read m,n Read Aij i = 1,…,m j = 1,…,n Read Bij i = 1…m j = 1…n 1 (ต่อ)
18
1 2 Print Cij i = 1…m j = 1…n Cij = Aij + Bij i = i + 1 STOP i = m?
Flowchart j = j + 1 i = 0 1 STOP i = i + 1 Cij = Aij + Bij i = m? j = n? Print Cij i = 1…m j = 1…n 2 Y N
19
ตัวอย่างที่ 15 จงเขียนผังงานโปรแกรมเพื่อหาค่าความแปรปรวนของคะแนนสอบของนักศึกษาไม่ทราบจำนวน
โดย SD2 = (Xi - X)2 N-1 เมื่อ Xi คือ คะแนนของนักศึกษาแต่ละคน X คือ คะแนนเฉลี่ย N คือ จำนวนนักศึกษาทั้งหมดที่นับได้ การวิเคราะห์ Input : คะแนนสอบของนักศึกษาแต่ละคน Output : ค่าความแปรปรวน การคำนวณ: - หาคะแนนเฉลี่ย - ค่าความแปรปรวน
20
ตัวแปร i = ตัวแปรที่ใช้นับจำนวนนักศึกษา score = คะแนนสอบของนักศึกษา SUM = ผลรวมของคะแนนนักศึกษา X = คะแนนเฉลี่ย TOT = ผลรวมก่อนหาความแปรปรวน ( (Xi - X)2) SD2 = ค่าความแปรปรวน
21
วิธีการ 1. อ่านคะแนนดิบ (score) โดยการวน loop เก็บค่า sum และเก็บคะแนนลง array ไว้ 2. หาคะแนนเฉลี่ย 3. วน loop คำนวณ SUM(Xi - X)2 4. คำนวณ (Xi - X)2 N-1 5. พิมพ์ ค่าความแปรปรวน
22
1 Yes No START i = 0 SUM = 0 TOT =0 Read score Score<>999?
X(i) = score SUM = SUM+score i = i + 1 N = i X=SUM/N 1 Yes No Flowchart (ต่อ)
23
1 No Yes i = 0 i = i + 1 TOT=TOT+(X(i)-X)2 i = N? SD2=TOT/(N-1)
Print SD2 END Yes No
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.