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

    In ra chữ số thứ N trong phần thập phân của thương số khi chia p cho q.

    anh chị nào giải giúp em bài này với ạ
    nếu không cho e xin ý tưởng với ạ. help me!
    Quote Quote

  2. #2
    Tham gia
    13-08-2012
    Location
    Vĩnh Cửu, Đồng Nai
    Bài viết
    95
    Like
    9
    Thanked 9 Times in 8 Posts
    Quote Được gửi bởi kieutrangnvt View Post
    anh chị nào giúp em bài này với ạ
    In ra chữ số thứ N trong phần thập phân của thương số khi chia p cho q.
    Code:
    (*In ra chữ số thứ N trong phần thập phân 
    của thương số khi chia p cho q.*)
    
    program In_N;
    var
        p :integer; {số chia}
        q :integer; {số bị chia}
        r :real;    {kết quả = p/q}
    
        N :integer; {chữ số N trong phần thập phân} 
        
        f :real;    {phần thập phân}
        i :LongInt; {phần nguyên}
        m :byte;    {Kết quả}
        
        v :integer; {vòng lặp}
    
    begin
        write ('Nhap so chia    p:=');  readln (p);
        write ('Nhap so bi chia q:=');  readln (q);
        write ('Nhap so N:=');          readln (N);
        
        r := p/q;       {thực hiện phép chia}
        f := frac (r);  {lấy phần thập phân}  
        
        for v:=1 to (N+1) do f := f *10; {dịch chuyển f theo số N}
                    
        i := trunc (f); {làm tròn}
        
        m := i mod 10;  {chữ số cuối cùng hàng đơn vị trong số là kết quả}
        
        writeln;
        writeln ('Phep chia p/q = ',r);
        writeln ('Chu so N= ',N,' trong phan thap phan la = ',m);
        readln;
    end.

    Chú ý: vì trong phép chia, chữ số thập phân có khi trải dài nhiều đến vô tận,
    nên phép gán này: i := trunc (f); i có kiểu LongInt, f là real, khi f vượt quá i sẽ tràn biến, kết quả sẽ không chính xác nữa.
    Nên code trên chỉ đúng với N nhỏ (N<12).

    Tôi có cách khác tổng quát hơn với N bất kỳ, chữ số 100 tỷ chẳng hạn, cũng tính được, không hạn chế.
    Nhưng tôi nghĩ yêu cầu của bạn trên đến đây là được rồi. (Lập trình với số lớn)
    Unus Pro Omnibus, Omnes Pro Uno

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
  •