Read-only archive. Login and posting are unavailable.
View Full Version : Cho hỏi 2 bài tập Pascal
nguyenhoang0112
21-04-2010, 20:01
Tình hình là ngày mai em thi học kì ( lớp 11):dreaming: bọn bạn ở lớp nó moi dc cái đề rồi, ngoài trắc nghiệm ra có 2 bài tập tự luận về sử dụng chương trình con (procedure và function) mà em thì ko có khái niệm gì về mấy cái cửa nợ này cả :pudency: nên lên đây nhờ các bro giải giúp theo cú pháp của Borland Pascal 7.0 :chaymau:
Bài 1: đọc 2 cạnh a1,a2 của 2 hình vuông từ file A.INP
viết chương trình tính tổng diện tích 2 hình vuông đó và ghi kết quả vào file "B.OUT"
Bài 2: đọc 4 số a,b,c,d ( a,c,,b,d <= 250) từ file C.INP
Viết chương trình tính tổng max(a,b) + max(c,d) và ghi kết quả vào file Luu.out
Nhờ giúp ạ, xin để cho em thớt này đến 12h đêm nay :)
mrdam1001
21-04-2010, 20:03
Cái này mà viết C hay C++ thì mình giúp chú đc chứ Pascal thì hồi lớp 11 mình cũng ngu và đi đạo code của mấy thằng khác thôi.
bocapgiay.
21-04-2010, 20:04
Bạn sang benhvientinhoc ý có box Pascal chuyên giúp lớp 11 đó :D
ở Voz chả ai giúp đâu :| kinh nghiệm của mình năm ngoái rồi =)) lập box hỏi toàn 1 câu " cái này dễ tự làm đi " rõ nản :((
nguyenhoang0112
21-04-2010, 20:05
em cũng biết là cái Borland Pascal này bây giờ rất ít trường dùng nên khó hỏi nhưng ko còn cách nào khác, cuối kì đang nỗ lực để dc tiên tiến --> dc thưởng 1 em laptop :sogood:
mrdam1001
21-04-2010, 20:24
:brick: Mình gõ đại , bạn về chỉnh sửa tý vì mình tuy học CNTT nhưng nói thật là éo bít Pascal , chỉ biết C, C++, C# với Java thôi. :brick:
Program HinhVuong;
Uses CRT;
Var
a : Interger;
S: Interger;
F: File Of Byte;
FileName: String;
Begin
ClrScr;
Write('Ten cua file can doc ?'); { bạn đưa file A.inp vào}
Readln(FileName);
Assign(F,FileName);
Assign(F2,"Output.txt');
Reset(F);
While Not EOF(F) Do
Begin
Read(F,a); { đọc 1 phần tử rồi vứt vào a }
S:= a*a;
ReWrite(F2);
Write(F2,a);
Write(F2,S);
End
Close(F2);
Close(F);
End;
Làm như bác mrdam kia là được kìa , chỉ có thay cái đoạn Do trong lặp While.. do bằng cái Procedure hoặc Function đã dựng trước đấy thôi. Chịu khó Google thì đầy, cái này dễ mà :shame:
nhocyeunhac
21-04-2010, 20:30
http://vozforums.com/showthread.php?t=926644
các bác giúp hộ em luôn đi =D
nguyenhoang0112
21-04-2010, 20:30
:brick: Mình gõ đại , bạn về chỉnh sửa tý vì mình tuy học CNTT nhưng nói thật là éo bít Pascal , chỉ biết C, C++, C# với Java thôi. :brick:
Program HinhVuong;
Uses CRT;
Var
a : Interger;
S: Interger;
F: File Of Byte;
FileName: String;
Begin
ClrScr;
Write('Ten cua file can doc ?'); { bạn đưa file A.inp vào}
Readln(FileName);
Assign(F,FileName);
Reset(F);
While Not EOF(F) Do
Begin
Read(F,a); { đọc 1 phần tử rồi vứt vào a }
S:= a*a;
Writeln('Do dai canh :',a);
Writeln('Dien Tich :',S);
End
Close(F);
End;
cảm ơn nhiều:beauty::beauty::beauty::beauty:
Em sẽ về mod lại
mrdam1001
21-04-2010, 20:33
cảm ơn nhiều:beauty::beauty::beauty::beauty:
Em sẽ về mod lại
Mình mod lại 1 tý rồi , xuất ra file chứ ko phải màn hình. :haha:
Ebook căn bản Pascal nè ku , đem về luyện đi , còn kịp .
http://www.mediafire.com/?raziiz2ybq3
cảm ơn nhiều:beauty::beauty::beauty::beauty:
Em sẽ về mod lại
Cái ngôn ngữ bựa nhất thế giới mà cũng có ng hỏi và chỉ à :brick::brick::brick::brick:
nguyenhoang0112
21-04-2010, 20:45
ko biết viết thế này dc ko :)
program bt1;
uses crt;
var a1,a2: integer;
T,S1,S2: word;
F: text;
Procedure S(x: integer) :integer;
{ở đây hình như phải khai báo cái gì đó em ko biết}
S:=x*x;
end;
Begin
assign(F,'A.INP');
reset(F);
readln(F,a1,a2);
S1:=S(a1); {cái này hình như là bước gọi thủ tục S trên kia để tinh S1,S2 theo a1,a2}
S2:=S(a2);
T:=S1+S2;
Rewrite(F,'B.OUT');
writeln(F,'tổng diện tích 2 hình vuông là:',T);
close(F);
end.
:beauty::beauty::beauty::beauty: Mệt quá
ơ sao hôm nay toàn hỏi về pascal ko thế ko biết nhỉ :sad:
Trong sách giáo khoa lớp 11 có hướng dẫn cánh nhập xuất từ file bên ngoài, bạn tự đọc là biết thôi mà.
Còn vấn đề viết hàm chắc bạn cũng biết cách viết, nhưng ko biết viết hàm gì thôi, mình nói mấy hàm bạn cần viết chắc được. Bỏ pascal từ khi học xong lớp 9, tới h còn nhớ j đâu :D
Bài 1:
function dientich(n : integer) : integer;
begin
dientich:=n*n;
end;
begin
{lấy dữ liệu cạnh 2 hình vuông từ file nha, mình ko nhớ }
write('tong = ', dientich(a1) + dientich(a2) );
readln;
end.
bài 2
function max(a: integer; b:integer):integer;
begin
if a>b then
max:=a
else
max:=b;
end;
begin
{ lấy 4 số từ file }
if ((a<250) and (b<250) and (c<250) and (d<250)) then
write('tong max = ', max(a,b) + max(c,d) )
else
write('du lieu ko hop le');
readln;
end.
ps: mình dùng write xuất ra màn hình, đọc sách để biết cách xuất ra D
vBulletin® v3.8.0, Copyright ©2000-2026, Jelsoft Enterprises Ltd.