[1-Kornsrikranet] ฝึกทำโจทย์ Data Structures and Algorithms – Recursion/Array/Stack/Queue/Linked Lists

Code :

from money import *

#n = input("Enter you string number: ")
#print(n)

numbers = str(input("Enter your string number: "))
m = Money(numbers, 'THB')
print("You string number is: %d" % m)
print("You are convert string number to integer in thailand current")
print(m)


C4-8 จากโจทย์ ให้ทำการเขียนโปรแกรม Recursive function ให้แปลงข้อความจาก ตัวอักษรในรูปตัวเลข ให้ เป็นตัวเลข แล้วแสดงค่าออกทางหน้าจอ

Link :  https://youtu.be/KZ6uD-hDnpA

Code :

class CaesarCipher:
    def __init__(self, shift):
encoder = [None]*26
decoder = [None]*26
for k in range(26):
encoder[k] = chr((k + shift)%26 + ord(‘A’))
decoder[k] = chr((k – shift)%26 + ord(‘A’))
self._forward = ”.join(encoder)
self._backward = ”.join(decoder)
    def encrypt(self, message):
return self._transform(message, self._forward)
    def decrypt(self, secret):
return self._transform(secret, self._backward)
    def _transform(self, original, code):
msg = list(original)
for k in range(len(msg)):
if msg[k].isupper():
j = ord(msg[k])-ord(‘A’)
msg[k] = code[j]
return ”.join(msg)
if __name__ == ‘__main__’:
cipher = CaesarCipher(3)
message = “HELLO PYTHON PROGRAMMING; I LOVE YOU.”
coded = cipher.encrypt(message)
print(‘Secret: ‘, coded)
answer = cipher.decrypt(coded)
print(‘Message: ‘,answer)

R5-10 จากโจทย์ให้ทำการ นำโครงสร้าง CaesarCipher มาแสดงค่าการทำงานของโปรแกรมโดยการมีข้อความได้โปรแกรมได้รับ แสดงค่าออกมาทั้งรูปแบบ ข้อความที่กลับค่า และ คืนค่าที่ถูกกลับ จากคำสั่งของ Caesar Cipher

Link : https://youtu.be/qKHQaKfykOE

Code :

from tkinter import *
import tkinter.scrolledtext as ScrolledText
root = Tk(className=” Text Editor”)
textArea = ScrolledText.ScrolledText(root, width=100, height=80)
textArea.pack()
menu = Menu(root)
root.config(menu=menu)
root.mainloop()

P7-44 จากโจทย์ให้ทำการสร้าง Text editor อย่างง่ายและทำการกรอกค่า C หรือ ตัวอักษรอะไรก็ได้ลงใน Text Editor หลังจากให้เขยิบทางซ้าย และ ขวา ของ Cursor

Link : https://youtu.be/bVzgkweQVI8

C5-16 จากโจทย์ให้ทำการนำฟังก์ชั่น pop in/out ค่าที่ถูกเก็บไว้จาก Dynamic array class โดยกำหนดให้ลบค่าสุดท้ายของตัวแปรที่ถูกเก็บไว้ออก จากนั้นลดขนาดของตัวแปร N ตัว ให้เหลือครึ่งโดยของเวลา โดยให้ใช้เวลา N/4

R6-12 จากโจทย์ ให้ทำการใช้คำสั่งโปรแกรม การ Dequeue และ Enqueue โดยให้ทำตามลำดับดังนี้โดย เริ่มต้นให้ queue มีค่าว่า หลังจากนั้นเพิ่ม 4 เข้ามาตัวแรกหลังจากนั้น ตามด้วย 8 9  5 ถอยกลับ ลบค่าแรกออก ลบค่าสุดท้ายออก เพิ่ม 7 ต่อท้าย แสดงค่าแรก แสดงค่าสุดท้าย เพิ่มค่า 6 ต่อท้ายสุด ลบค่าแรกออก ลบค่าที่มีค่าแรกสุดออก

จากโจทย์ค่า จะได้ คือ 4 8 9 5 *5 ลบ 4 จะได้ 8 9 5 ลบ 5 จะได้  8 9 หลังจากนั้น เพิ่ม 7 ต่อท้าย 8 9 7 แสดงค่าแรกคือ 8 และค่าสุดท้าย 7 เพิ่มค่า 6 ต่อท้าย จะได้ 8 9 7 6 ลบค่าแรกออก จะเหลือ 9 7 6 หลังจากนั้นลบค่าแรกออกอีกหนึ่งตัวเหลือ 7 6 จบการทำงานของโปรแกรม

C6-16 ให้ทำการแก้ไข ArrayStack implementation โดยการให้เก็บค่า Stack โดยจำกัดค่าสูงสุด โดยใช้คำสั่ง Maxlen n ตัว ให้ตัวแปรรับค่าตัวแปร จาก maxlen มาเก็บไว้ โดยกำหนดค่าตอนแรกให้ว่างหรือ None ถ้าเราให้ค่าตัวแปรจนเต็ม N ตัว ให้ทำการลบค่าทั้งหมดออก

R4-21 จากโจทย์ให้ สมมติให้เราได้ค่าตัวแปรมา N ตัว โดยรียงลำดับ และรับค่าตัวแปร S โดยมีค่ตัวแปรแตกต่างกัน N ตัว ในลำดับ โดย ค่าจะเพิ่มขึ้นเลยๆ ให้ตัวรับค่าตัวแปร K เข้ามา โดยให้ใช้คำสั่ง Recursive function เพื่อห่าค่าตัวแปร 2  ตัวรวมกัน จากตัวแปร S + K ถ้าโปรแกรมค้นหาค่เจอในตัวแปร N ที่เรียงลำดับ ให้โปรแกรมแสดงค่าออกมาว่าใช้เวลาในการค้นหาคำตอบเท่าไร

 

  •  
  •  
  •  
  •  
  •  
  •  
Kornsrikranet Paponsrub
at GlurGeek.Com

Leave a Reply