Skip to content
Narrow screen resolution Wide screen resolution Auto adjust screen size Increase font size Decrease font size Default font size default color grey color
         
 | 
VNOI - Olympic tin học Việt Nam

Điểm tin VOJ

Số thành viên:6040
Số bài tập:1001
Số bài nộp:722923
Bài nộp hôm nay:0

Top 10 thành viên xuất sắc

HạngThành viênĐiểm
1mr_invincible587.9
2white_cobra418.6
3hieult403.4
4phaleq384.0
5vodanh9x368.2
6con_nha_ngheo352.0
7flash_mt350.2
8darksabers349.8
9yenthanh132345.3
10rockman9x_94343.1
Diễn đàn arrow Thư viện arrow Đề thi arrow VOI (thi quốc gia) arrow 2004 arrow B3. Phân tích chương trình
B3. Phân tích chương trình In E-mail
(8 votes)
Người viết: Ngô Minh Đức   
03/01/2009

Bài 3. Phân tích chương trình                                           Tên chương trình: ANALYS .PAS

Trong việc phân tích chương trình, cần phát hiện xem đoạn mã nguồn của chương trình có chứa các câu lệnh mà không khi nào được thực hiện hay không (những câu lệnh như vậy để ngắn gọn ta gọi là câu lệnh thừa). Sự có mặt của các câu lệnh thừa thường mách bảo là chương trình còn lỗi. Do đó trong chương trình dịch của tất cả các ngôn ngữ lập trình luôn có môđun kiểm tra sự có mặt của các câu lệnh thừa. Bạn cần viết chương trình thực hiện công việc của môđun này.

Dữ liệu: Vào từ file văn bản ANALYS.INP gồm không quá 30000 dòng chứa dãy thông báo là kết quả của việc phân tích ngữ nghĩa dãy câu lệnh trong mã nguồn của một chương trình cho trước. Mỗi dòng chứa thông báo về câu lệnh tương ứng trong chương trình cho biết chương trình sau khi thực hiện câu lệnh sẽ tiếp tục thực hiện câu lệnh nào và có một trong ba dạng sau:

·         NEXT:  thực hiện câu lệnh kế tiếp;

·         GOTO n1 với n­1 là số nguyên dương: thực hiện câu lệnh với chỉ số n1 (các câu lệnh trong dãy lệnh được đánh số bắt đầu từ 1);

·         JUMP n1 OR n2 với n­1 và n2 là các số nguyên dương: tùy thuộc điều kiện có thể chuyển đến thực hiện câu lệnh với chỉ số n1 hoặc câu lệnh với chỉ số n2.

Các chỉ số trong các thông báo được phân tách với các từ khoá (GOTO,JUMP,OR) bởi ít nhất một dấu cách. Chương trình bắt đầu thực hiện từ câu lệnh với chỉ số 1.

Kết quả: Ghi ra file văn bản ANALYS .OUT:

·         Dòng đầu tiên ghi số nguyên k là số lượng câu lệnh thừa trong chương trình đã cho.

·         Nếu k>0 thì mỗi dòng trong số k dòng tiếp theo chứa chỉ số của một câu lệnh thừa. Các chỉ số được đưa ra theo thứ tự tăng dần

Ví dụ:

ANALYS.INP

ANALYS.OUT

NEXT

JUMP 4 OR 6

NEXT

GOTO 3

NEXT

GOTO 8

NEXT

NEXT

2

5

7

 
< Trước   Tiếp >