Follow us on...
Follow us on Twitter Follow us on Facebook Watch us on YouTube

Smartphone WIKO của Pháp chính thức xuất hiện tại Việt Nam

Tìm HD - Phần mềm tìm và xem phim HD miễn phí

Cuộc thi khoảnh khắc tuyệt vời cùng Vn-Zoom.com

Chiêm ngưỡng BaoMoi đẹp "tuyệt diệu" trên Windows Phone

Tuyển thành viên nhóm Reviews diễn đàn

VN-Zoom & ASUS đón siêu phẩm,tăng tốc chuẩn bị ASUS Expo 2014
kết quả từ 1 tới 10 trên 10
  1. #1
    bigbang119's Avatar
    bigbang119 vẫn chưa có mặt trong diễn đàn Rìu Vàng
    Tham gia
    Mar 2009
    Đến từ
    Lương Sơn Bạc
    Bài
    693
    Cảm ơn
    223
    Điểm
    87/69 bài viết
    VR power
    0

    Default Ct đổi thập phân sang nhị phân.

    Mới làm cái này để tiện việc làm kiểm tra, mọi người xem giùm em coi nó có sai xót gì ko? cần rút gọn gì ko?
    cái kết quả cuối cùng nó dư ra 1 khoảng trống mà ko bít là gì cả, rồi tìm kiếm độ dài chuỗi thì ra sai.
    VD: chuỗi 10001 thì nó đếm đến 6.
    Vì đây là ct nhỏ nên em làm biến hơi nhiều xíu để tiện việc viết ct.
    So sánh giữa số thực với 0 hay 0.5 thì hình như pascal nhà bị lỗi ko so sánh được nên gán vào biến luôn.
    Code:
    program hesodem;
    uses crt;
    var
    kitu: array[1..1000] of char;
    kitu2: array[1..1000] of char;
    np,tp,tlp:string;
    n,i,pn,pn2,pn3,l:integer;
    so,k1,k2,ptp,ptp2,ptp3:real;
    key:char;
    begin
    clrscr;
    repeat
    write('Nhap vao 1 so: ');
    readln(so);
    pn:=trunc(so);
    ptp:=frac(so);
    i:=1;
    l:=1;
    k1:=0;
    k2:=0.5;
    pn2:=pn;
    while pn2>=1 do
    begin
    ptp2:=frac(pn2/2);
    pn2:=trunc(pn2/2);
    if ptp2=k2 then kitu[i]:='1' else if ptp2=k1 then kitu[i]:='0';
    i:=i+1;
    end;
    l:=i;
    for n:=1 to i do
    insert(kitu[n],np,0);
    if ptp<>k1 then begin
    ptp3:=ptp;
    while ptp3<>k1 do
    begin
    pn3:=trunc(ptp3*2);
    ptp3:=frac(ptp3*2);
    if pn3=1 then kitu2[l]:='1' else if pn3=0 then kitu2[l]:='0';
    l:=l+1;
    end;
    np:=np+'.';
    for n:=1 to l do
    np:=np+kitu2[n];
    end;
    writeln('doi so thap phan ',so:9:9,' sang he nhi phan la:');
    writeln(np);
    write('Lam tiep hay ko?(Y/N): ');
    readln(key);
    until upcase(key)='N';
    end.
    p/s: chưa học nhiều nên làm dài.


  2. #2
    becon91's Avatar
    becon91 vẫn chưa có mặt trong diễn đàn Rìu Vàng
    Tham gia
    Sep 2009
    Bài
    813
    Cảm ơn
    146
    Điểm
    409/263 bài viết
    VR power
    0

    Default

    Chương trình bạn làm dài quá.
    Thuật toán dổi cơ số cũng đơn giản nên chương trình nó cũng ngắn thôi.
    Code:
    program Chuyen_thap_phan_sang_nhi_phan;
    uses crt;
    var n:word;
    
    Function Doi(n:word):string;
    var kg:string;
        r:byte;
    Begin
    
    kg:='';
    repeat
    r:=n mod 2;
    n:=n div 2;
    kg:=chr(r+48)+kg;
    until n=0;
    Doi:=kg;
    End;
    
    Begin
    clrscr;
    Write(' Nhap so n trong he thap phan :');
    readln(n);
    Writeln(' So ',n,' trong he thap phan = so ',Doi(n),' trong he nhi phan:');
    readln;
    End.
    Nếu cần mình sẽ post cho bạn chương trình đổi từ cơ số bất kỳ -> cơ số bất kỳ
    ( cơ số từ 2-->16(Hexa) ) Cũng ngắn.

  3. #3
    bigbang119's Avatar
    bigbang119 vẫn chưa có mặt trong diễn đàn Rìu Vàng
    Tham gia
    Mar 2009
    Đến từ
    Lương Sơn Bạc
    Bài
    693
    Cảm ơn
    223
    Điểm
    87/69 bài viết
    VR power
    0

    Default

    Mới học wa cái hệ số đếm nên cũng chưa hiểu rõ, với lại chưa học nhiều hàm pascal nên làm dài.
    Chưa thể tìm ra thuật toán ngắn.
    chưa học wa cái biến kiểu word, byte. Hàm tự tạo function nữa.
    ban đầu tính dùng mod, div, nhưng cái pascal cứ báo lỗi, bực quá làm theo kiểu này.
    Thay đổi nội dung bởi bigbang119; 25-08-2010 lúc 21:58.


  4. #4
    becon91's Avatar
    becon91 vẫn chưa có mặt trong diễn đàn Rìu Vàng
    Tham gia
    Sep 2009
    Bài
    813
    Cảm ơn
    146
    Điểm
    409/263 bài viết
    VR power
    0

    Default

    Ko cái cơ số này liên quan đến phần toán mà.
    Cách đổi cơ số (thuật toán) trong Toán cũng nói đến mà.
    Bạn có nhớ ko?

  5. #5
    bigbang119's Avatar
    bigbang119 vẫn chưa có mặt trong diễn đàn Rìu Vàng
    Tham gia
    Mar 2009
    Đến từ
    Lương Sơn Bạc
    Bài
    693
    Cảm ơn
    223
    Điểm
    87/69 bài viết
    VR power
    0

    Default

    Trích becon91 View Post
    Ko cái cơ số này liên quan đến phần toán mà.
    Cách đổi cơ số (thuật toán) trong Toán cũng nói đến mà.
    Bạn có nhớ ko?
    Mới học lớp 10, vừa học bài hệ số đếm được 2 tiết.
    lâu rồi mới rớ vào cái lập trình nên cũng hơi ngu khoảng rút ngắn cấu trúc ct lại.
    Bạn có thể nói hệ bát phân là những ký hiệu nào ko?


  6. #6
    becon91's Avatar
    becon91 vẫn chưa có mặt trong diễn đàn Rìu Vàng
    Tham gia
    Sep 2009
    Bài
    813
    Cảm ơn
    146
    Điểm
    409/263 bài viết
    VR power
    0

    Default

    Hệ cơ số N thì có N chữ số cấu thành.
    Với 2<=N<=10 thì các chữ số đó là từ 0,1...N-1
    Với 11<=N<=16. ngoài các chữ số 0...9 có thêm các chữ số tượng trưng sau
    ( A=10; B=11; C=12; D=13; E=14; F=15 )
    VD: Hệ thập nhị phân( Hệ 12) : 0,...9,A,B
    Hệ thập lục phân ( HEXA): 0..9,A,B,C,D,E,F
    Hệ bát phân ( Hệ 8) dùng : 0,1,...7

  7. #7
    thaotrinh0908's Avatar
    thaotrinh0908 vẫn chưa có mặt trong diễn đàn Búa Đá Đôi
    Tham gia
    Sep 2009
    Bài
    80
    Cảm ơn
    293
    Điểm
    12/9 bài viết
    VR power
    0

    Default

    Hình như thuật này ngắn mà...
    Don't give up - Can't give up - NEVER GIVE UP!!!
    http://vn.360plus.yahoo.com/NHC-91/

  8. #8
    thaotrinh0908's Avatar
    thaotrinh0908 vẫn chưa có mặt trong diễn đàn Búa Đá Đôi
    Tham gia
    Sep 2009
    Bài
    80
    Cảm ơn
    293
    Điểm
    12/9 bài viết
    VR power
    0

    Default

    Đổi thập phân sang nhị phân:
    uses crt;
    var A: array [1..100] of integer;
    n, i, j: integer;
    begin
    clrscr;
    write ('Nhap N: '); readln (n); i:=0;
    repeat
    inc(i);
    A[i]:= n mod 2;
    n:= n div 2;
    until (n =0);
    write ('Doi sang nhi phan: ');
    for j:=i downto 1 do write (a[j]);
    readln;
    end.

    Đổi nhị phân sang thập phân:
    uses crt;
    var A: array [1..100] of integer;
    n: string;
    i, j, loi, S, b, len: integer;
    begin
    clrscr;
    write ('Nhap n: '); readln (n);
    len:= length(n); s:=0;
    for i:=1 to len do
    begin
    val (n[i], A[i], loi);
    if A[i]=1 then
    begin
    b:=1;
    for j:=1 to len-i do b:=b*2;
    s:=S+b;
    end;
    end;
    write ('Doi sang thap phan la: ',S);
    readln;
    end.

    Nếu thấy có ích nhớ thanks nha !
    Don't give up - Can't give up - NEVER GIVE UP!!!
    http://vn.360plus.yahoo.com/NHC-91/

  9. Có 2 thành viên cảm ơn thaotrinh0908 cho bài viết này:
    bqtien (22-12-2010), than_chet_yeu (03-10-2011)

  10. #9
    no1223469's Avatar
    no1223469 vẫn chưa có mặt trong diễn đàn Gà Con
    Tham gia
    Oct 2010
    Bài
    1
    Cảm ơn
    0
    Điểm
    0/0 bài viết
    VR power
    0

    Default

    Trích becon91 View Post
    Chương trình bạn làm dài quá.
    Thuật toán dổi cơ số cũng đơn giản nên chương trình nó cũng ngắn thôi.
    Code:
    program Chuyen_thap_phan_sang_nhi_phan;
    uses crt;
    var n:word;
    
    Function Doi(n:word):string;
    var kg:string;
        r:byte;
    Begin
    
    kg:='';
    repeat
    r:=n mod 2;
    n:=n div 2;
    kg:=chr(r+48)+kg;
    until n=0;
    Doi:=kg;
    End;
    
    Begin
    clrscr;
    Write(' Nhap so n trong he thap phan :');
    readln(n);
    Writeln(' So ',n,' trong he thap phan = so ',Doi(n),' trong he nhi phan:');
    readln;
    End.
    Nếu cần mình sẽ post cho bạn chương trình đổi từ cơ số bất kỳ -> cơ số bất kỳ
    ( cơ số từ 2-->16(Hexa) ) Cũng ngắn.
    Bạn có thể giúp mình đc không, bên mình đang có đề bài như bạn viết,hiện giờ mình mới làm đc 4 bài, còn 2 bài nữa, trong đó có bài mà bạn có nhắc tới đây : chuơng trình đổi từ cơ số bất kỳ sang cơ số bất kỳ, bạn có thể giúp mình đc không , mình cảm ơn bạn rất nhiều

  11. #10
    hiepkhachxua's Avatar
    hiepkhachxua vẫn chưa có mặt trong diễn đàn Rìu Sắt
    Tham gia
    Dec 2007
    Bài
    167
    Cảm ơn
    237
    Điểm
    49/29 bài viết
    VR power
    0

    Default

    Function Doi(n:word):string;
    var kg:string;
    r:byte;
    Begin

    kg:='';
    repeat
    r:=n mod 2;
    n:=n div 2;
    kg:=chr(r+48)+kg;
    until n=0;
    Doi:=kg;
    End;
    tại sao ko gán trực tiếp "Doi" mà phải gán qua biến trung gian "kq" nhỉ, cũng cùng string cả mà!
    Thay đổi nội dung bởi hiepkhachxua; 09-11-2011 lúc 08:13.
    Tài khoản VIP trên 4share.vn đăng ký từ tháng 8 nhưng chưa dùng đến 1 lần nào, bạn nào dùng thì nhập s01666848228 pass: bendoi.vn

 

 

Quyền sử dụng

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