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... ::)
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.
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 à ?????????
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.
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).
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 ...
__ 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.
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
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 ^^.
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
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.
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ả
Đầ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
__ 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á ^^
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 ^^.
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
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.
À ù đú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
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 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 ??