Hỏi về Pascal

Thảo luận trong 'ACM/Programming' bắt đầu bởi script, 08/12/15, 07:12 PM.

  1. script

    script Guest

    Tham gia:
    Bài viết: 0
    Đã được thích: 0
    Điểm thành tích:
    0
    e đang học lập trình pascal đề bài tính s=sqrt(a-b)+1/(2^2)+1/(3^2)+1/(4^2)+...+1/(n^2) a,b,n nhập từ bàn phím
    và đây là chương trình các anh xem hộ em trong 2 chương trình thì chương trình nào sai
    code 1:
    Mã:
    uses crt;
    var
    s1,s:real;
    a,b,i,n:integer;
    begin
    clrscr;
    writeln('nhap n');
    readln(n);
    writeln('nhap a,b');
    readln(a,b);
    if (a
     
    Last edited by a moderator: 08/12/15, 09:12 PM
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  2. script

    script Guest

    Tham gia:
    Bài viết: 0
    Đã được thích: 0
    Điểm thành tích:
    0
    em đang cần gấp :(
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  3. thuipro7401

    thuipro7401 W-------

    Tham gia: 21/06/15, 09:06 PM
    Bài viết: 18
    Đã được thích: 4
    Điểm thành tích:
    18
    0^38 là số lớn nên phải dùng kiểu dữ liệu Extended (Số thực mở rộng)
    Ta dùng hàm Exp là hàm mũ là hàm ngược của hàm ln (log Nêpe) nghĩa là dùng Exp(38*ln(10)) để lấy giá trị 10 mũ 38.
    Bạn hãy xem chương trình sau:
    VAR T:extended;
    Begin
    T:=exp(38*ln(10));
    Writeln(T);
    Readln;
    End.
    Muốn chạy chương trình trên bạn phải vào Menu của Turbo Pascal và chọn : Options > Compiler
    Chọn 8087/80287 (Mục Numeric Processing)
    OK
    Sau đó mới chạy Ctrl + F9
    Chúc bạn thành công
    từ đây suy nghĩ ra nhá
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  4. kaitoukid

    kaitoukid Wh------

    Tham gia: 18/07/14, 02:07 PM
    Bài viết: 33
    Đã được thích: 27
    Điểm thành tích:
    28
    Mình có vài ý kiến như sau:
    - Cả 2 code đều sai ở chỗ khi a Sai kết quả. Với trường hợp a>b thì đúng. Nhưng mình góp ý 1 tí ở phần code, là bạn nên có khởi tạo giá trị cho s và s1 =0, trước khi thực hiện tính toán.
    - Cả 2 code nó chẳng khác gì nhau cả, chỉ khác việc bạn gán s:=s1 trong else hay ở phần thân chương trình chính --> Tư duy code của bạn chưa thực sự tốt lắm.
    - Ngoài ra bạn cũng nên biết một số giới hạn của các kiểu biến, để tránh trường hợp bị tính toán quá giới hạn ở việc tính mũ kia. Tốt hơn hết là bạn nên tính bằng biểu thức (1/i) * (1/i). Vì với khi viết 1 / sqr(i), thì pascal sẽ tính sqr(i) trước và với i lớn quá một mức nhất định thì sẽ vượt quá kiểu biến real --> sẽ bị lỗi.
    http://wiki.freepascal.org/Variables_and_Data_Types
     
    Last edited by a moderator: 09/12/15, 09:12 AM
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  5. script

    script Guest

    Tham gia:
    Bài viết: 0
    Đã được thích: 0
    Điểm thành tích:
    0
    em cam on cac anh
     
    Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan