โปรแกรมบวกลบเมทริกซ์ง่ายๆ by C++ (ตอนที่ 1)
สวัสดีครับชาวเอนจิเนียร์อินดี้ เจอกันอีกแล้ว
โพสนี้แอดมินจะเอาเทอมโปรเจคสายโปรแกรมมิ่งแบบง่ายๆ (ย้ำ ง่ายๆ) มาฝาก
เป็นโปรแกรมบวกลบเมทริกซ์ ซึ่งจะใช้ภาษาซีพลัสพลัสเขียน
ตัวโปรแกรมเหมาะมากสำหรับการเรียนรู้โปรแกรมมิ่ง เพราะครอบคุมส่วนต่างๆในการเรียนโปรแกรมมิ่งขั้นพื้นฐานทั่วไป ทั้งการแสดงผลทางหน้าจอ การรับอินพุต If-Else, Loop, Array, Struct และอื่นๆ
ดังนั้นโปรแกรมนี้จึงเหมาะสำหรับผู้สนใจโปรแกรมมิ่งเบื้องต้นอย่างมาก
และสามารถเป็นแนวทางต่อผู้ที่จะนำไปทำเป็นเทอมโปรเจค (สายฟรีดอม) ได้อีกด้วย
เพื่อไม่ให้เสียเวลาไปเริ่มกันเลยดีกว่า
เออลืมบอกไปอีกอย่างนะ ดูไปแค่คอนเซปก็พอ เพราะตัวโปรแกรมบั๊คเพียบเลย ฮะๆ
เออลืมบอกไปอีกอย่างนะ ดูไปแค่คอนเซปก็พอ เพราะตัวโปรแกรมบั๊คเพียบเลย ฮะๆ
เมทริกซ์คือ ???
หลายท่านคงจะทราบกันดีหรือถ้ายังไม่ทราบก็จะอธิบายตรงนี้ว่า
มันคือ ตารางสี่เหลี่ยมที่แต่ละช่องบรรจุจำนวนหรือโครงสร้างทางคณิตศาสตร์ที่สามารถนำมาบวกและคูณกับตำเลขได้ เราสามารถใช้เมทริกซ์แทนระบบสมการเชิงเส้น และใช้เก็บข้อมูลที่ขึ้นกับตัวแปลต้นสองตัว เมทริกซ์จึงเป็นแนวคิดที่มีความสำคัญต่อพีชคณิตเชิงเส้นอย่างมาก #Wikipedia
สำหรับ ม.6 คงได้เรียนกันมาบ้าง ใครสนใจลองศึกษาดูไม่ยากครับ
ออกแบบโปรแกรม
- โปรแกรมต้อง Insert เมทริกซ์ได้ก่อน
- มีบวกกับลบเมทริกซ์
- มี Transpose (มันก็คือการสลับสมาชิกจากแถวเป็นหลัก จากหลักเป็นแถว)
- เมทริกซ์ต้องคูณกับค่าคงที่ได้
ส่วนนี้คือออกแบบว่าอยากให้โปรแกรมมีอะไรบ้างก็เขียนไป
เริ่มเขียนกันเลย
เท่านี้ก่อนครับ อย่างแรกต้องสร้าง Struct ขึ้นมาก่อนตั้งชื่อว่า matrix
ใน matrix ก็ต้องมี
ก่อนเขียนฟังก์ชันนี้ก็สร้างตัวแปรแบบโกลบอลขึ้นมาก่อน 2 ตัว
คือ z กับ g ชนิด int เซตค่าให้เป็น 0 ด้วยนะครับ
จบแล้วในฟังก์ชัน Insert ต้องลองเขียนเองดูครับ ไม่ยากแต่อาจงงหน่อยใน matrix ก็ต้องมี
- ชื่อ matrix
- ขนาดเมทริกซ์ ผมเก็บไว้ในตัวแปล x,y
- ตัวสำคัญก็คือ อาเรย์ 2 มิติครับ
แล้วก็สร้างเมทริกมาหนึ่งตัวชื่อ one เหมือนเป็นการ new เรียกเอามาใช้งานครับ
ในเมนตอนนี้ก็ยังไม่มีอะไรครับ แสดงคำสั่งว่าจะให้ผุ้ใช้กดอะไรได้มั่ง
สร้างฟังก์ชัน Insert Matrix เนื่องจากไม่ Return ค่าดังนั้นใช้เป็น Void นะครับ
ก่อนเขียนฟังก์ชันนี้ก็สร้างตัวแปรแบบโกลบอลขึ้นมาก่อน 2 ตัว
คือ z กับ g ชนิด int เซตค่าให้เป็น 0 ด้วยนะครับ
ไปดูในฟังก์ชันเลย
- ให้ผู้ใช้กรอกชื่อของเมทริกซ์
- กรอกขนาดของแถว
- กรอกขนาดของหลัก
- วนลูปตามการคำนวณหลักและแถว เพื่อให้ผู้ใช้กรอกข้อมูลทีละช่อง เช่นเมริกซ์ขนาด 2*3 ผู้ใช้จะต้องกรอกข้อมูลทั้งหมด 6 ตัว เป็นต้น
- วนลูปเพื่อแสดงชื่อและเมทริกซ์ของผู้ใช้
เพราะต้องใช้ Struct ร่วมกับ Array 2 มิติ
จากนั้นในเมนให้ใส่เพิ่มไปประมาณนี้ ก่อนหน้าคำสั่ง getch();
ส่วนนี้คือถ้ากด 1 จะเป็นการเรียก ฟังก์ชัน Insert ขึ้นมานั่นเอง
โดยที่การกด 5 จะเป็นการออกจากโปรแกรม
สุดท้ายจะได้ประมาณนี้
คร่าวๆล่ะกันเนาะ อันไหนผมใส่ตัวเลขก็ใส่ตามผมนะ อย่าไปลองใส่ตัวอักษรล่ะ เดี๋ยวบั๊คกระจาย |
เอาเป็นว่าลองไปเล่นดูก่อนล่ะกัน
เพื่อจะมีไอเดียอะไรเพิ่ม หรือถ้าใครคิดได้แหล่มกว่าแอดมินลองเอามาแชร์กันนะ
โพสนี้เท่านี้ก่อนแล้วกัน เดี๋ยวมาต่อ
ที่สำคัญอย่างที่เคยบอกไปตอนต้นคือ บั๊คมันเยอะ เอาไปแค่คอนเซปล่ะกัน
และสำหรับยูสเซอร์อ่านคำสั่งดีๆ ถ้าเค้าให้ใส่ตัวเลขก็ใส่ตัวเลขนะ อย่าทะลึ่งใส่ตัวอักษร
ไม่อย่างนั้นจะหาว่าไม่เตือน อิอิ
***** (02/03/2013) พอดีแอดมินตั้งให้บทความไม่สามารถ Copy ได้ ดังนั้น ให้ไปโหลดโปรแกรมตัวเต็มมาลองเล่นได้เลยนะครับ ขอบอกว่าโค๊ดยาวมากเพราช่วงที่แอดมินเขียนโปรแกรมนี้ยังไม่ถนัด OOP บางฟังก์ชันยังไม่ได้ทำ และทำให้แอดมินขอไม่เขียนตอนที่ 2 เพราะให้ไปแกะโค๊ดเอา อิอิ *****
โปรแกรมตัวเต็ม >>> ดาวน์โหลดโค๊ดที่นี่