COBOL là một ngôn ngữ rất cũ, tại thời điểm viết nó đã 58 tuổi. Trên thực tế, nó quá cũ đến nỗi nó có một cách giải quyết rất thú vị: sáu ký tự đầu tiên của mỗi dòng là các bình luận.
Tại sao điều này lại hỏi thế? Chà, 6 ký tự đó được dự định sẽ được sử dụng làm số dòng, trở lại vào ngày mà các chương trình không hoàn toàn là kỹ thuật số và được gõ trên máy tính.
Ngoài ra, ký tự thứ bảy chỉ có thể là một phần của một tập hợp rất nhỏ (thường là *
để nhận xét dòng hoặc khoảng trắng để tách số dòng khỏi mã)
Nhưng nếu bạn đang ở trên một hệ thống kỹ thuật số hơn và bạn chỉ muốn chương trình thô thì sao?
Hệ thống bình luận
Có hai loại nhận xét trong COBOL: nhận xét dòng và nhận xét "số dòng" đã nói ở trên.
Số dòng không ghi chú rất đơn giản: chỉ cần lấy bảy ký tự đầu tiên (sáu cộng một dấu cách) trên mỗi dòng.
000000 apple
000001 banana
celery donuts
sẽ trở thành:
apple
banana
donuts
Dòng ý kiến làm cho nó một chút khó khăn hơn. Một nhận xét dòng được bắt đầu với một dấu sao *
được đặt ở vị trí ký tự thứ bảy trên dòng, như vậy:
000323* this is a comment
Đây không phải là một bình luận dòng:
*00000 this isn't a comment
Để bỏ ghi chú một dòng, chỉ cần xóa toàn bộ dòng.
Một ví dụ nhận xét "chương trình":
000000 blah blah
000001* apples
000002 oranges?
000003* yeah, oranges.
000*04 love me some oranges
Phiên bản chưa hoàn thành:
blah blah
oranges?
love me some oranges
Nói cách khác, để bỏ ghi chú một chuỗi, hãy xóa sáu ký tự đầu tiên của mỗi dòng, sau đó trả lại tất cả trừ ký tự đầu tiên của mỗi dòng không bắt đầu bằng một ngôi sao.
Các thách thức
Tạo một chương trình hoặc chức năng có một chương trình nhận xét và trả về biến thể không bị lỗi của nó.
Làm rõ
- Dấu hoa thị (
*
) sẽ không bao giờ được tìm thấy ở bất cứ đâu ngoài bảy ký tự đầu tiên trên một dòng (chúng tôi không yêu cầu bạn xác minh cú pháp) - Mỗi dòng sẽ luôn có ít nhất 7 ký tự.
- Bạn có thể cho rằng nhân vật thứ bảy luôn là dấu hoa thị hoặc dấu cách.
- Đầu vào hoặc đầu ra có thể là một ma trận hoặc danh sách.
- Chỉ các ký tự ASCII có thể in (cộng với dòng mới) phải được xử lý.
- Bạn có thể xuất ra với một dòng mới. Bạn cũng có thể cho rằng đầu vào sẽ có một dòng mới, nếu bạn chọn.
Chấm điểm
Vì đây là môn đánh gôn , câu trả lời có ít byte nhất sẽ thắng!
TUYÊN BỐ TỪ CHỐI: Tôi thực sự không biết về COBOL và không yêu cầu. Nếu bất kỳ khiếu nại nào về COBOL tôi đã đưa ra trong câu hỏi này là không chính xác, tôi không chịu trách nhiệm.
*
. Đây có phải là một sự trùng hợp?
key:{key:{key:length,key:length}}
. Dải tất cả dữ liệu định dạng và gõ dữ liệu mặc dù.