2024 ทำไม save fine python แล วมาเป ดไม ได

หมายเหตุ : * ควรใช้ float(), int() ในการแปลงตัวเลขจากผู้ใช้แทน eval() * เพราะข้อมูลที่ผู้ใช้กรอกจะตรงกับที่ต้องการใช้ * ถ้าผู้ใช้กรอกไม่ตรง โปรแกรมจะปิดและมีข้อความแสดงข้อผิดพลาด - error message

3.10. ตัวอย่างโปรแกรม

รวมตังค์

print("โปรแกรมรวมตังค์") print() print("กรอกจำนวนเงินตามประเภท") tens = int(input("มูลค่า 10 มีจำนวน: ")) twenties = int(input("แบงค์ 20 มีจำนวน: ")) fifties = int(input("แบงค์ 50 มีจำนวน: ")) hundreds = int(input("แบงค์ 100 มีจำนวน: ")) total = tens*10 + twenties*20 + fifties*50 + hundreds*100 print() print("รวมมีเงินทั้งหมด ", total)

3.11. การใช้ชุดคำสั่ง math library

นอกจากการใช้ตัวดำเนินการทางคณิตศาสตร์เช่น

รวมตังค์

print("โปรแกรมรวมตังค์") print() print("กรอกจำนวนเงินตามประเภท") tens = int(input("มูลค่า 10 มีจำนวน: ")) twenties = int(input("แบงค์ 20 มีจำนวน: ")) fifties = int(input("แบงค์ 50 มีจำนวน: ")) hundreds = int(input("แบงค์ 100 มีจำนวน: ")) total = tens*10 + twenties*20 + fifties*50 + hundreds*100 print() print("รวมมีเงินทั้งหมด ", total)

8 และ

รวมตังค์

print("โปรแกรมรวมตังค์") print() print("กรอกจำนวนเงินตามประเภท") tens = int(input("มูลค่า 10 มีจำนวน: ")) twenties = int(input("แบงค์ 20 มีจำนวน: ")) fifties = int(input("แบงค์ 50 มีจำนวน: ")) hundreds = int(input("แบงค์ 100 มีจำนวน: ")) total = tens*10 + twenties*20 + fifties*50 + hundreds*100 print() print("รวมมีเงินทั้งหมด ", total)

9 ในการประมวลค่าของสมการแล้ว Python ยังมาพร้อมกับชุดคำสั่งพิเศษสำหรับใช้ในการคำนวณใน math library อีกด้วย

  • library หมายถึง ชุดคำสั่ง (package or module) ที่เราสามารถเรียกนำเข้ามาใช้ได้ด้วยคำสั่ง import
  • import คือ คำสั่งนำเข้า ชุดคำสั่ง เพื่อให้สามารถเรียกใช้คำสั่งภายใน module นั้นๆ ได้
  • ต้องเรียกคำสั่งนำเข้าก่อนใช้งานเสมอ

ตัวอย่างฟังก์ชันที่สามารถใช้ได้ใน math library

ตารางสรุป

กลุ่มฟังก์ชัน

functions

  1. ทฏษฏีตัวเลข

ceil(x), fabs(x), factorial(n), floor(x), fmod(x, y) fsum(..), gcd(a, b), remainder(x, y)

  1. กลุ่มตรวจสอบ

isClose(x, y, rel_tol=1e-09, abs_tol=0.0), isfinite(x), isnan(x)

  1. ยกกำลังและลอการิทึม

exp(x), log(x, base), log2(x), log10(x), pow(x, y), sqrt(x)

  1. ตรีโกณมิติ

acos(x), asin(x), atan(x), atan2(y, x), cos(x), hypot(x, y), sin(x), tan(x)

  1. มุมและองศา

degrees(x), radians(x)

  1. ไฮเพอโบลาร์

acosh(x), asinh(x), atanh(x), cosh(x), sinh(x), tanh(x)

  1. พิเศษ

erf(x), erfc(x), gamma(x), lgamma(x)

  1. ค่าคงที่

pi, e, tau, inf, nan

3.12. ตัวอย่างโปรแกรม

ซอฟต์แวร์สำหรับเพื่อแก้สมการ \(ax^2 + bx + c = 0\)

  1. Analysis > ผู้ใช้ต้องการหาค่า \(x\) ที่ทำให้สมการ\(ax^2 + bx + c = 0\)
  2. Specification

Input - ค่าสัมประสิทธิ์ของสมการได้แก่ $a, b, c$ Output - ค่า $x$ ทั้งหมดที่ทำให้สมการ $ax^2 + bx + c = 0$ Process - คำนวณรากของสมการโดยใช้สมการ

\[x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}\]

  1. Create Design (Algorithm) > ใช้ลำดับการทำงาน Input -> Process -> Output
    • input ผู้ใช้กรอกค่า \(a, b, c\) ตามลำดับ
    • process
    • คำนวณค่า \(x1 = \frac{-b + \sqrt{b^2 - 4ac}}{2a}\)
    • คำนวณค่า \(x2 = \frac{-b - \sqrt{b^2 - 4ac}}{2a}\)
    • output แสดงค่า \(x1, x2\)
  2. Implement Design

import math a = float(input('กรอกค่า a: ')) b = float(input('กรอกค่า b: ')) c = float(input('กรอกค่า c: ')) x1 = (-b + math.sqrt(b**2 - 4*a*c))/(2*a) x2 = (-b - math.sqrt(b**2 - 4*a*c))/(2*a) print('รากที่หนึ่งของสมการคือ '+str(x1)) print('รากที่สองของสมการคือ '+str(x2))

หรือ print(f'(x1={x1}, x2={x2})')

  1. Test/Debug Program

รันโปรแกรมแล้วกรอกค่าทดสอบต่อไปนี้ ว่าสามารถทำงานได้จริงหรือมีข้อผิดพลาดหรือไม่?

ข้อมูลทดสอบชุดที่ 1

Input

Output

กรอกค่า a: 1

x1=-1.0, x2=-1.0

กรอกค่า b: 2

กรอกค่า c: 1

ข้อมูลทดสอบชุดที่ 2

Input

Output

กรอกค่า a: 1

x1=8.0, x2=-2.0

กรอกค่า b: -6

กรอกค่า c: -16

ข้อมูลทดสอบชุดที่ 3

Input

Output

กรอกค่า a: 1

x1=-5.0, x2=-1.0

กรอกค่า b: 6

กรอกค่า c: 5

ข้อมูลทดสอบชุดที่ 4

Input

Output

กรอกค่า a: 3

x1=0.215250437022, x2=-1.54858377035

กรอกค่า b: 4

กรอกค่า c: -1

3.13. Error

กรอกค่า a: 1 กรอกค่า b: 2 กรอกค่า c: 3 Traceback (most recent call last): File "<pyshell

26>", line 1, in -toplevel-

main() File "...", line 14, in ... ValueError: math domain error
>

3.14. Exercises

  • EX0301 จงเขียนโปรแกรมเพื่อคำนวณหาความเร็วปลาย ของรถที่มีความเร็วต้น \(v_0\) แล้วใช้ความเร่ง \(a\) เป็นเวลา\(t\) วินาที

กำนดสมการในการคำนวณหาความเร็วปลาย \(v_s\) คือ

\[v_s = v_0 + at\]

หน่วยวัด

  • ความเร่ง \(a\) มีหน่วยเป็น เมตรต่อวินาทีกำลังสอง \(m/s^2\)
  • ความเร็ว \(v_s, v_0\) มีหน่วยเป็น เมตรต่อวินาที
  • เวลา \(t\) มีหน่วยเป็น วินาที

ข้อมูลนำเข้า

ข้อมูลนำเข้ามีบรรทัดเดียวเป็นชุดของตัวเลข 3 จำนวนคั่นด้วย

Input - ค่าสัมประสิทธิ์ของสมการได้แก่ $a, b, c$ Output - ค่า $x$ ทั้งหมดที่ทำให้สมการ $ax^2 + bx + c = 0$ Process - คำนวณรากของสมการโดยใช้สมการ

0 โดยตัวแรกเป็นค่า \(a\) ตัวถัดมาเป็นค่าของ \(v_0\) และ \(t\)ตามลำดับ

ข้อมูลส่งออก

ตัวเลขหนึ่งตัวระบุค่าของ \(v_s\)

ตัวอย่างข้อมูล

Input

Output

8, 5, 20

165

10, 2, 15

152

5, 10, 20

110

3.15. การเขียนโปรแกรมสะสมค่า

เป็นการเขียนโปรแกรมที่จำเป็นต้องมีการคำนวณมากกว่า 1 ครั้งจึงจะได้ผลลัพธ์ เช่น

  • การบวกตัวเลข 5 ตัวเลขที่ผู้ใช้กรอก
  • การหาผลรวมของ gpa ของนักศึกษา 10 คนโดยให้ผู้ใช้กรอกทีละค่า
  • การหาค่าเฉลี่ยจากจำนวนเต็มที่ผู้ใช้กรอก 10 จำนวน

3.15.1. ตัวอย่างการเขียนโปรแกรมสะสมค่า เพื่อบวก 5 ตัวเลข

  1. Analysis > ผู้ใช้ต้องการหาค่าผลรวม ของตัวเลขที่ผู้ใชกรอก 5 ตัวเลข
  2. Specification

Input - ตัวเลข 5 ตัวเลข Output - ผลรวม 5 ตัวเลข Process - เก็บสะสมผลรวมของตัวเลขที่ผู้ใช้กรอกมาเรื่อยจนครบ 5 ตัวเลข

\[total = total + x\]

เมื่อ \(x\) แทนค่าที่ผู้ใช้กรอก

  1. Create Design (Algorithm) > ใช้ลำดับการทำงาน Input -> Process -> Output
    • input ผู้ใช้กรอกค่า \(x\) 5 ครั้ง
    • process
    • total = 0 # ค่าเริ่มต้น
    • x = int(input())
    • total = total + x
    • x = int(input())
    • total = total + x
    • x = int(input())
    • total = total + x
    • x = int(input())
    • total = total + x
    • x = int(input())
    • total = total + x
    • output แสดงค่า total
  2. Implement Design

total = 0 x = int(input('กรอกค่า x: ')) total = total + x x = int(input('กรอกค่า x: ')) total = total + x x = int(input('กรอกค่า x: ')) total = total + x x = int(input('กรอกค่า x: ')) total = total + x x = int(input('กรอกค่า x: ')) total = total + x print('ผลรวมคือ '+str(total))

หรือ print(f'ผลรวมคือ {total}')

  1. Test/Debug Program

รันโปรแกรมแล้วกรอกค่าทดสอบต่อไปนี้ ว่าสามารถทำงานได้จริงหรือมีข้อผิดพลาดหรือไม่?

ตัวอย่างข้อมูลชุดที่ 1

Input

Output

กรอกค่า x: 1

ผลรวมคือ 15

กรอกค่า x: 2

กรอกค่า x: 3

กรอกค่า x: 4

กรอกค่า x: 5

ตัวอย่างข้อมูลชุดที่ 2

Input

Output

กรอกค่า x: -1

ผลรวมคือ 63

กรอกค่า x: 22

กรอกค่า x: 13

กรอกค่า x: 14

กรอกค่า x: 15

ตัวอย่างข้อมูลชุดที่ 3

Input

Output

กรอกค่า x: 5

ผลรวมคือ 35

กรอกค่า x: 6

กรอกค่า x: 7

กรอกค่า x: 8

กรอกค่า x: 9

3.16. คำสั่งทำซ้ำ

Input - ค่าสัมประสิทธิ์ของสมการได้แก่ $a, b, c$ Output - ค่า $x$ ทั้งหมดที่ทำให้สมการ $ax^2 + bx + c = 0$ Process - คำนวณรากของสมการโดยใช้สมการ

1 ครั้ง

จากตัวอย่างข้างต้นจะเห็นว่าการเขียนโปรแกรมที่มีการทำงานซ้ำๆกันด้วยคำสั่งชุดเดิมๆ จะเกิดขึ้นบ่อยมาก ดังนั้นจึงมีคำสั่งทำซ้ำ

Input - ค่าสัมประสิทธิ์ของสมการได้แก่ $a, b, c$ Output - ค่า $x$ ทั้งหมดที่ทำให้สมการ $ax^2 + bx + c = 0$ Process - คำนวณรากของสมการโดยใช้สมการ

2 ซึ่งจะช่วยให้การเขียนโปรแกรมมีความยืดหยุ่นและลดความซ้ำซ้อน(ในการพิมพ์ลงไปมาก)

จากตัวอย่างการเขียนโปรแกรมเพื่อบวก 5 ตัวเลข

type(3)

<class 'int'>

type(3.44)

<class 'float'>

age = 32 type(age)

<class 'int'>

0

สามารถนำมาเขียนใหม่โดยใช้

Input - ค่าสัมประสิทธิ์ของสมการได้แก่ $a, b, c$ Output - ค่า $x$ ทั้งหมดที่ทำให้สมการ $ax^2 + bx + c = 0$ Process - คำนวณรากของสมการโดยใช้สมการ

2 ดังนี้

type(3)

<class 'int'>

type(3.44)

<class 'float'>

age = 32 type(age)

<class 'int'>

1

3.16.1. Exercise

  • EX0302 จงเขียนโปรแกรมเพื่อหาผลรวมของ gpa ของนักศึกษา 10 คน

ข้อมูลนำเข้า (Input)

ตัวเลขทศนิยม 10 ตัวเลข แทน gpa ของนักศึกษา 10 คน ตัวเลขละบรรทัด

ข้อมูลส่งออก (Output)

ตัวเลขแสดงผลรวมของ gpa ของนักศึกษาทั้ง 10 คน

ตัวอย่างข้อมูลนำเข้า-ส่งออก

ตัวอย่างข้อมูล

Input

Output

2.55

33.82

3.55

2.75

2.66

3.95

4.00

3.75

3.64

3.44

3.53

  • EX0303 จงเขียนโปรแกรมเพื่อหาค่าเฉลี่ย gpa ของนักศึกษา 10 คน

ข้อมูลนำเข้า (Input)

ตัวเลขทศนิยม 10 ตัวเลข แทน gpa ของนักศึกษา 10 คน ตัวเลขละบรรทัด

ข้อมูลส่งออก (Output)

ตัวเลขแสดงผลเฉลี่ยของ gpa ของนักศึกษาทั้ง 10 คน

ตัวอย่างข้อมูล

Input

Output

2.55

3.382

3.55

2.75

2.66

3.95

4.00

3.75

3.64

3.44

3.53

3.16.2. ถ้าผู้ใช้ต้องการกรอกจำนวนตัวเลขเอง

type(3)

<class 'int'>

type(3.44)

<class 'float'>

age = 32 type(age)

<class 'int'>

2

ตัวอย่างข้อมูลชุดที่ 1

Input

Output

จำนวนตัวเลขที่ต้องการกรอก: 3

ผลรวมคือ 20

กรอกค่า x: 9

กรอกค่า x: 7

กรอกค่า x: 4

ตัวอย่างข้อมูลชุดที่ 1

Input

Output

จำนวนตัวเลขที่ต้องการกรอก: 2

ผลรวมคือ 29

กรอกค่า x: 15

กรอกค่า x: 14

3.16.3. Exercise

  • EX0304 จงเขียนโปรแกรมเพื่อหาผลรวมของ gpa ของนักศึกษาตามจำนวนนักศึกษาที่ผู้ใช้ระบุ

ข้อมูลนำเข้า (Input)

บรรทัดแรกเป็นตัวเลขจำนวนเต็ม \(n\) ระบุจำนวนนักศึกษา

\(n\) บรรทัดถัดมาเป็นตัวเลขทศนิยมระบุค่า gpa ของนักศึกษาแต่ละคน

ข้อมูลส่งออก (Output)

ตัวเลขทศนิยมหนึ่งค่า ระบุผลรวมของ gpa ของนักศึกษาทั้งหมด

ตัวอย่างข้อมูลนำเข้า-ส่งออก

ตัวอย่างข้อมูลชุดที่ 1

Input

Output

3

10.43

3.22

3.55

3.66

ตัวอย่างข้อมูลชุดที่ 2

Input

Output

6

21.17

3.45

3.65

3.32

3.55

3.54

3.66

  • EX0305 จงเขียนโปรแกรมเพื่อหาค่าเฉลี่ย gpa ของนักศึกษาตามจำนวนนักศึกษาที่ผู้ใช้ระบุ

3.17. ฟังก์ชัน

Input - ค่าสัมประสิทธิ์ของสมการได้แก่ $a, b, c$ Output - ค่า $x$ ทั้งหมดที่ทำให้สมการ $ax^2 + bx + c = 0$ Process - คำนวณรากของสมการโดยใช้สมการ

4

  • ฟังก์ชัน range() สามารถเรียกโดยใช้ตัวเลข 3 ค่าเพื่อเป็นตัวกำหนดพฤติกรรมได้แก่
  • ค่าเริ่มต้น - start
  • ค่าสิ้นสุด - stop
  • ผลต่าง - step
  • start, stop, step เรียกว่า parameters ของฟังก์ชัน range()
  • Input - ค่าสัมประสิทธิ์ของสมการได้แก่ $a, b, c$ Output - ค่า $x$ ทั้งหมดที่ทำให้สมการ $ax^2 + bx + c = 0$ Process - คำนวณรากของสมการโดยใช้สมการ 5 - ทำซ้ำ Input - ค่าสัมประสิทธิ์ของสมการได้แก่ $a, b, c$ Output - ค่า $x$ ทั้งหมดที่ทำให้สมการ $ax^2 + bx + c = 0$ Process - คำนวณรากของสมการโดยใช้สมการ 6 ครั้ง ตั้งแต่ Input - ค่าสัมประสิทธิ์ของสมการได้แก่ $a, b, c$ Output - ค่า $x$ ทั้งหมดที่ทำให้สมการ $ax^2 + bx + c = 0$ Process - คำนวณรากของสมการโดยใช้สมการ 7
  • Input - ค่าสัมประสิทธิ์ของสมการได้แก่ $a, b, c$ Output - ค่า $x$ ทั้งหมดที่ทำให้สมการ $ax^2 + bx + c = 0$ Process - คำนวณรากของสมการโดยใช้สมการ 8 - ทำซ้ำ ตามค่าตั้งแต่ Input - ค่าสัมประสิทธิ์ของสมการได้แก่ $a, b, c$ Output - ค่า $x$ ทั้งหมดที่ทำให้สมการ $ax^2 + bx + c = 0$ Process - คำนวณรากของสมการโดยใช้สมการ 9
  • import math

    a = float(input('กรอกค่า a: ')) b = float(input('กรอกค่า b: ')) c = float(input('กรอกค่า c: ')) x1 = (-b + math.sqrt(b**2 - 4*a*c))/(2*a) x2 = (-b - math.sqrt(b**2 - 4*a*c))/(2*a) print('รากที่หนึ่งของสมการคือ '+str(x1)) print('รากที่สองของสมการคือ '+str(x2))

    หรือ print(f'(x1={x1}, x2={x2})')

    0 - ทำซ้ำ ตามค่าตั้งแต่ import math a = float(input('กรอกค่า a: ')) b = float(input('กรอกค่า b: ')) c = float(input('กรอกค่า c: ')) x1 = (-b + math.sqrt(b**2 - 4*a*c))/(2*a) x2 = (-b - math.sqrt(b**2 - 4*a*c))/(2*a) print('รากที่หนึ่งของสมการคือ '+str(x1)) print('รากที่สองของสมการคือ '+str(x2))

    หรือ print(f'(x1={x1}, x2={x2})')

    1

type(3)

<class 'int'>

type(3.44)

<class 'float'>

age = 32 type(age)

<class 'int'>

3

3.18. Exercise

จงเขียนคำสั่งทำซ้ำเพื่อให้ได้ผลลัพธ์ต่อไปนี้

  • import math

    a = float(input('กรอกค่า a: ')) b = float(input('กรอกค่า b: ')) c = float(input('กรอกค่า c: ')) x1 = (-b + math.sqrt(b**2 - 4*a*c))/(2*a) x2 = (-b - math.sqrt(b**2 - 4*a*c))/(2*a) print('รากที่หนึ่งของสมการคือ '+str(x1)) print('รากที่สองของสมการคือ '+str(x2))

    หรือ print(f'(x1={x1}, x2={x2})')

    2
  • import math

    a = float(input('กรอกค่า a: ')) b = float(input('กรอกค่า b: ')) c = float(input('กรอกค่า c: ')) x1 = (-b + math.sqrt(b**2 - 4*a*c))/(2*a) x2 = (-b - math.sqrt(b**2 - 4*a*c))/(2*a) print('รากที่หนึ่งของสมการคือ '+str(x1)) print('รากที่สองของสมการคือ '+str(x2))

    หรือ print(f'(x1={x1}, x2={x2})')

    3
  • แสดงเลขคู่ตั้งแต่ 10 ถึง 20 (รวม 20)
  • แสดงเลขที่หาร 3 ลงตัวตั้งแต่ 1 ถึง 30 (รวม 30)
  • แสดงเลขที่หาร 10 ลงตัวตั้งแต่ -100 ถึง 100 (ไม่รวม -100 และไม่รวม 100)

3.19. การใช้ลำดับแทน

Input - ค่าสัมประสิทธิ์ของสมการได้แก่ $a, b, c$ Output - ค่า $x$ ทั้งหมดที่ทำให้สมการ $ax^2 + bx + c = 0$ Process - คำนวณรากของสมการโดยใช้สมการ

4

3.19.1. ลำดับ (sequence) ~ Recall

ลำดับ (sequence) หมายถึง ชุดของข้อมูลที่มีสมาชิกเรียงกันเป็นลำดับมีตำแหน่งของสมาชิกแต่ละตัวชัดเจน เช่น 3.44, 2.22, 3.00, 3.50, 3.66 เป็นลำดับที่มีสมาชิกดังนี้

  • สมาชิกตัวแรก(หมายเลข 0) คือ 3.44
  • สมาชิกหมายเลข 1 คือ 2.22
  • สมาชิกหมายเลข 2 คือ 3.00
  • สมาชิกหมายเลข 3 คือ 3.50
  • สมาชิกหมายเลข 4 คือ 3.66

ตัวอย่างการเขียนชุดข้อมูลที่เป็นลำดับในภาษา Python

type(3)

<class 'int'>

type(3.44)

<class 'float'>

age = 32 type(age)

<class 'int'>

4

3.19.2. การใช้คำสั่งทำซ้ำกับลำดับ

type(3)

<class 'int'>

type(3.44)

<class 'float'>

age = 32 type(age)

<class 'int'>

5

3.19.3. การใช้คำสั่งทำซ้ำเพื่อสะสมค่า

type(3)

<class 'int'>

type(3.44)

<class 'float'>

age = 32 type(age)

<class 'int'>

6

3.20. การตรวจสอบค่าสะสมในแต่ละขั้นตอน

type(3)

<class 'int'>

type(3.44)

<class 'float'>

age = 32 type(age)

<class 'int'>

7

3.21. การสะสมในแต่ละขั้นตอนด้วยการคูณ หรือตัวดำเนินการอื่น

type(3)

<class 'int'>

type(3.44)

<class 'float'>

age = 32 type(age)

<class 'int'>

8

3.22. ตัวอย่างการพัฒนาซอฟต์แวร์คำนวณยอดเงินลงทุนใน 10 ปี

  1. Analysis
  2. เงินลงทุนมีผลตอบแทน
  3. แสดงยอดเงินรวมในปีที่ 10
  4. Inputs: เงินลงทุน(principal), อัตราค่าตอบแทนร้อยละ(rate)
  5. Output: ยอดเงินรวมในปีที่ 10
  6. Specification
    1. Program Investment
  7. Inputs
  8. เงินลงทุน (principal)
  9. อัตราค่าตอบแทน (rate)
  10. Output
  11. ยอดลงทุนรวมในปีที่ 10
  12. Relationship (สมการความสัมพันธ์)
  13. ยอดเงินลงทุนรวม(ปีนี้) = ยอดเงินลงทุนรวม(ปีที่แล้ว) + ยอดเงินลงทุนรวม(ปีที่แล้ว)*อัตราค่าตอบแทน
  1. Create Design (Algorithm) > ใช้ลำดับการทำงาน Input -> Process -> Output
    • input รับตัวเลข ยอดเงินลงทุน (principal)
    • input รับตัวเลขทศนิยม อัตราค่าตอบแทน (rate) เช่น ร้อยละ 5 กรอก 0.05 เป็นต้น
    • process
    • ทำซ้ำ 10 ครั้งสำหรับ 10 ปี
      • import math
             a = float(input('กรอกค่า a: '))  
             b = float(input('กรอกค่า b: '))  
             c = float(input('กรอกค่า c: '))  
             x1 = (-b + math.sqrt(b**2 - 4*a*c))/(2*a)  
             x2 = (-b - math.sqrt(b**2 - 4*a*c))/(2*a)  
             print('รากที่หนึ่งของสมการคือ '+str(x1))  
             print('รากที่สองของสมการคือ '+str(x2))  
             # หรือ print(f'(x1={x1}, x2={x2})')  
             5  
    • output แสดงค่า import math

      a = float(input('กรอกค่า a: ')) b = float(input('กรอกค่า b: ')) c = float(input('กรอกค่า c: ')) x1 = (-b + math.sqrt(b**2 - 4*a*c))/(2*a) x2 = (-b - math.sqrt(b**2 - 4*a*c))/(2*a) print('รากที่หนึ่งของสมการคือ '+str(x1)) print('รากที่สองของสมการคือ '+str(x2))

      หรือ print(f'(x1={x1}, x2={x2})')

      6 หลังจากครบ 10 ปี
  2. Implement Design

    type(3)

    <class 'int'>

    type(3.44)

    <class 'float'>

    age = 32 type(age)

    <class 'int'>

    9
  3. Test/Debug Program > รันโปรแกรมแล้วกรอกค่าทดสอบต่อไปนี้ ว่าสามารถทำงานได้จริงหรือมีข้อผิดพลาดหรือไม่? ตัวอย่างข้อมูล

Input

Output

ต้นทุน, อัตราค่าตอบแทน: 1000, 0.01

ยอดเงินลงทุนรวมหลังจากปีที่ 10 เป็น 1104.6221254112043

ต้นทุน, อัตราค่าตอบแทน: 10000, 0.03

ยอดเงินลงทุนรวมหลังจากปีที่ 10 เป็น 13439.16379344122

ต้นทุน, อัตราค่าตอบแทน: 2000000000, 0.05

ยอดเงินลงทุนรวมหลังจากปีที่ 10 เป็น 3257789253.554883

3.23. Exercise

  • EX0306 จงเขียนโปรแกรมเพื่อหาค่า factorial ของตัวเลขที่ผู้ใช้กรอก โดย factorial ของตัวเลข \(n\) ใดๆ โดยใช้สัญลักษณ์ \(n!\) และมีนิยามดังนี้

\[n! = n \times (n-1) \times (n-2) \times ... \times 2 \times 1\]

ตัวอย่างการคำนวณ

\[\begin{split}5! = 5 \times 4 \times 3 \times 2 \times 1 \\ 9! = 9 \times 8 \times 7 \times 6 \times 5 \times 4 \times 3 \times 2 \times 1\end{split}\]

ตัวอย่างข้อมูลนำเข้า-ส่งออก

ตัวอย่างข้อมูล

Input

Output

3

6

5

120

9

362880

20

2432902008176640000

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