Hiển thị kết quả từ 1 đến 7 / 7
  1. #1
    Tham gia
    11-04-2010
    Bài viết
    1
    Like
    0
    Thanked 0 Times in 0 Posts

    Giúp em bài pascal này với !!!!

    Bài này là pascal lớp 8, thầy em cho làm lấy làm đề thi học kì nên mọi người giúp em với.

    Khai báo mảng a gồm tối đa 100 số nguyên integer; hãy in ra đoạn con tăng dần ( tức là a[i] < a[i + 1] ) mà có chứa nhiều phần tử nhất.
    Ví dụ : Ta có dãy gồm 10 phần tử :
    4 6 10 2 3 5 14 16 5 6
    Đoạn con cần tìm là : 2 3 5 14 16

    Cảm ơn mọi người nhiều.
    Quote Quote

  2. #2
    Tham gia
    04-03-2009
    Bài viết
    27
    Like
    0
    Thanked 0 Times in 0 Posts
    bài này giải bằng quy hoạch động thì rất tốt. Không biết bạn có biết quy hoạch động là ji ko nữa @-)

  3. #3
    Tham gia
    30-11-2009
    Bài viết
    30
    Like
    0
    Thanked 2 Times in 2 Posts
    Phương pháp quy hoạch động ngắn nhưng nếu nhưng người mới làm thì chắc ko năm rõ dc,.. với bài này mình nghỉ nên dùng 2 mảng A và B... Đầu tiên bạn tìm 1 đoạn dài nhất (dùng biến đếm) sau đó lưu các phần tử a[i] vào mảng B rồi từ mảng B bạn sẽ tìm ra đoạn dài nhất...

  4. #4
    Tham gia
    23-06-2009
    Location
    Huyện Gia Bình - Tỉnh Bắc Ninh
    Bài viết
    323
    Like
    0
    Thanked 4 Times in 4 Posts
    qui hoạch động mình rất muốn nghiên cứu mà không biết bắt đầu từ đâu. Mình thấy thuật toán này khó hiểu quá!

  5. #5
    Tham gia
    17-03-2010
    Bài viết
    4
    Like
    0
    Thanked 0 Times in 0 Posts
    hình như bài nayconf thiếu cái gì đó

  6. #6
    Tham gia
    25-07-2002
    Location
    https://t.me/pump_upp
    Bài viết
    1,756
    Like
    9
    Thanked 55 Times in 41 Posts
    Không thiếu gì hết, phân tích kỹ thì thấy thôi.

    - cần 4 biến trung gian(vt1,vt2,spt1,spt2). ( 2 biến đánh dấu vị trí, 2 biến đếm số phần tử của đoạn)
    - Ban đầu cho 4 biến=1
    - Duyệt mảng.
    - Khi bắt đầu 1 đoạn-tăng dần- mới thì đánh dấu nó lại (vt2).
    - Đếm số phần tử trong đoạn (spt2).
    - So sánh nếu số phần tử lớn hơn số phần tử của đoạn trước (spt2>spt1), thì lưu nó lại ( vt1=vt2, spt1=spt2)
    Sau khi duyệt xong mạng thì vt1 và spt1 chính là đáp số.
    Với trình độ Pascal lớp 8, thì cách này hợp lý nhất. ( Chỉ dùng For...to...do, if...end)

    Bạn tự viết code và test nha!

  7. #7
    Tham gia
    21-03-2010
    Bài viết
    1
    Like
    0
    Thanked 0 Times in 0 Posts
    thế làm xong rồi thì còn phải làm thế nào để chạy chương trình nữa bác?

Bookmarks

Quy định

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