คำนวณพื้นที่ผิวทรงกระบอกเพื่อตัดกระดาษห่อของขวัญ

 

โจทย์

นักเรียนมีของขวัญเป็นรูปทรงกระบอกและต้องการห่อของขวัญให้สวยงาม นักเรียนจะตัดกระดาษอย่างไรจึงจะมีพื้นที่ที่สามารถห่อของขวัญได้โดยเผื่อกระดาษเพิ่มจากพื้นที่ผิวของของขวัญให้สามารถห่อทรงกระบอกได้

ให้นักเรียนออกแบบและเขียนโปรแกรมเพื่อคำนวณพื้นที่ผิวทรงกระบอกโดยใช้สูตรคำนวณพื้นที่ผิวของทรงกระบอกดังนี้

\[a_{side} = 2 \pi r h\]
\[a_{base} = 2 (\pi r^2)\]
\[a = a_{side} + a_{base}\]

สูตรคำนวณพื้นที่ผิวของทรงกระบอกสามารถอธิบายได้ตามขั้นตอนดังนี้:

  1. คำนวณพื้นที่ผิวด้านข้าง (\(a_{side}\)):

    • สูตร: \(a_{side} = 2\pi rh\)

    • โดยที่ \(r\) คือรัศมีของฐานทรงกระบอก และ \(h\) คือความสูงของทรงกระบอก

    • พื้นที่ผิวด้านข้างคือพื้นที่ของสี่เหลี่ยมผืนผ้าที่มีความกว้างเท่ากับเส้นรอบวงของฐาน (\(2\pi r\)) และความยาวเท่ากับความสูงของทรงกระบอก (\(h\))

  2. คำนวณพื้นที่ฐานทั้งสองด้าน (\(a_{base}\)):

    • สูตร: \(a_{base} = 2(\pi r^2)\)

    • เนื่องจากทรงกระบอกมีฐานสองด้าน (บนและล่าง) จึงต้องคูณพื้นที่วงกลม (\(\pi r^2\)) ด้วย 2

  3. คำนวณพื้นที่ผิวทั้งหมด (\(a\)):

    • สูตร: \(a = a_{side} + a_{base}\)

    • พื้นที่ผิวทั้งหมดของทรงกระบอกคือผลรวมของพื้นที่ผิวด้านข้างและพื้นที่ฐานทั้งสองด้าน

ดังนั้น เมื่อทราบรัศมีของฐานและความสูงของทรงกระบอก เราสามารถคำนวณพื้นที่ผิวทั้งหมดได้โดยใช้สูตรนี้

โปรแกรม

import math

r = int(input('Please enter the radius:'))
h = int(input('Please enter the height:'))

a_side = 2 * math.pi * r * h
a_base = 2 * (math.pi * r ** 2)
a = a_side + a_base

a_paper = int(a * 1.10)

print(f'The area of the paper should be {a_paper}.')

คำอธิบายโปรแกรม

  1. โปรแกรมเริ่มต้นด้วยการนำเข้าโมดูล math เพื่อใช้ค่า pi (\(\pi\)) ในการคำนวณ

  2. รับค่ารัศมี (\(r\)) และความสูง (\(h\)) ของทรงกระบอกจากผู้ใช้:

    • ใช้ input() เพื่อรับค่าและแปลงเป็นจำนวนเต็มด้วย int()

  3. คำนวณพื้นที่ผิวด้านข้าง (\(a_{side}\)):

    • ใช้สูตร \(2\pi rh\)

    • a_side = 2 * math.pi * r * h

  4. คำนวณพื้นที่ฐานทั้งสองด้าน (\(a_{base}\)):

    • ใช้สูตร \(2(\pi r^2)\)

    • a_base = 2 * (math.pi * r ** 2)

  5. คำนวณพื้นที่ผิวทั้งหมด (\(a\)):

    • รวมพื้นที่ผิวด้านข้างและพื้นที่ฐาน

    • \(a = a_{side} + a_{base}\)

  6. คำนวณพื้นที่กระดาษที่ต้องใช้ (\(a_{paper}\)):

    • เพิ่มพื้นที่อีก 10% (คูณด้วย 1.10) เพื่อให้มีพื้นที่เพียงพอสำหรับการห่อ

    • แปลงเป็นจำนวนเต็มด้วย int()

    • a_paper = int(a * 1.10)

  7. แสดงผลลัพธ์:

    • ใช้ f-string เพื่อแสดงค่า \(a_{paper}\) ในข้อความ

    • print(f'The area of the paper should be {a_paper}.')

โปรแกรมนี้คำนวณพื้นที่กระดาษที่ต้องใช้ในการห่อของขวัญทรงกระบอก โดยคำนึงถึงพื้นที่เผื่อเพิ่มสำหรับการห่อด้วย