THPT Chuyên Vị Thanh
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.
THPT Chuyên Vị Thanh

Số 04 Đường Đồ Chiểu TX Vị Thanh - Tỉnh Hậu Giang


You are not connected. Please login or register

Bài giải CLB kì 2 của Lương Văn Đô 11TL

4 posters

Go down  Thông điệp [Trang 1 trong tổng số 1 trang]

Admin

avatar
Admin
Admin

Const fi = 'daycon.inp';
fo = 'daycon.oup';
var
a: array[0..1001] of longint;
tong: longint;
f,g : text;
n : integer;
Procedure docdulieu;
var i: integer;
begin
assign(f,fi); reset(f);
readln(f,n);
tong := 0;
for i := 1 to n do
begin
read(f,a[i]); tong := tong + a[i] ;
end;
close(f);
end;
Procedure sapxep;
var i,j : integer;
tg : longint;
begin
for i := 1 to n - 1 do
for j := i + 1 to n do
if a[i] > a[j] then
begin
tg := a[i]; a[i] := a[j]; a[j] := tg;
end
end;
Procedure xuli;
var i, kiluc : integer;
begin
kiluc := n;
sapxep;
i := n;
while i > 3 do
if a[i] + a[i-1] + a[i-2] > tong - (a[i] + a[i-1] + a[i-2]) then
begin
tong := tong - a[i];
dec(i); dec(kiluc);
end
else break;
assign(g,fo); rewrite(g);
if kiluc > 3 then writeln(g,kiluc) else write(g,0);
close(g);
end;
BEGIN
Docdulieu;
xuli;
END.
============================================
Admin đã có chỉnh sửa đôi chút!

Ç £ ø v e r

Ç £ ø v e r
Thành viên cấp 4
Thành viên cấp  4

Ghê chùi , hem hỉu zì chơn =))

http://vn.myblog.yahoo.com/onlylove_onlyheart_for_onlyyou

3Bài giải CLB kì 2 của Lương Văn Đô 11TL Empty em cũng zậy Mon Nov 10, 2008 12:24 pm

::Durian::

::Durian::
Thành viên cấp 4
Thành viên cấp  4

hem bik gì lun... Very Happy

http://vn.myblog.yahoo.com/sam-kurai

Khách v

avatar
Khách viếng thăm

Giải thích dùm luôn nè:
Const fi = 'daycon.inp';
fo = 'daycon.oup';
var
a: array[0..1001] of longint;
tong: longint;
f,g : text;
n : integer;
Đoạn này là phần khai báo cho chương trình chính, gồm các biến toàn cục, các file fi, fo là các file input, output tương ứng! Không biết các mem có hiểu input,output không nữa - hẽm hiểu thì lỗi thầy dạy tin học ấy!
Procedure docdulieu;
var i: integer;
begin
assign(f,fi); reset(f);
readln(f,n);
tong := 0;
for i := 1 to n do
begin
read(f,a[i]); tong := tong + a[i] ;
end;
close(f);
end;
Đoạn này thì đọc file input gán các con số nguyên (Integer) vào mảng a (array), có tính tổng các con số!
Procedure sapxep;
var i,j : integer;
tg : longint;
begin
for i := 1 to n - 1 do
for j := i + 1 to n do
if a[i] > a[j] then
begin
tg := a[i]; a[i] := a[j]; a[j] := tg;
end
end;
Đoạn trên chẳng qua là sắp xếp mảng a không giảm - lưu ý không giảm chứ hẽm phải tăng nhé!
Procedure xuli;
var i, kiluc : integer;
begin
kiluc := n;
sapxep;
i := n;
while i > 3 do
if a[i] + a[i-1] + a[i-2] > tong - (a[i] + a[i-1] + a[i-2]) then
begin
tong := tong - a[i];
dec(i); dec(kiluc);
end
else break;
assign(g,fo); rewrite(g);
if kiluc > 3 then writeln(g,kiluc) else write(g,0);
close(g);
end;
Đoạn này là đoạn ăn tiền nè, xử lí các dãy con bằng quy tắc đã cho của đề bài - tất nhiên bạn Đô gì đó giải như vậy là chạy ào ào rồi! Hợp lí.
==============================================
Góp ý 1 chổ nhỏ: bạn dùng biến trung gian để đổi chổ! Có thể bạn biết cách không dùng biến trung gian mà!
Thôi, bấy nhiêu thôi! Muốn gì thì bé TheFireStar và Hồng Thanh sẽ bình luận tiếp! Vậy nhé!

TheFireStar

TheFireStar
Thành viên cấp 4
Thành viên cấp  4

Không hiểu j hết làm sao mòa bình loạn Bài giải CLB kì 2 của Lương Văn Đô 11TL 2

http://www.firestar.co.cc

Sponsored content



Về Đầu Trang  Thông điệp [Trang 1 trong tổng số 1 trang]

Permissions in this forum:
Bạn không có quyền trả lời bài viết