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

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Arrays.
Advertisements

ครั้งที่ 9 Function(ต่อ).
ป.2 บทที่ 1 “จำนวนนับ ไม่เกิน1,000”
แนวคิดในการเขียนโปรแกรม
สาขาวิชาคอมพิวเตอร์ คณะวิทยาศาสตร์และเทคโนโลยี
โดยอาจารย์ศิริพร ศักดิ์บุญญารัตน์ ครูชำนาญการ โรงเรียนมหิดลวิทยานุสรณ์
ตัวแปรชุด การเขียนโปรแกรมภาษาคอมพิวเตอร์ 1
Chapter 8 : Logic Modeling & Data Modeling
LAB 1 ให้นักศึกษาเขียน Flowchart โดยใช้โปรแกรม Microsoft Word วาดรูป Flowchart ส่ง Flowchart ที่วาดเสร็จแล้วในชั่วโมง และ print ใส่กระดาษ ส่งในครั้งหน้า.
บทที่ ๖ หลักการแก้ปัญหาด้วยคอมพิวเตอร์
การเขียนผังงาน.
Principles of Programming
Principles of Programming
Lecture 11: อาร์เรย์แบบหลายมิติ
ทบทวน อาร์เรย์ (Array)
Structure Programming
ตัวอย่าง Flowchart.
เฉลย Lab 10 Loop.
ชนิดของข้อมูลและตัวดำเนินการ
Program Flow Chart.
ผังงานโปรแกรม (Program Flowchart)
Week 6 ประกาศค่าตัวแปร.
PHP LANGUAGE.
แผนผัง FlowChart Flow Chart คือ ขั้นตอนที่นำผลที่ได้จากการกำหนดและการ วิเคราะห์ปัญหามาเขียนเป็นแผนภาพหรือสัญลักษณ์ ประโยชน์ของผังงาน -ช่วยลำดับขั้นตอนการทำงานของโปรแกรม.
โจทย์ Array 12 มี.ค จงเขียนโปรแกรมเพื่ออ่านข้อมูลเข้าเป็นจำนวนเต็ม 10 จำนวน แล้วหาผลรวมของเลขเหล่านั้น.
เนื้อหา ประเภทของโปรแกรมภาษา ขั้นตอนการพัฒนาโปรแกรม
บทที่ 1. พื้นฐานความรู้ทั่วไป
Arrays.
Arrays.
SCC : Suthida Chaichomchuen
วิธีการทำงานของผังงาน
การเขียนโปรแกรมคอมพิวเตอร์และอัลกอริธึม
CS Assembly Language Programming Period 14.
อาร์เรย์และข้อความสตริง
การเขียนโปรแกรมภาษาซี
ตัวแปร (Variable) คือ ชื่อที่ตั้งขึ้นเพื่อเก็บข้อมูลในหน่วยความจำ สามารถเก็บข้อมูลชนิดใดก็ ได้ ลักษณะที่สำคัญ ค่าที่จัดเก็บ เมื่อปิดโปรแกรมข้อมูลจะหายไป.
บทที่ 7 คำสั่งสำหรับเขียนโปรแกรม
บทที่ 8 อาร์เรย์.
ตัวอย่างการวิเคราะห์งาน และ การเขียนผังงานและซูโดโค้ด
ครูฉัตร์มงคล สนพลาย. เมตริกซ์ (Matrices) เมตริกซ์ คือ การจัดเรียง จำนวนให้อยู่ในรูป สี่เหลี่ยมผืนผ้า ซึ่งประกอบด้วย แถว (Row) และ หลัก (Column)
แถวลำดับ (array) ง40202 การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
ประโยคเปิดและตัวบ่งปริมาณ
Flow Chart INT1103 Computer Programming
การสอบถามข้อมูลด้วยฟังก์ชั่นสำหรับ
โครงสร้างข้อมูลคืออะไร ?
ตัวแปรกับชนิดของข้อมูล
การเขียนผังงาน ผังงานคือ อะไร ?.
Week 10 การเขียนโปรแกรมเบื้องต้น #2
Week 6 การทำซ้ำโดย for loop
Computer Programming for Engineers
Computer Programming for Engineers
การออกแบบโครงสร้าง (Structured Design)
การเขียนโปรแกรมเบื้องต้น
หลักการเขียนโปรแกรม ( )
หลักการเขียนโปรแกรม ( )
การเขียนโปรแกรมเบื้องต้น
การเขียนโปรแกรมแบบวนซ้ำ: คำสั่ง while คำสั่ง do….while
วิธีการเขียนโปรแกรมเพื่อทำงานกับข้อมูล โดยที่ ข้อมูลนั้นจะต้อง 1. เป็นประเภทเดียวกัน | ตัวเลข, ตัวอักษร 2. มีขนาดเท่ากัน ? ARRAY คืออะไร.
ตัวแปร Array แบบ 1 มิติ การเขียนโปรแกรมแบบวนซ้ำ
หลักการเขียนโปรแกรม ( )
หลักการเขียนโปรแกรม ( )
เมทริกซ์ (Matrix) Pisit Nakjai.
การเขียน แบบวนซ้ำ , วนลูป
หลักการเขียนโปรแกรมเบื้องต้น
การกระทำทางคณิตศาสตร์
การเขียนโปรแกรม (ภาษาซี)
การเขียนผังงาน ผังงาน (Flowchart)
การเขียนผังงาน (Flowchart)
ผังงานโปรแกรม (Program Flowchart)
Nested loop.
ใบสำเนางานนำเสนอ:

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

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

ตัวแปรชุดสองมิติ (TWO-DIMENSION ARRAY) เป็นตัวแปรชุดที่มีการจัดข้อมูลเป็นแถวเป็นคอลัมน์ เช่นข้อมูลแบบ Matrix จะมีตัวเลขที่แสดงตำแหน่ง 2 ตัว โดยตัวแรกจะเป็นตัวเลขที่แสดงตำแหน่งแถว ตัวที่สองจะเป็นตัวเลขที่แสดงตำแหน่งคอลัมน์ 1 2 3 X 1 2 3 4 5 6 X(2,3) X(5,3)

การเขียนผังโปรแกรมโดยใช้ตัวแปรชุด ตัวอย่างการเขียนผังโปรแกรมเพื่อแก้ปัญหาโดยใช้ตัวแปรชุด ที่พบเห็นบ่อยคือ การคำนวณเมตริกซ์ เช่น [C]mxn = [A]mxn + [B]mxn หรือ [C]mxn = [A]mxn * [B]mxn จำเป็นต้องใช้ตัวแปรชุดในการคำนวณดังกล่าว ผังโปรแกรมแสดงการอ่านข้อมูลที่เป็นเมตริกซ์ เช่น a[3][2] a11 a12 a21 a22 a31 a32

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

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) แสดงทางอุปกรณ์แสดงผล

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) แสดงทางอุปกรณ์แสดงผล

ตัวอย่างที่ 12 อ่านข้อมูลเข้ามา N จำนวน แล้วหาค่าที่มากที่สุดและน้อยที่สุด อธิบาย 3 3 5 1 3 5 1 MAX MIN 3 5 1 MIN MAX 2 1 3 5 1 MAX MIN 3 4 3 5 1 MIN MAX

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

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 (ต่อ)

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

อธิบาย การสลับ เราจะทำการสลับค่าในตัวแปรชุด เดิม มีค่าในตัวแปรชุด 5 1 ตัวอย่างที่ 13 โปรแกรมอ่านข้อมูลไม่ทราบจำนวนมาเก็บไว้แล้วทำการเรียงลำดับ(Sort) ข้อมูลเหล่านี้ เรียงจากน้อยไปมาก โดยตรวจสอบข้อมูลตัวสุดท้ายด้วยเลข 999 อธิบาย การสลับ เราจะทำการสลับค่าในตัวแปรชุด เดิม มีค่าในตัวแปรชุด 5 1 ผลที่ต้องการคือ 1 5 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

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

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 (ต่อ)

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

ตัวอย่างที่ 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

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 (ต่อ)

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

ตัวอย่างที่ 15 จงเขียนผังงานโปรแกรมเพื่อหาค่าความแปรปรวนของคะแนนสอบของนักศึกษาไม่ทราบจำนวน โดย SD2 = (Xi - X)2 N-1 เมื่อ Xi คือ คะแนนของนักศึกษาแต่ละคน X คือ คะแนนเฉลี่ย N คือ จำนวนนักศึกษาทั้งหมดที่นับได้ การวิเคราะห์ Input : คะแนนสอบของนักศึกษาแต่ละคน Output : ค่าความแปรปรวน การคำนวณ: - หาคะแนนเฉลี่ย - ค่าความแปรปรวน

ตัวแปร i = ตัวแปรที่ใช้นับจำนวนนักศึกษา score = คะแนนสอบของนักศึกษา SUM = ผลรวมของคะแนนนักศึกษา X = คะแนนเฉลี่ย TOT = ผลรวมก่อนหาความแปรปรวน ( (Xi - X)2) SD2 = ค่าความแปรปรวน

วิธีการ 1. อ่านคะแนนดิบ (score) โดยการวน loop เก็บค่า sum และเก็บคะแนนลง array ไว้ 2. หาคะแนนเฉลี่ย 3. วน loop คำนวณ SUM(Xi - X)2 4. คำนวณ (Xi - X)2 N-1 5. พิมพ์ ค่าความแปรปรวน

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 (ต่อ)

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