Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 25 kết quả

Đề tài: Tản mạn về NNLT

  1. #1
    Ngày gia nhập
    07 2016
    Bài viết
    421

    Mặc định Tản mạn về NNLT

    Tôi không có ý khen chê ngôn ngữ lập trình nào.

    A. Xét bài toán tìm căn bậc 2 của một số thực.

    Nó được cài đặt trong nhiều NNLT : c/c++, java, netFx, SQL, ....

    Nó viết sẵn trong System.pas của Delphi ( path \source\Win32\rtl\sys\System.pas)
    Pascal Code:
    1. function Sqrt(const X: Extended): Extended;
    2. asm
    3.         FLD     X
    4.         FSQRT
    5.         FWAIT
    6. end;

    Tôi cũng thử test với Borland C 5.5
    C++ Code:
    1. float sqrt(float val){
    2.     asm{
    3.         FLD val
    4.         FSQRT
    5.         FWAIT
    6.     }
    7. }

    Nó chạy tốt.

    Thay vì ngồi tưởng tượng các thuật toán, rồi cài đặt chúng, nên chăng tìm hiểu nó đã được viết như thế nào.

    Xem thêm:
    http://diendan.congdongcviet.com/threads/t371886::phep-gan-khong-hoat-dong-dung.cpp?p=868225#post868225
    http://www.codeproject.com/Articles/15971/Using-Inline-Assembly-in-C-C
    Bắc thang lên hỏi ông giời
    Tiền vàng giao đoảng có đòi được không ?

  2. #2
    Ngày gia nhập
    07 2016
    Bài viết
    421

    Tôi biết và từng dùng qua các công cụ :
    - Batch to Exe
    - Java to Exe
    - NetFx to Native EXE, ...

    , các công cụ dịch :
    java to C#
    Vb to C#, ...

    Tôi muốn phát triển công cụ CsToCpp.
    cs to c/cpp

    Trong C#/Java điểm vào - entrypoint : hàm Main có thể nằm trong một class.
    Trong C++ có cho phép hoặc phiên bản nào của c++ cho phép hàm main nằm trong một class không ?
    Bắc thang lên hỏi ông giời
    Tiền vàng giao đoảng có đòi được không ?

  3. #3
    Ngày gia nhập
    07 2016
    Bài viết
    421

    vấn đề đã giải quyết theo cách đơn giản :
    - Thêm hàm main truy xuất tới Main() - entrypoint của C#

    C++ Code:
    1. int main(){
    2.     Program qt = Program();
    3.     qt.Main();
    4. }
    Bắc thang lên hỏi ông giời
    Tiền vàng giao đoảng có đòi được không ?

  4. #4
    Ngày gia nhập
    07 2016
    Nơi ở
    Hà Nội
    Bài viết
    218

    Thử đặt mình vào vị trí người phát triển ra các thuật toán công thức đó thì sẽ làm cho dev Việt mạnh hơn rất nhiều, thay vì sử dụng thì tôi cũng đồng ý với ý kiến của các Bác là tại sao mình không thể tự viết ra các hàm đơn giản chẳng hạn như abs(), PI(), sqrt(), log(), sin(), cos(), đủ mọi thứ. Rồi mình sẽ tự thấy bản thân mình có thể làm nhiều điều tuyệt vời hơn các bác ạ

  5. #5
    Ngày gia nhập
    07 2016
    Bài viết
    421

    Trích dẫn Nguyên bản được gửi bởi CodeThue Xem bài viết
    Thử đặt mình vào vị trí người phát triển ra các thuật toán công thức đó thì sẽ làm cho dev Việt mạnh hơn rất nhiều, thay vì sử dụng thì tôi cũng đồng ý với ý kiến của các Bác là tại sao mình không thể tự viết ra các hàm đơn giản chẳng hạn như abs(), PI(), sqrt(), log(), sin(), cos(), đủ mọi thứ. Rồi mình sẽ tự thấy bản thân mình có thể làm nhiều điều tuyệt vời hơn các bác ạ
    Các hàm cơ bản abs(), PI(), sqrt(), log(), sin(), cos(), ... người ta đã làm hết rồi, hơn nữa nó làm bằng phần cứng (thanh ghi đặc biệt) !
    Trong các số người dùng định nghĩa (bigNum) người ta cũng đã lảm hàng chục năm trong Java, Delphi, c/c++/c#

    Nhiều người thích phát minh lại cái bánh xe
    Bắc thang lên hỏi ông giời
    Tiền vàng giao đoảng có đòi được không ?

  6. #6
    Ngày gia nhập
    07 2016
    Bài viết
    421

    Mặc định Tản mạn về NNLT

    Tình cờ thấy : Delphi2cs

    Đúng là công cụ hữu ích.
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		_Dpr2cs.jpg
Lần xem:	6
Size:		109.5 KB
ID:		49193

    Nó chuyển được Delphi sang cs, ví dụ test thử: Test.rar
    Ai có hứng thú thì cộng tác với tôi, qua mail:
    vn8hien62@yahoo.com

    Nguyên mẫu nó viết trên netFx 1.5 (có thể là một kỹ thuật chống dịch ngược, nó copyright 2005-2010)

    Với sửa đổi nhỏ khi biên dịch trong VS :
    Visual C# Code:
    1.  
    2. //DynPanel = new Panel(this);
    3. DynPanel = new Panel();
    4. //...
    5. //TextBox _wvar1 = new TextBox(this);
    6. TextBox _wvar1 = new TextBox();
    Attached Files Attached Files
    Bắc thang lên hỏi ông giời
    Tiền vàng giao đoảng có đòi được không ?

  7. #7
    Ngày gia nhập
    07 2016
    Bài viết
    421

    Tạm gác lại vì bận công việc khác. Xem thêm về nó: video, reply #14
    Bắc thang lên hỏi ông giời
    Tiền vàng giao đoảng có đòi được không ?

  8. #8
    Ngày gia nhập
    09 2016
    Bài viết
    1,009

    Hàm Cos được cài đặt, viết sẵn trong System.pas của Delphi (path\source\Win32\rtl\sys\System.pas)

    Pascal Code:
    1. function Cos(const X: Extended): Extended;
    2. asm
    3.         FLD     X
    4.         FCOS
    5.         FWAIT
    6. end;

    Nhiều hàm khác cũng cung cấp ở dạng source code

    Phọt mô xa 2016

  9. #9
    Ngày gia nhập
    09 2016
    Bài viết
    1,009

    Có nhiều NNLT, ở https://www.rosettacode.org/wiki/Knuth_shuffle#C.23 có hàng trăm NN cùng giải một bài toán

  10. #10
    Ngày gia nhập
    09 2016
    Bài viết
    1,009

    Xét bài toán sau:

    C Code:
    1. INT calcByLoop(int n){
    2.     INT s = 0;
    3.     //
    4.     for(int i = 1; i <= n; i++)
    5.         for(int j = i; j <= n; j++)
    6.             for(int k = 1; k <= j; k++)
    7.                 s++;
    8.     //
    9.     return s;
    10. }

    Nó có thể biến đổi, đếm tổng sum theo:
    Công thức toán học Latex
    Xem thêm http://diendan.congdongcviet.com/thr...toan-big-o.cpp

    Với dữ liệu 32 bits chỉ có thể tính trong phạm vi cỡ ngàn / nghìn:
    Click vào hình ảnh để lấy hình ảnh lớn

Tên:		_CalcA.jpg
Lần xem:	0
Size:		32.7 KB
ID:		50972

    Mở rộng sang 64 bits có thể tính với phạm vi lớn hơn (cỡ triệu),
    tuy nhiên khi test thử với n khá lớn (n ~ 2000) thì c/c++ thấy nó chậm hơn c#, số liệu càng lớn thì c/c++ càng yếu thế.

    Phọt mô xa 2016

Quyền hạn của bạn

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