Trang 2 / 2 FirstFirst 12
Hiển thị kết quả từ 11 đến 19 / 19
  1. #11
    Tham gia
    04-01-2004
    Bài viết
    58
    Like
    0
    Thanked 0 Times in 0 Posts

    Sorry, mình trễ hẹn

    Đây nè:
    Code:
    uses crt;
    type arr=array[1..10,1..10] of integer;
    var a:arr;
        i,j,x,y,n:integer;
        dem,bd,kt:integer;
    begin
         textmode(c80);
         clrscr;
         n:=5;
    
         dem:=0; bd:=1; kt:=n;
         for i:=1 to n do
            for j:=1 to n do
               a[i,j]:=(i-1)*n+j;
         while bd<kt do
            begin
                 for x:=bd to kt-1 do write(a[bd,x]:3);
                 for y:=bd to kt-1 do write(a[y,kt]:3);
                 for x:=kt downto bd+1 do write(a[kt,x]:3);
                 for y:=kt downto bd+1 do write(a[y,bd]:3);
                 inc(bd); dec(kt);
            end;
         readln;
    end.

  2. #12
    Tham gia
    04-01-2004
    Bài viết
    58
    Like
    0
    Thanked 0 Times in 0 Posts
    Biến bd -> Bắt đầu
    kt -> Kết thúc

  3. #13
    Tham gia
    03-01-2004
    Bài viết
    903
    Like
    0
    Thanked 11 Times in 7 Posts
    Cách giải của unfriendlyboy ngắn gọn lắm ! Dùng 4 vòng for để cài đặt đi qua phải, đi xuống, đi qua trái, đi lên ==> thật gọn !!!

    Tuy nhiên, nêu thay vì là ma trận vuông mà là ma trận thì chữ nhật thì phai sửa lại 1 chút
    & nhớ coi chừng:
    nếu chiều rộng (số cột) lớn hơn chiều cao (số dòng) => ở lần cuối cùng mình có thể chỉ còn 1 ma trận 1 dòng => phải thêm 1 cái if !?

    Tương tụ: nếu chiều cao (số dòng) lớn hơn chiều rộng (số cột) => ở lần cuối cùng mình có thể chỉ còn 1 ma trận 1 cột => phải thêm 1 cái if !?

  4. #14
    Tham gia
    04-01-2004
    Bài viết
    58
    Like
    0
    Thanked 0 Times in 0 Posts
    Uhm, đúng rồi, em làm cái này cho ma trận vuông mà. Nếu hcn thì sửa lại 1 tí là xong

  5. #15
    Tham gia
    16-02-2004
    Bài viết
    1
    Like
    0
    Thanked 0 Times in 0 Posts

    Thông tin Bai cac ban chi la ma tran tu 1 den n*n thoi

    Toi thay rang cach cac ban chi de sap xep ma tran cac phan tu tu 1 den n*n thoi. Toi co 1 bai la cho 1 mang 2 chieu (cac phan tu la cac so bat ki) va sap xep tang dan theo hinh xoan oc. Toi da lam thu, nhung hoi dai nen toi chua biet cach post len, ban nao chi toi cach de toi post len cho cac ba xem thu

  6. #16
    Tham gia
    04-01-2004
    Bài viết
    58
    Like
    0
    Thanked 0 Times in 0 Posts
    Trời, nhìn bài mình mà bạn ko biết sửa lại huh ?

  7. #17
    Tham gia
    30-11-2011
    Bài viết
    1
    Like
    0
    Thanked 0 Times in 0 Posts
    Các bác làm dài wa', cách của em ngắn gấp bội lè mà vẵn đúng:
    procedure Gen_Spiral(var A: matrix; m, n: integer);
    var x, y, seed, count, direct, total: integer;
    begin
    direct := 4;
    total := m*n;
    count := 0;
    x := 0;
    y := 1;
    for seed := 1 to total do begin
    while count = 0 do
    case direct of
    1, 3: begin inc(direct); dec(n); count := m; end;
    2, 4: begin
    inc(direct); dec(m); count := n;
    if direct = 5 then direct := 1;
    end;
    end;
    case direct of
    1: inc(x);
    2: inc(y);
    3: dec(x);
    4: dec(y);
    end;
    dec(count);
    a[y, x] := seed;
    end;
    end;

  8. #18
    Tham gia
    01-11-2008
    Bài viết
    11
    Like
    0
    Thanked 0 Times in 0 Posts
    thanks bạn nhé, hjhjhjhj

  9. #19
    Tham gia
    26-03-2017
    Bài viết
    2
    Like
    0
    Thanked 0 Times in 0 Posts
    =)) nhìu cao thủ vãi chưỡng

Trang 2 / 2 FirstFirst 12

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
  •