Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 16 kết quả

Đề tài: Viết đệ quy in đảo ngược 1 xâu kí tự ???

  1. #1
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    2,993

    Wink Viết đệ quy in đảo ngược 1 xâu kí tự ???

    xin giải hộ e bài tập này với Viết đệ quy in đảo ngược 1 xâu kí tự ???


    em xin được cám ơn trước

  2. #2
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,918

    Rùi, mình giúp bạn bài này, nhưng mình sẽ cho bài tương tự, phải tự làm đấy nhé !
    PHP Code:
    #include <iostream>
    void ReverseString()
    {
        
    char X;
        
    std::cin.get(X);
        if ( 
    == '\n')
            return;
        
    ReverseString();
        
    std::cout << X;
    }

    int main()
    {
        
    std::cout << "Enter a string : ";
        
    ReverseString();
        return 
    0;

    Viết 1 hàm đệ qui kiểm tra xem 1 chuỗi đọc xuôi và ngược có phải là giống nhau khộng

  3. #3
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    2,993

    cám ơn bạn

    Bạn có thể phân tích giải thuật trên hoặc change code sang pascal được không ?

    nếu được thì xin cám ơn
    nếu ko được thì xin lỗi vì đã làm fiền

    (không phải xì pan đâu e chỉ muốn học hỏi thôi mong mod đừng quy tội nhé)

  4. #4
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,918

    Bạn có thể phân tích giải thuật trên
    Nó là đệ qui, bạn cứ chạy tay từ trên xuống là ok ! Cin.get() là hàm lấy 1 kí tự vào từ chuỗi X.
    hoặc change code sang pascal được không ?
    câu trả lời là không ^^!
    Đây là forums C mà bạn đòi viết pascal thì mình cũng chịu. Với lại nếu bạn đang học C or C++ thì nên theo luôn mới đúng chứ !Theo mình thấy giờ chẳng còn mấy ai dùng pascal đâu ! Với lại nếu bạn hiểu ý tưởng của nó thì bạn chuyển cũng không có gì khó khăn!
    nếu ko được thì xin lỗi vì đã làm fiền
    Chắc chắn là không phiền, you're very welcome !
    Đã được chỉnh sửa lần cuối bởi rox_rook : 03-12-2007 lúc 11:28 AM.

  5. #5
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    2,993

    thế cho mình hỏi đoạn code trên có phải như vầy ko:



    inkýtự
    nếu a[i] không phải kí tự cuối thì inkítự(i-1);
    hiển thị a[i]

  6. #6
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,918

    Mặc định Viết đệ quy in đảo ngược 1 xâu kí tự ???

    inkýtự
    nếu a[i] không phải kí tự cuối thì inkítự(i-1);
    hiển thị a[i]
    Suy nghĩ của bạn về đệ qui ở đây là hoàn toàn chính xác !
    Tuy nhiên có lẽ bạn chưa biết hàm cin.get() thì phải ! Mình sẽ giải thích chỗ này .
    Hàm này nó đọc 1 kí tự từ người dùng nhập vào từ bàn phím và nó lưu kí tự này vào X;
    Dòng :
    Code:
     std::cin.get(X);
    là tương đương với dòng :
    Code:
     X = std::cin.get();
    Vậy nó sẽ hoạt động như sau :
    -Đọc vào 1 character, sau đó kiểm tra nếu không phải '\n' thì nó chạy xuống dòng
    Code:
     
    ReverseString();
    Dòng này lại đọc 1 kí tự kế, cho đến kí tự cuối '\n' lúc này nó mới in ra . Cứ giống như nó bung ra từ từ vậy, đó là tại sao nó in ra ngược với mình nhập vào .

    Ví dụ nhập vào : A B C D E thì nó hoạt động như cái hình mình vẽ đó, cái này giống như stack vậy, nhưng bạn mới học thì có lẽ không cần quan tâm stack là gì, cứ hiểu quy chế hoạt động của nó là sẽ ok ! Mình sẽ đưa thêm vài ví dụ về đệ qui cho bạn sau!

  7. #7
    Ngày gia nhập
    06 2007
    Nơi ở
    một nơi xa xăm...
    Bài viết
    125

    Ít nhất bạn ấy cũng đã biết pascal thì chắc cũng hiểu về stack.Cơ chế của nó là LIFO (last in first out) đó bạn

  8. #8
    Ngày gia nhập
    12 2008
    Bài viết
    1

    _http://cnx.org/content/m17596/latest/


    Viết chương trình nhập vào một xâu ký tự từ bàn phím. Tìm xâu đảo ngược của xâu đó rồi in kết quả ra màn hình theo 2 cách: Đệ qui và không đệ qui.

    Ý tưởng:

    - Nếu xâu St có 1 ký tự thì xâu đảo = St.

    - Ngược lại: Xâu đảo = Ký tự cuối + Đệ qui(Phần còn lại của xâu St).
    Code:
    Uses Crt;   
    Var  St:String;
    {Giải thuật không đệ qui}
    
    Function XauDao(St:String):String;
    Var  S:String;
          i:Byte;
    Begin
    S:=’’;
    For i:=Length(St) DowTo 1 Do S:=S+St[i];
    XauDao:=S;
    End;
    
        
    {Giải thuật đệ qui}
    
    Function DeQui(St:String):String;
    Begin
    If Length(St)<=1 Then DeQui:=St
     Else DeQui:=St[Length(St)] + DeQui(Copy(St,1,Length(St)-1));
    End;
    
    Begin
    Write(‘Nhap xau St: ‘); Readln(St);
    Write(‘Xau dao nguoc: ‘, XauDao(St)); 
    Readln;
    End.

  9. #9
    Ngày gia nhập
    10 2009
    Nơi ở
    hà nội
    Bài viết
    8

    Mặc định hàm đệ quy đảo ngược một số

    tương tự mình có chương trình :
    viết hàm đệ quy DAONGUOC(int n)in ra các số của n theo thứ tự đảo ngược thì làm thế nào hả bạn .
    giúp mình nhé.cảm ơn bạn nhiều







    [COLOR="Black"]ĐI KHÔNG ĐỔI TÊN NGỒI KHÔNG ĐỔI HỌ TA CHÍNH LÀ TA[/COLORƯ

  10. #10
    Ngày gia nhập
    10 2009
    Nơi ở
    hà nội
    Bài viết
    8

    tương tự mình có chương trình :
    viết hàm đệ quy DAONGUOC(int n)in ra các số của n theo thứ tự đảo ngược thì làm thế nào hả bạn .
    giúp mình nhé.cảm ơn bạn nhiều







    ĐI KHÔNG ĐỔI TÊN NGỒI KHÔNG ĐỔI HỌ TA CHÍNH LÀ TA

Các đề tài tương tự

  1. Lập trình C hai cách viết trong bài viết này có gì khác không, nếu khác mọi người giải thích giúp với
    Gửi bởi letung94 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 02-01-2013, 07:29 AM
  2. muốn viết code cho 1 button nằm trong girdview thì viết ở đâu
    Gửi bởi thuan trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 14-09-2011, 01:08 PM
  3. Viết Giao Diện Phần Mềm bằng Flash, Core viết = C
    Gửi bởi trần trân trong diễn đàn Thắc mắc lập trình C/C++ trên Linux
    Trả lời: 5
    Bài viết cuối: 31-05-2011, 06:45 AM
  4. Algorithm Viết code thời khóa biểu viết trên Window Form C# như thế nào?
    Gửi bởi hocphp_1998 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 10
    Bài viết cuối: 12-04-2011, 11:10 PM
  5. [visual basic]Viết lệnh trong sự kiện timer là viết ở đâu?
    Gửi bởi thuan trong diễn đàn Thắc mắc chung
    Trả lời: 2
    Bài viết cuối: 21-09-2010, 12:53 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn