Phép chia đôi Tên chương trình: BISECTION.PAS Ta gọi phép chia đôi tam giác theo cạnh dài nhất là việc dựng đường trung tuyến xuống cạnh có độ dài lớn nhất của tam giác (nếu có nhiều cạ[r]
(1)BỘ GIÁO DỤC VÀ ĐÀO TẠO KÌ THI CHỌN HỌC SINH GIỎI QUỐC GIA LỚP 12 THPT NĂM HỌC 2003-2004
Môn: Tin học - Bảng B
Thời gian: 180 phút (Không kể thời gian giao đề) Ngày thi: 12/03/2004
TỔNG QUAN BÀI THI NGÀY THỨ HAI BẢNG B
Tên Tên chương trình File liệu vào File kết qu BI Phân tích chơng trình ANALYS.PAS ANALYS.INP ANALYS.OUT
BÀI Phép chia đôi BISECTION.PAS BISECTION.INP BISECTION.OUT
Hãy lập trình giải tốn sau:
Bµi 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 xem đoạn mã nguồn chơng trình có chứa câu lệnh mà không đợc thực hay không (những câu lệnh nh để ngắn gọn ta gọi câu lệnh thừa) Sự có mặt câu lệnh thừa thờng mách bảo chơng trình cịn lỗi Do chơng trình dịch tất ngơn ngữ lập trình ln có mơđun kiểm tra có mặt câu lệnh thừa Bạn cần viết chơng trình thực cơng việc mơđun ny
Dữ liệu: Vào từ file văn ANALYS.INP gồm không 30000 dòng chứa dÃy thông báo kết việc phân tích ngữ nghĩa dÃy câu lệnh mà nguồn chơng trình cho trớc Mỗi dòng chứa thông báo câu lệnh tơng ứng chơng trình cho biết chơng trình sau thực hiƯn c©u lƯnh sÏ tiÕp tơc thùc hiƯn c©u lƯnh có ba dạng sau:
NEXT: thùc hiƯn c©u lƯnh kÕ tiÕp;
GOTO n1 với n1 số nguyên dơng: thực câu lệnh với số n1 (các câu lệnh
dãy lệnh đợc đánh số 1);
JUMP n1 OR n2 víi n1 vµ n2 lµ số nguyên dơng: tùy thuộc điều kiện chuyÓn
đến thực câu lệnh với số n1 câu lệnh với số n2
Các số thông báo đợc phân tách với từ khố (GOTO,JUMP,OR) dấu cách Chơng trình bắt đầu thực từ câu lệnh với ch s
Kết quả: Ghi file văn b¶n ANALYS OUT:
Dịng ghi số nguyên k số lợng câu lệnh thừa chơng trình cho
Nếu k>0 dịng số k dòng chứa số câu lệnh thừa Các số đợc đa theo thứ tự tăng dần
VÝ dô:
ANALYS.INP ANALYS.OUT NEXT
JUMP OR 6 NEXT GOTO 3 NEXT GOTO 8 NEXT NEXT 2 5 7
(2)Bài Phép chia đơi Tên chương trình: BISECTION.PAS Ta gọi phép chia đôi tam giác theo cạnh dài việc dựng đường trung tuyến xuống cạnh có độ dài lớn tam giác (nếu có nhiều cạnh có độ dài lớn chọn tuỳ ý số chúng) chia tam giác thành hai tam giác Cho tam giác T0,0 Thực phép chia đôi tam giác T0,0 theo cạnh dài ta thu hai tam giác T1,0 T1,1 Đối với hai tam giác vừa thu T1,0 T1,1 ta lại áp dụng phép chia đôi theo cạnh dài nhận tam giác T2,0, T2,1, T2,2
T2,3 Hai lần phân chia vừa nêu minh hoạ hình
T0,0
Hình Hình
Lặp lại trình phân chia tam giác đến lần thứ n ta nhận tập n gồm 2n tam
giác Tn,j , j = 0, 1, , 2n-1 Các tam giác tập n phân thành lớp đồng dạng sau:
Hai tam giác n thuộc lớp đồng dạng chúng đồng dạng với
Ví dụ: Nếu áp dụng q trình phân chia tam giác đến lần thứ ba, ta thu ba lớp đồng dạng Mỗi tam giác tập 3 đồng dạng với ba tam giác tơ đậm hình
Nhắc lại: tam giác ABC, gọi M trung điểm BC, ta có 2AM2 = AB2 + AC2 – BC2/2.
Yêu cầu: Hãy xác định số lớp đồng dạng tập tam giác thu sau lần phân chia thứ n Dữ liệu: Vào từ file văn BISECTION.INP chứa bốn số nguyên a, b, c n (2 n 300) ghi cách dấu cách, theo thứ tự độ dài ba cạnh tam giác số lần thực phép chia tam giác
Kết quả: Ghi file văn BISECTION.OUT số lượng lớp đồng dạng tập tam giác thu sau lần phân chia thứ n
Ví dụ:
BISECTION.INP BISECTION.OUT
10 10 10 3
Ghi chú:
(3)