PDA

View Full Version : Ai chưa biết về lua. thì cùng học nào



The King
04-01-2012, 07:16 PM
Để cho những ai máu me dev Jx mà chưa bit ji về lua,hum nay xin mạn phép viết bài này để cùng nhau học lua. (Tui cũng đang học ).
Mỗi ngày 1 bài
Vô bài đầu nhé

1. Giới thiệu Lua. Lệnh gán

Một trong những lí do mà phần lớn ``dân'' kĩ thuật ngại lập trình là vì những ngôn ngữ mới (C#, Java) dựa trên một hệ thống (framework) thư viện rất đồ sộ. Thật vậy, bạn có thể xây dựng những chương trình có giao diện rất đẹp, với hệ thống cơ sở dữ liệu hiện đại, hay dựa trên các công nghệ web mới nhất... Nhưng đó chỉ là những phần thưởng riêng cho ``dân'' ngành IT, những người mà số dòng mã lệnh viết trong một năm cũng nhiều như số dòng trong bản báo cáo thuyết minh nộp cho đối tác vậy. Rõ ràng, việc trang bị cho mình một cặp kính cận > 5 đi-ốp và một quyển sổ tay lập trình ngôn ngữ X. luôn kè kè trên bàn máy tính là rất không khả thi !

Với người dân kĩ thuật (thủy lợi, xây dựng, giao thông ...), tính linh động là quan trọng. Nhiều bài toán kĩ thuật trong thực tế cần được tính toán sơ bộ một cách nhanh nhất, hiệu quả nhất. Lập trình? Tất nhiên là cần thiết rồi. Nhưng lập trình như thế nào cho hiệu quả nhất khi ta phải bắt đầu từ một dòng mã lệnh đầu tiên ? Lua là một giải pháp hứa hẹn.

Ngôn ngữ lập trình Lua (đọc là Lu-a) ra đời năm 1993 tại Đại học PUC-Rio, Rio de Janeiro, Brazil. Hiện nay (chương trình) Lua cũng là một phần mềm tự do: người dùng có quyền tự do download, gửi cho bạn bè, viết phần mềm từ Lua phục vụ cho mục đích bất kì: học tập, nghiên cứu, thương mại, kể cả viết các trò chơi (một trong những thế mạnh của ngôn ngữ này). Lua được đánh giá là một ngôn ngữ thông dịch có tốc độ vào loại nhanh nhất. Một số kết quả so sánh với ngôn ngữ Perl (thuộc vào dạng thông dịch nhanh) có thể được xem tại đây.

Bạn có thể hình dung mức độ nhỏ gọn của Lua khi download phiên bản chạy trên Windows từ đây. Một file nén < 600 KB chứa các file exe để chạy chương trình. Không cần phải cài đặt, điều này rất tiện. Chẳng hạn khi ta muốn chạy chương trình viết từ ở nhà, trên một máy tính khác mà ta không được quyền admin.

Trong chớp mắt, bạn đã download được file Lua (lua5_1_3_Win32_bin.zip). Giải nén vào một thư mục như C:\Lua. Click vào file lua5.1.exe. Dấu nhắc lệnh, với hình một kí hiệu lớn hơn, sẽ hiện ra:


CODE
Lua 5.0.3 Copyright (C) 1994-2006 Tecgraf, PUC-Rio
>


Bây giờ hãy thử một số lệnh nhé. Lệnh cơ bản nhất là lệnh gán, nó giống như trong (Visual)BASIC


CODE
> x = 5
>


Như vậy câu lệnh đúng, máy không báo lỗi và giá trị 5 được lưu vào trong biến x.

Khoan đã, hình như ta thiếu một bước gì đó? Khai báo biến, sao lại không khai báo biến x là số nguyên?

Câu trả lời: ngay khi Lua gặp lệnh gán thì nó sẽ căn cứ vào giá trị (ở đây là 5) mà quyết định rằng biến x có kiểu số chứ không phải kiểu chữ. Đặc điểm này tỏ ra rất có lợi: ta sẽ tiết kiệm được công gõ lệnh mà không sợ nhầm lẫn gì, vì trong kĩ thuật ta vẫn quy định mỗi biến có kiểu riêng của nó, không thay đổi được.

Một số lệnh gán tiếp theo tỏ ra rất bình thường:

CODE
> y = 1.4 ^ 2
> z = x + y


Điều gì sẽ xảy ra nếu ta không viết vế trái của lệnh gán? Riêng trong trường hợp ta đang chạy trên dấu nhắc lệnh ( > ... ) thì máy sẽ không báo lỗi. Thay vì vậy, nó sẽ hiểu rằng kết quả tính được ở vế phải không lưu vào biến nào cả mà sẽ in ra màn hình.

CODE
> = z
6.96


Điểm đặc biệt thứ hai là: một loạt các giá trị bạn có thể được gán bằng một lệnh gán duy nhất. Kết quả là các biến vế trái (phân cách bởi dấu phảy) được gán với giá trị lần lượt ở vế phải:

CODE
> m, n = 8, 6
> = m
8
> = n
6


Luyện tập 1. Lệnh gán sau đây có lỗi không? Kết quả chứng tỏ máy thực hiện như thế nào?

CODE
> a, b, c = 1, 2, 3, 4


Luyện tập 2. Tựa như các lệnh ở trên ta đã viết, liệu ta có thể viết một lệnh gói gọn như sau không? Tại sao?

CODE
> xx, yy, zz = 5 , 1.4^2 , xx + yy


Bạn tự thực hiện các phép tính trên dấu nhắc lệnh Lua. Cuối cùng hãy thử làm Qu!z sau đây:

Qu!z 1. Để tính lưu lượng trong sông các kĩ sư vẫn thường dùng công thức

[Only registered and activated users can see links]
Tự chọn một giá trị độ nhám từ 0.02 đến 0.04, độ sâu (bán kính thủy lực) từ 2 đến 3, độ dốc từ 0.0001 đến 0.0003. Tính ra Q. Hãy reply lại quá trình bạn đã làm trên Lua (câu lệnh + kết quả) !

Trang chủ của Lua: [Only registered and activated users can see links]
Hướng dẫn người mới học [Only registered and activated users can see links]
Sổ tay Lua (Tiếng Anh): [Only registered and activated users can see links]