Latest topics
» Sửa chữa Smartphone – nghề thời thượngby hoangyencps 14/1/2014, 8:58 pm
» Teen thời @ ôn thi đại học như thế nào?
by hoangyencps 14/1/2014, 8:56 pm
» Sửa chữa Smartphone – nghề thời thượng
by hoangyencps 14/1/2014, 8:52 pm
» Nhật kí ngày 08 tháng 10 năm 2011 !
by c'lesvie 8/8/2013, 6:24 pm
» Lựa chọn trung tâm luyện thi: tiêu chí nào?
by tongphuong 16/5/2013, 3:21 pm
» [Image]Tổng hợp cổng trại các lớp
by nguyendinhlich23 8/2/2013, 4:36 pm
» Bí mật áo trắng
by dongphuchk 1/10/2012, 4:42 pm
» Kí ức những ngày mưa_BDH
by zozo 26/5/2012, 12:13 am
» Music and Lyric (Như khúc tình ca) - Bạch Dương
by ooyeuem00 2/5/2012, 2:54 pm
» Mot Chut Hoi Uc Tuoi Hoc Tro`
by Thanh_Luan.chel 3/4/2012, 5:58 pm
» Ngoài kia ai còn biết tên…
by Bạch Dương 3/4/2012, 11:39 am
» Cách mạng giáo dục: “Xét xử” những lỗi nhỏ và “hành quyết” những sai lầm lớn
by Bạch Dương 3/4/2012, 10:50 am
» Truyện ngắn: Về ngồi lại bên đời
by Bạch Dương 3/4/2012, 10:46 am
» [a2k47 ảnh] những ngày cuối năm học
by a2k47 28/3/2012, 7:05 pm
» hôm 26-3 qua trường
by a2k47 28/3/2012, 6:56 pm
» Tin buồn ...!!!
by a2k47 28/3/2012, 6:50 pm
» Lớp nào thành công nhất Bắc Duyên Hà 2010?
by honey_smile0206 27/3/2012, 1:13 am
» 10 cách thư giãn và giảm stress hiệu quả
by sinhdaphu 26/3/2012, 9:56 pm
» ĐH Vinh mở thêm ngành Kỹ thuật điều khiển và tự động hóa
by sinhdaphu 26/3/2012, 9:53 pm
Thống Kê
Hiện có 3 người đang truy cập Diễn Đàn, gồm: 0 Thành viên, 0 Thành viên ẩn danh và 3 Khách viếng thăm :: 1 BotKhông
Số người truy cập cùng lúc nhiều nhất là 534 người, vào ngày 23/9/2011, 7:39 pm
LIKE
Lời giải cho bài toán pascal a4k49
5 posters
DIỄN ĐÀN HỌC SINH SINH VIÊN THPT BẮC DUYÊN HÀ :: Bắc Duyên Hà - Nhịp sống học đường :: Khóa 49 :: A4k49
Trang 1 trong tổng số 1 trang
Lời giải cho bài toán pascal a4k49
Bài hình chữ nhật của Đạt, yêu cầu là kiểm tra 3 HCN xem có ghép lại thành hình vuông không. Tính diện tích HV ấy
Phân tích Giải thuật: tính tổng diện tích 3 hình (=S), kiểm tra xem có phải là số chính phương không, nếu không thì kết luận là thất bại còn nếu có thì tiếp tục kiểm tra xem có thể chia Hình vuông S ấy thành 3 hình chữ nhật ban đầu không. Điều kiện để đi đến thành công:
- 3 chiều dài bằng nhau --> ghép được và xuất ra kết quả
- 1 chiều dài bằng căn bậc hai của S (sqrt S) gọi là a[i] và một cạnh của hình chữ nhật khác = sqrt S - a[i] --> ghép được và xuất ra kết quả
Nghe có vẻ sẽ phải dùng nhiều câu lệnh điều kiện phức tạp nhưng có thể đơn giản hóa chương trình bằng cách dùng 3 biến Boolean để kiểm tra điều kiện (true false), cấp phát 1 mảng 2 chiều với A[i] là chiều dài và A[7-i] là chiều rộng để có được mối liên hệ cd và cr trong cùng một HCN
Nếu S không phải là số chính phương thì chương trình sẽ nhảy trực tiếp đến câu lệnh kết luận thất bại luôn
program HCN;
label ok;
var a=array [1..6] of byte;
i, j: byte; s: integer; dk1, dk2, dk3: boolean;
begin
for i:=1 to 3 do
begin
writeln("Nhập chiều dài và chiều rộng hình chữ nhật thứ",i);
readln(a[i],a[7-i]);
end;
dk1:=false;dk2:=false;dk3:=false;
s:=a[1]*a[6]+a[2]*a[5]+a[3]*a[4];
{kiểm tra S có phải số chính phương không nếu không thì nhảy đến bước kết luận luôn}
for i:=1 to S div 2 do if i*i=S then begin dk3:=true; break; end;
if dk3=false then goto ok;
{kiểm tra 3 chiều dài néu bằng nhau thì bài toán đã xong}
if a[1]=a[3] and a[3]=a[5] and a[1]=Sqrt(S) then writeln("Thành công, ghép thành hinh vuông có diện tích", S) else
begin
{kiểm tra đk2}
while i<7 do begin
if a[i] = Sqrt(S) then dk2 := true;
i=i+2; end;
{kiểm tra đk3}
for j:=1 to 6 do if j<>i and j<>7-i and a[j]=Sqrt(S) - a[j] then dk3=true;
{kết luận}
if dk3=true and dk32=true then writeln("Thành công, ghép thành hinh vuông có diện tích", S) else writeln("Thất bại");
{kết luận của trường hợp đk1 không thỏa mãn}
ok:
if dk3=false then writeln("thất bại");
readln
end.
Bài của Thần Thoại:
có một số K hình lập phương có thể tích 1x1x1 xếp thành một hình lập
phương rất lớn (khi đó K = N^3), hỏi trong hình lập phương đó có bao
nhiêu hình lập phương con có thể tích nhỏ hơn hoặc bằng khối lập phương lớn ví dụ: 1x1x1, 2x2x2, 3x3x3...
Với N là Input
Còn tiếp....
Phân tích Giải thuật: tính tổng diện tích 3 hình (=S), kiểm tra xem có phải là số chính phương không, nếu không thì kết luận là thất bại còn nếu có thì tiếp tục kiểm tra xem có thể chia Hình vuông S ấy thành 3 hình chữ nhật ban đầu không. Điều kiện để đi đến thành công:
- 3 chiều dài bằng nhau --> ghép được và xuất ra kết quả
- 1 chiều dài bằng căn bậc hai của S (sqrt S) gọi là a[i] và một cạnh của hình chữ nhật khác = sqrt S - a[i] --> ghép được và xuất ra kết quả
Nghe có vẻ sẽ phải dùng nhiều câu lệnh điều kiện phức tạp nhưng có thể đơn giản hóa chương trình bằng cách dùng 3 biến Boolean để kiểm tra điều kiện (true false), cấp phát 1 mảng 2 chiều với A[i] là chiều dài và A[7-i] là chiều rộng để có được mối liên hệ cd và cr trong cùng một HCN
Nếu S không phải là số chính phương thì chương trình sẽ nhảy trực tiếp đến câu lệnh kết luận thất bại luôn
program HCN;
label ok;
var a=array [1..6] of byte;
i, j: byte; s: integer; dk1, dk2, dk3: boolean;
begin
for i:=1 to 3 do
begin
writeln("Nhập chiều dài và chiều rộng hình chữ nhật thứ",i);
readln(a[i],a[7-i]);
end;
dk1:=false;dk2:=false;dk3:=false;
s:=a[1]*a[6]+a[2]*a[5]+a[3]*a[4];
{kiểm tra S có phải số chính phương không nếu không thì nhảy đến bước kết luận luôn}
for i:=1 to S div 2 do if i*i=S then begin dk3:=true; break; end;
if dk3=false then goto ok;
{kiểm tra 3 chiều dài néu bằng nhau thì bài toán đã xong}
if a[1]=a[3] and a[3]=a[5] and a[1]=Sqrt(S) then writeln("Thành công, ghép thành hinh vuông có diện tích", S) else
begin
{kiểm tra đk2}
while i<7 do begin
if a[i] = Sqrt(S) then dk2 := true;
i=i+2; end;
{kiểm tra đk3}
for j:=1 to 6 do if j<>i and j<>7-i and a[j]=Sqrt(S) - a[j] then dk3=true;
{kết luận}
if dk3=true and dk32=true then writeln("Thành công, ghép thành hinh vuông có diện tích", S) else writeln("Thất bại");
{kết luận của trường hợp đk1 không thỏa mãn}
ok:
if dk3=false then writeln("thất bại");
readln
end.
Bài của Thần Thoại:
có một số K hình lập phương có thể tích 1x1x1 xếp thành một hình lập
phương rất lớn (khi đó K = N^3), hỏi trong hình lập phương đó có bao
nhiêu hình lập phương con có thể tích nhỏ hơn hoặc bằng khối lập phương lớn ví dụ: 1x1x1, 2x2x2, 3x3x3...
Với N là Input
Còn tiếp....
Được sửa bởi Bạch Dương ngày 25/1/2011, 7:09 pm; sửa lần 1.
Re: Lời giải cho bài toán pascal a4k49
Anh giải hay đó.hix.Cái này là em thách đố a4k49 chứ đâu có thách đó anh
trantiendat_a9k49- Thượng Tá
- Tên đầy đủ : Dân Chơi Phố Mẹo
Khoá học : 49
Lớp : A9
Chuyên môn : Toán - Tin
Tổng số bài gửi : 495
BDH-Coins : 58409
Danh vọng : 24
Ngày tham gia diễn đàn : 05/03/2010
Tuổi : 29
Đến từ : Mẹo City
Nghể nghiệp : Học Sinh Yêu CNTT
Phương châm sống : Phận Làm Trai Gõ Phím Bình Thiên Hạ....Chí Anh Hùng Click Chuột Định Giang Sơn
Re: Lời giải cho bài toán pascal a4k49
Bài của Thần Thoại:
có một số K hình lập phương có thể
tích 1x1x1 xếp thành một hình lập
phương rất lớn (khi đó K = N^3),
hỏi trong hình lập phương đó có bao
nhiêu hình lập phương con có thể
tích nhỏ hơn hoặc bằng khối lập phương lớn ví dụ: 1x1x1, 2x2x2,
3x3x3...
Với N là Input
Có khá nhiều cách, đây là bài toán không gian nên dùng thuật toán phân cắt thì quá phức tạp. Dưới đây là chương trình của tôi, có thể ngắn đến bất ngờ bằng thuật toán mới (đấy là tôi cho rằng như thế). Mọi người tự tìm hiểu:
program bacduyenha;
var n, kq: integer;
function tinh(var k,n: integer)
begin
k:=k+n*n*n;
if n<1 then tinh:=k else tinh:=k+tinh(n-1); end;
begin
Writeln("Nhập số n");
readln(n); kq:=0;
Writeln("Kết quả là có", tinh(kq,n), "hình lập phương");
end.
có một số K hình lập phương có thể
tích 1x1x1 xếp thành một hình lập
phương rất lớn (khi đó K = N^3),
hỏi trong hình lập phương đó có bao
nhiêu hình lập phương con có thể
tích nhỏ hơn hoặc bằng khối lập phương lớn ví dụ: 1x1x1, 2x2x2,
3x3x3...
Với N là Input
Có khá nhiều cách, đây là bài toán không gian nên dùng thuật toán phân cắt thì quá phức tạp. Dưới đây là chương trình của tôi, có thể ngắn đến bất ngờ bằng thuật toán mới (đấy là tôi cho rằng như thế). Mọi người tự tìm hiểu:
program bacduyenha;
var n, kq: integer;
function tinh(var k,n: integer)
begin
k:=k+n*n*n;
if n<1 then tinh:=k else tinh:=k+tinh(n-1); end;
begin
Writeln("Nhập số n");
readln(n); kq:=0;
Writeln("Kết quả là có", tinh(kq,n), "hình lập phương");
end.
Được sửa bởi Bạch Dương ngày 27/1/2011, 6:29 pm; sửa lần 1.
Re: Lời giải cho bài toán pascal a4k49
ơ thông minh đấy. Giải thích bài 2 giùm cái
K+1- Thiếu úy
- Tên đầy đủ : N. A. Kiên
Khoá học : 44
Lớp : A1
Chuyên môn : Sử - địa
Tổng số bài gửi : 79
BDH-Coins : 56550
Danh vọng : 11
Ngày tham gia diễn đàn : 15/05/2010
Đến từ : Truyền hình vệ tinh Kplus
Nghể nghiệp : đh dược
Re: Lời giải cho bài toán pascal a4k49
ÔI mấy ông khối A cứ lôi cái này ra mà so tài với nhau
Chứ dân khối D chúng tôi thì chịu
Chứ dân khối D chúng tôi thì chịu
Similar topics
» THử sức pascal cùng a4k49 ( 20 kí tự)
» .::A4k49::. Welcome to A4k49
» Diễn đàn .::A4k49::. Chính thức hoạt động
» Thể hiện tình yêu bằng Pascal ver1.0
» thi Đại Học: giải đáp giùm em !!
» .::A4k49::. Welcome to A4k49
» Diễn đàn .::A4k49::. Chính thức hoạt động
» Thể hiện tình yêu bằng Pascal ver1.0
» thi Đại Học: giải đáp giùm em !!
DIỄN ĐÀN HỌC SINH SINH VIÊN THPT BẮC DUYÊN HÀ :: Bắc Duyên Hà - Nhịp sống học đường :: Khóa 49 :: A4k49
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