Follow us on...
Follow us on Facebook

Garagames - Game bài mượt nhất trên Android

Báo Mới trên Android - Ứng dụng đọc báo miễn phí được chờ đợi nhất năm 2013

Mua iPhone, iPad tại FPT Retail và tham gia bảo hành vàng đặc biệt: máy bị hư hỏng, vào nước, rơi vỡ… vẫn được đổi mới!

FTECH.VN : VPS giá rẻ nhất Việt Nam - Chỉ từ 200k/tháng

Giới thiệu Safeshared.com, upload tới 4GB, download không cần tài khoản và không có giới hạn tốc độ

Giới thiệu VNZ Install cho iOS - hơn 10 000 game & ứng dụng miễn phí cho iPhone và iPad

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
    714
    Cảm ơn
    224
    Điểm
    84/66 bài viết

    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 Bạc Đôi
    Tham gia
    Sep 2009
    Bài
    593
    Cảm ơn
    96
    Điểm
    352/220 bài viết

    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
    714
    Cảm ơn
    224
    Điểm
    84/66 bài viết

    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 Bạc Đôi
    Tham gia
    Sep 2009
    Bài
    593
    Cảm ơn
    96
    Điểm
    352/220 bài viết

    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
    714
    Cảm ơn
    224
    Điểm
    84/66 bài viết

    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 Bạc Đôi
    Tham gia
    Sep 2009
    Bài
    593
    Cảm ơn
    96
    Điểm
    352/220 bài viết

    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
    79
    Cảm ơn
    288
    Điểm
    12/9 bài viết

    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
    79
    Cảm ơn
    288
    Điểm
    12/9 bài viết

    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

    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
    138
    Cảm ơn
    219
    Điểm
    38/21 bài viết

    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.
    Internet như 1 bãi rác thành phố mà ta là kẽ đi nhặt rác, chỉ mong có gì đó hay mà giữ lại, xấu thì bỏ qua.

 

 

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
  •