Xu Hướng 9/2023 # Cấu Trúc Một Chương Trình Java # Top 9 Xem Nhiều | Nhatngukohi.edu.vn

Xu Hướng 9/2023 # Cấu Trúc Một Chương Trình Java # Top 9 Xem Nhiều

Bạn đang xem bài viết Cấu Trúc Một Chương Trình Java được cập nhật mới nhất tháng 9 năm 2023 trên website Nhatngukohi.edu.vn. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất.

import java. awt.*;

Lệnh này nhập gói ‘awt’. Gói này dùng để tạo các đối tượng GUI. Ở đây java là tên của thư mục chứa gói ‘awt’. Ký hiêu “*” chỉ tất cả các lớp thuộc gói này.

Trong java, tất cả các mã, bao gồm các biến và cách khai báo nên được thực hiện trong phạm vi một lớp. Bởi vậy, từng khai báo lớp được tiến hành sau lệnh nhập. Một chương trình đơn giản có thể chỉ có một vài lớp. Những lớp này có thể mở rộng thành các lớp khác. Mỗi lệnh đều được kết thúc bởi dấu chấm phảy “;”. Chương trình còn có thể bao gồm các ghi chú, chỉ dẫn. Khi dịch, chương trình dịch sẽ tự loại bỏ các ghi chú này.

Dạng cơ bản của một lớp được xác định như sau :

class classname { /* Đây là dòng ghi chú*/ int num1,num2; Show() { statement (s); } }

“Token” là đơn vị riêng lẻ, nhỏ nhất, có ý nghĩa đối với trình biên dịch của một chương trình Java. Một chương trình java là tập hợp của các “token”

Các “token” được chia thành năm loại:

Định danh (identifiers): Dùng để thể hiện tên biến, phương thức, hoặc các lớp. Chương trình biên dịch sẽ xác định các tên này là duy nhất trong chương trình. Khi khai báo định danh cần lưu ý các điểm sau đây:

Mỗi định danh được bắt đầu bằng một chữ cái, một ký tự gạch dưới (_) hay dấu $. Các ký tự tiếp theo có thể là chữ cái, chữ số, dấu $ hoặc một ký tự được gạch dưới.

Mỗi định danh chỉ được chứa hai ký tự đặc biệt này là dấu gạch dưới (_) và dấu $ . Ngoài ra không được phép sử dụng bất kỳ ký tự đặc biệt nào khác.

Các định danh không được chứa dấu cách ” ” (space).

Từ khoá/từ dự phòng (Keyword/Reserve Words): Một số định danh đã được Java xác định trước. Người lập trình không được phép sử dụng chúng như một định danh. Ví dụ ‘class’, ‘import’ là những từ khoá.

{ } ; ,

Nguyên dạng (literals): Là các giá trị không đổi trong chương trình. Nguyên dạng có thể là các số, chuỗi, các ký tự hoặc các giá trị Boolean. Ví dụ 21, ‘A’, 31.2, “This is a sentence” là những nguyên dạng.

Cấu Trúc Chương Trình Trong Javascript

Trong các bài viết trước, mình đã giới thiệu với bạn những thành phần cơ bản của JavaScript ( values, types và operators). Nhưng đây mới chỉ là những nguyên liệu thô. Vậy làm thế nào để kết hợp những thành phần này thành một chương trình hoàn chỉnh. Để giải quyết vấn đề này, chúng ta sẽ cùng tìm hiểu về cấu trúc chương trình trong JavaScript.

Theo wikipedia: Expression (computer science), an instruction to execute something that will return a value. Tạm dịch như sau: biểu thức là một chỉ dẫn để thực hiện một vài công việc và trả về một giá trị.

Do đó, mỗi giá trị được viết trực tiếp (66, ‘hello’, true, NaN,…) là một biểu thức ( expression). Hay việc kết hợp những giá trị với toán tử (1 + 5, ‘I’ + ‘ love’ + ‘ you’, !false, …) cũng là những biểu thức.

Biểu thức có thể đơn giản là những phép cộng, trừ,… Hoặc có thể là những công thức toán học, vật lý,… phức tạp. Và trong một biểu thức có thể chứa nhiều biểu thức con.

Một biểu thức hoàn chỉnh (tương ứng với một câu) được gọi là một câu lệnh ( statement). Chương trình thực chất là tập hợp của những câu lệnh.

Trong hầu hết các ngôn ngữ lập trình, một câu lệnh thường được kết thúc bởi dấu chấm phẩy (;). JavaScript cũng vậy. Ngoài ra, JavaScript còn cho phép bạn bỏ qua dấu chấm phẩy. Khi đó, mỗi câu lệnh sẽ ở trên một dòng.

Theo mình, tốt nhất là chúng ta nên sử dụng dấu chấm phẩy để kết thúc một câu lệnh. Điều này đảm bảo rằng chương trình của chúng ta hoạt động theo đúng ý muốn.

Mình đã đưa ra 3 ví dụ về câu lệnh. Các bạn thấy rằng, các câu lệnh được thực hiện. Nhưng chúng hoàn toàn vô nghĩa. Để giải quyết vấn đề này, JavaScript đưa ra khái niệm: biến số ( variable).

Biến số dùng để lưu giữ giá trị. Qua đó, chúng ta có thể sử dụng giá trị này ở những nơi khác của chương trình.

Trong ví dụ trên, mình sử dụng từ khoá ( keyword) là var, theo sau là tên biến số ( isFriday, result, str), toán tử gán (=) và cuối cùng là các biểu thức.

Sau khi đã khai báo như trên, chúng ta có thể sử dụng biến số trong biểu thức thay vì dùng giá trị:

Ngoài ra, sau khi bạn gán giá trị cho một biến số thì bạn vẫn có thể gán biến số đó với một giá trị khác.

Từ khoá ( keywords) là những từ mang ý nghĩa đặc biệt. Từ var là một từ khoá. Từ khoá var theo sau nó sẽ là một biến số ( var là viết tắt của variable).

Từ dự trữ ( reserved words) là những từ sẽ được dùng làm từ khoá cho những phiên bản sau của JavaScript. Bạn sẽ không thể sử dụng từ khoá hay từ dự trữ để đặt tên cho biến số.

Danh sách những từ khoá và những từ dự trữ:

Mỗi từ khoá sẽ mang một ý nghĩa khác nhau. Và mình sẽ giới thiệu chúng trong những bài viết sau.

JavaScript có những quy tắc đặt tên cho biến số như sau:

Bắt đầu bằng chữ cái, dấu gạch dưới (_) hoặc kí tự “đô la” ($)

Sau kí tự đầu tiên, ngoài những kí tự trên, bạn có thể sử dụng thêm số (number)

Không sử dụng từ khoá và từ dự trữ

Ví dụ những tên hợp lệ:

Ví dụ những tên không hợp lệ:

Vấn đề mình muốn đề cập ở đây là cách đặt tên làm sao để khi nhìn vào, bạn biết ngay ý nghĩa của nó. Để giải quyết vấn đề này, có hai trường phái đặt tên như sau:

Sử dụng dấu gạch dưới để phân tách các từ: dientichao

Sử dụng Camel Case (đơn giản là bạn viết hoa chữ cái đầu tiên của mỗi từ, trừ từ đầu tiên): dienTichAo

Theo kinh nghiệm của bản thân, mình sẽ sử dụng kết hợp cả hai cách trên. Thường thì mình sẽ sử dụng cách thứ hai (Camel Case). Tuy nhiên, khi muốn sử dụng một biến số như là một hằng số thì mình sẽ sử dụng cách một. Vì lúc này, mình sẽ viết hoa tất cả các kí tự.

Việc đặt tên theo chuẩn giúp code của bạn giữ được tính thống nhất. Đặc biệt, trong một dự án gồm nhiều lập trình viên tham gia, thử tưởng tượng xem nếu mỗi người đặt tên theo một phong cách khác nhau thì sao? Trời ơi, mình sẽ không muốn đọc thứ code tạp nham đó!

Tập hợp những biến số và giá trị của chúng tại một thời điểm được gọi là môi trường ( enviroment). Khi chương trình bắt đầu, môi trường của nó không phải trống rỗng. Luôn luôn có những biến số giúp chương trình tương tác với môi trường xung quanh.

Ví dụ như trình duyệt. Luôn có những biến số và hàm số giúp chương trình đọc được trạng thái của chuột và bàn phím.

Để giúp cho việc lập trình dễ dàng hơn, trình duyệt cung cấp sẵn một số hàm sau đây.

Cú pháp: alert(message);

Hàm này giúp đưa ra một thông báo tới người dùng. Ví dụ:

Kết quả:

Khác với hàm alert, hàm chúng tôi sẽ không đưa ra thông báo trực tiếp tới người dùng. Thông thường hàm này chỉ được sử dụng để ghi lại log.

Cú pháp: console.log(message);

Ở hầu hết các trình duyệt, để xem được log của hàm này, bạn chỉ cấn nhấn F12 hoặc Ctr Shift I hay trên Mac là Command Option I. Nếu những phím tắt này không có tác dụng thì bạn có thể tìm trên menu thành phần web console hay developer tools.

Trong hầu hết các ví dụ, mình đều sử dụng hàm chúng tôi để kiểm tra kết quả.

Tương tự như hàm alert, hàm confirm cũng đưa ra một thông báo trực tiếp tới người dùng. Tuy nhiên, hàm này sẽ yêu cầu người dùng xác nhận bằng cách chọn OK/Cancel. Nếu người dùng chọn OK thì hàm này sẽ trả về true. Ngược lại, nếu người dùng chọn Cancel thì kết quả trả về sẽ là false.

Ví dụ:

Kết quả:

Hàm prompt cũng lại tương tự như hàm confirm nhưng cho phép người dùng nhập vào string.

Ví dụ:

Kết quả:

Hai hàm confirm và prompt thường không được sử dụng ở trên trình duyệt hiện đại. Bởi bạn không thể quyết định được giao diện của nó sẽ như thế nào. Tuy nhiên, với mục đích để kiểm tra hay trong một vài chương trình đơn giản thì bạn vẫn có thể sử dụng chúng.

Như mình đã nói ở trên, chương trình là tập hợp của những câu lệnh. Thông thường, chương trình sẽ được thực hiện tuần tự từ trên xuống dưới.

Ví dụ: chương trình sau yêu cầu người dùng nhập vào một số và sau đó hiển thị ra bình phương của số đó.

Chương trình sẽ thực hiện tuần tự từng câu lệnh. Và luồng điều khiển của chương trình sẽ như sau:

Thỉnh thoảng chúng ta sẽ muốn chỉ thực hiện câu lệnh nếu một hay nhiều điều kiện thoả mãn. Lúc này chúng ta sẽ sử dụng điều kiện rẽ nhánh.

Phương pháp hay được sử dụng nhất để rẽ nhánh trong JavaScript là sử dụng if.

Tiếp tục với ví dụ trên, nếu như bây giờ mình chỉ muốn hiển thị kết quả khi người dùng nhập số. Nếu người dùng nhập vào không phải là số thì mình sẽ không hiển thị thông báo.

Lúc này luồng điểu khiển:

Trường hợp, mình vẫn muốn hiển thị thông báo khi người dùng không nhập số. Mình sẽ sử dụng thêm từ khoá else:

Nếu như mình có nhiều lựa chọn thì sao. Mình sẽ kết hợp nhiều cặp if/else.

Lúc này luồng điểu khiển có thể được biểu diễn đơn giản như sau:

Ngoài sử dụng từ khoá if/else, chúng ta còn có thể sử dụng switch. Tuy nhiên, theo như một số tài liệu mình đọc được, trong JavaScript bạn không nên sử dụng switch. Do đó, mình sẽ không trình bày chi tiết về phần này. Về lí do thì bạn có thể tự tìm hiểu thêm.

Một bài toán đặt ra là: mình muốn in ra các số từ 1 đến 100. Mình sẽ phải viết ra 100 câu lệnh:

Nhanh mà, copy-paste một lúc là xong thôi.

Nhưng bây giờ mình muốn in ra các số từ 1 đến 1000000000. Cứ tính trung bình 1 dòng lệnh hết 1 giây để copy-paste. Suy ra thời gian để viết hết các câu lệnh là 1000000000 / (365 * 24 * 60 * 60) = 31 (năm). Nghĩ đến đây là đã muốn bỏ cuộc rồi.

Nhưng không. Chúng ta có một công cụ rất mạnh mẽ đó là: vòng lặp ( loop).

Vòng lặp giúp giải quyết những bài toán có tính lặp lại theo quy luật. Với bài toán trên, quy luật là số sau sẽ bằng số đằng trước nó cộng thêm 1.

Luồng điều khiển lúc này sẽ là:

Như vậy, khi áp dụng vòng lặp thì bài toán trên sẽ giải quyết thế nào?

Ở đây, từ khoá while chính là đại diện cho vòng lặp. Tiếp sau, trong cặp dấu ngoặc đơn là điều kiện để vòng lặp được thực hiện. Do đó, nếu như điều kiện trong dấu ngoặc kép luôn luôn đúng thì vòng lặp sẽ chạy vô hạn. Ngược lại, nếu ngay từ đầu điều kiện đã sai thì những lệnh trong vòng lặp sẽ không được thực hiện, dù chỉ một lần.

Vòng lặp do/while cũng tương tự vòng lặp while. Chỉ khác là nó sẽ chắc chắn thực hiện ít nhất một lần.

Nhìn chung, hai cách trên không khác nhau. Bạn có thể lựa chọn một trong hai cách trong từng trường hợp cụ thể sao cho hợp lý (còn riêng mình thì hầu như không sử dụng vòng lặp do/while).

Nếu để ý thì bạn sẽ thấy cấu trúc chung khi sử dụng vòng lặp là:

Khởi tạo giá trị đếm (number = 1)

So sánh giá trị đếm với giới hạn tối đa (number <= 100)

Tăng giá trị đếm (number = number + 1) Để ngắn gọn, JavaScript sinh ra vòng lặp for.

Bạn có thể thấy là cấu trúc của vòng lặp vẫn được duy trì mà nhìn code gọn gàng hơn rất nhiều.

Cấu trúc chung của vòng lặp for như sau:

[Khởi tạo]: được thực hiện một lần lúc bắt đầu vòng lặp

[Điều kiện]: được kiểm tra mỗi lần vòng lặp được lặp lại

[Cập nhật]: Thực hiện ở cuối mỗi vòng lặp.

Trong các ví dụ trên, ta luôn luôn có điều kiện để thoát khỏi vòng lặp. Tuy nhiên, nếu như mình không biết trước khi nào sẽ thoát vòng lặp thì sao. Lúc này, mình sẽ phải sử dụng vòng lặp vô hạn. Nghĩa là điều kiện thực hiện vòng lặp luôn là true.

Vậy khi nào thì vòng lặp được dừng lại? Và dừng lại bằng cách nào?

Câu trả lời là: khi gặp điều kiện thoả mãn để kết thúc vòng lặp. Và sử dụng từ khoá break để thoát vòng lặp.

Ví dụ sau, mình sẽ tìm bội số nhỏ nhất của 7 bắt đầu từ 8:

Trong vòng lặp for trên, mình bỏ qua phần điều kiện. Lúc này có thể hiểu là: sẽ không kiểm tra điều kiện trước khi thực hiện vòng lặp. Hay vòng lặp luôn luôn được thực hiện. Mỗi vòng lặp mình sẽ kiểm tra xem nếu số đó chia hết cho 7 (số dư khi chia cho 7 == 0) thì đó chính là số cần tìm. Cuối cùng, mình dùng break để thoát khỏi vòng lặp.

Tương tự, bạn cũng có thể áp dụng từ khoá break đối với vòng lặp while, do/while.

Từ khoá continue

Có một từ khoá khác gần giống break cũng hay được sử dụng là continue. Nếu như break là để thoát khỏi vòng lặp thì continue dùng để dừng lượt lặp hiện tại và chuyển tới lượt tiếp theo.

Ví dụ mình muốn tìm bội số nhỏ nhất của 7, bắt đầu từ 8 và là số lẻ.

Khác với ví dụ trước, ví dụ này cần phải tìm ra bội số là số lẻ. Do đó, trước tiên mình sẽ kiểm tra xem số hiện tại là chẵn hay lẻ. Nếu number % 2 == 0, suy ra đó là số chẵn. Chắc chắn trường hợp này không thoả mãn nên mình không cần phải chạy tiếp các câu lệnh tiếp theo, mà chuyển ngay sang lượt lặp tiếp theo.

Khi viết code, có những lúc bạn khó có thể sử dụng code của mình để diễn tả cho người khác hiểu. Hoặc thậm chí là chính bạn, khi đọc lại code của mình cũng sẽ không hiểu tại sao mình viết như vậy.

Có 2 kiểu viết chú thích là:

Chú thích 1 dòng, sử dụng

Chú thích nhiều dòng, sử dụng /**/

Khi chạy chương trình, trình duyệt sẽ bỏ qua thành phần chú thích này.

Có nhiều quan điểm về việc có nên viết chú thích hay không. Bản thân mình thì mình sẽ chỉ viết chú thích khi cần thiết. Một vài trường hợp mình viết chú thích:

Việc đặt tên biến không diễn tả được hết ý nghĩa của nó (muốn đầy đủ ý nghĩa thì nó lại quá dài)

Sử một công thức đã được chứng minh (nếu không chú thích lại sẽ không biết công thức đó ở đâu ra)

Giải thích ý nghĩa của một hàm số (tại sao lại phải viết hàm này…)

Các cụ ta có câu: Học đi đôi với hành. Thực hành sẽ giúp bạn nhanh làm chủ ngôn ngữ lập trình hơn. Tin mình đi.

Sử dụng chúng tôi để in ra hình tam giác như sau:

Sử dụng prompt để yêu cầu người dùng nhập vào một số. Nếu người dùng nhập vào không phải là số thì hiển thị ra thông báo: Bạn nhập vào không phải là số. Nếu người dùng nhập vào là số thì hiển thị ra thông báo: Số bạn nhập vào quá nhỏ khi số đó < 10. Ngược lại thì dừng thông báo.

Sử dụng chúng tôi để in ra hình bàn cờ vua kích thước (8 x 8) như sau:

Chú ý:

Bạn nên tự thực hành để giải quyết bài toán trước khi tham khảo code. Khi đấy bạn sẽ hiểu và nhớ kiến thức lâu hơn.

Nếu bạn đã giải quyết được hết những bài toán cơ bản này thì chúc mừng bạn đã nắm được những thành phần cơ bản trong cấu trúc chương trình JavaScript rồi.

Hẹn gặp lại bạn ở bài viết tiếp theo, thân ái!

Cấu Trúc Của Một Chương Trình Trong Python

Trong bài viết này, bạn sẽ tìm hiểu về cách xây dựng cấu trúc và định dạng hoàn thiện các chương trình python của bạn.

1. Câu lệnh trong Python

print('Welcome to Cafedev - Nơi chia sẻ thông tin cho developer')

Kết quả

Welcome to Cafedev - Nơi chia sẻ thông tin cho developer

Ví dụ 2:

# Example 2 x = [1, 2, 3, 4] # x[1:3] means that start from the index # 1 and go upto the index 2 print(x[1:3]) """ In the above mentioned format, the first index is included, but the last index is not included."""

Kết quả:

[2, 3]

2. Nhiều câu lệnh trên mỗi dòng 

Chúng ta cũng có thể viết nhiều câu lệnh trên mỗi dòng, nhưng nó không tốt vì nó làm giảm khả năng đọc code. Cố gắng tránh viết nhiều câu trong một dòng. Tuy nhiên, bạn vẫn có thể viết nhiều dòng bằng cách chấm dứt một câu với sự trợ giúp của dấu ‘;’. Trong trường hợp này, dấu ‘;’ được sử dụng như là dấu kết thúc một câu lệnh.Lấy ví dụ, hãy xem xét code sau đây.

# Example a = 10; b = 20; c = b + a print(a); print(b); print(c)

Kết quả:

10 20 30

3. Tiếp tục dòng để tránh cuộn trái và cuộn phải

Một số câu lệnh có thể rất dài và có lẽ sẽ buộc bạn phải cuộn màn hình sang trái và phải thường xuyên. Bạn có thể điều chỉnh code của mình theo cách mà không phải cuộn nhiều. Python cho phép bạn viết một câu lệnh trong nhiều dòng, còn được gọi là tiếp tục dòng. Đồng thời, tiếp tục dòng cũng tăng cường khả năng đọc code.

# Bad Practice as width of this code is too much. #code x = 10 y = 20 z = 30 no_of_teachers = x no_of_male_students = y no_of_female_students = z if (no_of_teachers == 10 and no_of_female_students == 30 and no_of_male_students == 20 and (x + y) == 30): print('The course is valid') # This could be done instead: if (no_of_teachers == 10 and no_of_female_students == 30 and no_of_male_students == 20 and x + y == 30): print('The course is valid')

4. Các loại tiếp tục dòng

Nhìn chung, có hai loại tiếp tục dòng

Tiếp tục dòng ẩnĐây là kỹ thuật đơn giản nhất trong việc viết một câu lệnh kéo dài nhiều dòng.Bất kỳ câu lệnh nào chứa dấu mở ngoặc đơn (‘(‘), dấu mở ngoặc vuông (‘[‘) hoặc dấu mở ngoặc nhọn (‘{‘) được coi là không đầy đủ cho đến khi gặp phải tất cả dấu đóng ngoặc đơn, dấu đóng ngoặc vuông và dấu đóng ngoặc nhọn. Đến lúc đó, câu lệnh có thể được ẩn tiếp tục vượt qua nhiều dòng mà không có lỗi.Ví dụ:

# The following code is valid a = [ [1, 2, 3], [3, 4, 5], [5, 6, 7] ] print(a)

Kết quả:

[[1, 2, 3], [3, 4, 5], [5, 6, 7]]

Ví dụ 2:

# The following code is also valid person_1 = 18 person_2 = 20 person_3 = 12 if ( person_3 < 18 ): print('2 Persons should have ID Cards')

Kết quả:

2 Persons should have ID Cards

Tiếp tục dòng hiệnNối dòng hiện được sử dụng chủ yếu khi không thể áp dụng nối dòng ẩn. Trong phương pháp này, bạn phải sử dụng một ký tự để giúp trình thông dịch hiểu rằng câu lệnh cụ thể đang kéo dài hơn một dòng.Dấu gạch chéo ngược () được sử dụng để chỉ ra rằng một câu lệnh kéo dài hơn một dòng. Vấn đề cần lưu ý là dấu (“) phải là ký tự cuối cùng trong dòng đó, ngay cả dấu cách cũng không được phép.Xem ví dụ sau để rõ hơn:

x = 1 + 2 + 5 + 6 + 10 print(x)

Kết quả:

24

Ví dụ 1

Ví dụ 2

""" This example will demonstrate """ The following a variable contains the string 'How old are you?' """ a = 'How old are you?' """ The following statement prints what's inside the variable a """ print(a)

Lưu ý 

""" The following statement prints the string stored in the variable """ print(a) # Prints the string stored in a

6. Khoảng trắng

Các ký tự khoảng trắng phổ biến nhất là:

KÝ TỰCODE ASCIIBIỂU HIỆN BẰNG CHỮspace32 (0x20)”tab9 (0x9)‘ t’dòng mới10 (0xA)‘ N’

* Bạn có thể tham khảo Bảng ASCII bằng cách nhấp vào đây .

Trình thông dịch Python hầu như không yêu cầu khoảng trắng và bỏ qua nó. Khi nơi một câu lệnh kết thúc và câu lệnh tiếp theo bắt đầu rõ ràng, khoảng trắng có thể được bỏ qua. Đây thường là trường hợp khi có các ký tự không chữ và số đặc biệt.

Ví dụ 1:

# This is correct but whitespace can improve readability a = 1-2 # Better way is a = 1 - 2 print(a)

Ví dụ 2:

# This is correct # Whitespace here can improve readability. x = 10 flag =(x == 10)and(x<12) print(flag) """ Readable form could be as follows x = 10 flag = (x == 10) and (x < 12) print(flag) """ # Try the more readable code yourself

Khoảng trắng là điều cần thiết trong việc tách các từ khóa khỏi các biến hoặc các từ khóa khác. Hãy xem xét ví dụ sau.

x = [1, 2, 3] y = 2 """ Following is incorrect, and will generate syntax error a = yin x """ # Corrected version is written as a = y in x print(a)

Khoảng trắng khi lùi dòng.Cú pháp của Python khá dễ dàng, nhưng bạn vẫn phải cẩn thận khi viết code. Việc lùi dòng cũng được sử dụng khi viết code trong python.Khoảng trắng trước một câu lệnh có vai trò quan trọng và được sử dụng trong việc lùi dòng. Nó có thể có một ý nghĩa khác. Hãy thử một ví dụ.

print('foo') # Correct print('foo') # This will generate an error # The error would be somewhat 'unexpected indent'

Các khoảng trắng ở đầu dòng được sử dụng để xác định nhóm các câu lệnh như trong các vòng hoặc cấu trúc điều khiển, v.v.Ví dụ:

x = 10 while(x != 0): else: # Line 3 print('x < 5') # Line 4 x -= 2 # Line 5 """ Lines 1, 3, 5 are on same level Line 2 will only be executed if if condition becomes true. Line 4 will only be executed if if condition becomes false. """

Kết quả:

x < 5 x < 5

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:

Chào thân ái và quyết thắng!

Bạn thấy chất lượng bài viết này tốt không?

Cấu Trúc Của Một Chương Trình Arduino Ide

Phần này sẽ đưa ra cấu trúc của một chương trình trong Arduino IDE, đồng thời giải thích một số lệnh thường được sử dụng để thuận tiện cho người dùng.

Xét 1 ví dụ đơn giản, ví dụ làm cho led nhấp nháy:

#define led = 13

void setup() {

pinMode(led, OUTPUT);

}

void loop() {

digitalWrite(led, HIGH);

delay(1000);

digitalWrite(led, LOW);

delay(1000);

}

1. Phần 1: Khai báo biến

Đây là phần khai báo kiểu biến trong Arduino IDE, tên các biến, định nghĩa các chân trên board một số kiểu khai báo biến thông dụng:

* #define

Nghĩa của từ define là định nghĩa, hàm #define có tác dụng định nghĩa, hay còn gọi là gán, tức là gán một chân, một ngõ ra nào đó với 1 cái tên.

Ví dụ #define led 13

Chú ý: sau #define thì không có dấu “,” (dấy phẩy)

*Khai báo các kiểu biến khác như: int (kiểu số nguyên), float,…

2. Phần 2: Thiết lập (void setup())

Phần này dùng để thiết lập cho một chương trình Arduino IDE, cần nhớ rõ cấu trúc của nó

void setup()

Cấu trúc của nó có dấu ngoặc nhọn ở đầu và ở cuối, nếu thiếu phần này khi kiểm tra chương trình thì chương trình sẽ báo lỗi

Phần này dùng để thiết lập các tốc độ truyền dữ liệu, kiểu chân là chân ra hay chân vào. Trong đó:

Serial.begin(9600)

Dùng để truyền dữ liệu từ board Arduino lên máy tính

pinMode(bien,kiểu vào hoặc ra);

ví dụ: pinMode(chanD0,INPUT);

Dùng để xác định kiểu chân là vào hay ra

3. Phần 3: Vòng lặp

Dùng để viết các lệnh trong chương trình để mạch Arduino thực hiện các nhiệm vụ mà chúng ta mong muốn, thường bắt đầu bằng: void loop() { ………………. }

Một số câu lệnh, cấu trúc thường gặp

//

Dấu

Ký hiệu này cũng dùng để giải thích, nhưng giải thích dành cho 1 đoạn, tức có thể xuống dòng được

#define biến chân

Define nghĩa là định nghĩa, xác định. Câu lệnh này nhằm gán tên 1 biến vào 1 chân nào đó. Ví dụ #define led 13

digitalWrite(chân, trạng thái);

Dùng để tắt, mở 1 chân ra. Cú pháp của nó là digitalWrite(chân,trạng thái chân);. Ở đây trạng thái chân có thể là HIGH hoặc LOW. Ví dụ: digital(led,HIGH); , hoặc digital(led,LOW); . Chú dấu chấm phẩy đằng sau câu lệnh.

analogWrite(chân, giá trị);

Có ý nghĩa dùng để băm xung (PWM), thường dùng để điều khiển tốc độ động cơ, độ sáng led,

digitalRead(chân);

Read nghĩa là đọc, lệnh này dùng để đọc giá trị digital tại chân muốn đọc

analogRead(chân);

Read nghĩa là đọc, lệnh này dùng để đọc giá trị analog tại chân muốn đọc

delay(thời gian);

Delay nghĩa là chờ, trì hoãn, duy trì. Lệnh này dùng để duy trì trạng thái đang thực hiện chờ một thời gian. Thời gian ở đây được tính bằng mili giây, 1 giây bằng 1 ngàn mili giây

if nghĩa là nếu, sau if là dấu (), bên trong dấu ngoặc là một biểu thứ so sánh. Ví dụ trong bài về cảm biến độ ẩm đất (phần 5) thì:

{

digitalWrite(Led,HIGH);

delay(1000);//chờ 1s

}

else nghĩa là ngược lại

Serial.print()

In ra màn hình máy tính, lệnh này in không xuống dòng

Serial.println()

In ra màn hình máy tính, in xong xuống dòng, giá trị tiếp theo sẽ được in ở dòng kế tiếp

Bài 3: Cấu Trúc Chương Trình Và Sử Dụng Biến Trong Lập Trình Java 9

Bài 3: Cấu trúc chương trình và sử dụng biến trong lập trình Java 9

access_time1/30/2023 12:00:00 AM

+ Ứng dụng Cosole base (Sử dụng cửa sổ câu lệnh để thao tác).

+ Ứng dụng chạy windows

+ Ứng dụng Applets, đây là các chương trình được viết bằng Java nhưng có kích cỡ nhỏ, và có nhúng HTML và chạy trên trình duyệt.

+ Ứng dụng Web, đây là ứng dụng phổ biến ngày nay, ứng dụng Web được phát triển bằng Java chứa các Component như Servlet, Java Server Page, Java Server Face (JSF) ..

+ Các thành phần JavaBean được sử dụng để chia sẻ các chức năng trên nhiều các phân lớp (layer) của ứng dụng.

+ Ứng dụng Enterprise sử dụng các thành phần Enterprise như Enterprise JavaBean (EJB) được thiết kế và sử dụng phân tán.

+ Ngoài ra có thể có một loạt các nền tảng khác hỗ trợ cho các lập trình viên Java phát triển ứng dụng theo mô hình hệ sinh thái phần mềm như Spring.

Các ứng dụng Java có thể được xây dựng và phát triển thông qua các bộ công cụ lập trình như Eclipse, NetBean … Ở đây chúng ta sẽ sử dụng công cụ Eclipse để thực hiện code minh họa.

2. Cấu trúc của ứng dụng Java. 2.1 Mô tả chung

Ngôn ngữ lập trình Java được thiết kế với các đặc tính soay quanh đặc trưng hướng đối tượng. Đó chính là việc xoay quanh việc thiết kế các lớp (Class) và việc tạo các đối tượng (Object) là thể hiện của lớp. Việc này cũng tương tự giống như các nhà thiết kế ứng dụng sử dụng ngôn ngữ mô hình hóa (UML) hay ngôn ngữ mô hình hóa hệ thống (SyML) để đặc tả phần mềm.

Phát triển ứng dụng Java sẽ được khởi đầu bằng việc định nghĩa các lớp, Sau khi định nghĩa các lớp xong, định dạng của tệp lưu trữ các lớp sẽ có đuôi mở rộng là .java.

Hình số 1 : Mô tả cấu trúc cơ bản của lớp Java

+ package : Một package (gói) mô tả không gian tên có chứa các lớp của Java, sử dụng ký tự thường và dấu chấm để định nghĩa tên, chúng ta có thể xem package như là một thư mục, còn class chính là các file trực thuộc thư mục.

+ import : Từ khóa được sử dụng trong Java nhằm để xác định các class hoặc các package được sử dụng trong lớp này.

+ class : Từ khóa nhằm để định nghĩa lớp của Java. Nó đứng trước khai báo tên lớp của Java. Ngoài ra còn có từ khóa public, từ khóa này xác định phạm vi truy cập của lớp. Đặc tính này chính là tính đóng gói trong lập trình hướng đối tượng.

+ methods : Phương thức hay còn gọi là hàm chứa các hành động thực thi của đối tượng. Đương nhiên nội dung của phương thức chính là các đoạn mã thực thi của chính phương thức này.

+ constructors : Phương thức khởi tạo (Hay hàm khởi tạo) của đối tượng. Hình dạng của đối tượng được thể hiện ra sao sẽ phụ thuộc vào phương thức này.

2.2 Ví dụ Hình số 2 : Ví dụ minh họa

+ ecosoftware.training : Tên gói chứa lớp

+ Welcome : Tên lớp

+ main() : Phương thức bắt đầu chạy, chú ý một lớp có chứa nhiều phương thức. Tuy nhiên phương thức main() gọi tự động khi ứng dụng chạy.

2.3 Biên dịch và thông dịch chương trình

Do chúng ta sử dụng bộ công cụ hỗ trợ phát triển ứng dụng Java là Eclipse do vậy các bạn chỉ cần thực hiện chạy ứng dụng. Khi đó công cụ Eclipse sẽ tự động thực hiện biên dịch ra mã Bytecode và thông dịch ra mã máy để thực thi ứng dụng.

Tuy nhiên chi tiết của vấn đề này được mô tả như sau :

Hình số 3 : Hình ảnh biên dịch và thông dịch

Trong đó javac và java là công cụ thực hiện biên dịch và thông dịch trực thuộc Jdk 9.

Các bạn có thể tìm hiểu thêm thông tin về công cụ javac và java bằng cách sử dụng của sổ dòng lệnh và thực hiện các câu lệnh sau :

hoặc câu lệnh javac -help java -help sau đó đọc các chú giải về các tham biến truyền vào khi thực hiện các lệnh biên dịch và thông dịch chương trình java.

Hình ảnh mô tả quá trình biên dịch và chạy chương trình Java.

Hình số 4 : Mô tả chạy chương trình 3. Biến và các kiểu dữ liệu

Tất cả chương trình ứng dụng đều phải thao tác với dữ liệu theo nhiều cách khác nhau. Lập trình viên Java cần phải hiểu được cách thức lưu trữ và xử lý dữ liệu trong chương trình mà lập trình viên đó muốn xây dựng và phát triển.

Khi chương trình cần lưu trư dữ liệu tạm thời để phục vụ cho quá trình xử lý tính toán thì chúng ta nghĩ ngay tới việc lưu trữ dữ liệu đó vào trong một biến. Trước khi sử dụng biến thì phải định nghĩa nó. Khi định nghĩa biến thì chúng ta phải định nghĩa tên biến và kiểu dữ liệu của biến.

3.1 Định nghĩa

Một biến là một thực thể chứa giá trị, giá trị này có thể được thay đổi trong chương trình hoặc trong một khối lệnh chứa nó. Ví dụ dùng biến để lưu trữ thông tin của tuổi của một sinh viên, hay mức lương của một nhân viên trong công ty.

Tương tự như các ngôn ngữ lập trình khác như C, C++, C# … Thông tin của biến sẽ được lưu trữ trong bộ nhớ máy tính và được định danh thông qua tên biến, tên biến được xác định là duy nhất trong phạm vi khai báo biến. Giá trị của biến sẽ được xác định thông qua tên biến, kích cỡ của bộ nhớ cấp phát cho biến đó là phụ thuộc vào kiểu dữ liệu của biến.

3.2 Sử dụng biến

Trong Java, bộ nhớ được khởi tạo và cấp phát cho biến tại thời điểm biến đó được tạo. Lập trình viên có thể khởi tạo giá trị của biến tại thời điểm tạo biến hoặc muộn hơn.int empNumber = 100; Khai báo một biến có tên là empNumber, giá trị của biến này được thiết lập tại lúc khởi tạo biến. Hình ảnh mô tả biến :

Hình số 5 : Mô tả biến

Cú pháp khai báo biến trong Java như sau :

: Tên của biến; Chú ý tên của biến cần phải tuân thủ theo quy tắc đặt tên biến của Java.

Quy tắc gán giá trị : Giá trị của biến có thể được gán tại lúc khởi tạo biến hoặc sau đó đều được. Cũng như các ngôn ngữ khác để gán giá trị của biến ta sử dụng dấu “=”;

+ Tên của biến chỉ sử dụng các kỹ tự trong bảng chữ cái (a..z A..Z), các ký tự số (0..9) và các dấu gạch dưới, không sử dụng ký tự đặc biệt

+ Ký tự đầu tiên của tên biến chỉ được phép sử dụng ký tự hoặc dấu gạch dưới.

+ Không được phép sử dụng các từ khóa trong ngôn ngữ lập trình Java để đặt tên cho biến.

+ Java phân biệt chữ hoa và chữ thường vì vậy khi đặt tên biến cần lưu ý điều này.

Hình số 6 : Khai báo biến

+ Đoạn mã trên gán giá trị 5 cho biến a.

+ Đoạn mã trên gán giá trị 7 cho biến b.

+ Sau đó tính tổng a + b cho biến c; và in thông tin của biến c ra màn hình.

4 Kiểu dữ liệu

Java hỗ trợ hỗ trợ cả 2 kiểu dữ liệu bao gồm:

+ Kiểu dữ liệu nguyên thủy (primitive-type)

+ Kiểu tham chiếu ( Reference-types)

Kiểu dữ liệu nguyên thủy hay cơ bản: Kiểu dữ liệu này bao gồm :

Hình số 7 : Kiểu dữ liệu nguyên thủy

Kiểu tham chiếu (Reference types): Chứa tham chiếu tới dữ liệu điều này có nghĩa là biến có kiểu tham chiếu sẽ trỏ tới địa chỉ chứa dữ liệu mà dữ liệu của biến đó chứa. Vì vậy có khả năng với một địa chỉ có thể có 2 biến tham chiếu cùng trỏ tới. Vì vậy khi thao tác trên một biến có thể sẽ ảnh hưởng tới biến kia.

Hình số 8 : Kiểu dữ liệu tham chiếu

Chi tiết về kích cỡ của các kiểu dữ liệu các bạn có thể tìm hiểu thêm trên internet.

Cấu Trúc Của Một Chương Trình Arduino Ide – Hourofcode Vietnam

Phần này sẽ đưa ra cấu trúc của một chương trình trong Arduino IDE, đồng thời giải thích một số lệnh thường được sử dụng để thuận tiện cho người dùng.

Xét 1 ví dụ đơn giản, ví dụ làm cho led nhấp nháy:

#define led = 13

void setup() {

pinMode(led, OUTPUT);

}

void loop() {

digitalWrite(led, HIGH);

delay(1000);

digitalWrite(led, LOW);

delay(1000);

}

1. Phần 1: Khai báo biến

Đây là phần khai báo kiểu biến trong Arduino IDE, tên các biến, định nghĩa các chân trên board một số kiểu khai báo biến thông dụng:

* #define

Nghĩa của từ define là định nghĩa, hàm #define có tác dụng định nghĩa, hay còn gọi là gán, tức là gán một chân, một ngõ ra nào đó với 1 cái tên.

Ví dụ #define led 13

Chú ý: sau #define thì không có dấu “,” (dấy phẩy)

*Khai báo các kiểu biến khác như: int (kiểu số nguyên), float,…

2. Phần 2: Thiết lập (void setup())

Phần này dùng để thiết lập cho một chương trình Arduino IDE, cần nhớ rõ cấu trúc của nó

void setup()

{ ….. }

Cấu trúc của nó có dấu ngoặc nhọn ở đầu và ở cuối, nếu thiếu phần này khi kiểm tra chương trình thì chương trình sẽ báo lỗi

Phần này dùng để thiết lập các tốc độ truyền dữ liệu, kiểu chân là chân ra hay chân vào. Trong đó:

Serial.begin(9600) Dùng để truyền dữ liệu từ board Arduino lên máy tính

pinMode(bien,kiểu vào hoặc ra);

ví dụ: pinMode(chanD0,INPUT);

Dùng để xác định kiểu chân là vào hay ra

3. Phần 3: Vòng lặp

Dùng để viết các lệnh trong chương trình để mạch Arduino thực hiện các nhiệm vụ mà chúng ta mong muốn, thường bắt đầu bằng: void loop() { ………………. }

Một số câu lệnh, cấu trúc thường gặp

Ký hiệu, câu lệnh

Ý nghĩa Câu lệnh

// Dấu

/*….

….. */

Ký hiệu này cũng dùng để giải thích, nhưng giải thích dành cho 1 đoạn, tức có thể xuống dòng được

#define biến chân Define nghĩa là định nghĩa, xác định. Câu lệnh này nhằm gán tên 1 biến vào 1 chân nào đó. Ví dụ #define led 13

digitalWrite(chân, trạng thái); Dùng để tắt, mở 1 chân ra. Cú pháp của nó là digitalWrite(chân,trạng thái chân);. Ở đây trạng thái chân có thể là HIGH hoặc LOW. Ví dụ: digital(led,HIGH); , hoặc digital(led,LOW); . Chú dấu chấm phẩy đằng sau câu lệnh.

analogWrite(chân, giá trị); Có ý nghĩa dùng để băm xung (PWM), thường dùng để điều khiển tốc độ động cơ, độ sáng led,

digitalRead(chân); Read nghĩa là đọc, lệnh này dùng để đọc giá trị digital tại chân muốn đọc

analogRead(chân); Read nghĩa là đọc, lệnh này dùng để đọc giá trị analog tại chân muốn đọc

delay(thời gian); Delay nghĩa là chờ, trì hoãn, duy trì. Lệnh này dùng để duy trì trạng thái đang thực hiện chờ một thời gian. Thời gian ở đây được tính bằng mili giây, 1 giây bằng 1 ngàn mili giây

if()

{

Các câu lệnh

}

else ()

{

Các câu lệnh

}

if nghĩa là nếu, sau if là dấu (), bên trong dấu ngoặc là một biểu thứ so sánh. Ví dụ trong bài về cảm biến độ ẩm đất (phần 5) thì:

{

digitalWrite(Led,HIGH);

delay(1000);//chờ 1s

}

else nghĩa là ngược lại

Serial.print() In ra màn hình máy tính, lệnh này in không xuống dòng

Serial.println() In ra màn hình máy tính, in xong xuống dòng, giá trị tiếp theo sẽ được in ở dòng kế tiếp

Hour Of Code Việt Nam

Cập nhật thông tin chi tiết về Cấu Trúc Một Chương Trình Java trên website Nhatngukohi.edu.vn. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất. Chúc bạn một ngày tốt lành!