Tài nguyên dạy học

Các ý kiến mới nhất

Hỗ trợ trực tuyến

Điều tra ý kiến

Bạn thấy trang này như thế nào?
Đẹp
Đơn điệu
Bình thường
Ý kiến khác

Thống kê

  • truy cập   (chi tiết)
    trong hôm nay
  • lượt xem
    trong hôm nay
  • thành viên
  • Ảnh ngẫu nhiên

    P1010793.flv Xu_ly_mui_nuoc_thai__xu_ly_mui_hoi_phong_voi_che_pham_Wivero__YouTube.flv Phim_video_clip_H2S_chay_trong_oxi__H2S___O2_KK__Xem_phim__Phim_bo__Phim_le__Video_vui__Download_phim__Clip_nhac__Phim_hoat_hinh__Phim_hanh_dong__Gai_xinh__v_Viet_Giai_Tri.flv Hoa_hoc_10_SO2___H2S_trong_nuoc__YouTube.flv Hoa_hoc_10_Dieu_che_khi_O2_tu_H2O2__YouTube.flv H2S_tac_dung_voi_oxiflv__YouTube.flv H2S_pu_voi_SO2__YouTube.flv H2S___O2__YouTube.flv Dieu_che_SO2__YouTube.flv

    Thành viên trực tuyến

    1 khách và 0 thành viên

    Chào mừng quý vị đến với website của ...

    Quý vị chưa đăng nhập hoặc chưa đăng ký làm thành viên, vì vậy chưa thể tải được các tài liệu của Thư viện về máy tính của mình.
    Nếu chưa đăng ký, hãy nhấn vào chữ ĐK thành viên ở phía bên trái, hoặc xem phim hướng dẫn tại đây
    Nếu đã đăng ký rồi, quý vị có thể đăng nhập ở ngay phía bên trái.

    Tài liệu HSG Pascal Phần 1

    Wait
    • Begin_button
    • Prev_button
    • Play_button
    • Stop_button
    • Next_button
    • End_button
    • 0 / 0
    • Loading_status
    Nhấn vào đây để tải về
    Báo tài liệu có sai sót
    Nhắn tin cho tác giả
    (Tài liệu chưa được thẩm định)
    Nguồn:
    Người gửi: Trần Quang Diệu (trang riêng)
    Ngày gửi: 15h:50' 23-12-2012
    Dung lượng: 77.5 KB
    Số lượt tải: 442
    Số lượt thích: 0 người
    Chương I : Duyệt không đệ qui

    I / Nhận xét :

    Các chương trình có thể viết dưới dạng “ Duyệt bằng đệ quy “ khi nó phải thực hiện nhiệm vụ P có hình thức đệ quy sau đây :

    P = ( Nếu B 0 thì S ; Nếu Bk thì P )



    trong đó S là một số công việc phải thực hiện khi có điều kiện kết thúc B0 của đệ quy , còn Bk là điều kiện cần để thực hiện nhiệm vụ P ở bước thứ k . Trong mỗi bước gọi thực hiện P thì điều kiện Bk được thu hẹp dần để dẫn tới tình trạng kết thúc B0 của quá trình duyệt .
    Song do chương trình đệ quy được tổ chức bằng Stack (ngăn xếp) trong bộ nhớ có kích thước tối đa là 16kb nên khi gặp những chương trình đệ quy quá sâu thường bị tràn Stack của bộ nhớ ( ngăn xếp của chương trình đệ quy không đủ chứa các hàm và thủ tục đệ quy của nó ) . Trong những trường hợp như thế , người ta thường chuyển sang chương trình viết dưới dạng “Duyệt không đệ qui “ thay đệ quy bằng vòng lặp , dựa vào công thức sau :
    P = ( G 0 ; Trong khi Bk thì Pk )



    G 0 : một số lệnh gán trị ban đầu
    Bk : điều kiện cần để thực hiện công việc Pk

    II / Một số thí dụ :

    Thí dụ 1 : Xây dựng hàm Fibonaci bằng đệ quy và không đệ quy

    Function Fibonaci(N : Integer) : Integer;
    Begin
    If N=0 then Fibonaci =1 {N=0 hoặc N=1 là điều kiện B0 }
    Else
    If N=1 then Fibonaci =1
    Else {N>=2 là điều kiện Bk}
    Fibonaci := Fibonaci(N-1)+ Fibonaci(N-2)
    End;

    Function Fibonaci(N : Integer) : Integer;
    Var i,p,U0,U1 : Integer;
    Begin
    i := 0;
    U0 := 0;
    U1 := 1;
    While i< N do
    Begin
    Inc(i);
    p := U1;
    U1 := U0+U1;
    U0 := p;
    End;
    Fibonaci := p;
    End;

    Thí dụ 2 : Sắp xếp mảng bằng thuật toán QuickSort :

    Kiểu đệ quy

    Program QSort;
    {$R-,S-}
    Uses Crt;
    Const Max = 30000;
    Type List = Array[1..Max] of Integer;
    Var Data : List;
    I : Integer;

    Procedure QuickSort(Var A: List; Lo, Hi: Integer);
    Procedure Sort(L, r: Integer);
    Var i, j, x, y: integer;
    Begin
    i := L;
    j := r;
    x := a[(L+r) DIV 2];
    Repeat
    While a[i] < x do i := i + 1;
    While x < a[j] do j := j - 1;
    If i <= j then
    Begin
    y := a[i];
    a[i] := a[j];
    a[j] := y;
    i := i + 1;
    j := j - 1;
    End;
    until i > j;
    If L < j then Sort(L, j);
    If i < r then Sort(i, r);
    End;
    Begin
    Sort(Lo,Hi);
    End;

    BEGIN {QSort}
    Write(`Hiện đang
     
    Gửi ý kiến