วันพฤหัสบดีที่ 17 พฤศจิกายน พ.ศ. 2559

Kivy Selection Sort.


สร้าง Text input สำหรับรับค่าตัวเลขเข้ามา และสร้าง Text input สำหรับเป็นหน้าจอแสดงผล หลังจากนั้นก็สร้างปุ่มกดที่เรียกใช้ฟังก์ชั่น Sort และปรับอัตราส่วนให้เหมาะสม

สร้าง Class Selectionsort ขึ้นมา จากนั้นสร้าง method sort และ findmin โดยให้ method sort เรียกใช้งานฟังก์ชั่นของ method findmin เพื่อป้องกันการเกิดลูปซ้อนลูป โดยได้ใช้คำสั่ง split สำหรับการเปลี่ยนสตริงเป็นอาเรย์ เพื่อให้สามารถนำค่าในอาเรย์ไป sort ได้


จากภาพ ใส่ตัวเลขเข้าไปในช่อง input และกด sort จะจัดเรียงตัวเลขจากน้อยไปมาก โดยแสดงผลทีละขั้นตอน และมีตัวเลขขี้ให้เห็นว่า เป็นขั้นตอนไหน และมีทั้งหมดกี่ขั้นตอน

วันอังคารที่ 15 พฤศจิกายน พ.ศ. 2559

Slide Quiz 3

https://drive.google.com/open?id=0Bysm0R5CF1l6ZUJBdWk4YlNheXM

Slide W12 9/11/2559

https://drive.google.com/file/d/0Bysm0R5CF1l6TUZrWHBPU3AtMFU/view?usp=sharing

Quiz 3 รอบบ่าย

โจทย์ข้อที่ 1 Find min

สร้างเมธตอดหาค่ามิน โดยกำหนดตัวแปร i = 0 และค่า min = number[i] คือเท่ากับค่าของตัวแรกของ array ไว้ก่อน จากนั้นตั้งเงื่อนไขว่า ในขณะที่ i น้อยกว่า จำนวนสมาชิกของ array number ถ้า ค่าใดๆในอาเรย์มีค่าน้อยกว่าค่า min ในปัจจุบัน ให้ค่ามิน กลายเป็นค่านั้นๆทันที จากนั้นก็อัพเเดทค่า i ให้เพิ่มขึ้นที่ละ 1 กล่าวคือ เทียบกับทุกๆตัวในอาเรย์ไปเรื่อยๆ หากค่า i เกินจำนวนสมาชิกของอาเรย์แล้ว จะปรินท์ค่า min ล่าสุดออกมา ซึ่งจะตรงกับค่า min ของอาเรย์


จากโค้ด ในอาเรย์มีสมาชิกดังนี้ 5 8 0 1 0 1 2 6 3 0 1 0 6 ดังนั้นค่าที่น้อยที่สุด คือ 0

โจทย์ข้อที่ 2 Find max


สร้างอาเรย์ขึ้นมา 3 อาเรย์ แล้วสร้างฟังก์ชันหาค่า Max โดยส่งอาเรย์ให้กับฟังก์ชัน ให้ฟังก์ชันนี้หาค่าของอาเรย์ไหนก็ได้ที่ส่งมา โดยเริ่มแรกกำหนค่า i = 0 และค่า max = array[i] กล่าวคือ ให้เท่ากับตัวแรกของอาเรย์นั้นไว้ก่อน จากนั้นตั้งเงื่อนไขว่า ในขณะที่ i น้อยกว่าจำนวนสมาชิกในอาเรย์ ถ้า max น้อยกว่า ค่าของจำนวนใดๆ ให้ค่า max เท่ากับค่าของจำนวนนั้นๆ จากนั้นก็อัพเดทค่า โดย i เพิ่มขึ้นทีละ 1 กล่าวคือ เทียบกับทุกตัวในอาเรย์ เมื่อเช็คครบทุกตัวในอาเรย์แล้ว จะหลุดลูปออกมา เจอคำสั่งปริ้นท์ค่าแมกซ์ปัจจุบันออกมา ซึ่งคือค่าแมกซ์ของอาเรย์นั้นๆ


อาเรย์ number ค่าสูงสุดคือ 6 อาเรย์ a ค่าสูงสุดคือ 8 และอาเรย์ b ค่าสูงสุดคือ -2 ตามลำดับ

โจทย์ข้อที่ 3 Selection Sort

สร้างอาเรย์ที่ต้องการขึ้นมา จากนั้นสร้าง method ในการ sort โดยให้ปริ้นท์อาเรย์ดั้งเดิมออกมาก่อน เพื่อดูการจัดเรียง จากนั้นตั้งตัวแปร i ไว้ใช้เป็นตัวเทียบ แล้วให้ตัวแปร j เป็นตัวแปรที่เป็นค่าน้อยที่สุด และให้ n เป็นตัวแปรที่เป็นจำนวนสมาชิกในอาเรย์ โดยตั้งเงื่อนไขว่า ในขณะที่ j น้อยกว่าค่าสมาชิกในอาเรย์ให้ j = ค่าที่น้อยที่สุด แล้วให้ i = j + 1 กล่าวคือ เป็นตัวถัดจาก j และตั้งเงื่อนไขซ้อนไปอีกว่า ในขณะที่ i < n แล้ว ถ้า ค่าของอาเรย์ตัวที่ i นั้น น้อยกว่าค่าของอาเรย์ตัวที่ j ให้ ค่าน้อยสุดเท่ากับ i แล้วอัพเดทค่า i ไปทีละ 1 หากหลุดลูปซ้อนแล้ว จะเข้าเงื่อไขที่ว่า หากค่าน้อยสุดไม่ได้เท่ากับ j แล้ว ให้สลับ i กับ j หรือกล่าวคือ สลับตำแหน่งของตัวเลขสองตัวเลขที่เทียบค่ากันอยู่นั่นเอง จากนั้นให้ปริ้นท์อาเรย์ที่เพิ่งสลับออกมาทันที เพื่อดูการเปรียบเทียบ และอัพเดทค่า j เพิ่มขึ้นทีละ 1 เช่นกัน


จะได้ผลการจัดเรียงดังภาพ




Quiz 3 รอบเช้า

โจทย์รอบเช้า สร้างโปรแกรมคำนวณเลขอย่างง่าย

สร้างปุ่มของแต่ละฟังก์ชั่น และสร้าง text input ขึ้นมาสำหรับรับค่าตัวเลข 2 ช่อง และ text input สำหรับแสดงผล 1 ช่อง

สร้างเมธตอด ที่เอาไว้ถูกเรียกใช้งานจากการกดปุ่ม


หน้าจอเริ่มต้นของโปรแกรม


กรอกตัวเลข ที่ 2 ช่องบน คือตัวตั้งและตัวบวก ตามลำดับ เมื่อกด Plus เลข 2 ตัวนั้นจะมาบวกกัน และแสดงผลที่ช่องด้านล่าง ดังภาพ


กรอกตัวเลข ที่ 2 ช่องบน คือตัวตั้งและตัวลบ ตามลำดับ เมื่อกด Minus เลข 2 ตัวนั้นจะมาลบกัน และแสดงผลที่ช่องด้านล่าง ดังภาพ


กรอกตัวเลข ที่ 2 ช่องบน คือตัวตั้งและตัวคูณ ตามลำดับ เมื่อกด Multiple เลข 2 ตัวนั้นจะมาคูณกัน และแสดงผลที่ช่องด้านล่าง ดังภาพ


กรอกตัวเลข ที่ 2 ช่องบน คือตัวตั้งและตัวหาร ตามลำดับ เมื่อกด Divide เลข 2 ตัวนั้นจะมาหารกัน และแสดงผลที่ช่องด้านล่าง ดังภาพ

วันอังคารที่ 8 พฤศจิกายน พ.ศ. 2559

commit 9/11/2559

https://bitbucket.org/RIKTI/memo/commits/f859cd6eef834c1fabae23e70e6ea25787dff8e4

เปลี่ยนฟอนต์ตัวหนังสือ ให้เป็นฟอนต์ของโปรแกรมทุกจุด และแก้โค้ดตาม PEP8 Style

การแก้โค้ดตาม PEP8 Style

commit 8/11/2559

https://bitbucket.org/RIKTI/memo/commits/683f15005e07b74a9cd3ac9a83ea5ce148f9ad88

เพิ่มขนาดคำพูดของคำว่า Welcome



เพิ่มขนาดของฟอนต์ ตอนดูไฟล์ และตอนลบ ให้เห็นชัดเจน

CommIt 5/11/2559

https://bitbucket.org/RIKTI/memo/commits/332d2bf8e008f3333e0def6cf889202ff43c5c38

การคอมมิทในครั้งนี้ ได้แก้ไขทั้งหมด 4 อย่างด้วยกัน ดังนี้

1. ใส่ข้อมูลที่เป็นไฟล์ text และรูปภาพในโฟลเดอร์ของโปรแกรม
โดยเนื้อหาที่กลุ่ม 6 นำมาเสนอนั้น คือเรื่อง การละเล่นไทย ทั้ง 10 อย่าง เช่น

เดินกะลา
Old image
ซึ่งในโปรแกรม จะมีเนื้อหาบรรยายเกี่ยวกับการละเล่นแต่ละอย่างด้วย

2. แก้บัค: สามารถอ่านชื่อไฟล์เป็นภาษาไทย ในขณะที่กดดูรูปภาพ
โดยการใส่ฟอนต์กำกับเข้าไปดังภาพ

3. สามารถรู้ชื่อไฟล์ที่เรากำลังจะลบได้
โดย + ชื่อไฟล์ของไฟล์ที่เรากำลังเลือกอยู่เข้าไปนั่นเอง แล้วใส่ฟอนต์กำกับเพื่อให้อ่านภาษาไทยได้

4. เพิ่มขนาดของตัวหนังสือให้ใหญ่ขึ้น
เพิ่มขนาดตัวหนังสือของปุ่มแต่ละปุ่มให้ใหญ่ขึ้น เพื่อการอ่านที่ชัดเจน นอกจากนี้ยังเพิ่มขนาดตัวหนังสือที่ชื่อไฟล์ หัวเรื่อง และเนื้อหาภายใน ให้อ่านได้สะดวกขึ้นอีกด้วย

วันพฤหัสบดีที่ 3 พฤศจิกายน พ.ศ. 2559

Slide W12-2

https://drive.google.com/file/d/0Bysm0R5CF1l6cW1RV1FFa2RERlE/view?usp=sharing

Memo กลุ่ม 6 W 12-1


หน้าต่างเริ่มต้นของโปรแกรม Memo



เมื่อกด View จะขึ้นหน้าต่างของผู้ใช้ซึ่งจะปรากฎไฟล์ต่างๆทั้ง text file และ image file


เมื่อกดคำสั่ง New text จะขึ้นหน้าต่างสำหรับผู้ใช้ ให้ตั้งชื่อและเขียนข้อมูล text ลงไปในช่องว่างได้


เมื่อผู้ใช้ทำการกด Save จะมีหน้าต่างป๊อปอัพขึ้นมายืนยันว่าได้ทำการเซฟไฟล์ไปแล้ว (ในที่นี้อาจมีการแก้ไขให้ไม่ต้องมีหน้าต่างป๊อปอัพขึ้นมาในภายหลัง)


เมื่อกลับไปดูที่ View อีกครั้ง จะพบว่า text file ที่เราสร้างขึ้นมาใหม่ (ในที่นี้คือไฟล์ที่ชื่อว่า SaWadDee.txt) ได้ปรากฎเข้ามาในโฟลเดอร์ของ Text file แล้ว


หากทำการกดคำสั่ง Add จะมีป๊อปอัพขึ้นมาถามว่า จะเลือก add ไฟล์ชนิดใด และมีปุ่มกด Cancel เพื่อให้ผู้ใช้งานได้กดยกเลิก หากไม่ต้องการทำสิ่งนี้แล้ว




หากเลือก Text แล้วกดเข้าไปในโฟลเดอร์ต่างๆที่ต้องการ โปรแกรมจะคัดเลือกเพียงไฟล์ .txt ขึ้นมาเท่านั้น เช่นเดียวกันกับหากกดเลือก Picture โปรแกรมจะคัดเลือกเพียงไฟล์ .png ขึ้นมาให้เท่านั้น



หากทำการกดตกลงที่จะ Add ไฟล์ดังกล่าว ไฟล์นั้นจะถูกคัดลอกเข้าไปเก็บไว้ที่โฟลเดอร์ที่เรากำหนดไว้ กล่าวคือ ไฟล์ .txt จะไปเก็บไว้ที่โฟลเดอร์ text ส่วนไฟล์ .png จะถูกเก็บไว้ที่โฟลเดอร์ image


โฟลเดอร์ที่เก็บไฟล์ ที่กล่าวไปข้างต้น




หากอยู่ที่คำสั่งในคำสั่งหนึ่ง แล้วจะเปลี่ยนไปอีกคำสั่งหนึงกระทันหัน โปรแกรมจะสั่งให้กดปิดหน้าต่างคำสั่งนั้นๆไปเสียก่อน หากกดปิดหน้าต่างนั้นๆแล้ว จะมีป๊อปอัพถามผู้ใช้ว่า จะออกจริงหรือ? ดังภาพ


โค้ดใน mybutton.kv โดยใช้คำสั่ง on_release เป็นคำสั่งที่บอกว่า หากกดปุ่มนั้นๆแล้วปล่อย ให้ไปทำคำสั่งไหน


เช่นหากกดปุ่ม Add แล้วปล่อย จะไปทำคำสั่ง popupAdd อย่างที่เห็น ซึ่งภายในคำสั่ง popupAdd ใน mybutton.py นั้น จะเป็นการสร้างป๊อปอัพขึ้นมาให้ผู้ใช้


ซึ่งภายในจะมีคำสั่ง self.add_text.bind(on_release = self.addText) นั้นหมายความว่า หากกดปุ่ม Text แล้วปล่อย จะให้ไปทำคำสั่ง addText
เช่นเดียวกันกับ self.add_pic.bind(on_release = self.addPicture) คือ หากกดปุ่ม Picture แล้วปล่อย จะให้ไปทำคำสั่ง addPicture
และสุดท้าย self.cancel.bind(on_release = self.popup.dismiss) คือหากกดปุ่ม cancel แล้วปล่อย จะทำการปิดป๊อปอัพนั้นลง
ปล. ในคำสั่ง self.popup นั้น จะเห็นว่า auto_dismiss = False เพราะว่า ไม่ต้องการให้เมื่อผู้ใช้กดตำแหน่งใดๆนอกป๊อปอัพ แล้วให้ป๊อปอัพหายไปนั้นเอง


หากกด text แล้ว จะเข้ามาในคำสั่ง addText ซึ่งจะเป็นการสร้างป๊อปอัพให้ผู้ใช้เช่นกัน โดยตรง self.file จะมีคำสั่ง FileChooser ที่มีการกำหนด filters = ['*.txt'] อยู่ ซึ่งหมายความว่า ให้หาไฟล์ที่เป็น .txt โชว์ขึ้นมาเท่านั้น


เช่นเดียวกันคือ หากกดปุ่ม Picture จะเข้ามาในคำสั่ง addPicture ซึ่งจะเป็นการสร้างป๊อปอัพเช่นกัน เพียงแต่ตรง FileChooser นั้น จะกำหนด filters = ['*.png'] คือหาแต่ไฟล์ .png เท่านั้น


โดยทั้งสองปุ่มนั้นจะมีคำสั่งว่าถ้ากดปุ่มตกลงให้ไปทำคำสั่ง add_file หากกดปุ่มยกเลิก ให้ปิดป๊อปอัพนั้นไป

หากกดปุ่มตกลง จะเข้ามาทำในคำสั่ง add_file โดยในคำสั่งนี้จะกำหนดว่า หากเข้ามาทำแล้ว              ให้ปิดป๊อปอัพนั้นไป ซึ่งเงื่อนไขในคำสั่งนี้กล่าวว่า self.file.selection[0][-4:] == '.txt' นั้นหมายถึงหากไฟล์ที่เลือกอยู่นั้น 4 ตัวหลังของไฟล์คือ .txt (เช็คเพียงนามสกุลของไฟล์) จากนั้นจะทำคำสั่ง copyfile(self.file.selection[0], './text/') นั้นหมายถึงว่าให้ก็อปปี้ไฟล์นั้นไปเก็บไว้ที่โฟลเดอร์ text แต่ถ้า 4 ตัวหลังเป็น .png ให้ก็อปปี้ไฟล์นั้นไปเก็บไว้ที่โฟลเดอร์ image นั่นเอง


การ commit ของกลุ่ม 6 ที่ https://bitbucket.org/RIKTI/memo/commits/all




Link Video Presentation Resort Managemant System Project.

Video Presentation Resort Managemant System Project. จัดทำโดย พากษ์เสียง: คุณาสิน  ทองมณี  5801012620011 ลำดับภาพ: สุพิชชา  ศรีศิริ...