PDA

View Full Version : Nhờ Sư Huynh giúp em câu lệnh Repeat vs Until !!



haclong3342
05-11-2009, 19:12
Dạ ,Mong các sư huynh giúp em giải bài này với câu lệnh Repeat vs Until trong TurboPascal!!!!
Đề đây mấy huynh ơi : Tính tổng S , với số a là số nguyên và (a > 2)
S=1/a + 1/a+1 + 1/a+2 +....+1/a+N+....
Lưu Ý : 1/a+N < 1/10.000 thì ngưng
bài toán trên phải áp dụng câu lệnh :" Repeat và Until".

-----Mong các huynh giúp em T_T -----------------

lehang_gb1
06-11-2009, 21:05
Dạ ,Mong các sư huynh giúp em giải bài này với câu lệnh Repeat vs Until trong TurboPascal!!!!
Đề đây mấy huynh ơi : Tính tổng S , với số a là số nguyên và (a > 2)
S=1/a + 1/a+1 + 1/a+2 +....+1/a+N+....
Lưu Ý : 1/a+N < 1/10.000 thì ngưng
bài toán trên phải áp dụng câu lệnh :" Repeat và Until".

-----Mong các huynh giúp em T_T -----------------

Bạn viết đề chưa chuẩn rồi kìa
Bài này đơn giản thồi thuật toán chưa có gì, chủ yếu là ta sử dụng đúng cấu trúc lặp Repeat...until, câu lệnh ghép bạn ah. Bạn cần hiểu hoạt động của lệnh Repeat...until

S=1/a + 1/(a+1) + 1/(a+2) +....+1/(a+N)+....
Lưu Ý : 1/(a+N) < 1/10.000 thì ngưng
Phẩi có đóng ngoặc ở mẫu mới chuẩn

[=========> Bổ sung bài viết <=========]



Var N,a:integer;
S:real;
Begin
write('Nhap vao so nguyen a,a>2:'); Readln(a);
S:=0; N:=0;
Repeat
S:=S+1/(a+N);
N:=N+1;
until 1/(a+N)<0.00001;
write('Tong S=',S:5:2);
Readln
End.

nvd91
06-11-2009, 22:03
Bạn viết đề chưa chuẩn rồi kìa
Bài này đơn giản thồi thuật toán chưa có gì, chủ yếu là ta sử dụng đúng cấu trúc lặp Repeat...until, câu lệnh ghép bạn ah. Bạn cần hiểu hoạt động của lệnh Repeat...until

S=1/a + 1/(a+1) + 1/(a+2) +....+1/(a+N)+....
Lưu Ý : 1/(a+N) < 1/10.000 thì ngưng
Phẩi có đóng ngoặc ở mẫu mới chuẩn

[=========> Bổ sung bài viết <=========]



Var N,a:integer;
S:real;
Begin
write('Nhap vao so nguyen a,a>2:'); Readln(a);
S:=0; N:=0;
Repeat
S:=S+1/(a+N);
N:=N+1;
until 1/(a+N)<0/00001;
write('Tong S=',S:5:2);
Readln
End.


lehang_gb1 bạn có nick Yh không. Cảm ơn bạn nha.

[=========> Bổ sung bài viết <=========]

Mình sai ở đâu trong bài toán cổ.. Vì không viết được bài mới nên mình mới Post ở đây

program baitoangacho;
uses crt;
var soga, socho : integer;
begin
clrscr;
readln(soga,socho);
soga:=0;
socho:=0;
repeat
soga := soga +1;
socho := socho +1;
until
(2*soga + 4*socho) = 100 and (soga + socho) = 36;
writeln('So ga la: ',Soga, ' so cho la : ',socho);
readln
end.

haclong3342
07-11-2009, 11:24
thankz huynh Lehang nhiu` lắm lắm :D:D

[=========> Bổ sung bài viết <=========]

Huynh LeHang oi, bài toán of em nếu khai báo thư viện ( " Uses -Clrscr") dc ko? vs lại cái khúc S:=0 ; N:=0 là ý nghĩa gì vậy bác???hiz

lehang_gb1
08-11-2009, 13:20
S:=0; N:=0 là khởi tạo giá trị ban đầu cho S vì có thể ở các chương trình trước S, N nhận giá trị khác. Nếu không khởi tạo giá trị ban đầu thì chương trình có thể trả lại kết quả không đúng.
Nếu bạn khai báo thư viện ues crt; ở đầu chương trình sau khai báo tên thì trong thân chương trình sau từ khóa Begin là lệnh clrscr;

[=========> Bổ sung bài viết <=========]

Bài toán cổ vừa gà vừa chó bạn chỉ cần dùng vòng lặp For là được
Tổng 100 chân nên số chó tối đa là 100/4 = 24 con


Var ga,cho:integer;
Begin
For cho:=1 to 24 do
begin
ga:=36-cho;
if cho*4+ga*2=100 then
Begin
Writeln('So ga la:',ga);
Writeln('So cho la:',cho);
end;
end;
Readln
End.