หน่วยการเรียนรู้ที่ 10

30
หหหหหหหหหหหหหหหหหหห 10 หหหหหหหหหหหห หหหหหหหหหหหหหหหห หหหห

Upload: karmiti-wilson

Post on 01-Jan-2016

31 views

Category:

Documents


0 download

DESCRIPTION

หน่วยการเรียนรู้ที่ 10. การออกแบบและพัฒนาโปรแกรมขนาดเล็ก. บทนำ. - PowerPoint PPT Presentation

TRANSCRIPT

หน่�วยการเรยน่ร� �ที่� 10การออกแบบและพั�ฒน่า

โปรแกรมขน่าดเล�ก

• ภาษาคอมพั!วเตอร#ย$คใหม�เป&น่ภาษา (OOP : Object Oriented Programming) โดยเขยน่โปรแกรมเป&น่โมด�ลย�อยๆ แต�ละโมด�ลมการที่(างาน่แยกเป&น่อ!สระไม�ข,-น่ต�อก�น่ มการต!ดต�อก�บผู้��ใช้�ด�วยภาพั (GUI : Graphics User Interface )เช้�น่ การคล!กเมาส#ที่�ภาพั หร0อคล!กที่ป$1มใดป$1มหน่,�งที่�ก(าหน่ดไว�บน่จอภาพั

ฟอร#ม (Form) ใช้�เป&น่แผู้�น่ภาพัส(าหร�บการแสดงผู้ลเหม0อน่จอฉายภาพัยน่ตร# ผู้��ใช้�สามารถเขยน่โปรแกรมลงฟอร#มได�มากกว�าหน่,�งฟอร#ม ค(าส��งที่�ใช้�ใน่การเขยน่โปรแกรมสามารถใช้�ค(าส��งพั0-น่ฐาน่ที่�เป&น่มาตรฐาน่ของภาษาที่��วไป เช้�น่ การวาดเส�น่ วาดวงกลม สร�างร�ปที่รงเรขาคณิ!ตต�างๆ และการน่(าเคร0�องม0อ (Control) จากกล�องเคร0�องม0อมาวางลงใน่ฟอร#ม แล�วเขยน่ค(าส��งให�เคร0�องม0อน่�-น่ที่(างาน่ คอน่โที่รลที่�วางลงใน่ฟอร#มแล�วจ�ดเป&น่ว�ตถ$ (Object) หน่,�งใน่ฟอร#ม

• การก(าหน่ดขน่าดของจอภาพัข,-น่อย��ก�บการต�-งค�า (Setting) ใน่ค(าส��ง Display ของว!น่โดวส#เช้�น่ 640 x 480 หมายถ,ง จอภาพัมความกว�าง Scale Width เที่�าก�บ 640 จ$ดแสงหร0อพั!กเซล (Pixel) โดยเร!�มที่�ด�าน่ซ�ายส$ดของจอเป&น่ 0 และมความส�ง 480 พั!กเซล เรยกว�า Scale Height โดยเร!�มที่�ด�าน่บน่ซ�ายของจอเป&น่ 0 ปกต!น่!ยมต�-งค�าเป&น่ 800 x 600 หร0อมากกว�า ต(าแหน่�งม$มบน่ซ�ายของจอภาพัค0อค��ล(าด�บที่� 0,0 หมายถ,งค�า X = 0 และ Y=0 อ�กษร X และ Y จ,งเป&น่ค(าสงวน่ (Reserve Word) ของภาษา ไม�ควรต�-งช้0�อเป&น่ต�วแปร เพัราะจะที่(าให�โปรแกรมผู้!ดพัลาดได�

• ใน่โปรแกรมของแต�ละภาษาจะมค(าส��งก(าหน่ด สามารถก(าหน่ด Scale Mode ใน่ Properties ของฟอร#มเป&น่แบบ Twip, Pixel, Point และอ0�น่ๆ หล�งจากก(าหน่ดค�าแล�วให�ด�ค�าส�งส$ดที่� Scale Width และ Scale Height เพั0�อก(าหน่ดขน่าดและต(าแหน่�งของว�ตถ$ เป&น่ต�น่

• ค(าส��งที่�ใช้�ใน่การสร�างเรขาคณิ!ต ได�แก� ค(าส��ง Circle และ Line ใช้�สร�างร�ปวงกลม วงร และเส�น่โค�งบน่ว�ตถ$ ส�วน่ค(าส��ง Line ใช้�สร�างเส�น่ตรง สามเหล�ยม ส�เหล�ยมและร�ปที่รงหลายเหล�ยมบน่ว�ตถ$หร0อฟอร#ม

• การสร�างวงกลมบน่จอภาพัมล�กษณิะเหม0อน่การใช้�วงเวยน่สร�างร�ปบน่แผู้�น่กระดาษ โดยต�องก(าหน่ดจ$ดศู�น่ย#กลางของวงกลมไว�ก�อน่แล�วกางวงเวยน่ออกใน่ร�ศูมที่�ต�องการ เสร�จแล�วลางเป&น่เส�น่รอบวง

• จ$ดศู�น่ย#กลางจะก(าหน่ดเป&น่ค��ล(าด�บของจ$ดบน่แกน่ X และแกน่ Y ของค�าพั!กเซลที่�ต�-งไว� เช้�น่ จอที่�ก(าหน่ดความละเอยดของจ$ดไว� 800 x 600 จ$ดศู�น่ย#กลางค0อ X= 400, Y = 300 ไวยากรณิ#หร0อวากยส�มพั�น่ธ์# (Syntax) ของค(าส��ง เป&น่กฎเกณิฑ์#ใน่การผู้�กประโยคค(าส��งของภาษาคอมพั!วเตอร# แบ�งเป&น่วากยส�มพั�น่ธ์#ที่�อย��ใน่มาตรฐาน่ ANSI ใช้�ได�ก�บที่$กภาษา ค(าส��งวาดวงกลมและเส�น่ที่�เป&น่ค(าส��งอย��ใน่มาตรฐาน่ ANSI มร�ปแบบด�งน่-

ส�วน่ของค(าส��งส�วน่ของค(าส��ง ความหมายความหมายว�ตถ$ที่�ใช้�วาดร�ป เช้�น่ ฟอร#ม Picture, Image เป&น่ต�น่ว�ตถ$ที่�ใช้�วาดร�ป เช้�น่ ฟอร#ม Picture, Image เป&น่ต�น่ObjectObject

ค(าส��งหล�กที่�ระบ$จ$ดศู�น่ย#กลางของวงกลมใน่ว�ตถ$ที่�วาดร�ป เช้�น่ CurrentX,CurrentY เป&น่ต�น่ค(าส��งหล�กที่�ระบ$จ$ดศู�น่ย#กลางของวงกลมใน่ว�ตถ$ที่�วาดร�ป เช้�น่ CurrentX,CurrentY เป&น่ต�น่StepStep

ค��ล(าด�บที่�ใช้�ก(าหน่ดจ$ดศู�น่ย#กลางของวงกลมค��ล(าด�บที่�ใช้�ก(าหน่ดจ$ดศู�น่ย#กลางของวงกลม(x, y)(x, y)ต�วเลขก(าหน่ดความยาวของเส�น่ร�ศูมวงกลมต�วเลขก(าหน่ดความยาวของเส�น่ร�ศูมวงกลมradiusradius

ก(าหน่ดสของเส�น่รอบวงโดยใช้�ฟ=งก#ช้��น่ QBColor (n) หร0อ RGB (255, 255, 255) เป&น่การก(าหน่ดสแบบ 24 บ!ตโดยก(าหน่ดตามค�าแม�สที่างแสงค0อ แดง เขยว และน่(-าเง!น่ แต�ละสมค�า 0-255 ค�า ถ�าก(าหน่ดเป&น่RGB (0, 0, 0) จะได�สด(า RGB (255, 0, 0) สแดง (0, 255, 0) สเขยว

ก(าหน่ดสของเส�น่รอบวงโดยใช้�ฟ=งก#ช้��น่ QBColor (n) หร0อ RGB (255, 255, 255) เป&น่การก(าหน่ดสแบบ 24 บ!ตโดยก(าหน่ดตามค�าแม�สที่างแสงค0อ แดง เขยว และน่(-าเง!น่ แต�ละสมค�า 0-255 ค�า ถ�าก(าหน่ดเป&น่RGB (0, 0, 0) จะได�สด(า RGB (255, 0, 0) สแดง (0, 255, 0) สเขยว

colorcolor

ส�วน่ของค(าส��งส�วน่ของค(าส��ง ความหมายความหมายต�วเลขก(าหน่ดจ$ดเร!�มต�น่และจ$ดส!-น่ส$ดใน่การวาดส�วน่ของวงกลม มค�าระหว�าง -2Pi Radians ถ,ง 2 Pi Radians ถ�าเป&น่วงกลมเต�มวงค�าปกต!จะเร!�มที่�-2 Pi Radians ถ,ง 2 * Pi Radians

ต�วเลขก(าหน่ดจ$ดเร!�มต�น่และจ$ดส!-น่ส$ดใน่การวาดส�วน่ของวงกลม มค�าระหว�าง -2Pi Radians ถ,ง 2 Pi Radians ถ�าเป&น่วงกลมเต�มวงค�าปกต!จะเร!�มที่�-2 Pi Radians ถ,ง 2 * Pi Radians

Start, endStart, end

ก(าหน่ดอ�ตราส�วน่ของวงร ต�องมค�ามากกว�า 1 โดยวงกลมปกต!จะมอ�ตราส�วน่เป&น่ 1ก(าหน่ดอ�ตราส�วน่ของวงร ต�องมค�ามากกว�า 1 โดยวงกลมปกต!จะมอ�ตราส�วน่เป&น่ 1aspectaspect

ค(าส��ง Circle (100, 200), 80อธ์!บาย วาดกลมที่�ต(าแหน่�ง X =100, Y=

200 ร�ศูมเป&น่ 80 จ$ดค(าส��ง Circle (100, 200), 80, RGB

(255, 0, 0)อธ์!บาย วาดกลมที่�ต(าแหน่�ง X =100, Y=

200 ร�ศูมเป&น่ 80 จ$ด เส�น่รอบวงสแดงค(าส��ง Circle (100, 200), 80, , 0, 3)อธ์!บาย วาดส�วน่วงกลมต��งแต�ต(าแหน่�ง 0 ถ,ง 3

ร�ศูม 80 จ$ด ค(าส��ง Circle (100, 200), 80, , , , 2)อธ์!บาย วาดวงรที่�มอ�ตราส�วน่ของวงรเที่�าก�บ 2

ว�ตถ$ประสงค# ต�องการสร�างวงกลมเรยงช้�อน่ก�น่จาก

จ$ดศู�น่ย#กลางของจอไปจน่ส$ดขอบจอภาพัเขยน่เป&น่รห�สเที่ยมได�ด�งน่- เร!�มต�น่1. ก(าหน่ดต�วแปร CX และ CY แที่น่ค��ล(าด�บ X, Y

ร�ศูม (Radius)และค�าส�งส$ดของจอภาพั (Limit)2. ก(าหน่ดโหมดจอภาพัเป&น่พั!กเซล3. ให�ค(าน่วณิค�าของค��ล(าด�บเที่�าก�บค�าส�งส$ดของ

จอภาพั /2 4. ถ�าค�าความกว�างบน่จอมากกว�าความส�งของจอ

ให�ความกว�างเที่�าก�บความส�ง (เพัราะวงกลมมร�ศูมยาวเที่�าก�น่ที่$กด�าน่)

5. ก(าหน่ดต�วแปจ(าน่วน่รอบเที่�าก�บ 0 ถ,งความกว�างของจอ

6. วาดวงกลมให�มร�ศูมเที่�าก�บค�าของจ(าน่วน่รอบโดยเปล�ยน่สของรอบวงไปตามการ

ส$�มค�าระหว�าง 0 – 255 (Rnd * 255)จบ

Sub Form_Click () ‘ ให�โปรแกรมที่(างาน่เม0�อคล!ก

Dim CX, CY, Radius, Limit ‘ ก(าหน่ดค�าต�วแปรScaleMode = 3 ‘ ก(าหน่ดมาตราส�วน่ของจอเป&น่พั!กเซลCX = ScaleWidth/2 ‘ ก(าหน่ดต(าแหน่�งของ X ที่�กลางจอภาพัCY = ScaleHeight/2 ‘ ก(าหน่ดต(าแหน่�งของ YIf CX > CY = Then Limit = CY ELSE Limit = CXFor Radius = 0 To Limit ‘ ก(าหน่ดความยาวร�ศูมของวงกลมเที่�าก�บจ(าน่วน่น่�บCircle (CX, CY), Radius, RGB(Rnd * 255, Rnd * 255, Rbd * 255) ‘ วาดวงกลมที่�มร�ศูมเปล�ยน่ไปตามค�าของต�วแปร RadiusNext Radius

End Sub

• ค(าส��ง Line และแกน่ Y เป&น่ค(าส��งให�ลากเส�น่จากจ$ดเร!�มต�น่ไปย�งจ$ดส$ดที่�ายที่�ก(าหน่ด โดยก(าหน่ดเป&น่ค��ล(าด�บสองจ$ด (x1, y1) – (x1, y2) การลากเส�น่จะลากเส�น่เป&น่แน่วน่อน่ แน่วต�-ง หร0อที่(าม$มต�างๆ ก�บแน่วใดก�ได� ถ�าลากเส�น่ที่(าม$มก�บแน่วระด�บเป&น่แน่วที่แยงสามารถใส�อ�กษร B ก(าก�บใน่ค(าส��งให�แสดงเป&น่กล�องสเหล�ยมได� และสามารถเต!มสลงใน่กล�องได�ด�วยต�วเล0อก F มร�ปแบบที่�ใช้�ค(าส��งด�งน่-

ส�วน่ของค(าส��งส�วน่ของค(าส��ง ความหมายความหมายว�ตถ$ที่�ใช้�วาดร�ป เช้�น่ ฟอร#ม Picture, Image เป&น่ต�น่ว�ตถ$ที่�ใช้�วาดร�ป เช้�น่ ฟอร#ม Picture, Image เป&น่ต�น่ObjectObject

จ$ดส$ดที่�ายของเส�น่จ$ดส$ดที่�ายของเส�น่(x2, y2)(x2, y2)

ถ�าลากเป&น่เส�น่ที่แยงม$มเม0�อเต!มอ�กษรน่-หมายถ,งสร�างเป&น่กล�องส�เหล�ยม (Box)ถ�าลากเป&น่เส�น่ที่แยงม$มเม0�อเต!มอ�กษรน่-หมายถ,งสร�างเป&น่กล�องส�เหล�ยม (Box)BB

จ$ดเร!�มต�น่ของเส�น่จ$ดเร!�มต�น่ของเส�น่(x1, y1)(x1, y1)

เต!มสลงใน่กล�องที่�วาด (Fill) ใช้�ค��ก�บ(Color)เต!มสลงใน่กล�องที่�วาด (Fill) ใช้�ค��ก�บ(Color)FF