Upload
kurt
View
53
Download
0
Embed Size (px)
DESCRIPTION
2.5 ตัวแปรชุดมิติเดียวและตัวแปรชุดสองมิติ. ตัวแปรที่ใช้ในผังโปรแกรม ตัวแปรเดี่ยว การตั้งชื่อตัวแปรเพื่อใช้แทนข้อมูล เพียง 1 จำนวน เท่านั้น เช่น A , B , X , TOT, NAME เป็นต้น ตัวแปรชุด (ARRAY) การตั้งชื่อตัวแปรในหน่วยความจำที่ใช้ชื่อเพียงตัวเดียว - PowerPoint PPT Presentation
Citation preview
2.5 ตั�วแปรชุ�ดมิ�ตั�เด ยวและตั�วแปรชุ�ดสองมิ�ตั�ตั�วแปรที่ �ใชุ�ในผั�งโปรแกรมิ
• ตั�วแปรเด �ยว การตั��งชุ��อตั�วแปรเพื่��อใชุ�แที่นข้�อมิ!ล
เพื่ ยง 1 จำ$านวน เที่%าน��น เชุ%น A , B , X , TOT,
NAME เป&นตั�น• ตั�วแปรชุ�ด (ARRAY)
การตั��งชุ��อตั�วแปรในหน%วยความิจำ$าที่ �ใชุ�ชุ��อเพื่ ยงตั�วเด ยวแตั%มิ ตั�วเลข้แสดงตั$าแหน%งก$าก�บไว�เพื่��อเป&นการบอกว%า
เป&นตั�วแปรตั�วที่ �เที่%าไร เชุ%น X(1) , X(2), X(3) เป&นตั�น
ตั�วแปรชุ�ดมิ�ตั�เด ยว (ONE-DIMENSION ARRAY)เป&นตั�วแปรชุ�ดที่ �มิ ตั�วเลข้แสดงตั$าแหน%งเพื่ ยงตั�วเด ยวX
X(3)
X(5)
12345
X X(3)
X(5)
โครงสร�างภายในเคร��องคอมิพื่�วเตัอร,จำะถื�อว%าที่��งหมิดน �เป&นเน��อที่ �ที่ �ถื!กจำองตั%อเน��องก�นไปเป&น
ล$าด�บ ซึ่/�งสามิารถืระบ�ตั$าแหน%งข้�อมิ!ลที่ � ตั�องการได� โดยระบ�ตั�วพื่%วง
(Subscript)
ตั�วแปรชุ�ดสองมิ�ตั� (TWO-DIMENSION ARRAY)เป&นตั�วแปรชุ�ดที่ �มิ การจำ�ดข้�อมิ!ลเป&นแถืวเป&น
คอล�มิน, เชุ%นข้�อมิ!ลแบบ Matrix จำะมิ ตั�วเลข้ ที่ �แสดงตั$าแหน%ง 2 ตั�ว โดยตั�วแรกจำะเป&น
ตั�วเลข้ที่ �แสดงตั$าแหน%งแถืว ตั�วที่ �สองจำะเป&นตั�วเลข้ที่ �แสดงตั$าแหน%งคอล�มิน,
X 123456
1
2
3 X(2,3)
X(5,3)
การเข้ ยนผั�งโปรแกรมิโดยใชุ�ตั�วแปรชุ�ดตั�วอย%างการเข้ ยนผั�งโปรแกรมิเพื่��อแก�
ป0ญหาโดยใชุ�ตั�วแปรชุ�ด ที่ �พื่บเห2นบ%อย ค�อ การค$านวณเมิตัร�กซึ่, เชุ%น
[C]mxn = [A]mxn + [B]mxn
หร�อ [C]mxn = [A]mxn * [B]mxn
จำ$าเป&นตั�องใชุ�ตั�วแปรชุ�ดในการค$านวณด�งกล%าว
ผั�งโปรแกรมิแสดงการอ%านข้�อมิ!ลที่ � เป&นเมิตัร�กซึ่, เชุ%น
a[3][2]
a11 a12a21 a22a31 a32
READM,N
I = 0
J = 0
I = I + 1
J = J + 1
ReadA(I,J)
J = N?
I = M?
noyesnoyes
แปรค%า I ตั��งแตั% 1 ถื/ง M
อ%านข้�อมิ!ล A(I,J) โดย เปล �ยนค%า J ตั��งแตั% 1 จำนถื/ง N
ส%วนค%า I เป&นค%าเตั2มิตัลอด
อ%านข้�อมิ!ล A[I,J] เร ยบร�อย
Flowchart
การเข้ ยนผั�งโปรแกรมิเพื่��อความิสะดวกสามิารถืที่ �จำะเข้ ยนร!ปที่ �ง%ายแสดงการอ%านหร�อการพื่�มิพื่,เมิตัร�กซึ่,หร�อตั�วแปรชุ�ดได�ด�งน �ตั�วแปรชุ�ดมิ�ตั�เด ยว
ReadX(I)
I = 1…10 จำะหมิายถื/ง การอ%านข้�อมิ!ลจำากอ�ปกรณ,อ%าน
ข้�อมิ!ล 10 จำ$านวนไปไว�ที่ � X(1) ถื/งX(10) ตัามิล$าด�บPrint
X(I)I = 1…10
หมิายถื/ง การน$าเอาค%าตั�วแปรชุ�ดตั��งแตั%X(1) ถื/ง X(10) แสดงที่างอ�ปกรณ,แสดงผัล
ตั�วแปรชุ�ด 2 มิ�ตั� Read
A(I,J)I = 1,2…MJ = 1,2….N
จำะหมิายถื/ง การอ%านข้�อมิ!ลจำากอ�ปกรณ,อ%าน ข้�อมิ!ล M จำ$านวนไปไว�ที่ � X(1) ถื/ง X(M)
ตัามิล$าด�บ
หมิายถื/ง การน$าเอาค%าตั�วแปรชุ�ดตั��งแตั%X(1) ถื/ง X(M) แสดงที่างอ�ปกรณ,แสดงผัล
PrintA(I,J)
I = 1,2…MJ = 1,2….N
ตั�วอย%างที่ �12 อ%านข้�อมิ!ลเข้�ามิา N จำ$านวน แล�วหา
ค%าที่ �มิากที่ �ส�ดและน�อยที่ �ส�ดอธิ�บาย 3 3 5 1
3 5 1
MINMAX
3 5 1
MAXMIN
3 5 1
MINMAX
3 5 1
MAXMIN
1 2
3 4
ตั�วแปรและความิหมิายข้องตั�วแปรที่ �ใชุ�มิ ด�งน �
N = เก2บค%าข้องจำ$านวนข้�อมิ!ลที่ �จำะอ%านเข้�ามิาX(I) = เก2บค%าข้องข้�อมิ!ลตั�วที่ � IMAX = เก2บค%าที่ �มิากที่ �ส�ดที่ �พื่บ(Maximum)MIN = เก2บค%าที่ �น�อยที่ �ส�ดที่ �พื่บ(Minimum)
STARTRead
NRead X(I)i = 1…N
i = 1
MAX=X(i)
MIN=X(i)
Flowchart
1
2
(ตั%อ)
i < N
X(i)>MAX?
i = i + 1
X(i)<MIN?
MIN=X(i)
MAX=X(i)
PrintMAXMIN
STOP
YesNo
YesNo
YesNo
2
1
ตั�วอย%างที่ �13โปรแกรมิอ%านข้�อมิ!ลไมิ%ที่ราบจำ$านวนมิาเก2บไว�แล�วที่$าการเร ยงล$าด�บ(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]=tempTemp5
ตั�วแปรและความิหมิายข้องตั�วแปรที่ �ใชุ�มิ ด�งน �a(i) = เก2บข้�อมิ!ลตั�วที่ � ii = เป&นตั�วพื่%วงและเป&นจำ$านวนน�บจำ$านวนข้�อมิ!ลCHECK = เป&นตั�วชุ �ว%าข้�อมิ!ลเร ยงล$าด�บหร�อย�ง
ถื�า CHECK = 1 แสดงว%ามิ การสล�บที่ �อย%างน�อย 1 คร��ง(ข้�อมิ!ลย�งไมิ%เร ยง )
ถื�า CHECK = 0 แสดงว%าไมิ%เก�ดการสล�บที่ � (ข้�อมิ!ลเร ยงล$าด�บแล�ว)
Temp = เก2บค%าข้�อมิ!ลชุ��วคราวในการสล�บที่ �ข้�อมิ!ลN = จำ$านวนข้�อมิ!ลที่��งหมิดL = เป&นตั�วพื่%วงและเป&นตั�วน�บจำ$านวนข้�อมิ!ล
Flowchart START i = 0
a[i]=999
Printa[L]
i = i + 1Read a[i]
N= i - 1CHECK = 1
Check=1
STOP
L = 1 TO N
1 YN 2
(ตั%อ)
L=1CHECK = 0
L < Na[L]>a[L+1]
Temp=a[L]a[L]=a[L+1]
a[L+1]=Temp
CHECK = 1
L = L + 11
YNYN
2
ตั�วอย%างที่ �14จำงเข้ ยนผั�งโปรแกรมิเพื่��อบวกเมิตัร�
กซึ่, 2 เมิตัร�กซึ่, ค�อ[A]mxn = [B]mxn + [C]mxn
อธิ�บาย เชุ%น เมิตัร�กซึ่,ข้นาด 2*3
มิ ว�ธิ การบวกด�งน � เมิ��อ aij = bij + cij จำะได�a11 a12 a13
a21 a22 a23b11 b12 b13b21 b22 b23
c11 c12 c13c21 c22 c23+=
2*3 2*3 2*3
START
j = 0
Read m,n
Read Aij i = 1,…,m j = 1,…,n
Read Bij i = 1…m j = 1…n
1
Flowchart
(ตั%อ)
Flowchart
j = j + 1
i = 0
1
STOPi = i + 1 Cij = Aij + Bij
i = m?
j = n?
Print Cij i = 1…m j = 1…n
2
2
i = i + 1
Y
Y
N
N
ตั�วอย%างที่ � 15 จำงเข้ ยนผั�งงานโปรแกรมิเพื่��อหาค%าความิแปรปรวนข้องคะแนนสอบข้องน�กศึ/กษาไมิ%ที่ราบจำ$านวน
โดย SD2 = - (Xi X)2 -1N เมิ��อ Xi ค�อ คะแนนข้องน�กศึ/กษาแตั%ละคน
X ค�อ คะแนนเฉล �ย N ค�อ จำ$านวนน�กศึ/กษาที่��งหมิดที่ �น�บได�การว�เคราะห,
Input : คะแนนสอบข้องน�กศึ/กษาแตั%ละคนOutput : ค%าความิแปรปรวนการค$านวณ: - หาคะแนนเฉล �ย - ค%าความิแปรปรวน
ตั�วแปรi = ตั�วแปรที่ �ใชุ�น�บจำ$านวนน�กศึ/กษาscore = คะแนนสอบข้องน�กศึ/กษาSUM = ผัลรวมิข้องคะแนนน�กศึ/กษาX = คะแนนเฉล �ยTOT = ผัลรวมิก%อนหาความิ
แปรปรวน( - (Xi X)2)
SD2 = ค%าความิแปรปรวน
ว�ธิ การ 1 อ%านคะแนนด�บ (score)
โดยการวน loop เก2บค%า sum และเก2บคะแนนลง array ไว�
2. หาคะแนนเฉล �ย 3 . วน loop ค$านวณ
SUM(Xi - X)2 4. ค$านวณ - (Xi X)2
-1N 5 . พื่�มิพื่, ค%าความิแปรปรวน
FlowchartSTARTi = 0
SUM = 0TOT =0
Read score
Score<>999?
X(i) = scoreSUM = SUM+score
Read score
i = i + 1
N = i
X=SUM/N
1
YesNo
(ตั%อ)
1i = 0
i = i + 1
TOT=TOT+(X(i)-X)2
i = N?
SD2=TOT/(N-1)
Print SD2
END
YesNo