1. จงเขียนโปรแกรมรับค่าปี ค.ศ. จากนั้นให้แสดงผลปี พ.ศ. และผลรวมของตัวเลขแต่ละหลักของปี ค.ศ. และ พ.ศ. ดังตัวอย่างต่อไปนี้
b=0 #ตัวแปรเก็บค่า พ.ศ.
a=int(input('นำเข้า ค.ศ. : '))
b=a+543
print(b)
c=0 # ตัวแปรผลรวม
for i in str(a):
c=c+int(i)
print (c)
c=0 # ตัวแปรผลรวม
for i in str(b):
c=c+int(i)
print (c)
ตัวอย่างการทำงาน 1
2000
2543
2
14
ตัวอย่างการทำงาน 2
2019
2562
12
15
2. ครูโยเยไปซื้อนาฬิกาสำหรับวิ่งยี่ห้อกาม๊องมา 1 เรือน เพื่อนำมาใช้วิ่งและจับเวลา แต่พบว่านาฬิกากาม๊องเรือนนี้แสดงผลเป็นวินาทีเท่านั้น ทำให้ครูโยเยปวดหัวมากที่จะต้องมานั่งคำนวณเพื่อที่จะให้ทราบว่าวิ่งไปแล้วกี่วัน กี่ชั่วโมง กี่นาที และกี่วินาที
ประจวบเหมาะพอดีได้พบกับนักเรียนชั้น ม.2 ที่ได้เรียนวิชา Coding ซึ่งเรียนรู้อย่างตั้งใจ ครูโยเยก็เลยไปรบกวนให้นักเรียนคนดังกล่าวช่วยเขียนโปรแกรมใส่นาฬิกาให้หน่อย "ช่วยเขียนโปรแกรมแปลงเลขวินาทีให้ทราบว่านาฬิกาจับเวลานั้นได้จับเวลาไปแล้วกี่วัน กี่ชั่วโมง กี่นาที และกี่วินาทีด้วยครับ"
d=0 # ตัวแปรเก็บจำนวนวัน
h=0 # ตัวแปรเก็บจำนวนชั่วโมง
m=0 # ตัวแปรเก็บจำนวนนาที
a = int(input('Enter time(Second) :'))
while a>60:
if a>86399:
d=d+1
a=a-86400
elif a>3599:
h=h+1
a=a-3600
elif a>59:
m=m+1
a=a-60
print(d,'Day ',h,' Hour ',m,' Minute ',a,' Second')
ตัวอย่างการทำงาน 1
3661
0
1
1
1
ตัวอย่างการทำงาน 2
100000
1
3
46
40
3. ปีนี้รัฐบาลของโยเยเลมอนได้ประกาศอัตราการเก็บภาษีเงินได้ใหม่ ดังนี้
ถ้ารายได้น้อยกว่า 100000 โยเย จะไม่เสียภาษี
แต่ถ้ารายได้ระหว่าง 100000 - 500000 โยเย จะเสียภาษี 5%
แต่ถ้ารายได้ระหว่าง 500001 - 1000000 โยเย จะเสียภาษี 10%
และถ้ามากกว่านั้น จะเสียภาษี 20%
ถ้าสมาชิกในบ้านของทิงกี้วิงกี้มีสมาชิกที่มีรายได้ทั้งหมด 4 คน (เป็นจำนวนเต็ม) ได้แก่ ทิงกี้วิงกี้ ดิสซี่ ลาล่า และโพลโล บ้านนี้จะต้องเสียภาษีรวมกันกี่โยเย
ให้เขียนโปรแกรมรับค่ารายได้ของสมาชิกในบ้านทั้ง 4 คน แล้วคิดภาษีรวมที่จะต้องจ่าย โดยแสดงผลรวมภาษีของทุกคนเป็นทศนิยม 2 ตำแหน่ง
def pc01(money):
if money>1000000:
money=(20*money)/100
elif money>500001:
money=(10*money)/100
elif money>99999:
money=(5*money)/100
return money
print('โปรแกรมคำนวณภาษีเงินได้')
pall=0
a1=int(input('รายได้คนที่ 1 : '))
a1=pc01(a1)
a2=int(input('รายได้คนที่ 2 : '))
a2=pc01(a2)
a3=int(input('รายได้คนที่ 3 : '))
a3=pc01(a3)
a4=int(input('รายได้คนที่ 4 : '))
a4=pc01(a4)
a1=a1+a2+a3+a4
print('ภาษีรวมที่ต้องจ่าย : %.2f'%(a1))
ตัวอย่างการทำงาน 1
100000
100000
100000
100000
20000.00
ตัวอย่างการทำงาน 2
100000
500000
100000
200000
45000.00
4. รัฐบาลประกาศที่จะช่วยเหลือเกษตรกรที่ประสบภัยน้ำท่วม โดยมอบเงินให้ตามจำนวนที่ดิน เป็นเงิน ไร่ละ 1,000 บาท แต่ยอดเงินช่วยเหลือรวมต้องไม่เกิน 10,000 บาท (เศษจากไร่ให้คิดเป็น 1 ไร่ เช่น 1 ไร่ กับ 1 ตารางเมตร ให้คิดเป็น 2 ไร่)
นายเกรียงศักดิ์ หรือเรียกสั้นๆ ว่า "โกโก้" มีพื้นที่การเกษตรของตนเองที่ประสบภัยน้ำท่วม แต่ก็ไม่แน่ใจว่าที่ดินของตนเองมีกี่ไร่ รู้เพียงว่ามีขนาดกว้าง x เมตร และยาว y เมตร
จงเขียนโปรแกรมคำนวณพื้นที่ไร่ (ที่ปัดเศษขึ้นแล้ว) และจำนวนเงินช่วยเหลือที่จะได้รับ
กำหนดให้ 1 ไร่ = 1600 ตารางเมตร
x=int(input('Enter Width : '))
y=int(input('Enter Long : '))
x=x*y
a=x//1600 #หารปัดเศษทิ้ง
b=x%1600 #หารเอาเศษ
if b>0:
a=a+1
print(int(a))
a=a*1000
if a>10000:
a=10000
print(int(a))
ตัวอย่างการทำงาน 1
40
40
1
1000
ตัวอย่างการทำงาน 2
41
41
2
2000
ตัวอย่างการทำงาน 3
1000
1000
625
10000
5. ครูโยธินได้รับมอบหมายจากผู้อำนวยการโรงเรียนให้ดำเนินโครงการโรงเรียนส่งเสริมสุขภาพโดยให้นับจำนวนนักเรียนที่น้ำหนักต่ำกว่าเกณฑ์ (bmi < 18.50) แต่ก็ไม่รู้ว่านักเรียนทั้งหมดมีกี่คน
ให้เขียนโปรแกรมรับน้ำหนัก(kg) และส่วนสูง(cm) ของนักเรียนไปเรื่อยๆ (รับค่าเป็นจำนวนเต็มบวก) โดยโปรแกรมจะหยุดรับค่าเมื่อน้ำหนักหรือส่วนสูงที่ป้อนเข้าไปน้อยกว่าหรือเท่ากับศูนย์ จากนั้นให้แสดงผลจำนวนนักเรียนที่มีน้ำหนักต่ำกว่าเกณฑ์
b=2 # ส่วนสูง
m1=0 # น้ำหนักต่ำกว่าเกณฑ์
a1=1 # นักเรียนทั้งหมด
while a1>0 and b>1:
a=int(input('Enter Weight %d : '%(a1)))
b=int(input('Enter Height %d : '%(a1)))
if a<1 or b<1:
break
b=b/100
b=b**2
a=a/b
print('%.2f'%(a))
a1=a1+1
if a<18.50:
m1=m1+1
a1=a1-1
print(m1,' / ',a1)
ตัวอย่างการทำงาน 1
Enter Weight 1 : 50
Enter Height 1 : 160
19.53
Enter Weight 2 : 30
Enter Height 2 : 168
10.63
Enter Weight 3 : 90
Enter Height 3 : 180
27.78
Enter Weight 4 : 45
Enter Height 4 : 158
18.03
Enter Weight 5 : 0
Enter Height 5 : 100
2 / 4
6. พื้นที่สามเหลี่ยมใด ๆ ที่มีด้านทั้งสาม (a,b และ c) ยาวไม่เท่ากัน สามารถคำนวณได้จากสูตร
พื้นที่สามเหลี่ยมใด ๆ = รากที่สองของ (s(s-a)(s-b)(s-c)) โดย s = (a+b+c)/2
จงเขียนโปรแกรมรับค่าความยาวด้านทั้งสามของสามเหลี่ยมใด ๆ (เป็นจำนวนเต็ม) และคำนวณพื้นที่จากสูตรข้างต้น แสดงผลเป็นทศนิยม 2 ตำแหน่ง
import math
s=0
d=0
a=int(input('ความยาวด้านที่ 1 : '))
b=int(input('ความยาวด้านที่ 2 : '))
c=int(input('ความยาวด้านที่ 3 :'))
s=(a+b+c)/2
d=s*((s-a)*(s-b)*(s-c))
d=math.sqrt(d)
print('พื้นที่ได้คือ %.2f'%(d))
ตัวอย่างการทำงาน 1
ความยาวด้านที่ 1 : 35
ความยาวด้านที่ 2 : 25
ความยาวด้านที่ 3 : 42
พื้นที่ได้คือ 436.97
ตัวอย่างการทำงาน 2
ความยาวด้านที่ 1 : 37
ความยาวด้านที่ 2 : 29
ความยาวด้านที่ 3 : 52
พื้นที่ได้คือ 522.09
7. สถานีรถไฟฟ้าประเทศหนึ่ง มีตู้สำหรับให้ผู้ใช้รถไฟฟ้าซื้อบัตรได้อัตโนมัติ โดยเลือกสถานีปลายทางที่ต้องการลง สถานีปลายทางจะมี 3 สถานี คือ
สถานีที่ 1 ค่าโดยสาร 27 บาท, สถานีที่ 2 ค่าโดยสาร 35 บาท และสถานีที่ 3 ค่าโดยสาร 42 บาท
โดยผู้ซื้อบัตรจะต้องจ่ายเงินให้มากกว่าสถานีปลายทางที่ต้องการลง(บังคับ)
จากนั้นตู้จำหน่ายบัตรจะจ่ายบัตรและเงินทอนให้ผู้ใช้รถไฟฟ้าเป็นเหรียญทั้งหมด โดยเหรียญที่ทอนจะมีเหรียญ 1, 2, 5 และ 10 บาทเท่านั้น และจะทอนเหรียญที่มีมูลค่าสูงสุดก่อน
จงเขียนโปรแกรมสำหรับตู้จ่ายบัตรโดยสาร โดยให้ผู้ใช้เลือกสถานีปลายทาง(n) และจำนวนเงินที่ใส่เข้าระบบ(m) จากนั้นให้โปรแกรมบอกจำนวนเหรียญต่าง ๆ ที่ต้องทอนให้ผู้ซื้อบัตรโดยสาร
def tmoney(money):
b1=b2=b5=b10=0
while money>0:
if money>9:
money=money-10
b10=b10+1
elif money>4:
money=money-5
b5=b5+1
elif money>1:
money=money-2
b2=b2+1
elif money>0:
money=money-1
b1=b1+1
print('10 บาท = ',b10,'\n5 บาท = ',b5,'\n2 บาท = ',b2,'\n1 บาท =',b1)
fn=1
while fn !=0:
print('-------------------------------------------------')
print('-- ตู้บัตรโดยสารรถไฟฟ้าอัตโนมัติ --')
print('อัตราค่าโดยสาร\nสถานีที่ 1 ค่าโดยสาร 27 บาท\nสถานีที่ 2 ค่าโดยสาร 35 บาท\nสถานีที่ 3 ค่าโดยสาร 42 บาท' )
print('-------------------------------------------------')
fn=int(input('Enter Target[1-3] : '))
if fn==0:
break
money=int(input('Enter Money : '))
if fn==1:
money=money-27
if money>0:
print('ถอนเงิน ',money,' บาท')
tmoney(money)
else:
print('กรอกจำนวนเงินไม่ถูกต้อง')
elif fn==2:
money=money-35
if money>0:
print('ถอนเงิน ',money,' บาท')
else:
print('กรอกจำนวนเงินไม่ถูกต้อง')
elif fn==3:
money=money-42
if money>0:
print('ถอนเงิน ',money,' บาท')
else:
print('กรอกจำนวนเงินไม่ถูกต้อง')
else:
print('กรุณาเลือกสถานีที่ 1 - 3 เท่านะ')
ตัวอย่างการทำงาน 1
อัตราค่าโดยสาร
สถานีที่ 1 ค่าโดยสาร 27 บาท
สถานีที่ 2 ค่าโดยสาร 35 บาท
สถานีที่ 3 ค่าโดยสาร 42 บาท
Enter Target[1-3] : 1
Enter Money : 30
ถอนเงิน 3 บาท
10 บาท = 0
5 บาท = 0
2 บาท = 1
1 บาท = 1
Continue[y/n] :
8. ในการหาค่าความเร็วปลาย (ความเร็ว ณ จุดที่สนใจ) สามารถหาได้จากสูตร v^2 = u^2 + 2as
(v^2 หมายถึง v ยกกำลังสอง)
เมื่อทราบความเร็วต้น(u) ความเร่ง(a) และระยะทาง(s) ของสิ่งที่เคลื่อนที่นั้น ๆ จงเขียนโปรแกรมคำนวณหาค่า v เมื่อผู้ใช้ระบุค่า u, a และ s (เป็นจำนวนเต็มทั้งหมด) โดยแสดงผลลัพธ์เป็นทศนิยม 2 ตำแหน่ง
import math
v=0
u=int(input('ความเร็วต้น (u) : '))
a=int(input('ความเร่ง(a) : '))
s=int(input('ระยะทาง(s) :'))
v=(u**2) +(2*(a*s))
v=math.sqrt(v)
print('%.2f'%(v))
ตัวอย่างการทำงาน 1
ความเร็วต้น (u) : 15
ความเร่ง(a) : 14
ระยะทาง(s) :18
27.00
ตัวอย่างการทำงาน 2
ความเร็วต้น (u) : 10
ความเร่ง(a) : 10
ระยะทาง(s) :10
17.32
9. ธนาคารแห่งหนึ่งให้กำหนดกฎเกณฑ์ในการกดเงินจากตู้ ATM ดังนี้
- กดเงินได้ครั้งละไม่เกิน 20,000 บาท และกดได้ 2 ครั้ง (หากครั้งที่ 2 ไม่กดให้ใส่ 0)
- ตู้ ATM จะจ่ายเงินในรูปแบบธนบัตรใบละ 1,000 500 และ 100 บาท และจะจ่ายธนบัตรที่มีค่ามากที่สุดก่อน
เช่น ครูโยโย้ต้องการไปกดเงิน 2 ครั้ง ครั้งแรกกดเงิน 15,900 บาท และครั้งที่ 2 กดเงิน 5,700 บาท
ครูโยโย้จะได้ธนบัตรใบละ 1,000 บาทจำนวน 20 ใบ ธนบัตรใบละ 500 บาท จำนวน 2 ใบ และธนบัตรใบละ 100 บาท จำนวน 6 ใบ
แต่ถ้าผู้กดเงินกรอกจำนวนเงินผิดพลาด โปรแกรมจะแสดงข้อความแจ้งเตือน (Input Error)
จงเขียนโปรแกรมตู้ ATM นี้
i=1
am=0
b1000=0
b500=0
b100=0
while i<3:
a=int(input("Enter Money %d: "%i))
if a==0:
break
am=am+a
i=i+1
while am>99:
if am>999:
b1000=b1000+1
am=am-1000
elif am>499:
b500=b500+1
am=am-500
elif am>99:
b100=b100+1
am=am-100
print('1000 = ',b1000, '\n500 = ',b500,'\n100 = ',b100)
ตัวอย่างการทำงาน 1
15000
1700
16
1
2
ตัวอย่างการทำงาน 2
15800
0
15
1
3
10. จงเขียนโปรแกรมรับเลขจำนวนเต็ม 0 - 9 ไปเรื่อย ๆ โปรแกรมจะหยุดรับก็ต่อเมื่อผู้ใช้ป้อนเลขผิด เช่น ป้อนเลข 10 เลข -1 หรือเลขอื่น ๆ ที่อยู่นอกขอบเขต 0 - 9 เมื่อโปรแกรมหยุดรับค่า ให้แสดงผลว่าเลข 0 - 9 มีการป้อนเลขเข้าไปกี่ครั้ง ดังตัวอย่าง
หมายเหตุ ในคำสั่ง print ในรูปแบบ print("0=",ตัวแปร)
i=5
b0=b1=b2=b3=b4=b5=b6=b7=b8=b9=0
while i>-1 and i<10:
i=int(input('Enter number(0 - 9) :'))
if i<0 and i>9:
break
if i==0:
b0=b0+1
elif i==1:
b1=b1+1
elif i==2:
b2=b2+1
elif i==3:
b3=b3+1
elif i==4:
b4=b4+1
elif i==5:
b5=b5+1
elif i==6:
b6=b6+1
elif i==7:
b7=b7+1
elif i==8:
b8=b8+1
elif i==9:
b9=b9+1
print('0 = ',b0,'\n1 = ',b1,'\n2 = ',b2,'\n3 = ',b3,'\n4 = ',b4,'\n5 = ',b5,'\n6 = ',b6,'\n7 = ',b7,'\n8 = ',b8,'\n9 = ',b9)
ตัวอย่างการทำงาน 1
1
2
5
5
7
8
20
0= 0
1= 1
2= 1
3= 0
4= 0
5= 2
6= 0
7= 1
8= 1
9= 0
11. จงเขียนโปรแกรมแสดงอายุปัจจุบัน โดยการรับข้อมูลวันที่ เดือน และพ.ศ. เกิด
import math
from datetime import datetime
now = datetime.today()
myd=int(now.strftime("%d"))
mym=int(now.strftime("%m"))
myy=int(now.strftime("%Y"))
myy=myy+543
xd=int(input('Enter day : '))
xm=int(input('Enter Mounth : '))
xy=int(input('Enter Year : '))
myy=myy-xy
if xd<myd:
myd=myd-xd
else:
myd=myd-xd
if xm<=mym:
mym=mym-xm
else:
mym=mym-xm
mym=math.fabs(mym)
myy=myy-1
print('คุณอายุ %d ปี %d เดือน %d วัน '%(myy,mym,myd))
ตัวอย่างการทำงาน 1 ข้อมูลวันที่ 24/12/2566
Enter day : 5
Enter Mounth : 7
Enter Year : 2521
คุณอายุ 45 ปี 5 เดือน 19 วัน
ตัวอย่างการทำงาน 2 ข้อมูลวันที่ 24/12/2566
Enter day : 24
Enter Mounth : 12
Enter Year : 2523
คุณอายุ 43 ปี 0 เดือน 0 วัน