1 / 23

2.5 ตัวแปรชุดมิติเดียวและตัวแปรชุดสองมิติ

2.5 ตัวแปรชุดมิติเดียวและตัวแปรชุดสองมิติ. ตัวแปรที่ใช้ในผังโปรแกรม ตัวแปรเดี่ยว การตั้งชื่อตัวแปรเพื่อใช้แทนข้อมูล เพียง 1 จำนวน เท่านั้น เช่น A , B , X , TOT, NAME เป็นต้น ตัวแปรชุด (ARRAY) การตั้งชื่อตัวแปรในหน่วยความจำที่ใช้ชื่อเพียงตัวเดียว

kurt
Télécharger la présentation

2.5 ตัวแปรชุดมิติเดียวและตัวแปรชุดสองมิติ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 2.5 ตัวแปรชุดมิติเดียวและตัวแปรชุดสองมิติ • ตัวแปรที่ใช้ในผังโปรแกรม • ตัวแปรเดี่ยว • การตั้งชื่อตัวแปรเพื่อใช้แทนข้อมูล เพียง 1 จำนวน • เท่านั้น เช่น A , B , X , TOT, NAME เป็นต้น • ตัวแปรชุด (ARRAY) • การตั้งชื่อตัวแปรในหน่วยความจำที่ใช้ชื่อเพียงตัวเดียว • แต่มีตัวเลขแสดงตำแหน่งกำกับไว้เพื่อเป็นการบอกว่า • เป็นตัวแปรตัวที่เท่าไร เช่น X(1) , X(2), X(3) เป็นต้น

  2. ตัวแปรชุดมิติเดียว (ONE-DIMENSION ARRAY)เป็นตัวแปรชุดที่มีตัวเลขแสดงตำแหน่งเพียงตัวเดียว 1 2 3 4 5 X(3) X X X(3) X(5) X(5) โครงสร้างภายในเครื่องคอมพิวเตอร์จะถือว่าทั้งหมดนี้ เป็นเนื้อที่ที่ถูกจองต่อเนื่องกันไปเป็นลำดับ ซึ่งสามารถระบุตำแหน่งข้อมูลที่ต้องการได้ โดยระบุตัวพ่วง (Subscript)

  3. ตัวแปรชุดสองมิติ (TWO-DIMENSION ARRAY) เป็นตัวแปรชุดที่มีการจัดข้อมูลเป็นแถวเป็นคอลัมน์ เช่นข้อมูลแบบ Matrix จะมีตัวเลขที่แสดงตำแหน่ง 2 ตัว โดยตัวแรกจะเป็นตัวเลขที่แสดงตำแหน่งแถว ตัวที่สองจะเป็นตัวเลขที่แสดงตำแหน่งคอลัมน์ 1 2 3 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. Flowchart READ M,N แปรค่า I ตั้งแต่ 1 ถึง M I = 0 I = I + 1 J = 0 อ่านข้อมูล A(I,J) โดย เปลี่ยนค่า J ตั้งแต่ 1 จนถึง N ส่วนค่า I เป็นค่าเต็มตลอด J = J + 1 Read A(I,J) no J = N? yes no I = M? yes อ่านข้อมูล A[I,J] เรียบร้อย

  6. การเขียนผังโปรแกรมเพื่อความสะดวกสามารถที่จะเขียนรูปที่ง่ายแสดงการอ่านหรือการพิมพ์เมตริกซ์หรือตัวแปรชุดได้ดังนี้การเขียนผังโปรแกรมเพื่อความสะดวกสามารถที่จะเขียนรูปที่ง่ายแสดงการอ่านหรือการพิมพ์เมตริกซ์หรือตัวแปรชุดได้ดังนี้ ตัวแปรชุดมิติเดียว Read X(I) I = 1…10 จะหมายถึง การอ่านข้อมูลจากอุปกรณ์อ่านข้อมูล 10 จำนวนไปไว้ที่ X(1) ถึง X(10) ตามลำดับ Print X(I) I = 1…10 หมายถึง การนำเอาค่าตัวแปรชุดตั้งแต่ X(1) ถึง X(10) แสดงทางอุปกรณ์แสดงผล

  7. ตัวแปรชุด 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 จำนวน แล้วหาค่าที่มากที่สุดและน้อยที่สุด • อธิบาย 3 3 5 1 3 5 1 3 5 1 MAX MIN MIN MAX 3 5 1 3 5 1 MIN MAX MAX MIN 2 1 3 4

  9. ตัวแปรและความหมายของตัวแปรที่ใช้มีดังนี้ตัวแปรและความหมายของตัวแปรที่ใช้มีดังนี้ • N = เก็บค่าของจำนวนข้อมูลที่จะอ่านเข้ามา • X(I) = เก็บค่าของข้อมูลตัวที่ I • MAX = เก็บค่าที่มากที่สุดที่พบ(Maximum) • MIN = เก็บค่าที่น้อยที่สุดที่พบ (Minimum)

  10. START Read N Read X(I) i = 1…N i = 1 MIN=X(i) MAX=X(i) 1 2 Flowchart (ต่อ)

  11. 2 1 No Yes i < N Print MAX MIN i = i + 1 No Yes X(i)>MAX? STOP MAX=X(i) Yes No X(i)<MIN? MIN=X(i)

  12. ตัวอย่างที่ 13 โปรแกรมอ่านข้อมูลไม่ทราบจำนวนมาเก็บไว้แล้วทำการเรียงลำดับ(Sort) ข้อมูลเหล่านี้ เรียงจากน้อยไปมาก โดยตรวจสอบข้อมูลตัวสุดท้ายด้วยเลข 999 อธิบาย การสลับเราจะทำการสลับค่าในตัวแปรชุด เดิม มีค่าในตัวแปรชุด 5 1 ผลที่ต้องการคือ 1 5 นำ a[L+1]--> a[L] นำ temp --> a[L+1] a[L] a[L+1] นำ a[L] มา ไว้ที่ temp 5 1 1 1 1 5 a[L] = a[L+1] a[L+1]=temp Temp = a[L] Temp 5

  13. ตัวแปรและความหมายของตัวแปรที่ใช้มีดังนี้ตัวแปรและความหมายของตัวแปรที่ใช้มีดังนี้ a(i) = เก็บข้อมูลตัวที่ i i = เป็นตัวพ่วงและเป็นจำนวนนับจำนวนข้อมูล CHECK = เป็นตัวชี้ว่าข้อมูลเรียงลำดับหรือยัง ถ้า CHECK = 1 แสดงว่ามีการสลับที่อย่างน้อย 1 ครั้ง(ข้อมูลยังไม่เรียง) ถ้า CHECK = 0 แสดงว่าไม่เกิดการสลับที่ (ข้อมูลเรียงลำดับแล้ว) Temp = เก็บค่าข้อมูลชั่วคราวในการสลับที่ข้อมูล N = จำนวนข้อมูลทั้งหมด L = เป็นตัวพ่วงและเป็นตัวนับจำนวนข้อมูล

  14. Flowchart START i = 0 i = i + 1 Read a[i] a[i]=999 N= i - 1 CHECK = 1 1 N Y 2 Check=1 L = 1 TO N Print a[L] STOP (ต่อ)

  15. 2 L=1 CHECK = 0 N Y L < N N Y a[L]>a[L+1] Temp=a[L] a[L]=a[L+1] a[L+1]=Temp CHECK = 1 1 L = L + 1

  16. c11 c12 c13 c21 c22 c23 a11 a12 a13 a21 a22 a23 b11 b12 b13 b21 b22 b23 + = 2*3 2*3 2*3 • ตัวอย่างที่ 14 • จงเขียนผังโปรแกรมเพื่อบวกเมตริกซ์ 2 เมตริกซ์ คือ • [A]mxn = [B]mxn + [C]mxn • อธิบาย เช่น เมตริกซ์ขนาด 2*3 มีวิธีการบวกดังนี้ • เมื่อ aij = bij + cij จะได้

  17. START Read m,n Read Aij i = 1,…,m j = 1,…,n Read Bij i = 1…m j = 1…n j = 0 1 Flowchart (ต่อ)

  18. 1 j = j + 1 i = 0 2 Print Cij i = 1…m j = 1…n i = i + 1 i = i + 1 Cij = Aij + Bij STOP i = m? N Y j = n? N Y 2 Flowchart

  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. START i = 0 SUM = 0 TOT =0 Read score Yes Score<>999? No i = i + 1 N = i X(i) = score SUM = SUM+score X=SUM/N Read score 1 Flowchart (ต่อ)

  23. 1 i = 0 i = i + 1 TOT=TOT+(X(i)-X)2 No i = N? Yes SD2=TOT/(N-1) Print SD2 END

More Related