Hỏi & đáp lập trình

Thảo luận trong 'Lập trình & Đồ hoạ' bắt đầu bởi canh en buon, 23/5/07.

  1. thanhtungtnt

    thanhtungtnt You Must Construct Additional Pylons Lão Làng GVN

    Tham gia ngày:
    23/8/06
    Bài viết:
    8,847
    Nơi ở:
    Balamb City
    Ai có cái thuật toán ShellSort với MergeSort cho mình xin miếng ?
     
  2. Bối Bối

    Bối Bối C O N T R A

    Tham gia ngày:
    20/2/06
    Bài viết:
    1,859
    Nơi ở:
    Ha Noi, Vietnam,
  3. Vdean

    Vdean Một vợ một chồng, sừng cao ba thước Lão Làng GVN

    Tham gia ngày:
    16/4/09
    Bài viết:
    1,034
    Nơi ở:
    1 Nơi ven sông Sài Gòn
    em muốn chỉnh sửa ảnh cơ bản(drop,chuyển màu,sắp xếp nhiều ảnh thành 1 ảnh,tạo khung),nhưng ko muốn dùng PhotoShop thì có pm nào nhỏ gọn có thể đáp ứng ko ạ,có ti=hì cho em xin bản rack luôn ạ:D
     
  4. ricky_martin

    ricky_martin Lão Làng Lão Làng GVN

    Tham gia ngày:
    30/12/05
    Bài viết:
    452
    Mã:
    void ShellSort(int a[],int n, int h[], int k)
    {	int	step,i,j, x,len;
    	for (step = 0 ; step <k; step++)
    	{	len = h[step];
    		for (i = len; i<n; i++)
    		{	
    			x = a[i]; 
    			j = i-len; // a[j] đứng kề trước a[i] trong cùng dãy con 
    			while ((x<a[j])&&(j>=0)// sắp xếp dãy con chứa  x 
    			{		// bằng phương pháp chèn trực tiếp 
    				a[j+len]  = a[j];
    				j = j - len;
    			}
    			a[j+len] = x;
    		}
    	}
    }
    
    Mã:
    int b[MAX], c[MAX], nb, nc;
    
    void MergeSort(int a[], int N)
    { 	
    	int	k;
    	for (k = 1; k < N; k *= 2) 
    	{
    		Distribute(a, N, nb, nc, k);
    		Merge(a, nb, nc, k);
    	}
    }
    void Distribute(int a[], int N, int &nb, int &nc, int k)
    { 	
    	int	 i, pa, pb, pc;
    	pa = pb = pc = 0;
    	while (pa < N)
    	{
    		for (i=0; (pa<N) && (i<k); i++, pa++, pb++)
    			b[pb] = a[pa];
    		for (i=0; (pa<N) && (i<k); i++, pa++, pc++)
    			c[pc] = a[pa];
    	}
    	nb = pb;	nc = pc;
    }
    void Merge(int a[],int nb, int nc,int k)
    { 	int p, pb, pc, ib, ic, kb, kc;
    	p=pb=pc=0; ib=ic=0;
    	while((nb>0)&&(nc>0))
    	{	kb=min(k,nb); kc=min(k,nc);
    		if(b[pb+ib]<=c[pc+ic])
    		{	a[p++]=b[pb+ib]; ib++;
    			if(ib==kb)
    			{ 	for(;ic<kc;ic++	a[p++]=c[pc+ic];
    				pb+=kb; pc+=kc; ib = ic=0;
    				nb-=kb; nc-=kc;
    			}
    		}
    		else
    		{	a[p++]=c[pc+ic]; ic++;
    			if(ic==kc)
    			{ 	
    				for(;ib<kb;ib++)	a[p++]=b[pb+ib];
    				pb+=kb;  pc+=kc; ib = ic=0;
    				nb-=kb; nc-=kc;
    			}
    		}
    	}
    }
    int min(int a,int b)
    {
    	if(a>b) return b;
    	else	return a;
    }
    
    
    P/s : đừng học merga sort làm gì :(
     
  5. aydada

    aydada Donkey Kong

    Tham gia ngày:
    4/10/05
    Bài viết:
    352
    có ai biết cách viết chương trình tạo group end user trong domain 1 cách tự động hoặc chương trình nâng cấp từ DHCP lên domain tự động ko
     
  6. ricky_martin

    ricky_martin Lão Làng Lão Làng GVN

    Tham gia ngày:
    30/12/05
    Bài viết:
    452
    Hồi xưa trong ổ E mình có tạo 1 folder abc, tự nhiên cách đây vài ngày k thấy nó nữa ( ko phải do hide nó đâu nhé ), hồi nãy scan máy thì nó có scan cái abc đó, mình mới thử vào computer gõ E:\abc thì nó vẫn hiện ra được cái thư mục abc đó, nhưng ko hiểu tại sao vào ổ E lại ko thấy nó, bạn nào biết chỉ mình cái
     
  7. thanhtungtnt

    thanhtungtnt You Must Construct Additional Pylons Lão Làng GVN

    Tham gia ngày:
    23/8/06
    Bài viết:
    8,847
    Nơi ở:
    Balamb City
    Có cách nào lúc load trang , trang web tự động đưa xuống vị trí cần thiết không.

    Ví dụ : Mình phân trang, trang này khá dài, phần list phân trang nằm ở tít dưới. Khi user click trang 1, họ kéo xuống và xem, xem xong, họ click trang 2 thì trang load hiện ra lại ở vị trí đầu trang, họ lại phải kéo xuống, rất phiền phức, có cách nào mà khi load trang thì lại đưa họ ngay xuống vị trí của list phân trang không ? Đừng dùng ajax nhé. Code bằng PHP hoặc HTML (nếu có) nhé, thank you.
     
  8. chimcanhcuthuydiet

    chimcanhcuthuydiet Dragon Quest

    Tham gia ngày:
    23/7/03
    Bài viết:
    1,450
    Nơi ở:
    Tui ở nhà
    Ý cậu muốn là nhảy linh hả? giống như là Wiki pedia đó phải không? .Nếu đúng thì dùng a tag

    Đây là 1 đoạn văn rất là dài
    Dài lắm....
    .......................

    <a name="VITRI1"/>
    TIEU ĐỀ VỊ TRÍ 1


    Nếu trong Browser Cậu gõ thẳng địa chỉ trang + #VITRI1 thì nó sẽ nhạy đến ngay chỗ TIÊU ĐỀ VỊ TRÍ 1

    Như vậy Link của các trang 1, 2 ,3 sẽ phải Chứa Địa chỉ link + #LISTPHANTRANG, chằng hạn thế

    Trước List Phân trang cậu phải để A tag như sau
    <A name="LISTPHANTRANG"/>
     
  9. thanhtungtnt

    thanhtungtnt You Must Construct Additional Pylons Lão Làng GVN

    Tham gia ngày:
    23/8/06
    Bài viết:
    8,847
    Nơi ở:
    Balamb City
    cám ơn bạn, được rồi.

    Bây giờ mình gặp vấn đề khác, nó cũng tức cười lắm mà không biết cách nào sửa cả. Như thế này :
    Ở trang index.php mình có viết :
    Mã:
    <a href="index.php?pagetitle=lisgame">Listgame</a>
    <?php
    	if($_GET['pagetitle']=='listgame')
    	{
    		include_once("listgame.php");
    	}
    ?>
    Giải thích tí: đoạn code trên có tác dụng là khi mình click vào dòng chữ "Listgame" thì file listgame.php chứa đầy đủ danh sách game sẽ được load đến trang index. (Chứ không phải nhảy hẳn sang trang listgame.php, theo tui làm thế này nó nhẹ nhàng hơn)

    Vấn đề là trước khi mình click. Trước khi click thì trang hiện tại vẫn có địa chỉ là index.php cho nên php ko nhận ra được pagetitle để GET. Vì vậy , mỗi khi khởi động trang index.php tui luôn bị cái lỗi này :
    Mã:
    Notice: Undefined index: pagetitle in E:\wamp\www\shopgame\index.php on line 22
    Cách giải quyết thế nào nhỉ ? chẳng lẽ thêm biến pagetitle vào url ngay trang chủ ?
     
  10. KendoSai

    KendoSai Mario & Luigi Lão Làng GVN

    Tham gia ngày:
    13/10/06
    Bài viết:
    808
    Nơi ở:
    Afrika
    Xin lỗi vì chen ngang thanhtungtnt nhưng mình có 1 bài toán về mảng 1 chiều: sắp xếp mảng sao cho các số dương đứng đầu mảng giảm dần, kế đến là các số âm tăng dần, sau cùng là các số 0. Thầy mình nói có nhiều cách làm. 1 cách là tách ra 3 mảng: âm, dương, 0. Xử lý trên từng mảng rồi gộp mảng lại. Nhưng cách này thì dài quá. Thầy nói có cách làm trực tiếp nhưng mình suy nghĩ hoài không ra. Ai giúp dùm mình. Thanks
     
  11. thanhtungtnt

    thanhtungtnt You Must Construct Additional Pylons Lão Làng GVN

    Tham gia ngày:
    23/8/06
    Bài viết:
    8,847
    Nơi ở:
    Balamb City
    Dùng QuickSort - sắp xếp phân hoạch. http://en.wikipedia.org/wiki/Quick_Sort

    PS: Còn cái câu hỏi trên xin rút lại, tìm ra cách rồi. :D
     
  12. KendoSai

    KendoSai Mario & Luigi Lão Làng GVN

    Tham gia ngày:
    13/10/06
    Bài viết:
    808
    Nơi ở:
    Afrika
    Bạn chỉ cụ thể luôn được không? Ý mình là bài đó nằm trong bài tập C++. Sử dụng hàm trong mảng :)
     
  13. Funnnny

    Funnnny Will Code Python For FOOD Moderator

    Tham gia ngày:
    2/8/05
    Bài viết:
    9,406
    Nơi ở:
    Hanoi, Vietnam
    Đơn giản, sắp xếp như bình thường, dùng bất kì thuật toán sắp xếp nào bạn có
    Tuy nhiên khi so sánh 2 số a và b, thì ko so sánh a < b như bt, mà trả về hàm func(a,b). trong hàm đó, bạn tự đặt phương án so sánh của mình như yêu cầu đề bài ( số dương > số âm > số 0 )
    .
    ___________Auto Merge________________

    .
    Đơn giản, sắp xếp như bình thường, dùng bất kì thuật toán sắp xếp nào bạn có
    Tuy nhiên khi so sánh 2 số a và b, thì ko so sánh a < b như bt, mà trả về hàm func(a,b). trong hàm đó, bạn tự đặt phương án so sánh của mình như yêu cầu đề bài ( số dương > số âm > số 0 )
     
  14. thanhtungtnt

    thanhtungtnt You Must Construct Additional Pylons Lão Làng GVN

    Tham gia ngày:
    23/8/06
    Bài viết:
    8,847
    Nơi ở:
    Balamb City
    Cấu trúc trang web của mình thế này :
    Chỉ có 1 file index.php bên ngoài, còn các chức năng khác sẽ được load lên index.php dựa vào biến pagetitle trên url.

    index.php gọi 1 file process.php (include_once ("process.php"))
    trong file process.php sẽ gọi dần từng chức năng tùy theo biến pagetitle trên url.
    VD: nếu url là index.php?pagetitle=listgame thì sẽ thực hiện chức năng listgame.
    (if($_GET[pagetitle]=='listgame')include_once("listgame.php"))

    Vấn đề nảy sinh khi làm đến chức năng search. Chỉ search đơn giản thôi, nhưng có phân trang.
    <form mình đặt ở index.php action="index.php?pagetitle='quicksearch'" >
    input 1 text ở đây để gõ tên và 1 button search type submit
    </form>

    bởi vì làm theo cấu trúc như trên nên sau khi gõ, vd gõ "fifa", click search, index.php gọi process.php, process.php gọi quicksearch.php.

    Trong quicksearch.php mình tạo một biến $key = $_POST['name'] rồi tạo một truy vấn $sql có điều kiện là $key.

    Mọi việc diễn ra ở trang đầu không có gì, nó show ra được.

    Nhưng khi nhảy qua trang 2, lúc này ô text ở form là ô trắng (vì khi click search do action=index.php... nên nó đã biến mất từ "fifa" rồi), vì vậy khi qua đến trang quicksearch.php nó không nhận ra $_POST['name'] nữa nên $key bị lỗi và vì thế câu truy vấn cũng bị lỗi.

    Mình đã cố gắng sửa chữa nhưng mãi không được. Mong anh em nghĩ cách, tại đang làm theo cấu trúc này rồi nên phải theo thôi.

    Nếu $key và $sql chỉ được tạo một lần và những lần load sau ko bị tạo lại thì hay quá, nhưng mình lại không biết code ra sao. Ai chỉ mình tí.
     
  15. snow angel

    snow angel Dragon Quest

    Tham gia ngày:
    28/8/04
    Bài viết:
    1,228
    Trước đây mình nhớ có ai đó post 1 đoạn code, nếu paste đoạn đó vào ô address của trình duyệt thì có thể tự do chỉnh sửa cái page mình đang xem :D Tất nhiên là chỉ máy mình thấy thôi.
    Ai nhớ post lại giùm mình với :D Cảm ơn
     
  16. teen_gamer124

    teen_gamer124 T.E.T.Я.I.S

    Tham gia ngày:
    8/7/08
    Bài viết:
    669
    Nơi ở:
    TpHồ Chí Minh
    Bi giờ mình đang bắt đầu học lập trình, có cái bài sau nghĩ mãi mà cứ làm sai: Nhập vào một dãy số bất kỳ, cho ra dãy số đã được sắp xếp tăng dần từ nhỏ đến lớn và dãy số tương tự giảm dần đã được sắp xếp từ lớn đến nhỏ, bài làm của mình đây, có gì sai ae chỉnh giùm nhé.
    Mã:
    #include<stdio.h>
    #include<conio.h>
    void td(int &);
    int i;
    void td(int ia[])
    {
    	int k,z;
    	while(ia[0]>=ia[1] ^ ia[i-2]>=ia[i-1] ^ ia[1]>=ia[i-1])
    	             for(z=0;z<=i-1;z++)
                                          if(ia[z]>=ia[z+1])
               	                         {	
    			              k=ia[z+1];
    			              ia[z+1]=ia[z];
    			              ia[z]=k;
    	                          }
                 printf("Tu nho den lon.\n");
    	for(z=0;z<=i-1;z++)
    		printf("%4d", ia[z]);
    	printf("\n");
    	printf("Tu lon den nho.\n");
    	for(z=i-1;z>=0;z=z-1)
    		printf("%4d", ia[z]);
    }
    
    void main()
    {
    	clrscr();
    	printf("Nhap vao so luong so tu nhien can xep thu tu.\n");
    	scanf("%d", &i);
    	while(i<=1)
    	{
    		printf("Nhap so lon hon 1.\n");
    		scanf("%d", &i);
    	}
    	int ia[50],u;
    	for(u=0;u<=i-1;u++)
    		{
    			printf("Nhap vao so hang thu %d.\n", u+1);
    			scanf("%d", &ia[u]);
    		}
    	td(ia);
    	getch();
    }						
    
     
  17. Bối Bối

    Bối Bối C O N T R A

    Tham gia ngày:
    20/2/06
    Bài viết:
    1,859
    Nơi ở:
    Ha Noi, Vietnam,
    nên chia làm 3 function như sau:
    - hàm nhập mảng số //void arry(int arr[],int n)
    - hàm sắp xếp tăng //void sapxep_tang(int arry[],int n)
    - hàm sắp xếp giảm//void sapxep_giam(int arry[],int n)
    nếu thấy cần thì thêm hàm display để hiển thị mảng. void display(int arry[],int n)

    sắp xếp thì có thể dùng thuật toán bubble sort cho đơn giản
    main như thế này:
    - nhập số phần tử mảng n
    - gọi hàm nhập mảng
    - sắp xếp tăng
    - hiển thị
    - sắp xếp giảm
    - hiển thị

    bạn thử làm lại theo cấu trúc như trên xem
     
  18. Funnnny

    Funnnny Will Code Python For FOOD Moderator

    Tham gia ngày:
    2/8/05
    Bài viết:
    9,406
    Nơi ở:
    Hanoi, Vietnam
    little trickier: sapxep(int array[], int n, SapXepType (tang,giam) ) ;)
     
  19. Bối Bối

    Bối Bối C O N T R A

    Tham gia ngày:
    20/2/06
    Bài viết:
    1,859
    Nơi ở:
    Ha Noi, Vietnam,
    biết chứ :)) nhưng cậu kia còn newb viết tường minh thế cho dễ hiểu
    còn về type, chỉ có tăng và giảm thì dùng bool sapxep_type là ok
     
  20. Funnnny

    Funnnny Will Code Python For FOOD Moderator

    Tham gia ngày:
    2/8/05
    Bài viết:
    9,406
    Nơi ở:
    Hanoi, Vietnam
    Dạo này quen dùng Python, ví dụ như hàm trên có thể pass cả pointer đến function để so sánh nữa cơ :)).
    sort( func_compare, *a ) ;)
    Thích viết cái func kia thế nào cũng được
     

Chia sẻ trang này