Mọi người đang đọc bài 5 trong series Tìm hiểu ngôn ngữ lập trình Pascal
Dòng 1 và 3 đánh dấu bắt đầu và kết thúc của chương trình: cặp từ khoá begin - end. (sau end có dấu chấm). Dòng 2 gọi hàm xuất ra màn hình write, truyền vào đó câu 'Hello, World'. Quá chuẩn rồi còn gì :>
Q: Ơ khoan, sao tui chạy mà không nhìn thấy gì vậy?
A: Thật ra là nó có chạy, có xuất ra màn hình dòng chữ "Hello, World!", luôn rồi đấy. Chỉ là ngay sau dòng đó là từ khoá end, mà sau end thì kết thúc nên nó thoát ra ngoài luôn. Mà máy thì chạy nhanh quá, CPU tới 1.0 Ghz là 1 tỉ phép tính trên giây, nhìn không kịp cũng phải. Vậy thì mấu chốt ở đây là ta cần thêm 1 lệnh nào đó để yêu cầu máy dừng lại. Thật may mắn, lệnh `readln` của Pascal sẽ ngưng đọng chương trình lại, chờ người dùng bấm enter rồi mới thoát.
A: Ý của bạn có phải là nó như thế này không nè:
Lưu ý: Để hiểu được nội dung bài viết 1 cách tốt nhất, khuyến cáo bạn đọc hãy mở Free Pascal và làm theo ví dụ trong bài. Để biết cách cài đặt Free Pascal vui lòng xem lại những bài trước.
I. "Hello, World!"
Chúng ta sẽ cùng bắt đầu với chương trình đơn giản nhất mà mọi lập trình viên đều thực hiện khi học một ngôn ngữ lập trình mới: Hãy xuất ra màn hình dòng chứ "Hello, World!".
begin write('Hello, World!'); end.
Q: Ơ khoan, sao tui chạy mà không nhìn thấy gì vậy?
A: Thật ra là nó có chạy, có xuất ra màn hình dòng chữ "Hello, World!", luôn rồi đấy. Chỉ là ngay sau dòng đó là từ khoá end, mà sau end thì kết thúc nên nó thoát ra ngoài luôn. Mà máy thì chạy nhanh quá, CPU tới 1.0 Ghz là 1 tỉ phép tính trên giây, nhìn không kịp cũng phải. Vậy thì mấu chốt ở đây là ta cần thêm 1 lệnh nào đó để yêu cầu máy dừng lại. Thật may mắn, lệnh `readln` của Pascal sẽ ngưng đọng chương trình lại, chờ người dùng bấm enter rồi mới thoát.
begin write('Hello, World!'); readln; end.Q: Ờ chương trình của tui nó chạy rồi đó, hurayyyy. Cơ mà tui nhớ là trường tui dạy nó dài lắm mà?
A: Ý của bạn có phải là nó như thế này không nè:
program HelloWorld; uses crt; begin clrscr; write('Hello, World!'); readln; end.
Khi chạy thử, ta thấy chương trình xoá toàn bộ màn hình console sau đó mới in ra dòng chữ "Hello, World!".
Dòng 1: "program" là từ khoá xác định tên chương trình. Nó không có ý nghĩa quan trọng đối với chương trình, hoàn toàn có thể bỏ qua.
Dòng 2: "uses" là từ khoá dùng để khai báo thư viện. Thư viện được khai báo ở đây có tên là "crt". Thư viện là 1 tập hợp những chương trình con (hàm, thủ tục) thực hiện 1 số chức năng liên quan với nhau.
Dòng 4: "clrscr" - chính là lệnh xoá màn hình. Nếu bạn làm bài tập trên, bạn sẽ phát hiện nếu không có dòng 2 khai báo thư viện thì dòng lệnh này không chạy được. Lí do là "clrscr" chính là 1 chương trình con thuộc thư viện crt.
Phần thân là phần nằm giữa cặp từ khoá "begin" và "end" (có dấu chấm ở cuối end). Đây là phần đóng vai trò chính trong 1 chương trình do mọi thao tác mà chương trình thực hiện đều xuất phát từ phần thân chương trình.
Thư viện là tập hợp của nhiều chương trình con được viết sẵn nhằm mục đích tái sử dụng lại trong nhiều chương trình khác nhau.
Chương trình con là một dãy lệnh mô tả một số thao tác nhất định và có thể được thực hiện (được gọi) từ nhiều vị trí trong chương trình. Chương trình con được viết khi cần sử dụng lại đoạn lệnh đó nhiều lần. Hiểu nôm na là, trong 1 chương trình, đôi khi 1 đoạn lệnh có cùng 1 công dụng nhưng được viết nhiều lần ở nhiều vị trí khác nhau, do đó người ta viết chương trình con, để khi cần thì chỉ cần gọi tên chương trình con đó.
Mọi chương trình Pascal đều được ngầm định tích hợp thư viện system, gồm 1 số chương trình con như write/writeln, read/readln,...
Ở ví dụ trên, thư viện "system" không chứa chương trình con nào có khả năng xoá màn hình nhưng trong thư viện "crt" có thủ thục "clrscr" mà chúng ta cần tìm nên ta cần khai báo thư viện "crt" bằng câu lệnh "uses crt;" để sử dụng được nó.
Chương trình này nhiều hơn chương trình trước đó ở dòng 1,2,4. Hãy dùng Free Pascal để xoá 1 hoặc 1 vài dòng trong 3 dòng trên thử xem thế nào nhé!
Dòng 1: "program" là từ khoá xác định tên chương trình. Nó không có ý nghĩa quan trọng đối với chương trình, hoàn toàn có thể bỏ qua.
Dòng 2: "uses" là từ khoá dùng để khai báo thư viện. Thư viện được khai báo ở đây có tên là "crt". Thư viện là 1 tập hợp những chương trình con (hàm, thủ tục) thực hiện 1 số chức năng liên quan với nhau.
Dòng 4: "clrscr" - chính là lệnh xoá màn hình. Nếu bạn làm bài tập trên, bạn sẽ phát hiện nếu không có dòng 2 khai báo thư viện thì dòng lệnh này không chạy được. Lí do là "clrscr" chính là 1 chương trình con thuộc thư viện crt.
II. 1 chương trình Pascal gồm những phần nào?
Phần thân là phần nằm giữa cặp từ khoá "begin" và "end" (có dấu chấm ở cuối end). Đây là phần đóng vai trò chính trong 1 chương trình do mọi thao tác mà chương trình thực hiện đều xuất phát từ phần thân chương trình.
Phần còn lại là phần khai báo, dùng để định nghĩa tất cả những gì được dùng trong phần thân chương trình nằm ngoài cú pháp cơ bản của Pascal hay của thư viện system.
III. Đôi nét về thư viện
Thư viện là tập hợp của nhiều chương trình con được viết sẵn nhằm mục đích tái sử dụng lại trong nhiều chương trình khác nhau.Chương trình con là một dãy lệnh mô tả một số thao tác nhất định và có thể được thực hiện (được gọi) từ nhiều vị trí trong chương trình. Chương trình con được viết khi cần sử dụng lại đoạn lệnh đó nhiều lần. Hiểu nôm na là, trong 1 chương trình, đôi khi 1 đoạn lệnh có cùng 1 công dụng nhưng được viết nhiều lần ở nhiều vị trí khác nhau, do đó người ta viết chương trình con, để khi cần thì chỉ cần gọi tên chương trình con đó.
Mọi chương trình Pascal đều được ngầm định tích hợp thư viện system, gồm 1 số chương trình con như write/writeln, read/readln,...
Ở ví dụ trên, thư viện "system" không chứa chương trình con nào có khả năng xoá màn hình nhưng trong thư viện "crt" có thủ thục "clrscr" mà chúng ta cần tìm nên ta cần khai báo thư viện "crt" bằng câu lệnh "uses crt;" để sử dụng được nó.
IV. Lệnh đơn - Lệnh có cấu trúc
1. Lệnh đơn
Trong ví dụ trên
là những lệnh đơn. Cả 3 lệnh đơn trên đều là lệnh thủ tục do nó gọi thủ tục có sẵn (clrscr từ thư viện crt, write và readln từ thư viện system). Ngoài lệnh thủ tục, lệnh đơn còn có 2 loại khác là lệnh gán và lệnh nhảy cóc (goto) (sẽ tìm hiểu trong các bài sau).clrscr; write('Hello, World!'); readln;
phần lí thuyết - còn tiếp
Thực hành
Một bài thực hành nhỏ để các bạn review lại kiến thức đã nắm được từ bài trên, bạn nào có nhã hứng trao đổi về bài, có thể comment dưới blog này hoặc inbox facebook để nói chuyện nhé ^^
Đề bài của chúng ta sẽ là: Hãy viết 1 chương trình thực hiện những lệnh sau:
- Xuất ra màn hình họ và tên của bạn rồi chờ người dùng bấm enter
- Sau khi bấm enter thì xuất tiếp ra màn hình ngày tháng năm sinh của bạn
- Sau đó bấm enter thì chương trình sẽ thoát.
Gợi ý: Để xuống dòng sau khi xuất ra màn hình, bạn thay "write" bằng "writeln" nhé ^^
Snowy Nguyễn