Trang 3 / 16 FirstFirst 1234568 ... LastLast
Hiển thị kết quả từ 21 đến 30 / 153
  1. #21
    Tham gia
    08-01-2006
    Location
    Hà Nội
    Bài viết
    318
    Like
    0
    Thanked 3 Times in 2 Posts
    - Gửi mọi người :
    Bi rờ chắc mọi người đều xài free pascal hết nhỉ -'___'-. Thi quốc gia cũng cho xài FP rồi. MB mới biết được một vài thủ thuật trong FP nè:
    * Chú ý đặt định hướng biên dịch {$MODE OBCSFPC}
    + FP cho kiểu integer, cardinal thành 32 bit hết (trong TP thì là 16 bit). Khỏi lo về bộ nhớ, vì FP cho xài thoải mái (hổng có keo như TP ^^)
    + Thêm một minh chứng cho FP về tính hào phóng: FP có 2 kiểu dữ liệu xâu kí tự mới là AnsiString và WideString => cấu trúc động. Cũng giống như các ngôn ngữ hiện đại, 2 kiểu dữ liệu này lưu dưới dạng con trỏ. Khi gán a:= b thì trong TP sẽ copy xâu b ra đâu đó rồi bảo nó là a. Nhưng với 2 kiểu này thì đơn giản FP cho con trỏ a về chổ con trỏ b chỉ. Một câu hỏi đặt ra là nếu thay đổi a thì b có thay đổi theo không? Đương nhiên không, vì FP sẽ copy a ra đâu đó trước rồi mới sửa lại.
    AnsiString là xài cho các kí tự ASCII, WideString xài cho cả unicode. Điểm đặc biệt ở FP là string được lưu như những mảng động, trừ kiểu string cũ. Cấp phát cho string ta dùng setLength. Ví dụ setLength cho a là 10 thì các kí tự trong a sẽ là a[0] đến a[9]. Cứ yên tâm mà xài, kiểu string cũ chỉ cho 255 ký tự còn AnsiString với WideString cho rất thoải mái, kích thước bộ nhớ tối đa cho 1 biến thuộc 2 kiểu này là.. 2GB ~___^ (yes, mắt bạn ko có vấn đề đâu. 2 gigabyte).
    Thêm một vấn đề là kích thước 2 kiểu string mới này đo như thế nào khi cấu trúc được dùng là mảng. Câu trả lời: dùng lệnh length như bình thường sẽ trả lại số phần tử, hoặc dùng lệnh high sẽ trả về index của phần tử lớn nhất. VD với xâu a đã được setLength là 10, thì length(a) trả về 10 còn high(a) trả về 9.
    + FP có cấu trúc lệnh khá giống try..catch..finally của java:
    Code:
    try
    .
    .
    finally
    .
    .
    end;
    Code:
    try
    .
    .
    except
    .
    .
    end;
    Đặt các lệnh có khả năng gây lỗi vào sau try; những lệnh xử lý khi gây lỗi vào sau except; những lệnh mà có lỗi hay không có lỗi cũng "cố chạy" (ngang bướng ghê há ^^) vào trong finally.

    P/s: Đổi chữ ký rồi ah cashier ^^

  2. #22
    Tham gia
    17-10-2007
    Location
    Hà Nội
    Bài viết
    758
    Like
    0
    Thanked 8 Times in 7 Posts
    Anh Master_Baby cho em hỏi luôn: em muốn tính xem chương trình của mình chạy trong Free Pascal thì làm như thế nào? (Trong Turbo Pascal em vẫn dùng lệnh absolute... để xem giờ nhưng không dùng được với Free Pascal) Em muốn tính ra giây nên nếu dùng GetTime rồi trừ theo giờ phút giây thì hơi tốn công. Em muốn hỏi có cách nào đơn giản hơn không?

  3. #23
    Tham gia
    01-05-2006
    Location
    Viettel Telecom
    Bài viết
    623
    Like
    0
    Thanked 1 Time in 1 Post
    Quote Được gửi bởi Master_Baby View Post
    - Gửi mọi người :
    Bi rờ chắc mọi người đều xài free pascal hết nhỉ -'___'-. Thi quốc gia cũng cho xài FP rồi. MB mới biết được một vài thủ thuật trong FP nè:
    * Chú ý đặt định hướng biên dịch {$MODE OBCSFPC}
    + FP cho kiểu integer, cardinal thành 32 bit hết (trong TP thì là 16 bit). Khỏi lo về bộ nhớ, vì FP cho xài thoải mái (hổng có keo như TP ^^)
    + Thêm một minh chứng cho FP về tính hào phóng: FP có 2 kiểu dữ liệu xâu kí tự mới là AnsiString và WideString => cấu trúc động. Cũng giống như các ngôn ngữ hiện đại, 2 kiểu dữ liệu này lưu dưới dạng con trỏ. Khi gán a:= b thì trong TP sẽ copy xâu b ra đâu đó rồi bảo nó là a. Nhưng với 2 kiểu này thì đơn giản FP cho con trỏ a về chổ con trỏ b chỉ. Một câu hỏi đặt ra là nếu thay đổi a thì b có thay đổi theo không? Đương nhiên không, vì FP sẽ copy a ra đâu đó trước rồi mới sửa lại.
    AnsiString là xài cho các kí tự ASCII, WideString xài cho cả unicode. Điểm đặc biệt ở FP là string được lưu như những mảng động, trừ kiểu string cũ. Cấp phát cho string ta dùng setLength. Ví dụ setLength cho a là 10 thì các kí tự trong a sẽ là a[0] đến a[9]. Cứ yên tâm mà xài, kiểu string cũ chỉ cho 255 ký tự còn AnsiString với WideString cho rất thoải mái, kích thước bộ nhớ tối đa cho 1 biến thuộc 2 kiểu này là.. 2GB ~___^ (yes, mắt bạn ko có vấn đề đâu. 2 gigabyte).
    Thêm một vấn đề là kích thước 2 kiểu string mới này đo như thế nào khi cấu trúc được dùng là mảng. Câu trả lời: dùng lệnh length như bình thường sẽ trả lại số phần tử, hoặc dùng lệnh high sẽ trả về index của phần tử lớn nhất. VD với xâu a đã được setLength là 10, thì length(a) trả về 10 còn high(a) trả về 9.
    + FP có cấu trúc lệnh khá giống try..catch..finally của java:
    Code:
    try
    .
    .
    finally
    .
    .
    end;
    Code:
    try
    .
    .
    except
    .
    .
    end;
    Đặt các lệnh có khả năng gây lỗi vào sau try; những lệnh xử lý khi gây lỗi vào sau except; những lệnh mà có lỗi hay không có lỗi cũng "cố chạy" (ngang bướng ghê há ^^) vào trong finally.

    P/s: Đổi chữ ký rồi ah cashier ^^

    Lâu lâu mới vào box Pascal tí nhưng thấy nhắc đến Java là thấy máu liền à

    Cái ví dụ so sánh ở trên là sai rồi à nha :P :P :P
    Ở trong Java thì là:
    Code:
    try
    .
    .
    catch
    .
    .
    finally
    .
    .
    chứ :P :P :P
    tức là ở đây thì "except" trong FP giống với "catch" trong Java

    @Mà không biết cái gì trong FP thì giống với "finally" trong Java nhỉ

  4. #24
    Tham gia
    08-01-2006
    Location
    Hà Nội
    Bài viết
    318
    Like
    0
    Thanked 3 Times in 2 Posts
    - to mr_invisible:
    Dùng getTickCount đi ^^. Đầu ct đặt a:= getTickCount rồi cuối ct write(getTickCount - a) {a: longint}
    - to tnđ:
    thì là finally chứ gì nữa ~^

  5. #25
    Tham gia
    23-02-2003
    Location
    Melbourne
    Bài viết
    5,201
    Like
    0
    Thanked 24 Times in 18 Posts
    Quote Được gửi bởi truongngocdai View Post
    Lâu lâu mới vào box Pascal tí nhưng thấy nhắc đến Java là thấy máu liền à

    Cái ví dụ so sánh ở trên là sai rồi à nha :P :P :P
    Ở trong Java thì là:
    Code:
    try
    .
    .
    catch
    .
    .
    finally
    .
    .
    chứ :P :P :P
    tức là ở đây thì "except" trong FP giống với "catch" trong Java

    @Mà không biết cái gì trong FP thì giống với "finally" trong Java nhỉ
    Phải ghép cả 2 cấu trúc try trong Object Pascal mới được cả cấu trúc try-catch-finally của java.
    Code:
    try
      try
      ...
      except
      ...
      end;
    finally
      ...
    end;

  6. #26
    Tham gia
    17-10-2007
    Location
    Hà Nội
    Bài viết
    758
    Like
    0
    Thanked 8 Times in 7 Posts
    Hic, em chẳng hiểu gì cả

  7. #27
    Tham gia
    14-01-2008
    Bài viết
    3
    Like
    0
    Thanked 0 Times in 0 Posts
    tôi có bài này bà con coi cố được không
    đây là bài toán xếp hậu trên bàn cờ bà con có cách nào tốt hơn chỉ cho tui với nha
    program tam_hau;
    Uses Crt,Graph;
    Const N=8; W=40; X=150; Y=400;
    type mang=array[1..8] of byte;
    var
    a:mang;
    i,k:integer;
    ok:boolean;
    {------------------------------------}
    procedure ban_co;
    Var Gd,Gm,i,j: Integer;
    Pattern : FillPatternType;

    BEGIN
    Gd:=Detect;
    InitGraph(Gd,Gm,'');
    For i:=1 to N do
    For j:=1to n do
    Begin
    If Odd(i+j) then SetFillStyle(SolidFill,01)
    Else SetFillStyle(SolidFill,15);
    Bar(X+(i-1)*W,Y-(j-1)*W,X+i*W,Y-(j)*W);
    End;
    end;
    procedure hau(hi,hj:integer);
    var i,j:integer;
    Pattern : FillPatternType;
    begin
    SetColor(4);
    Circle(X+(Hi-1)*W+W div 2,Y-(Hj-1)*W-W div 2,W div 2-5);
    GetFillPattern(Pattern);
    SetFillPattern(Pattern,4);
    FloodFill(X+(Hi-1)*W+W div 2,Y-(Hj-1)*W-W div 2,4);
    end;
    {-----------------------------------------------}

    procedure thuc_hien;
    begin
    k:=1; a[k]:=0;
    while k>0 do
    begin
    a[k]:=a[k]+1;
    ok:=false;
    while (a[k]<=8) and (not(ok)) do
    begin
    i:=1;
    ok:=true;
    while (i<k) and ok do
    if(a[i]<>a[k]) and (abs(a[i]-a[k])<>(abs(i-k))) then
    inc(i)
    else ok:=false;
    if not ok then a[k]:=a[k]+1;
    end;
    if ok then
    if k=8 then
    begin
    for i:=1 to 8 do
    writeln;
    ban_co;
    for i:=1 to 8 do
    begin
    case a[i] of
    1: hau(i,a[i]);
    2: hau(i,a[i]);
    3: hau(i,a[i]);
    4: hau(i,a[i]);
    5: hau(i,a[i]);
    6: hau(i,a[i]);
    7: hau(i,a[i]);
    8: hau(i,a[i]);
    end;

    end;
    readln;
    clrscr;
    end
    else
    begin
    inc(k);
    a[k]:=0;
    end
    else k:=k-1;
    end;
    end;
    {-------------------------------}
    begin
    thuc_hien;
    readln;
    end.

  8. #28
    Tham gia
    14-01-2008
    Bài viết
    3
    Like
    0
    Thanked 0 Times in 0 Posts

    Tệ thật !

    Quote Được gửi bởi Master_Baby View Post
    - Gửi mọi người :
    Bi rờ chắc mọi người đều xài free pascal hết nhỉ -'___'-. Thi quốc gia cũng cho xài FP rồi. MB mới biết được một vài thủ thuật trong FP nè:
    * Chú ý đặt định hướng biên dịch {$MODE OBCSFPC}
    + FP cho kiểu integer, cardinal thành 32 bit hết (trong TP thì là 16 bit). Khỏi lo về bộ nhớ, vì FP cho xài thoải mái (hổng có keo như TP ^^)
    + Thêm một minh chứng cho FP về tính hào phóng: FP có 2 kiểu dữ liệu xâu kí tự mới là AnsiString và WideString => cấu trúc động. Cũng giống như các ngôn ngữ hiện đại, 2 kiểu dữ liệu này lưu dưới dạng con trỏ. Khi gán a:= b thì trong TP sẽ copy xâu b ra đâu đó rồi bảo nó là a. Nhưng với 2 kiểu này thì đơn giản FP cho con trỏ a về chổ con trỏ b chỉ. Một câu hỏi đặt ra là nếu thay đổi a thì b có thay đổi theo không? Đương nhiên không, vì FP sẽ copy a ra đâu đó trước rồi mới sửa lại.
    AnsiString là xài cho các kí tự ASCII, WideString xài cho cả unicode. Điểm đặc biệt ở FP là string được lưu như những mảng động, trừ kiểu string cũ. Cấp phát cho string ta dùng setLength. Ví dụ setLength cho a là 10 thì các kí tự trong a sẽ là a[0] đến a[9]. Cứ yên tâm mà xài, kiểu string cũ chỉ cho 255 ký tự còn AnsiString với WideString cho rất thoải mái, kích thước bộ nhớ tối đa cho 1 biến thuộc 2 kiểu này là.. 2GB ~___^ (yes, mắt bạn ko có vấn đề đâu. 2 gigabyte).
    Thêm một vấn đề là kích thước 2 kiểu string mới này đo như thế nào khi cấu trúc được dùng là mảng. Câu trả lời: dùng lệnh length như bình thường sẽ trả lại số phần tử, hoặc dùng lệnh high sẽ trả về index của phần tử lớn nhất. VD với xâu a đã được setLength là 10, thì length(a) trả về 10 còn high(a) trả về 9.
    + FP có cấu trúc lệnh khá giống try..catch..finally của java:
    Code:
    try
    .
    .
    finally
    .
    .
    end;
    Code:
    try
    .
    .
    except
    .
    .
    end;
    Đặt các lệnh có khả năng gây lỗi vào sau try; những lệnh xử lý khi gây lỗi vào sau except; những lệnh mà có lỗi hay không có lỗi cũng "cố chạy" (ngang bướng ghê há ^^) vào trong finally.

    P/s: Đổi chữ ký rồi ah cashier ^^
    hic hay thế nhưng down nó ở đâu dấy bạn chỉ cho tui với được không cám ơn nhiều

  9. #29
    Tham gia
    29-02-2004
    Bài viết
    3,942
    Like
    0
    Thanked 12 Times in 11 Posts
    @MasterBaby: Mình nhớ đi thi tin học thường thì cấm sử dụng các chỉ dẫn biên dịch mà, để {$...} vào là bị loại bài...

  10. #30
    Tham gia
    08-01-2006
    Location
    Hà Nội
    Bài viết
    318
    Like
    0
    Thanked 3 Times in 2 Posts
    - Gửi lee_huynh:
    @MasterBaby: Mình nhớ đi thi tin học thường thì cấm sử dụng các chỉ dẫn biên dịch mà, để {$...} vào là bị loại bài...
    Hì... Ngày xưa thôi huynh ơi, cái này là thầy Lê Minh Hoàng (thầy quá nổi tiếng rồi, chắc ai cũng bít nhỉ ) chỉ cho em đó.
    Đi thi nên đặt try..except để đỡ mất test.
    Chẳng hạn bộ test có 10 test (cùng 1 file), mà bị exception ở test 1 thì mấy test sau đáng lý vẫn có khả năng lấy điểm thì lại không có điểm (vì dính exception muh!)
    Các kiểu dữ liệu lớn để xài dễ dàng hơn...
    - Gửi likekiss:
    Google đi bạn, nhanh không ấy muh .

Trang 3 / 16 FirstFirst 1234568 ... LastLast

Tags for this Thread

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
  •