3: Selection

3-1: Flowchart & if-else

** ถ้าใช้งานบนมือถือหรือ tablet แนะนำให้ใช้ Chrome หรือ Safari เท่านั้น **

แบบฝึกหัด 3-1 ข้อที่ 1

เขียนโปรแกรมตามผังงานข้าง ๆ นี้

___inp___ = ["43", "14"] def input(): t = ___inp___.pop(0) ___inp___.append(t) return t a = int(input()) b = int(input()) if a < b: min = a max = b else: min = b max = a print(min, max) for v in 'ab': obj = Ex().check_object(v, missing_msg = "ไม่มีตัวแปร "+v+" ควรเขียนให้เหมือนผังงาน") obj.has_equal_value(incorrect_msg = v+" มีค่าไม่ตรงตามโจทย์") obj.has_equal_value(expr_code="type("+v+")", incorrect_msg=v+" ต้องเป็น int") Ex().check_if_else(missing_msg="ฝึกใช้ if-else ตามผังงาน").check_test().multi( set_env(a=1,b=2).has_equal_value(incorrect_msg = "ดูให้ดี กรณี a < b, ควรเขียนให้เหมือนผังงาน"), set_env(a=2,b=2).has_equal_value(incorrect_msg = "ดูให้ดี กรณี a == b, ควรเขียนให้เหมือนผังงาน"), set_env(a=2,b=1).has_equal_value(incorrect_msg = "ดูให้ดี กรณี a > b, ควรเขียนให้เหมือนผังงาน") ) for v in ['min', 'max']: obj = Ex().check_object(v, missing_msg = "ไม่มีตัวแปร "+v +" ควรเขียนให้เหมือนผังงาน") obj.has_equal_value(incorrect_msg = v+" มีค่าไม่ตรงตามโจทย์") Ex().has_equal_output(incorrect_msg="ไม่ได้แสดงผล หรือแสดงผลที่ผิด")
แบบฝึกหัด 3-1 ข้อที่ 2

เขียนโปรแกรมตามผังงานข้าง ๆ นี้ (มีตัวแปร a และ b ให้แล้ว ไม่ต้องตั้งค่าหรือรับอินพุตใด ๆ)

a,b = 9,8 if abs(a-b) > 2: a,b = b,a else: a = b**2 + a print(a,b) Ex().check_if_else(missing_msg="ใช้ if-else ตามผังงาน") for v in ["1,2","1,3","1,4","2,1","3,1","4,1"]: Ex().has_equal_output(pre_code="a,b="+v, incorrect_msg = "ผิด เช่น กรณี a,b = " + v)
แบบฝึกหัด 3-1 ข้อที่ 3

เขียนโปรแกรมตามผังงานข้าง ๆ นี้ (มีตัวแปร a ให้แล้ว ไม่ต้องตั้งค่าหรือรับอินพุตใด ๆ)

a = 0 if a%2 == 0: # a เป็นจำนวนคู่ ? if a%2 == 0: a *= 2 else: if a > 10: a //= 2 else: a = 0 print(a) Ex().check_if_else(missing_msg="ใช้ if-else ตามผังงาน") for v in range(5,15): Ex().has_equal_output(pre_code="a="+str(v), incorrect_msg = "ผิด เช่น กรณี a = " + str(v))
แบบฝึกหัด 3-1 ข้อที่ 4

เขียนโปรแกรมตามผังงานข้าง ๆ นี้ (มีตัวแปร a ให้แล้ว ไม่ต้องตั้งค่าหรือรับอินพุตใด ๆ)

a = 0 if a%2 == 0: # a เป็นจำนวนคู่ ? if a%2 == 0: if a > 10: a //= 2 else: a = 0 else: a *= 2 print(a) Ex().check_if_else(missing_msg="ใช้ if-else ตามผังงาน") for v in range(5,15): Ex().has_equal_output(pre_code="a="+str(v), incorrect_msg = "ผิด เช่น กรณี a = " + str(v))
แบบฝึกหัด 3-1 ข้อที่ 5

เขียนโปรแกรมตามผังงานข้าง ๆ นี้ (มีตัวแปร a ให้แล้ว ไม่ต้องตั้งค่าหรือรับอินพุตใด ๆ)

a = 0 if a%2 == 0: b = 2*a if a > 10: a //= 2 else: b += a a += b else: a *= 2 print(a,b) Ex().check_if_else(missing_msg="ใช้ if-else ตามผังงาน") for v in range(5,15): Ex().has_equal_output(pre_code="a="+str(v), incorrect_msg = "ผิด เช่น กรณี a = " + str(v))