Xây dựng ứng dụng kiểm tra lỗi cú pháp trang 24 Chuyên đề Tin học 12
Giải Chuyên đề Tin 12 Bài 4: Dự án học tập: Xây dựng chương trình sử dụng kiểu dữ liệu hàng đợi và ngăn xếp - Cánh diều
Dự án 1 trang 24 Chuyên đề Tin học 12: Xây dựng ứng dụng kiểm tra lỗi cú pháp
a) Em hãy viết chương trình nhập vào một xâu kí tự chỉ gồm các dấu mở ngoặc và đóng ngoặc sau [, ], {, }, (, ). Sau đó, kiểm tra xem xâu kí tự đó có cân bằng hay không. In ra màn hình thông báo “Cân bằng” nếu xâu đó là cân bằng, ngược lại in ra “Không cân bằng”.
b) Mở rộng chương trình ở câu a): đọc tập có tên test.py chứa chương trình viết bằng ngôn ngữ Python, và kiểm tra xem chương trình có lỗi cú pháp về thứ tự xuất hiện của các cặp ngoặc [, ], {, }, (, ) hay không. In ra màn hình thông báo “Không có lỗi” nếu chương trình không có lỗi về các cặp ngoặc này, ngược lại in ra “Có lỗi cú pháp”.
Lời giải:
a) Em hãy viết chương trình nhập vào một xâu kí tự chỉ gồm các dấu mở ngoặc và đóng ngoặc sau [, ], {, }, (, ). Sau đó, kiểm tra xem xâu kí tự đó có cân bằng hay không. In ra màn hình thông báo “Cân bằng” nếu xâu đó là cân bằng, ngược lại in ra “Không cân bằng”.
Chương trình như sau:
def is_balanced(s):
stack = []
opening = {'(', '{', '['}
closing = {')': '(', '}': '{', ']': '['}
for char in s:
if char in opening:
stack.append(char)
elif char in closing:
if not stack or stack[-1] != closing[char]:
return "Không cân bằng"
stack.pop()
return "Cân bằng" if not stack else “Không cân bằng”
# Test the function
s = "[{()}]()"
print(is_balanced(s))
# Output: Cân bằng
b) Mở rộng chương trình ở câu a): đọc tập có tên test.py chứa chương trình viết bằng ngôn ngữ Python, và kiểm tra xem chương trình có lỗi cú pháp về thứ tự xuất hiện của các cặp ngoặc [, ], {, }, (, ) hay không. In ra màn hình thông báo “Không có lỗi” nếu chương trình không có lỗi về các cặp ngoặc này, ngược lại in ra “Có lỗi cú pháp”.
def check_syntax_balance(filename):
try:
with open(filename, 'r') as file:
content = file.read()
except FileNotFoundError:
return “Không thể mở file”
stack = []
opening = {'(', '{', '['}
closing = {')': '(', '}': '{', ']': '['}
for char in content:
if char in opening:
stack.append(char)
elif char in closing:
if not stack or stack[-1] != closing[char]:
return "Có lỗi cú pháp"
stack.pop()
return "Không có lỗi" if not stack else “Có lỗi cú pháp”
# Test the function with a sample file name
filename = 'test.py'
print(check_syntax_balance(filename))
# Output will depend on the content of test.py
Lời giải bài tập Chuyên đề Tin 12 Bài 4: Dự án học tập: Xây dựng chương trình sử dụng kiểu dữ liệu hàng đợi và ngăn xếp hay, chi tiết khác:
Xem thêm lời giải bài tập Chuyên đề học tập Tin học 12 Cánh diều hay, chi tiết khác:
Xem thêm các tài liệu học tốt lớp 12 hay khác:
- Giải Chuyên đề Tin học 12 Kết nối tri thức
- Giải Chuyên đề Tin học 12 Chân trời sáng tạo
- Giải Chuyên đề Tin học 12 Cánh diều
TÀI LIỆU CLC DÀNH CHO GIÁO VIÊN VÀ PHỤ HUYNH LỚP 12
Bộ giáo án, bài giảng powerpoint, đề thi file word có đáp án 2026 tại https://tailieugiaovien.com.vn/
Hỗ trợ zalo: VietJack Official
Tổng đài hỗ trợ đăng ký: 084 283 45 85
Công cụ giáo viên (2048.VN)
Tạo- trộn đề thi miễn phí từ file PDF, Word, Giao bài nhanh chóng, Hoàn toàn Free
- Soạn văn 12 (hay nhất)
- Soạn văn 12 (ngắn nhất)
- Soạn văn 12 (siêu ngắn)
- Giải sgk Toán 12
- Giải Tiếng Anh 12 Global Success
- Giải sgk Vật Lí 12
- Giải sgk Hóa học 12
- Giải sgk Sinh học 12
- Giải sgk Lịch Sử 12
- Giải sgk Địa Lí 12
- Giải sgk Giáo dục KTPL 12
- Giải sgk Tin học 12
- Giải sgk Công nghệ 12
- Giải sgk Hoạt động trải nghiệm 12
- Giải sgk Giáo dục quốc phòng 12
- Giải sgk Âm nhạc 12
- Giải sgk Mĩ thuật 12

