24.4. Hai biểu thức sau có tương đương không?a) "0" <= ch <= "9" ...

Câu hỏi:

24.4. Hai biểu thức sau có tương đương không?

a) "0" <= ch <= "9"             b) ord("0") <= ord(ch) <= ord("9")

Câu trả lời:
Người trả lời: GV. Đỗ Hồng Ánh
Để chứng minh hai biểu thức trên có tương đương, ta cần chứng minh rằng đối với mọi ký tự ch trong khoảng từ "0" đến "9", cả hai biểu thức đều cho kết quả đúng.

Cách 1:
- Với biểu thức a) "0" <= ch <= "9", ta thấy rằng các ký tự từ "0" đến "9" trong bảng mã ASCII được đánh số từ 48 đến 57. Do đó, điều kiện "0" <= ch <= "9" tương đương với 48 <= ord(ch) <= 57.
- Với biểu thức b) ord("0") <= ord(ch) <= ord("9"), ta thấy rằng ord("0") tương ứng với số 48 và ord("9") tương ứng với số 57. Chúng ta cũng được điều kiện tương tự 48 <= ord(ch) <= 57.

Do đó, cả hai biểu thức đều đúng với mọi ký tự ch trong khoảng từ "0" đến "9", vì vậy hai biểu thức trên có tương đương.

Cách 2:
- Dựa vào cách làm trên, ta cũng có thể chứng minh bằng cách viết chương trình máy tính kiểm tra độ tương đương của hai biểu thức đó.
- Dưới đây là mã nguồn Python để kiểm tra độ tương đương của hai biểu thức:
```python
def is_equivalent(ch):
return ("0" <= ch <= "9") == (ord("0") <= ord(ch) <= ord("9"))

# Kiểm tra với tất cả các ký tự từ "0" đến "9"
for ch in range(ord("0"), ord("9") + 1):
print(chr(ch), is_equivalent(chr(ch)))
```
Kết quả sẽ cho thấy cả hai biểu thức đều cho kết quả True với mọi ký tự từ "0" đến "9".

Vậy, hai biểu thức trên có tương đương.
Bình luận (0)
Nhấn vào đây để đánh giá
Thông tin người gửi
0.44703 sec| 2259.164 kb