Cần giúp đỡ viết chương trình sinh ngoại lệ khi người dùng nhập số nguyên dương trùng với một trong các giá trị đã nhập

  1. Viết một chương trình nhập liên tiếp một dãy số nguyên, chương trình thực hiện những việc như sau:
    a. Chương trình cho người dùng liên tiếp nhập các số nguyên dương.
    b. Khi gửi dùng nhập “quit” thì sẽ dừng.
    c. Chương trình sinh ngoại lệ khi người dùng không nhập đúng kiểu số nguyên dương (ngoại trừ lệnh quit), khi đó chương trình hiện thông báo “đề nghị nhập số nguyên dương” và tiếp tục việc nhập dữ liệu.
    d. Chương trình sinh ngoại lệ khi người dùng nhập số nguyên dương nhưng trùng với một trong các giá trị đã nhập, khi đó chương trình hiện thông báo “số mới nhập đã có trong danh sách” và tiếp tục việc nhập dữ liệu.

Úi giời :laughing:, cái này đơn giản mà, cứ tìm trong mảng xem cái giá trị đó đã tồn tại chưa, nếu chưa thì in cái thông báo đó ra thôi. Cách đơn giản nhất là check giá trị từng phần tử một, nhưng anh khuyên là nên dùng tìm kiếm nhị phân(binary search) nó sẽ tối ưu hơn.

3 Likes

Tức là 3 ý trước bạn làm được rồi?
Ý cuối khó gì đâu. Tìm kiếm thôi.

4 Likes

tìm kiếm như nào ạ .-. , e chưa thông lắm :((

Tài liệu tham khảo đây: https://vi.m.wikipedia.org/wiki/Tìm_kiếm_nhị_phân

2 Likes
while True:
    try: 
        x = int(input("Nhap so nguyen duong: " ))
        1/x;
        if x<0:
            raise Error;
            break        
    except  (Exception):
        print(" nhap so nguyen duong")
        try:
            phanhoi = input()
            if  phanhoi == "quit":
                break
            print("Tiep tuc nhap")
        except KeyboardInterrupt:
            print("Tiep tuc nhap")
            continue

3 câu trên e viết dc như này r

Nhét code vào trong cặp 3 dấu huyền(backquote/backtick) ``` đi em ơi.

Cái này phải để trong comment chứ?

1 Like

Nhị phân thì thà dùng set :smiley: dùng set là chuẩn luôn.

4 Likes

Ồ, dòng này có ý nghĩa gì vậy bạn?

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?