การเขียนโปรแกรมคอมพิวเตอร์และอัลกอริธึม บทที่ 3 การคำนวณทางคอมพิวเตอร์
การคำนวณทางคอมพิวเตอร์ การคำนวณของมนุษย์จะพิจารณาจากซ้ายไปขวาของโจทย์ คอมพิวเตอร์คำนวณตามความสำคัญของเครื่องหมาย มนุษย์อาจเก็บผลลัพธ์หรือตัวทดไว้ในสมอง คอมพิวเตอร์ต้องจัดหาสิ่งที่เรียกว่าตัวแปรมารองรับ
ความสำคัญของเครื่องหมาย ต่อไปนี้เป็นความสำคัญของเครื่องหมายทางคณิตศาสตร์เริ่มจากสูงสุดไปต่ำสุด วงเล็บ ( ) สำคัญมากที่สุด ยกกำลัง ^ คูณ หรือ หาร / * บวก หรือ ลบ + - สำคัญน้อยที่สุด ถ้าเครื่องหมายเหมือนกันจะทำด้านซ้ายก่อน
Example โจทย์ให้คำนวณ 5 + 10 / 2 วิเคราะห์ : มีเครื่องหมายคือ + และ / หารมีความสำคัญสูงกว่า ดังนั้นทำหารก่อน ผลคือ 5 + 10 / 2 คำตอบคือ 10 ขั้นที่ 1. คำนวณ 10 / 2 = 5 ขั้นที่ 2. คำนวณ 5 + 5 = 10 1 2
Example คำนวณ ( 100 / 5 ) * 2 ^ 3 = ? ทำในวงเล็บก่อน แล้ว ยกกำลัง ตามด้วยคูณ ( 100 / 5) * 2 ^ 3 ขั้นที่ 1. คำนวณ 100 / 5 = 20 ขั้นที่ 2. คำนวณ 2 ^ 3 = 8 ขั้นที่ 3 คำนวณ 20 * 8 = 160 คำตอบคือ 160 1 2 3
Practice จงคำนวณหาคำตอบ 50 / 5 ^ 2 + (3 - 2) = ? ((4 / 2)^2)*(20 + 8) / 4 = ?
แปลงสูตรให้เป็นการคำนวณ การแปลงสูตรเป็นหน้าที่ของโปรแกรมเมอร์ ที่ต้องแปลงให้ถูกต้องตามลำดับการคำนวณ เพื่อให้ได้คำตอบที่ต้องการ การคำนวณอาจต้องมีการเพิ่มเติมเครื่องหมายเพื่อจัดลำดับของการคำนวณใหม่ ตัวอย่าง ให้คำนวณหาโบนัส ซึ่งเท่ากับ 5 เท่าของเงินเดือน โบนัส = เงินเดือน * 5 ตัวอย่าง ให้คำนวณหาราคาสินค้า 5000 บาทเมื่อรวมภาษีมูลค่าเพิ่ม 7 % ราคาสุทธิ = ราคาสินค้า + ราคาสินค้า * 7 / 100 = 5000 + 5000 * 7 / 100 = 5350
Example ให้คำนวณหาราคาสินค้าเมื่อลด 50% ราคาสินค้า 50% = ราคาสินค้า * 50 / 100 ราคาสินค้า 200 บาท ราคาสินค้า = 200 * 50 / 100 = 100 คำว่า % ในสูตรต่างๆ ต้องนำ % คูณกับแหล่งที่มาเสมอ เช่น 50% ของค่าใช้จ่าย = ค่าใช้จ่าย * 50 / 100 10% ของเงินเดือน = เงินเดือน * 10 / 100
Tips การคำนวณยอดชำระสุทธิ ยอดสุทธิ = ยอดชำระก่อนหักส่วนลด - ส่วนลด โดยที่ ยอดชำระก่อนหักสวนลด = ราคา * จำนวน ส่วนลด = ยอดชำระก่อนหัก * ส่วนลด รวม ยอดสุทธิ = (ราคา * จำนวน) - ((ราคา * จำนวน) * ส่วนลด))
Example จงหายอดชำระเมื่อหักส่วนลด 30 % เมื่อซื้อสินค้า 5 ชิ้นราคาชิ้นละ 300 บาท ยอดสุทธิ = (ราคา * จำนวน) - ((ราคา * จำนวน) * ส่วนลด) ยอดสุทธิ = (300 * 5) - ((300 * 5) * 30 / 100) = 1500 - 450 = 1050 บาท
Example จงหายอดชำระเมื่อหักส่วนลด 30 % เมื่อซื้อสินค้า 5 ชิ้นราคาชิ้นละ 300 บาท คิดใหม่จากสูตร ยอดสุทธิ = (ราคา * จำนวน) * (100 - เปอร์เซ็นต์) / 100 ยอดสุทธิ = (ราคา * จำนวน) * 70 / 100 ยอดสุทธิ = (300 * 5 * 70 / 100) = 1050 บาท เท่ากันหรือไม่
ตัวแปร : Variable ตัวแปร คือ แหล่งเก็บข้อมูล ที่จะนำไปใช้ในการทำงานของโปรแกรม อันที่จริงอาจหมายถึงหน่วยความจำตำแหน่งหนึ่ง ที่ถูกกันไว้สำหรับเก็บข้อมูลชั่วคราว ชนิดของตัวแปร ตัวแปรตัวอักษร(String) ตัวแปรตัวเลข(Number) ตัวแปรตรรกะ(Boolean) ตัวแปรอาเรย์(Array) ตัวแปรตัวชี้(Pointer)
String ตัวแปรในกลุ่มตัวอักษร อาจเป็นข้อความ สัญลักษณ์ หรือตัวเลขที่ไม่ใช้ในการคำนวน Character ตัวแปรเก็บค่าตัวอักษรเพียงตัวเดียว String ตัวแปรเก็บข้อความหรือตัวอักษรได้มากกว่า 1 ตัว
Number ตัวแปรประเภทตัวเลข ซึ่งสามารถนำไปคำนวณได้ Integer เก็บค่าจำนวนเต็ม ไม่มีทศนิยม อาจแบ่งเป็น longinteger หรือ integer Real เก็บค่าจำนวนที่ประกอบไปด้วยทศนิยม ตัวแปรตัวเลขจะมีช่วงของการเก็บค่าของมันเอง ทั้งนี้ขึ้นอยู่กับตัวแปลภาษาจะเป็นตัวกำหนด เช่น integer มีค่าได้ตั้งแต่ -32767 ถึง 32767 ในภาษาปาสคาล
Boolean เป็นข้อมูลชนิดตรรกะ มีค่าได้เพียง 2 แบบ คือจริง(True) และเท็จ(False) เท่านั้น มักใช้ในการเปรียบเทียบ หรือทำงานแบบตรงข้ามกันเช่น on กับ off เป็นต้น
Array เป็นกลุ่มของตัวแปรจำนวนมาก ซึ่งทั้งชุดจะเก็บค่าเดียวกัน เรียกใช้งานโดยระบุ index หรือลำดับที่ ว่าจะใช้ลำดับที่เท่าไร อาจกำหนดให้อยู่ในรูป 1 , 2 หรือ 3 มิติได้ ตัวแปรชนิดนี้มักใช้หน่วยความจำค่อนข้างมาก
Pointer เป็นตัวแปรประเภทตำแหน่งที่อยู่ของข้อมูล ตัวแปรชนิดนี้มักถูกใช้งานในการเขียนโปรแกรมขั้นสูง ผู้ใช้งานต้องมีความชำนาญ เนื่องจากเป็นการเข้าถึงหน่วยความจำโดยตรง หากผิดพลาดจะส่งผลกระทบอย่างรุนแรง
การกำหนดค่า กำหนดให้ตัวแปร A,B,C เป็น integer กำหนดให้ A = 10 อ่านว่า นำ 10 เก็บที่ A B = 50 อ่านว่า นำ 50 เก็บที่ B C = A+B อ่านว่า นำค่า A บวก B แล้ว เก็บไว้ที่ C
จงพิจารณา ให้ A , B , C เป็น integer C = 50.5 ผลคือ ……………Error A = B / C ผลคือ …………..Error ต่อไปนี้ควรเป็นตัวแปรชนิดใด เงินเดือน ชื่อ - นามสกุล หมายเลขโทรศัพท์ รหัสประจำตัว ที่อยู่ อายุ คำตอบ ถูก/ผิด
พิจารณาแล้ว ให้ A , B , C เป็น integer C = 50.5 Error เพราะ C ต้องเก็บจำนวนเต็ม A = B / C Error เพราะผลการหารได้ทศนิยม ต่อไปนี้ควรเป็นตัวแปรชนิดใด เงินเดือน ทศนิยม ชื่อ - นามสกุล ข้อความ หมายเลขโทรศัพท์ ข้อความ รหัสประจำตัว ข้อความ ที่อยู่ ข้อความ อายุ จำนวนเต็ม คำตอบ ถูก/ผิด ตรรกะ
End.