Turbo Pascal - Heo mi

Thảo luận trong 'Lập trình & Đồ hoạ' bắt đầu bởi Yurisha, 2/1/06.

  1. unrealcharacter

    unrealcharacter Youtube Master Race

    Tham gia ngày:
    2/6/03
    Bài viết:
    80


    Cũng thấy hay hay nếu mà làm được thế có thẻ viết ngược cho tất cả các dạng bài tập cân luôn ( nhưng em không hiểu )( chuoi đăt thế nào bác nêu như nó là char trong khi đáp số là longint...cái này khó hiểu nè)...

    Của em thì chỉ dùng kĩ xảo điện ảnh thui... ::) ... nghĩa là đã làm trước ra giấy phương pháp đổi hệ cơ số ngược thấy có thể giải trình ra trên TP nên đưa lên..
    Bác đọc kỹ lại TP rùi làm nguyên bài theo ý tương đó :p cho em test đi... ::)
     
  2. yin yang

    yin yang Donkey Kong

    Tham gia ngày:
    28/6/04
    Bài viết:
    362
    nghe đồn (chỉ nghe đồn thui nha) là có cái hàm nào đó có thể chuyển string từ ký tự sang dạng số hay sao ý. Chẹck lại dùm chút nghen, lâu rùi hổng có xài tới vì bây h tui đã say goodbye 4ever với lập trình rùi.:D
     
  3. Yurisha

    Yurisha Youtube Master Race

    Tham gia ngày:
    30/5/05
    Bài viết:
    99
    Nơi ở:
    KFC
    Cái đó đó, tớ phải làm cái bài 1 = cái đó đó. Chuyển từ string ra số, xài hàm char hay 1 cái nào đó, chuyển từ string ra mã ASCII đó. Không ai giúp à ?????????
     
  4. tomorrowneverdies

    tomorrowneverdies Bạch Diện Thư Sinh

    Tham gia ngày:
    6/6/02
    Bài viết:
    4,306
    Nơi ở:
    The World Of Games
    muốn chuyển string sang số thì bạn dùng val(kí tự, biến số, code), cái code để trống cũng được, còn kí tự là chuỗi bạn muốn chuyển sang số, còn biến số thì tùy ý, bạn thích biến nào cũng được, sau thủ tục này biến số sẽ là giá trị của kí tự bạn chuyển, ví dụ: val("345",n,i); Sau khi gọi thủ tục này, n=345, còn hàm Chr và Odd chỉ dùng để chuyển kí tự sang mã ASCII của nó và ngươc lại.
     
  5. H.Rukario

    H.Rukario Youtube Master Race

    Tham gia ngày:
    19/1/06
    Bài viết:
    3
    Nơi ở:
    Hoen
    Trước hết tôi hỏi ông Yurisha học lớp mấy,trường nào,quận nào đã mà bài làm sao lại phải theo ý thầy giáo chứ,chỉ cần thuật toán hay là được rồi, làm string tuy có lợi cho nhiều bài( những bài như thay đổi trật tự của các chữ số trong một số hay nhiều dạng khác kiểu như thế ....) vì có thể rút ngắn được nhưng có thể nói hầu hết các bài tính toán chỉ làm theo cách thường , chả ai dỗi hơi mà đi làm bằng cách string cả, mất thêm nhiều lệnh, tốn bộ nhớ ( như là phải chuyển từ số sang string hay string sang số vậy).
     
  6. unrealcharacter

    unrealcharacter Youtube Master Race

    Tham gia ngày:
    2/6/03
    Bài viết:
    80
    Hí hí ... thế thì thuật toán của tớ hay nhứt ... không cần lập trình cao siêu chỉ cần giỏi làm toán là được ...:D
     
  7. Constant

    Constant Mario & Luigi

    Tham gia ngày:
    2/7/03
    Bài viết:
    861
    Nơi ở:
    Sydney - Australia
    __ Tomorrow cho hỏi cái hàm val thì chuyển kiểu string của dãy nhị phân thành số làm thế nào ? Đang làm bài đường đi của robot nên tính làm thử cách string xem sao nhưng còn vướng mắc chỗ chuyển.
     
  8. Allian Dark

    Allian Dark Dragon Quest

    Tham gia ngày:
    25/5/03
    Bài viết:
    1,445
    các bạn ơi cho hỏi để xuất ra màn hình các phần tử là số nguyên tố trong 1 mãng thì làm sao vậy ( ko tính hàm if dài lắm ^.^ )giúp dùm mình đi
     
  9. tomorrowneverdies

    tomorrowneverdies Bạch Diện Thư Sinh

    Tham gia ngày:
    6/6/02
    Bài viết:
    4,306
    Nơi ở:
    The World Of Games
    Làm cũng tương tự như chữ số thường thôi, nếu bạn làm bài Robot tìm đường thì mình nghĩ bạn nên đọc chuỗi, sau đó kiểm tra và cho từng phần tử vào mảng dễ lắm hơn, nhiều bài toán tìm đường của robot làm kiểu duyệt chiều rộng lắm nên làm kiểu đó dễ sử dụng ^^.
     
  10. colenao

    colenao Donkey Kong

    Tham gia ngày:
    23/7/05
    Bài viết:
    494
    Nơi ở:
    BEACON HILL
    các anh các chị cho em hỏi, em cũng đang học turbo pascal khi em save thì là file .pas vậy em muốn có file. exe để chạy lun ko phải bật pascal thì làm thế nào
     
  11. tomorrowneverdies

    tomorrowneverdies Bạch Diện Thư Sinh

    Tham gia ngày:
    6/6/02
    Bài viết:
    4,306
    Nơi ở:
    The World Of Games
    Muốn vậy bạn phải Compile chương trình của bạn, bạn viết xong chương trình, chạy thử được ko, nếu được thì bạn Nhấn F9, hoặc vào mục compile, chọn Make cũng được, trước khi chọn bạn vào phần Option, Directories để chọn thư mục tạo file .Exe của bạn, đối với Free Pascal cũng tương tự vậy.
     
  12. colenao

    colenao Donkey Kong

    Tham gia ngày:
    23/7/05
    Bài viết:
    494
    Nơi ở:
    BEACON HILL
    mình viết ổn rùi F9 rùi vao options-direc... thấy dòng tạo file exe nhưng khi save thì vẫn thấy có mỗi 1 loại .pas ko thấy .exe đâu cả
     
  13. H.Rukario

    H.Rukario Youtube Master Race

    Tham gia ngày:
    19/1/06
    Bài viết:
    3
    Nơi ở:
    Hoen
    Đầu tiên là lập một hàm đã( hàm xem xem một số có phải số nguyên tố hay không ):
    -------------------------------------------------------
    var j:integer;
    function snt(x:integer):boolean;
    begin
    j:=1;
    repeat
    j:=j+1;
    until (j=x-1) or (x mod j=0);
    if (j=x-1) or (x=2) then
    snt:=true
    else snt:=false;
    end;
    begin
    write('nhap so phan tu la n=');readln(n);
    for i:=1 to n do
    begin
    write('a[',i,']=');readln(a);
    end;
    writeln('mang vua nhap la:');
    for i:=1 to n do
    write(a,' ');
    for i:=1 to n do
    if snt(a)=true then
    dem:=dem+1;
    if dem=0 then
    writeln('ko co so nguyen to nao')
    else
    for i:=1 to n do
    if snt(a)=true then
    write(a,' ');
    readln;
    end.
    ---------------------------------------------

    thế là xong :D :D :D
     
  14. Constant

    Constant Mario & Luigi

    Tham gia ngày:
    2/7/03
    Bài viết:
    861
    Nơi ở:
    Sydney - Australia
    __ Choài cách đó thì mình biết rùi mình chỉ muốn hỏi cái hàm val chuyển từ nhị phân thành số đó.
    {====================================}
    Function Chuyen(o:String):Longint;
    Var
    i,kq,j,j1,k:Longint;
    s1:String;
    {-------------------------------------}
    Function Lt(a,b:Longint):Longint;
    Var i,s:Longint;
    Begin
    s:=1;
    i:=1;
    While i<=b do begin
    inc(i);
    s:=s*a;
    End;
    Lt:=s;
    IF b=0 then Lt:=1;
    End;
    {-------------------------------------}
    Begin
    kq:=0;
    s1:='';
    For i:=Length(o) downto 1 do
    s1:=s1+o;
    For i:=1 to length(s1) do begin
    Val(s1,j,k);
    kq:=kq+Lt(2,i-1)*j;
    End;
    Chuyen:=Kq;
    END;
    {=============================}
    Đọc đi đọc lại vẫn thấy hàm val khó hiểu quá ^^
     
  15. Allian Dark

    Allian Dark Dragon Quest

    Tham gia ngày:
    25/5/03
    Bài viết:
    1,445


    Không được bạn ơi mình chạy thử thì có 1 lỗi là nếu a[1]=1 thì chương trình không nhận biết được
     
  16. tomorrowneverdies

    tomorrowneverdies Bạch Diện Thư Sinh

    Tham gia ngày:
    6/6/02
    Bài viết:
    4,306
    Nơi ở:
    The World Of Games

    Mấy hôm nay máy hư, ko coi cho bạn được, giờ mình trả lời bạn: Cái này thì dễ thôi, hàm Lt để tính a^b, vì khi biểu diễn 1 số sang mã nhị phân, thì nó biểu diễn theo các số 0 hoặc 1, ví dụ như:
    15=2^0*1+2^1*1+2^2*1+2^3*1 thì mã nhị phân của 15 là 1111.
    7=2^0*1+2^1*1+2^2*1 thì mã nhị phân của 7 là 111.
    5=2^0*1+2^1*0+2^2*1 thì mã nhị phân của 5 là 101.
    1=2^0, mã nhị phân của 1 là 1.
    Từ đó mình cho một vòng lặp chạy ngược về từ đầu tới cuối dãy, cộng kết quả với 2^(phần tử đếm)*(0 hoặc 1) là ra thôi, thật ra bài này bạn chỉ cần hiểu rõ cách biểu diễn một số thành dãy nhị phân là bạn sẽ hiểu thôi ^^.
     
  17. unrealcharacter

    unrealcharacter Youtube Master Race

    Tham gia ngày:
    2/6/03
    Bài viết:
    80
    Chạy ngược sẽ phải chuyển String ... chứ vòn lặp không ăn thua ... vì cái này mà tơ đau đầu và cuối cùng cũng nghĩ ra cách chuyển ngược mà không cần vòng lặp ngược ...Đó là chuyển theo hệ cơ số 10

    theo cái này : E:=a1*1 + a2*10 +a3*100 +a4*1000 + ....

    E là kết quả cần tìm : Ở đây có thê sử dụng 10^x bằng exp(x*ln(10))
    Hoặc ghép vào luôn vòn lặp một biến d d:=d*10 ( gán d:= 1 trước )

    Ví dụ nhé :

    với số 7 : 7 mod 2 := 1 ---> a1:=1
    7 div 2 := 3
    3 mod 2 := 1 ----a2:=1
    3 div 2 :=1
    1 mod 2 :=1 ---> a3:=1

    >>>>>>> E:=111

    Với thuật toán thì tớ thấy cái này nhanh vô địch khi chỉ phải sử dụng lặp cơ bản ...

    Nhược điểm : phải sử dụng hơi nhiều biến tầm khoảng 4 biến ( không nhơ lém )
    vì là e thuộc longint cho nên giá trị sẽ không vượt qua giới hạn được .... nhất là với hệ nhị phần thì thực sự khó khăn
     
  18. tomorrowneverdies

    tomorrowneverdies Bạch Diện Thư Sinh

    Tham gia ngày:
    6/6/02
    Bài viết:
    4,306
    Nơi ở:
    The World Of Games
    Vòng lặp For là vòng lặp cơ bản mà bạn, bất kì bài toán nào hầu như cũng phải sử dụng vòng lắm for, ngay cả ngôn ngữ C hay các ngôn ngữ khác đều vậy, bạn nên coi lại vòng lặp này, chứ cách trên của bạn cũng sử dụng cấu trúc lặp thôi, nếu ko dùng cấu trúc lặp repeat hay while thì sao biểu diễn được bài toán.
     
  19. unrealcharacter

    unrealcharacter Youtube Master Race

    Tham gia ngày:
    2/6/03
    Bài viết:
    80
    À ù đúng rùi ... nhưng cái tớ muốn nói là không dùng vong lặp FOR để tính ngược kết quả đươc ... Bạn thử làm thì biết ngay ....

    Còn bài này cách đó không thể không dùng lặp được .... Chắc chắn là như vậy ... Nhưng nó hay ở cái công thức toán ... và chỉ sử dụng đơn giản ... tớ xem cái vòng lặp không biêt bao nhiêu lần rùi chả nhẽ lại không hiểu ... đa phần lặp for là dùng để tính số lần lặp đến lúc kết thúc ... chứ dùng nó đảo ngược được kết quả thì .......Bạn làm thì biết ngay .. nêu được cho tớ thử luôn chương trình của BRo đi ... :p
     
  20. Vtuanbigboss

    Vtuanbigboss T.E.T.Я.I.S

    Tham gia ngày:
    8/11/03
    Bài viết:
    565
    Nơi ở:
    Somewhere I Belong
    Hic chán quá lâu lắm mới gặp các pác chắc quên cha nó tui gòi nhỉ he he
    Ko sao lâu rồi thấy GVN ổn ổn cũng cóc lên nữa
    Bây giờ lại có cái để ra tay cứu đời òi. He he
    Mà pác nào là người hỏi ấy nhỉ ?? Đề nghị các pác trật tự nêu lại câu hỏi đi :D Mỗi người một câu cuối cùng chả biết người hỏi hỏi cái gì, cái gì đang cần, cái gì đang ko cần. OK ??
     

Chia sẻ trang này