Programming Step-by-step

เทอมนี้ได้สอนวิชา Introduction to Computer Science ก็นั่งคิดหาโจทย์ฝึกเขียนโปรแกรมสำหรับผู้เริ่มต้น โจทย์ต้องเป็นแบบทีละขั้น

ผมออกแบบชุดโจทย์ไว้ดังนี้ ชุดนี้ยังไม่สมบูรณ์ และอาจจะมีการข้ามขั้นในระหว่างข้อ

  1. hello world ให้ output
  2. hello khun username รับ input และให้ output
  3. ส่วนลด 10% เพิ่มการคำนวณ
  4. พื้นที่สามเหลี่ยม รับ input 2 ตัว
  5. สูตรยอดนิยมถัดจากบนๆล่างๆซ้ายขวาซ้ายขวา AB (รากของสมการกำลังสอง) ให้ output 2 ตัว
  6. ซื้อ 3 แถม 1 โจทย์จากหนังสือ อ.สมชาย ประสิทธิ์จูตระกูล
  7. ส่วนลด 10% ถ้ามีเศษสตางค์ ให้ปัดแบบที่ลูกค้าแฮปปี้ โจทย์นี้ใช้กับประเทศไทยได้ แต่ใช้กับ USA ไม่ได้ ใช้ if

Loop

โปรแกรมจะรับจำนวนบรรทัด พิมพ์ดาวเป็นรูปแบบต่างๆดังนี้

ข้อ 1

*
**
***
****
*****

ข้อ 2
*****
 ****
  ***
   **
    *

ข้อ 3
*******
 *****
  ***
   *
ฯลฯ

Array

หาผลรวม, ค่าเฉลี่ย, ค่ามากสุด, ค้นหาค่าในอาร์เรย์, เปรียบเทียบสองอาร์เรย์

Java Class

คลาสไฟจราจร (1 attribute) มีเมธอดดังนี้

  • void next() เปลี่ยนสีไฟ
  • String toString() คืนค่าเป็นสีไฟจราจร ได้แก่ Red, Yellow, Green

คลาสวัน Date (2 attributes) มีเมธอดดังนี้

  • String toString() คืนค่าเป็นสตริง เช่น “1-1” หมายถึง 1 มกราคม หรือ “31-1” หมายถึง 31 มกราคม
  • void next() เปลี่ยนเป็นวันถัดไป เช่นถ้าปัจจุบันเป็นวันที่ 1-1 พอเรียก next() ก็จะเป็น 2-1

คลาส TwitterUser (รับพารามิเตอร์เป็น primitive) มีเมธอดดังนี้

  • void setFollower(int follower) รับจำนวนคนที่ follow ผู้ใช้คนนี้
  • int getRanking() คืนค่า 1 ถ้ามีคน follow ตั้งแต่พันล้านคน, คืนค่า 2 ถ้ามีคน follow ตั้งแต่ร้อยล้านแต่ไม่ถึงพันล้านคน, คืนค่า 3 ถ้ามีคน follow ตั้งแต่สิบล้านแต่ไม่ถึงร้อยล้านคน, … (ถ้าทำได้แล้ว ลองเขียนแบบที่ไม่ใช้คำสั่ง if)
while i <= 1000000000:
print 10-floor(log10(max(i,1)))
i *= 10

คลาสบัญชีธนาคาร (รับพารามิเตอร์เป็น primitive และ reference) มีเมธอดดังนี้

  • ฝาก
  • ถอน
  • โอน void transfer(BankAccount other)
  • ยอดเงินคงเหลือ

http://wp.me/prjdf-4

Wannik Academy

หากจะนำเนื้อหาไปใช้ ต้องแสดงที่มา และห้ามใช้ในเชิงพาณิชย์

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s