9: Nested Structure

9-1: Nested while Loop

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

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

จงเขียนโปรแกรมที่รับจำนวนเต็ม N เพื่อแสดงตารางสูตรคูณของแม่ 2 จนถึงแม่ N ดังรูป โดยขอแสดงผลการคูณด้วย 1 ถึง 5 ก็พอ กำหนดให้ใช้แค่ 4 ช่องเพื่อแสดงผลแต่ละจำนวน โดยแสดงจำนวนแบบชิดขวา (ดูรูปประกอบ) สามารถใช้ฟังก์ชัน left_pad ที่เขียนให้แล้ว และให้เขียนวงวนในโปรแกรมด้วยคำสั่ง while เท่านั้น (ห้ามใช้ for)

___inp___ = ["6"] def input(): t = ___inp___.pop(0) ___inp___.append(t) return t def left_pad(n, k): # แปลง n เป็นสตริงที่ยาว k โดยเติมช่องว่างทางซ้าย # left_pad(12, 4) ได้ " 12" return (" "*k +str(n))[-k:] N = int(input()) def left_pad(n, k): return (" "*k +str(n))[-k:] N = int(input()) k = 2 while k <= N: m = 1 line = "" while m <= 5: line += left_pad(k*m, 4) m += 1 print(line) k += 1 Ex().check_not(has_code("for "),msg = "ข้อนี้ห้ามใช้ for ให้ใช้แต่ while") Ex().has_equal_output(pre_code = "___inp___[0] = 30", incorrect_msg = "ยังได้ผลไม่ต้องตามโจทย์")
แบบฝึกหัด 9-1 ข้อที่ 2

เขียนโปรแกรมตามผังงานในรูป (ให้ใช้คำสั่ง while สำหรับวงวนในข้อนี้ ไม่ให้ใช้ for)

___inp___ = ["20"] def input(): t = ___inp___.pop(0) ___inp___.append(t) return t N = int(input()) print(prime) N = int(input()) prime = [True]*(N+1) prime[0] = prime[1] = False p = 2 while p*p <= N: if prime[p] == True: i = 2*p while i <= N: prime[i] = False i += p p += 1 print(prime) Ex().check_not(has_code("for "),msg = "ข้อนี้ห้ามใช้ for ให้ใช้แต่ while") Ex().has_equal_output(pre_code = "___inp___[0] = 32", incorrect_msg = "ยังได้ผลไม่ต้องตามผังงาน")