Go Back   VN-Zoom forum > Chia sẻ kiến thức > Lập trình > Pascal | C/C++

 


Server Counter Strike 1.6 miễn phí cho thành viên VZ

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 19-04-2008, 15:44   #31
Búa Đá
 
LamHoa's Avatar
 
Tham gia: Jan 2008
Bài: 52
VZD: 692
Điểm: 5/5 bài viết
Default

Trích:
giangmeo View Post
bạn gọi t[i] là tổng các ước của i (trừ đi i nhé) rồi phần còn lại thì khá là dơn giản.
này nhé:
Code:
   for i:=1 to n do
      begin
           for j:=2 to i-1 do
              if i mod j =0 then
                 begin
                     t[i]:=t[i-j]+j;
                     break;
                 end;  
            t[i]:=1;
           if t[i]=i then
              write(i,'la so hoan hao');   end;
đại khái là thế bạn có thế tối ưu thêm
Đoạn màu đỏ mình thấy ko ổn lắm
LamHoa vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-04-2008, 10:59   #32
Rìu Bạc
 
vietanh279's Avatar
 
Tham gia: Jan 2008
Đến từ: Hà Nội
Bài: 363
VZD: 5.908
Điểm: 211/65 bài viết
Send a message via Yahoo to vietanh279
Default

đúng ra nó phải là thế này, nhưng dù sao cũng rất cảm ơn bạn giangmeo nha

Code:
t[1] := 0;
for N:=2 to 1000 do t[N] := 1;
for N:=3 to 1000 do
    begin
        for i:=2 to (N div 2) do
            if (N mod i = 0) then
                begin
                    t[N] := t[N-i] + i;
                    break;
                end;
        if t[N] = N then writeln(N);
    end;
__________________
Let's press and all best things will come to you


Life is Football.
Football is MANCHESTER UNITED


GET OUT MANU ! SLAVE, RONALDO


http://manutd.com.vn/
vietanh279 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-04-2008, 16:03   #33
Búa Đá
 
giangmeo's Avatar
 
Tham gia: Mar 2008
Bài: 45
VZD: 666
Điểm: 0/0 bài viết
Default

uhm tớ có hơi nhầm ở chổ đó t[i]=1 có nghỉa i la nguyên tố đấy
giangmeo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-04-2008, 22:09   #34
Búa Đá Đôi
 
so_0_lanh_lung's Avatar
 
Tham gia: Mar 2008
Đến từ: Huế
Bài: 77
VZD: 1.286
Điểm: 2/2 bài viết
Default

Code:
nhập n từ bàn phím tìm các số hoàn hảo từ 1 -- > n
bài làm em như sau.. tuy nhiên sao nó vẫn nhập n xong chả in ra màn hình ji cả

Program HH;
var i,j,s,n : integer;
  begin
  write(' nhap n '); readln(n);
  s:=0;
 for i:=2 to n do
    begin
    for j:=1 to n-1 do
      begin
      if (i mod j = 0 ) then s:=s+j;
      end;
      if s=i then write(i:3);
end;
readln;
end.
so_0_lanh_lung vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-04-2008, 09:02   #35
Rìu Sắt Đôi
 
thienthan's Avatar
 
Tham gia: Nov 2007
Bài: 280
VZD: 4.092
Điểm: 74/60 bài viết
Send a message via Yahoo to thienthan
Default

Code:
Program HH;
var i,j,s,n : integer;
begin
  write(' nhap n '); readln(n);
 for i:=2 to n do
  begin
    s:=0;
    for j:=1 to n-1 do {Chỉ cần kiểm tra tới n/2 thì được rồi}
      begin
         if (i mod j = 0 ) then s:=s+j;
      end;
   if s=i then write(i:3);
  end;
readln;
end.
Phải gán lại s=0 trong vòng lặp for chứ
thienthan vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Thành viên đã cám ơn bài viết này của thienthan:
so_0_lanh_lung (25-04-2008)
Old 25-04-2008, 11:28   #36
Búa Đá Đôi
 
so_0_lanh_lung's Avatar
 
Tham gia: Mar 2008
Đến từ: Huế
Bài: 77
VZD: 1.286
Điểm: 2/2 bài viết
Default

cám ơn nhiều hiểu rồi...Topic này có dài quá hko nhỉ
so_0_lanh_lung vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-04-2008, 12:43   #37
Búa Đá
 
giangmeo's Avatar
 
Tham gia: Mar 2008
Bài: 45
VZD: 666
Điểm: 0/0 bài viết
Default

có thể cho biết chính xác về giử liệu bài này khi chạy trên pascal khong
giangmeo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-04-2008, 07:26   #38
Búa Đá Đôi
 
so_0_lanh_lung's Avatar
 
Tham gia: Mar 2008
Đến từ: Huế
Bài: 77
VZD: 1.286
Điểm: 2/2 bài viết
Default

Bai1: dãy a={a1,a2,...an} số thực viết chương trình thực hiện
-Nhập n và các phần tử của a. In dãy nhập ra màn hình {Phần này mình làm được rồi}
-Tìm giá trị nhỏ nhất lớn nhất của mảng {Phần này mình làm đc rôi}
-Tìm giá trị lớn thứ hai và giá trị nhỏ thứ 2.
-Tìm và in ra số dương nhỏ nhất và số âm lớn nhất
-Tìm số chắn nhỏ nhất
-Tính trung bình cộng của các số âm.
so_0_lanh_lung vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-04-2008, 09:47   #39
Búa Đá Đôi
 
so_0_lanh_lung's Avatar
 
Tham gia: Mar 2008
Đến từ: Huế
Bài: 77
VZD: 1.286
Điểm: 2/2 bài viết
Wink

Trích:
giangmeo View Post
có thể cho biết chính xác về giử liệu bài này khi chạy trên pascal khong
Đúng là hko thể đc bạn có thể sửa lại giúp không cám ơn
so_0_lanh_lung vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-04-2008, 09:49   #40
Rìu Sắt Đôi
 
thienthan's Avatar
 
Tham gia: Nov 2007
Bài: 280
VZD: 4.092
Điểm: 74/60 bài viết
Send a message via Yahoo to thienthan
Default

Trích:
so_0_lanh_lung View Post
-Tìm giá trị lớn thứ hai và giá trị nhỏ thứ 2.
-Tìm và in ra số dương nhỏ nhất và số âm lớn nhất
-Tìm số chắn nhỏ nhất
-Tính trung bình cộng của các số âm.
Trích:
-Tìm giá trị lớn thứ hai và giá trị nhỏ thứ 2.
Cái đầu tiên có một số cách:
1.Sau khi bạn tìm số lớn nhất thì bỏ số đó đi và tìm số lớn nhất của dãy mới (tương tự với số nhỏ nhất.).
2.Sắp xếp dãy trước rồi tìm thấy ngay (cách này được đánh giá không hiệu quả).
3.Bạn tìm số lớn nhất ở vị trí nào đó giờ viết câu lệnh vẫn dạng ấy nhưng bỏ qua số lớn nhất đã tìm được.
Code:
if a[max]<a[i] and max <> maxold then max:=i;
Làm tương tự với số bé hơn..

Trích:
-Tìm số chắn nhỏ nhất
Bạn cần thêm một biến sác nhận xem đã tìm được số chẵn nào chưa.
Code:
var
chan:boolean;
chan:=false;
for i:=1 to n do
if chan:=false then
if a[i] mod 2 = 0 then
begin
max:=i;
chan:=true;
end;
else
if a[i] mod 2 = 0 and a[max]<a[i] then max:=i;
Bạn làm tương tự với số dương và số âm.
Phần trung bình cộng số theo điều kiện.
Code:
s:=0;
soluongso:=0;
for i:=1 to n do if a[i] thỏa mãn điều kiện then
begin
s:=s+a[i];
inc(soluongso);
Lưu ý các code mình viết chỉ mang tính cấu trúc có thể chưa đúng chính tả.
thienthan vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Thành viên đã cám ơn bài viết này của thienthan:
so_0_lanh_lung (29-04-2008)
Old 30-04-2008, 08:40   #41
Búa Đá Đôi
 
so_0_lanh_lung's Avatar
 
Tham gia: Mar 2008
Đến từ: Huế
Bài: 77
VZD: 1.286
Điểm: 2/2 bài viết
Default

giải giúp em bài này : dùng mảng
tìm trong dãy một dãy con tăng dần dài nhất ( có số phần tử lớn nhất) và in ra màn hình dãy con đó
so_0_lanh_lung vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 30-04-2008, 15:40   #42
Rìu Sắt Đôi
 
thienthan's Avatar
 
Tham gia: Nov 2007
Bài: 280
VZD: 4.092
Điểm: 74/60 bài viết
Send a message via Yahoo to thienthan
Default

Code xong cấu trúc cho bạn rồi. Mình chỉ làm phần tìm kiến và in thôi. Phần nhập bạn tự làm nhé!
Code:
program timdaycon;
uses crt, dos;
type
	mang = array[1..100] of real;
var
	n, i, start, l , start1, l : byte;
	{khai bao them bien neu can}
begin
	{tu viet lay phan nhap du lieu nhe}
	start:=1;
	l:=0;
	start1:=1;
	l1:=0;
	for i:=1 to n - 1 do
		begin
			if a[i] > a[i+1] then
				begin
					if l1 > l then
						begin
							l:= l1;
							start:= start1;
						end;
					l1:= 0;
					start1:= i + 1;
				end
			else
				Inc(l1);
		end;
	{In du lieu}
	For i:= start to start + l do
		Writeln('a[', i, '] = ', a[i]);
	Readln;
end;
thienthan vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Thành viên đã cám ơn bài viết này của thienthan:
so_0_lanh_lung (06-05-2008)
Old 30-04-2008, 17:39   #43
Búa Đá
 
giangmeo's Avatar
 
Tham gia: Mar 2008
Bài: 45
VZD: 666
Điểm: 0/0 bài viết
Default

ôi dài thế cơ ah ma bài này cần gì mảng nhỉ đọc file là dủ
giangmeo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-05-2008, 12:23   #44
Búa Đá Đôi
 
so_0_lanh_lung's Avatar
 
Tham gia: Mar 2008
Đến từ: Huế
Bài: 77
VZD: 1.286
Điểm: 2/2 bài viết
Default

em chưa hiểu thuật toán có thể giải thích thuật toán cho em được không cám ơn
mình không hiểu dãy con là gì cả

thay đổi nội dung bởi: so_0_lanh_lung, 03-05-2008 lúc 12:32.
so_0_lanh_lung vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 03-05-2008, 16:20   #45
Rìu Sắt Đôi
 
thienthan's Avatar
 
Tham gia: Nov 2007
Bài: 280
VZD: 4.092
Điểm: 74/60 bài viết
Send a message via Yahoo to thienthan
Default

Trích:
so_0_lanh_lung View Post
giải giúp em bài này : dùng mảng
tìm trong dãy một dãy con tăng dần dài nhất ( có số phần tử lớn nhất) và in ra màn hình dãy con đó
Tức là coi như cái dãy của bạn có thể chia nhỏ thành các dãy nhỏ hơn. Nhưng dãy này phải thỏa mãn điều kiện là nó tăng đần. Tất nhiên các phần tử lấy ra liên tiếp chứ không được ngắt quãng đâu.
VD: 1,2,3,4,2,0,7,5,9,3,4,5,6,...
thì các dãy con
1
2
3
1,2,3,4
..
Tất nhiên ta chỉ khảo sát dãy con dài nhất chứ không quan tâm dãy con chưa đạt giới hạn tức là phải không thể dài hơn nữa bạn đã hiểu chưa?
thienthan vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Thành viên đã cám ơn bài viết này của thienthan:
so_0_lanh_lung (04-05-2008)
Trả lời

Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt
Trackbacks are Tắt
Pingbacks are Tắt
Refbacks are Tắt
Chuyển đến


Múi giờ GMT +7. Hiện tại là 08:00.


Powered by vBulletin® Version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
vBCredits v1.4 Copyright ©2007 - 2008, PixelFX Studios
Từ điển được cung cấp bởi VDict.com - Hosting được tài trợ bởi Rao vặt 123