Lập trình Máy tính - Hướng dẫn Nhanh

Giới thiệu về chương trình máy tính

Trước khi học lập trình máy tính, trước tiên chúng ta hãy hiểu các chương trình máy tính và công việc của chúng.

Chương trình máy tính là một chuỗi hướng dẫn được viết bằng Ngôn ngữ lập trình máy tính để thực hiện một tác vụ cụ thể của máy tính.

Hai thuật ngữ quan trọng mà chúng tôi đã sử dụng trong định nghĩa trên là -

  • Trình tự hướng dẫn
  • Ngôn ngữ lập trình máy tính

Để hiểu các điều khoản này, hãy xem xét tình huống khi ai đó hỏi bạn về cách đi đến một KFC gần đó. Chính xác thì bạn làm gì để nói cho anh ấy biết con đường đến KFC?

Bạn sẽ sử dụng Ngôn ngữ của con người để nói đường đi đến KFC, như sau:

Đầu tiên đi thẳng, sau nửa km, rẽ trái từ đèn đỏ, sau đó lái xe khoảng một km và bạn sẽ tìm thấy KFC ở bên phải.

Ở đây, bạn đã sử dụng English Language để đưa ra một số bước cần thực hiện để đến KFC. Nếu chúng được theo trình tự sau, thì bạn sẽ đến được KFC -

1.	Go straight
2.	Drive half kilometer
3.	Take left
4.	Drive around one kilometer
5.	Search for KFC at your right side

Bây giờ, hãy thử lập bản đồ tình huống bằng một chương trình máy tính. Chuỗi hướng dẫn trên thực sự là mộtHuman Program viết vào English Language, hướng dẫn cách tiếp cận KFC từ một điểm xuất phát nhất định. Trình tự tương tự này có thể đã được đưa ra bằng tiếng Tây Ban Nha, tiếng Hindi, tiếng Ả Rập hoặc bất kỳ ngôn ngữ nào khác của con người, miễn là người tìm kiếm hướng dẫn biết bất kỳ ngôn ngữ nào trong số này.

Bây giờ, hãy quay lại và cố gắng hiểu một chương trình máy tính, đó là một chuỗi các lệnh được viết bằng Ngôn ngữ Máy tính để thực hiện một tác vụ được chỉ định bởi máy tính. Sau đây là một chương trình đơn giản được viết bằngPython ngôn ngữ lập trình -

print "Hello, World!"

Chương trình máy tính trên hướng dẫn máy tính in "Hello, World!" trên màn hình máy tính.

  • Một chương trình máy tính còn được gọi là computer software, có thể từ hai dòng đến hàng triệu dòng hướng dẫn.

  • Hướng dẫn chương trình máy tính còn được gọi là mã nguồn chương trình và computer programming Cũng được gọi là program coding.

  • Một máy tính không có chương trình máy tính chỉ là một hộp kết xuất; nó là các chương trình làm cho máy tính hoạt động.

Khi chúng ta đã phát triển rất nhiều ngôn ngữ để giao tiếp với nhau, các nhà khoa học máy tính đã phát triển một số ngôn ngữ lập trình máy tính để cung cấp các hướng dẫn cho máy tính (tức là viết các chương trình máy tính). Chúng ta sẽ thấy một số ngôn ngữ lập trình máy tính trong các chương tiếp theo.

Giới thiệu về lập trình máy tính

Nếu bạn hiểu những gì computer programlà, sau đó chúng ta sẽ nói: hành động viết các chương trình máy tính được gọi là lập trình máy tính.

Như chúng tôi đã đề cập trước đó, có hàng trăm ngôn ngữ lập trình, có thể được sử dụng để viết các chương trình máy tính và sau đây là một vài trong số đó -

  • Java
  • C
  • C++
  • Python
  • PHP
  • Perl
  • Ruby

Sử dụng các chương trình máy tính

Ngày nay các chương trình máy tính đang được sử dụng trong hầu hết các lĩnh vực, hộ gia đình, nông nghiệp, y tế, giải trí, quốc phòng, thông tin liên lạc, v.v. Dưới đây là một vài ứng dụng của chương trình máy tính -

  • MS Word, MS Excel, Adobe Photoshop, Internet Explorer, Chrome, v.v., là những ví dụ về các chương trình máy tính.

  • Các chương trình máy tính đang được sử dụng để phát triển đồ họa và các hiệu ứng đặc biệt trong quá trình làm phim.

  • Các chương trình máy tính đang được sử dụng để thực hiện Siêu âm, Tia X và các cuộc kiểm tra y tế khác.

  • Các chương trình máy tính đang được sử dụng trong điện thoại di động của chúng tôi để liên lạc bằng SMS, Trò chuyện và thoại.

Lập trình máy tính

Người có thể viết chương trình máy tính hay nói cách khác, người có thể lập trình máy tính được gọi là Lập trình viên máy tính.

Dựa trên kiến ​​thức chuyên môn về ngôn ngữ lập trình máy tính, chúng ta có thể đặt tên cho một lập trình viên máy tính như sau:

  • Lập trình viên C
  • Lập trình viên C ++
  • Lập trình viên Java
  • Lập trình viên Python
  • Lập trình viên PHP
  • Lập trình viên Perl
  • Lập trình viên Ruby

Thuật toán

Từ quan điểm lập trình, một algorithmlà quy trình từng bước để giải quyết mọi vấn đề. Thuật toán là một phương pháp hiệu quả được biểu thị dưới dạng một tập hữu hạn các lệnh được xác định rõ.

Do đó, một lập trình viên máy tính liệt kê tất cả các bước cần thiết để giải quyết sự cố trước khi viết mã thực. Sau đây là một ví dụ đơn giản về một thuật toán để tìm ra số lớn nhất từ ​​một danh sách các số đã cho:

1. Get a list of numbers L1, L2, L3....LN
2. Assume L1 is the largest, Largest = L1
3. Take next number Li from the list and do the following
4. If Largest is less than Li
5. Largest = Li
6. If Li is last number from the list then
7. Print value stored in Largest and come out
8. Else repeat same process starting from step 3

Thuật toán trên đã được viết một cách thô thiển để giúp người mới bắt đầu có thể hiểu được khái niệm. Bạn sẽ bắt gặp những cách viết thuật toán máy tính được chuẩn hóa hơn khi bạn chuyển sang cấp độ lập trình máy tính nâng cao.

Chúng tôi cho rằng bạn hiểu rõ về Ngôn ngữ Anh, một ngôn ngữ nổi tiếng Human Interface Language. Tiếng Anh có một ngữ pháp được xác định trước, cần phải tuân theo để viết các câu tiếng Anh một cách chính xác. Tương tự như vậy, hầu hết các Ngôn ngữ Giao diện Con người (tiếng Hindi, tiếng Anh, tiếng Tây Ban Nha, tiếng Pháp, v.v.) được tạo thành từ một số yếu tố như động từ, danh từ, tính từ, trạng từ, mệnh đề và liên từ, v.v.

Tương tự như Ngôn ngữ Giao diện Con người, Ngôn ngữ Lập trình Máy tính cũng được tạo ra từ một số yếu tố. Chúng tôi sẽ hướng dẫn bạn những kiến ​​thức cơ bản về các yếu tố đó và giúp bạn thoải mái sử dụng chúng trong các ngôn ngữ lập trình khác nhau. Các yếu tố cơ bản này bao gồm:

  • Môi trường lập trình
  • Cú pháp cơ bản
  • Loại dữ liệu
  • Variables
  • Keywords
  • Các toán tử cơ bản
  • Quyết định
  • Loops
  • Numbers
  • Characters
  • Arrays
  • Strings
  • Functions
  • Tệp I / O

Chúng tôi sẽ giải thích tất cả các yếu tố này trong các chương tiếp theo với các ví dụ sử dụng các ngôn ngữ lập trình khác nhau. Đầu tiên, chúng ta sẽ cố gắng hiểu ý nghĩa của tất cả các thuật ngữ này nói chung và sau đó, chúng ta sẽ xem cách các thuật ngữ này có thể được sử dụng trong các ngôn ngữ lập trình khác nhau.

Hướng dẫn này được thiết kế để cung cấp cho bạn ý tưởng về các ngôn ngữ lập trình phổ biến nhất sau đây:

  • Lập trình C
  • Lập trình Java
  • Lập trình Python

Một phần chính của hướng dẫn đã được giải thích bằng cách lấy C làm ngôn ngữ lập trình và sau đó chúng tôi đã chỉ ra cách các khái niệm tương tự hoạt động trong Java và Python. Vì vậy, sau khi hoàn thành hướng dẫn này, bạn sẽ khá quen thuộc với các ngôn ngữ lập trình phổ biến này.

Mặc dù Thiết lập Môi trường không phải là một phần tử của bất kỳ Ngôn ngữ Lập trình nào, nhưng đây là bước đầu tiên cần tuân theo trước khi bắt đầu viết một chương trình.

Khi chúng tôi nói Thiết lập Môi trường, nó chỉ đơn giản ngụ ý một cơ sở mà chúng tôi có thể thực hiện lập trình của mình. Do đó, chúng ta cần thiết lập phần mềm cần thiết, tức là cài đặt trên PC của chúng ta, phần mềm này sẽ được sử dụng để viết các chương trình máy tính, biên dịch và thực thi chúng. Ví dụ: nếu bạn cần duyệt Internet, thì bạn cần thiết lập sau trên máy của mình -

  • Một kết nối Internet đang hoạt động để kết nối với Internet
  • Trình duyệt Web như Internet Explorer, Chrome, Safari, v.v.

Nếu bạn là người dùng PC, thì bạn sẽ nhận ra ảnh chụp màn hình sau đây, chúng tôi đã chụp từ Internet Explorer khi duyệt qua tutorialspoint.com.

Tương tự, bạn sẽ cần thiết lập sau để bắt đầu lập trình bằng bất kỳ ngôn ngữ lập trình nào.

  • Một trình soạn thảo văn bản để tạo các chương trình máy tính.
  • Một trình biên dịch để biên dịch các chương trình thành định dạng nhị phân.
  • Một trình thông dịch để thực thi các chương trình trực tiếp.

Trong trường hợp bạn không tiếp xúc đủ với máy tính, bạn sẽ không thể thiết lập một trong hai phần mềm này. Vì vậy, chúng tôi khuyên bạn nên nhờ sự trợ giúp từ bất kỳ nhân viên kỹ thuật nào xung quanh bạn để thiết lập môi trường lập trình trên máy của bạn từ nơi bạn có thể bắt đầu. Nhưng đối với bạn, điều quan trọng là phải hiểu những vật dụng này là gì.

Trình soạn thảo văn bản

Trình soạn thảo văn bản là một phần mềm được sử dụng để viết các chương trình máy tính. Máy Windows của bạn phải có Notepad, có thể được sử dụng để gõ chương trình. Bạn có thể khởi chạy nó bằng cách làm theo các bước sau:

Start Icon → All Programs → Accessories → Notepad → Mouse Click on Notepad

Nó sẽ khởi chạy Notepad với cửa sổ sau:

Bạn có thể sử dụng phần mềm này để gõ chương trình máy tính của mình và lưu nó vào một tệp ở bất kỳ vị trí nào. Bạn có thể tải về và cài đặt các trình soạn thảo hay khác nhưNotepad++, có sẵn miễn phí.

Nếu bạn là người dùng Mac, thì bạn sẽ có TextEdit hoặc bạn có thể cài đặt một số trình soạn thảo thương mại khác như BBEdit để bắt đầu với.

Trình biên dịch?

Bạn viết chương trình máy tính của mình bằng ngôn ngữ lập trình yêu thích và lưu nó trong một tệp văn bản được gọi là tệp chương trình.

Bây giờ chúng ta hãy thử tìm hiểu chi tiết hơn về cách máy tính hiểu một chương trình do bạn viết bằng ngôn ngữ lập trình. Trên thực tế, máy tính không thể hiểu chương trình của bạn được đưa ra trực tiếp ở định dạng văn bản, vì vậy chúng ta cần chuyển đổi chương trình này sang định dạng nhị phân, mà máy tính có thể hiểu được.

Việc chuyển đổi từ chương trình văn bản sang tệp nhị phân được thực hiện bởi một phần mềm khác có tên là Trình biên dịch và quá trình chuyển đổi từ chương trình định dạng văn bản sang tệp định dạng nhị phân được gọi là biên dịch chương trình. Cuối cùng, bạn có thể thực thi tệp nhị phân để thực hiện tác vụ được lập trình.

Chúng tôi sẽ không đi vào chi tiết của một trình biên dịch và các giai đoạn biên dịch khác nhau.

Sơ đồ quy trình sau đây đưa ra một minh họa về quy trình:

Vì vậy, nếu bạn định viết chương trình của mình bằng bất kỳ ngôn ngữ nào như vậy, cần biên dịch như C, C ++, Java và Pascal, v.v., thì bạn sẽ cần cài đặt trình biên dịch của chúng trước khi bắt đầu lập trình.

Thông dịch viên

Chúng ta vừa thảo luận về trình biên dịch và quá trình biên dịch. Trình biên dịch được yêu cầu trong trường hợp bạn định viết chương trình của mình bằng một ngôn ngữ lập trình cần được biên dịch sang định dạng nhị phân trước khi thực thi.

Có các ngôn ngữ lập trình khác như Python, PHP và Perl, không cần biên dịch sang định dạng nhị phân, thay vào đó, một trình thông dịch có thể được sử dụng để đọc các chương trình đó từng dòng và thực thi chúng trực tiếp mà không cần chuyển đổi thêm.

Vì vậy, nếu bạn định viết chương trình của mình bằng PHP, Python, Perl, Ruby, v.v., thì bạn sẽ cần cài đặt trình thông dịch của chúng trước khi bắt đầu lập trình.

Tổng hợp trực tuyến

Nếu bạn không thể thiết lập bất kỳ trình soạn thảo, trình biên dịch hoặc trình thông dịch nào trên máy của mình, thì tutorialspoint.com cung cấp một phương tiện để biên dịch và chạy hầu hết các chương trình trực tuyến chỉ với một cú nhấp chuột dễ dàng.

Vì vậy, đừng lo lắng và hãy tiến xa hơn để có trải nghiệm thú vị để trở thành một lập trình viên máy tính trong các bước đơn giản và dễ dàng.

Hãy bắt đầu với một chút mã hóa, điều này thực sự sẽ khiến bạn trở thành một lập trình viên máy tính. Chúng ta sẽ viết một chương trình máy tính một dòng để viếtHello, World!trên màn hình của bạn. Hãy xem cách nó có thể được viết bằng các ngôn ngữ lập trình khác nhau.

Chương trình Hello World in C

Hãy thử ví dụ sau bằng cách sử dụng tùy chọn trình biên dịch trực tuyến của chúng tôi có sẵn tại www.compileonline.com .

Đối với hầu hết các ví dụ được đưa ra trong hướng dẫn này, bạn sẽ tìm thấy Try it trong phần mã trang web của chúng tôi ở góc trên cùng bên phải sẽ đưa bạn đến trình biên dịch trực tuyến.

Cố gắng thay đổi nội dung bên trong printf (), tức là nhập bất cứ thứ gì thay cho Hello World!và sau đó kiểm tra kết quả của nó. Nó chỉ in bất cứ thứ gì bạn giữ bên trong hai dấu ngoặc kép.

#include <stdio.h>

int main() {
   /* printf() function to write Hello, World! */
   printf( "Hello, World!" );
}

tạo ra kết quả sau:

Hello, World!

Chương trình Hello World nhỏ này sẽ giúp chúng ta hiểu các khái niệm cơ bản khác nhau liên quan đến Lập trình C.

Điểm đầu vào chương trình

Bây giờ, chỉ cần quên về #include <stdio.h> nhưng hãy lưu ý rằng bạn phải đặt câu lệnh này ở đầu chương trình C.

Mọi chương trình C đều bắt đầu bằng hàm main (), được gọi là hàm chính, sau đó được theo sau bởi một dấu ngoặc nhọn bên trái. Phần còn lại của lệnh chương trình được viết ở giữa và cuối cùng là dấu ngoặc nhọn bên phải kết thúc chương trình.

Phần mã hóa bên trong hai dấu ngoặc nhọn này được gọi là phần thân chương trình. Dấu ngoặc nhọn bên trái có thể ở cùng dòng với main () {hoặc ở dòng tiếp theo giống như nó đã được đề cập trong chương trình trên.

Chức năng

Hàm là những đơn vị nhỏ của chương trình và chúng được sử dụng để thực hiện một nhiệm vụ cụ thể. Ví dụ, chương trình trên sử dụng hai hàm:main()printf(). Ở đây, hàm main () cung cấp điểm đầu vào để thực thi chương trình và hàm printf () khác đang được sử dụng để in một thông tin trên màn hình máy tính.

Bạn có thể viết các hàm của riêng mình mà chúng ta sẽ thấy trong một chương riêng, nhưng bản thân lập trình C cung cấp các hàm tích hợp sẵn khác nhau như main (), printf (), v.v., chúng ta có thể sử dụng trong các chương trình của mình dựa trên yêu cầu của chúng ta.

Một số ngôn ngữ lập trình sử dụng từ sub-routine thay vì chức năng, nhưng chức năng của chúng ít nhiều giống nhau.

Bình luận

Chương trình AC có thể có các câu lệnh kèm theo bên trong /*.....*/. Các câu lệnh như vậy được gọi là bình luận và những bình luận này được sử dụng để làm cho chương trình thân thiện và dễ hiểu với người dùng. Điều tốt về các bình luận là chúng hoàn toàn bị bỏ qua bởi các trình biên dịch và thông dịch viên. Vì vậy, bạn có thể sử dụng bất kỳ ngôn ngữ nào bạn muốn để viết bình luận của mình.

Khoảng trắng

Khi chúng tôi viết một chương trình bằng bất kỳ ngôn ngữ lập trình nào, chúng tôi sử dụng các ký tự có thể in được khác nhau để chuẩn bị các câu lệnh lập trình. Các ký tự có thể in này làa, b, c,......z, A, B, C,.....Z, 1, 2, 3,...... 0, !, @, #, $, %, ^, &, *, (, ), -, _, +, =, \, |, {, }, [, ], :, ;, <, >, ?, /, \, ~. `. ", '. Hy vọng tôi không bỏ lỡ bất kỳ ký tự có thể in nào từ bàn phím của bạn.

Ngoài những ký tự này, có một số ký tự mà chúng tôi sử dụng rất thường xuyên nhưng chúng ẩn trong chương trình của bạn và những ký tự này là dấu cách, tab (\ t), dòng mới (\ n). Những ký tự này được gọi làwhitespaces.

Ba ký tự khoảng trắng quan trọng này phổ biến trong tất cả các ngôn ngữ lập trình và chúng vẫn ẩn trong tài liệu văn bản của bạn -

Khoảng trắng Giải trình Đại diện
Dòng mới Để tạo một dòng mới \ n
Chuyển hướng Để tạo một tab. \ t
Không gian Để tạo khoảng trống. không gian trống

Một dòng chỉ chứa khoảng trắng, có thể kèm theo chú thích, được gọi là dòng trống và trình biên dịch C hoàn toàn bỏ qua nó. Khoảng trắng là thuật ngữ được sử dụng trong C để mô tả khoảng trống, tab, ký tự dòng mới và nhận xét. Vì vậy, bạn có thể viếtprintf("Hello, World!" );như hình bên dưới. Đây là tất cả các không gian được tạo xung quanh "Hello, World!" là vô ích và trình biên dịch sẽ bỏ qua chúng tại thời điểm biên dịch.

#include <stdio.h>

int main() {

   /* printf() function to write Hello, World! */
   
   printf(    "Hello, World!"      );
   
}

tạo ra kết quả sau:

Hello, World!

Nếu chúng tôi hiển thị tất cả các ký tự khoảng trắng này, thì chương trình trên sẽ giống như thế này và bạn sẽ không thể biên dịch nó -

#include <stdio.h>\n
\n
int main()\n
{
   \n
   \t/* printf() function to write Hello, World! */
   \n 
   \tprintf(\t"Hello, World!"\t);\n
   \n
}\n

Dấu chấm phẩy

Mỗi câu lệnh riêng lẻ trong Chương trình C phải được kết thúc bằng dấu chấm phẩy (;), ví dụ: nếu bạn muốn viết "Hello, World!" hai lần, sau đó nó sẽ được viết như sau:

#include <stdio.h>

int main() {
   /* printf() function to write Hello, World! */
   printf( "Hello, World!\n" );
   printf( "Hello, World!" );
}

Chương trình này sẽ tạo ra kết quả sau:

Hello, World! 
Hello, World!

Ở đây, chúng tôi đang sử dụng một ký tự dòng mới \ntrong hàm printf () đầu tiên để tạo một dòng mới. Hãy để chúng tôi xem điều gì sẽ xảy ra nếu chúng tôi không sử dụng ký tự dòng mới này -

#include <stdio.h>

int main() {
   /* printf() function to write Hello, World! */
   printf( "Hello, World!" );
   printf( "Hello, World!" );
}

Chương trình này sẽ tạo ra kết quả sau:

Hello, World! Hello, World!

Chúng ta sẽ tìm hiểu các định danh và từ khóa trong vài chương tiếp theo.

Giải thích chương trình

Hãy để chúng tôi hiểu cách thức hoạt động của chương trình C trên. Trước hết, chương trình trên được chuyển đổi thành định dạng nhị phân bằng trình biên dịch C. Vì vậy, hãy đặt mã này trong tệp test.c và biên dịch nó như sau:

$gcc test.c -o demo

Nếu có bất kỳ lỗi ngữ pháp nào (Lỗi cú pháp trong thuật ngữ máy tính), chúng tôi sẽ sửa lỗi đó trước khi chuyển sang định dạng nhị phân. Nếu mọi thứ suôn sẻ, thì nó tạo ra một tệp nhị phân có têndemo. Cuối cùng, chúng tôi thực hiện bản demo nhị phân đã tạo như sau:

$./demo

tạo ra kết quả sau:

Hello, World!

Ở đây, khi chúng tôi thực thi mã nhị phân a.out, máy tính vào bên trong chương trình bắt đầu từ main () và gặp câu lệnh printf (). Hãy lưu ý rằng dòng bên trong /*....*/ là một nhận xét và nó được lọc tại thời điểm biên dịch. Vì vậy hàm printf () chỉ thị cho máy tính in dòng đã cho trên màn hình máy tính. Cuối cùng, nó gặp phải một dấu ngoặc nhọn cho biết kết thúc của hàm main () và thoát khỏi chương trình.

Lỗi cú pháp

Nếu bạn không tuân theo các quy tắc được xác định bởi ngôn ngữ lập trình, thì tại thời điểm biên dịch, bạn sẽ gặp lỗi cú pháp và chương trình sẽ không được biên dịch. Từ quan điểm cú pháp, ngay cả một dấu chấm hoặc dấu phẩy hoặc một dấu chấm phẩy duy nhất cũng quan trọng và bạn cũng nên quan tâm đến những cú pháp nhỏ như vậy. Trong ví dụ sau, chúng ta đã bỏ qua dấu chấm phẩy, hãy thử biên dịch chương trình -

#include <stdio.h>

main() {
   printf("Hello, World!")
}

Chương trình này sẽ tạo ra kết quả sau:

main.c: In function 'main':
main.c:7:1: error: expected ';' before '}' token
 }
 ^

Vì vậy, điểm mấu chốt là nếu bạn không tuân theo cú pháp thích hợp được xác định bởi ngôn ngữ lập trình trong chương trình của bạn, thì bạn sẽ gặp lỗi cú pháp. Trước khi thử biên dịch khác, bạn cần sửa chúng và sau đó tiếp tục.

Chương trình Hello World bằng Java

Sau đây là chương trình tương đương được viết bằng Java. Chương trình này cũng sẽ cho kết quả tương tựHello, World!.

public class HelloWorld { 
   public static void main(String []args) {
      /* println() function to write Hello, World! */
      System.out.println("Hello, World!");     
   }
}

tạo ra kết quả sau:

Hello, World!

Chương trình Hello World bằng Python

Sau đây là chương trình tương đương được viết bằng Python. Chương trình này cũng sẽ cho kết quả tương tựHello, World!.

#  print function to write Hello, World! */
print "Hello, World!"

tạo ra kết quả sau:

Hello, World!

Hy vọng bạn lưu ý rằng đối với các ví dụ C và Java, đầu tiên chúng tôi đang biên dịch các chương trình và sau đó thực thi các tệp nhị phân được tạo ra, nhưng trong chương trình Python, chúng tôi đang trực tiếp thực thi nó. Như chúng tôi đã giải thích trong chương trước, Python là một ngôn ngữ thông dịch và nó không cần một bước trung gian được gọi là biên dịch.

Python không yêu cầu dấu chấm phẩy (;) để kết thúc một câu lệnh, thay vào đó, một dòng mới luôn có nghĩa là kết thúc câu lệnh.

Hãy thảo luận về một khái niệm rất đơn giản nhưng rất quan trọng có sẵn trong hầu hết các ngôn ngữ lập trình được gọi là data types. Như tên của nó đã chỉ ra, kiểu dữ liệu đại diện cho kiểu dữ liệu mà bạn có thể xử lý bằng chương trình máy tính của mình. Nó có thể là số, chữ và số, thập phân, v.v.

Hãy tạm gác phần Lập trình Máy tính sang một bên và lấy một ví dụ đơn giản về việc cộng hai số nguyên 10 & 20, có thể thực hiện đơn giản như sau:

10 + 20

Hãy thực hiện một bài toán khác mà chúng ta muốn cộng hai số thập phân 10,50 & 20,50, sẽ được viết như sau:

10.50 + 20.50

Hai ví dụ là đơn giản. Bây giờ chúng ta hãy lấy một ví dụ khác mà chúng ta muốn ghi lại thông tin học sinh vào một cuốn sổ. Sau đây chúng tôi xin ghi lại thông tin sau:

Name:
Class:
Section:
Age:
Sex:

Bây giờ, hãy đặt một hồ sơ học sinh theo yêu cầu đã cho -

Name: Zara Ali
Class: 6th
Section: J
Age: 13
Sex: F

Ví dụ đầu tiên xử lý các số nguyên, ví dụ thứ hai thêm hai số thập phân, trong khi ví dụ thứ ba xử lý hỗn hợp dữ liệu khác nhau. Hãy đặt nó như sau:

  • Tên sinh viên "Zara Ali" là một chuỗi các ký tự còn được gọi là một chuỗi.

  • Học sinh lớp "6" đã được biểu diễn bằng một hỗn hợp của số nguyên và một chuỗi hai ký tự. Một hỗn hợp như vậy được gọi là chữ và số.

  • Phần sinh viên đã được đại diện bởi một ký tự duy nhất là 'J'.

  • Tuổi học sinh được biểu thị bằng một số nguyên là 13.

  • Giới tính của sinh viên được thể hiện bằng một ký tự duy nhất là 'F'.

Bằng cách này, chúng tôi nhận ra rằng trong cuộc sống hàng ngày, chúng tôi xử lý các loại dữ liệu khác nhau như chuỗi, ký tự, số nguyên (số nguyên) và số thập phân (số dấu phẩy động).

Tương tự như vậy, khi chúng ta viết một chương trình máy tính để xử lý các loại dữ liệu khác nhau, chúng ta cần xác định rõ loại của nó; nếu không thì máy tính không hiểu các thao tác khác nhau có thể được thực hiện như thế nào trên dữ liệu đã cho đó. Các ngôn ngữ lập trình khác nhau sử dụng các từ khóa khác nhau để chỉ định các kiểu dữ liệu khác nhau. Ví dụ, ngôn ngữ lập trình C và Java sử dụngint để chỉ định dữ liệu số nguyên, trong khi char chỉ định một kiểu dữ liệu ký tự.

Các chương tiếp theo sẽ chỉ cho bạn cách sử dụng các kiểu dữ liệu khác nhau trong các tình huống khác nhau. Bây giờ, hãy kiểm tra các kiểu dữ liệu quan trọng có sẵn trong C, Java và Python và các từ khóa mà chúng ta sẽ sử dụng để chỉ định các kiểu dữ liệu đó.

Các kiểu dữ liệu C và Java

C và Java hỗ trợ gần như cùng một tập hợp các kiểu dữ liệu, mặc dù Java hỗ trợ các kiểu dữ liệu bổ sung. Hiện tại, chúng tôi đang sử dụng một vài kiểu dữ liệu phổ biến được hỗ trợ bởi cả hai ngôn ngữ lập trình -

Kiểu Từ khóa Phạm vi giá trị có thể được biểu thị bằng kiểu dữ liệu này
Tính cách char -128 đến 127 hoặc 0 đến 255
Con số int -32,768 đến 32,767 hoặc -2,147,483,648 đến 2,147,483,647
Số nhỏ ngắn -32,768 đến 32,767
Số dài Dài -2.147.483.648 đến 2.147.483.647
Số thập phân Phao nổi 1,2E-38 đến 3,4E + 38 cho đến 6 chữ số thập phân

Các kiểu dữ liệu này được gọi là kiểu dữ liệu nguyên thủy và bạn có thể sử dụng các kiểu dữ liệu này để xây dựng các kiểu dữ liệu phức tạp hơn, kiểu dữ liệu này được gọi là kiểu dữ liệu do người dùng định nghĩa, ví dụ một chuỗi sẽ là một chuỗi các ký tự.

Các kiểu dữ liệu Python

Python có năm kiểu dữ liệu tiêu chuẩn nhưng ngôn ngữ lập trình này không sử dụng bất kỳ từ khóa nào để chỉ định một kiểu dữ liệu cụ thể, thay vào đó Python đủ thông minh để tự động hiểu một kiểu dữ liệu nhất định.

  • Numbers
  • String
  • List
  • Tuple
  • Dictionary

Ở đây, Number chỉ định tất cả các loại số bao gồm cả số thập phân và chuỗi biểu thị một dãy ký tự có độ dài từ 1 ký tự trở lên. Bây giờ, hãy tiếp tục với hai kiểu dữ liệu này và bỏ qua List, Tuple và Dictionary, là những kiểu dữ liệu nâng cao trong Python.

Biến là tên bạn đặt cho các vị trí bộ nhớ máy tính được sử dụng để lưu trữ các giá trị trong chương trình máy tính.

Ví dụ: giả sử bạn muốn lưu trữ hai giá trị 10 và 20 trong chương trình của mình và ở giai đoạn sau, bạn muốn sử dụng hai giá trị này. Hãy xem bạn sẽ làm điều đó như thế nào. Đây là ba bước đơn giản sau:

  • Tạo biến với tên thích hợp.
  • Lưu trữ các giá trị của bạn trong hai biến đó.
  • Lấy và sử dụng các giá trị được lưu trữ từ các biến.

Tạo biến

Tạo biến còn được gọi là declaring variablestrong lập trình C. Các ngôn ngữ lập trình khác nhau có các cách khác nhau để tạo các biến bên trong một chương trình. Ví dụ, lập trình C có cách tạo biến đơn giản sau:

#include <stdio.h>

int main() {
   int a;
   int b;
}

Chương trình trên tạo hai biến để dành hai vị trí bộ nhớ có tên ab. Chúng tôi đã tạo các biến này bằng cách sử dụngint từ khóa để chỉ định biến data typecó nghĩa là chúng ta muốn lưu trữ các giá trị nguyên trong hai biến này. Tương tự, bạn có thể tạo các biến để lưu trữlong, float, charhoặc bất kỳ kiểu dữ liệu nào khác. Ví dụ -

/* variable to store long value */
long a;

/* variable to store float value */
float b;

Bạn có thể tạo các biến cùng loại bằng cách đặt chúng vào một dòng nhưng được phân tách bằng dấu phẩy như sau:

#include <stdio.h>

int main() {
   int a, b;
}

Dưới đây là những điểm chính về các biến mà bạn cần ghi nhớ -

  • Một tên biến có thể chứa một loại giá trị duy nhất. Ví dụ, nếu biếna đã được xác định int nhập, sau đó nó chỉ có thể lưu trữ số nguyên.

  • Ngôn ngữ lập trình C yêu cầu tạo biến, tức là khai báo trước khi sử dụng nó trong chương trình của bạn. Bạn không thể sử dụng tên biến trong chương trình của mình mà không tạo nó, mặc dù ngôn ngữ lập trình như Python cho phép bạn sử dụng tên biến mà không cần tạo nó.

  • Bạn chỉ có thể sử dụng tên biến một lần trong chương trình của mình. Ví dụ: nếu một biếna đã được xác định để lưu trữ một giá trị số nguyên, sau đó bạn không thể xác định a lại để lưu trữ bất kỳ loại giá trị nào khác.

  • Có những ngôn ngữ lập trình như Python, PHP, Perl, v.v., không muốn bạn chỉ định kiểu dữ liệu tại thời điểm tạo biến. Vì vậy, bạn có thể lưu trữ số nguyên, số nổi hoặc số dài mà không cần chỉ định kiểu dữ liệu của chúng.

  • Bạn có thể đặt bất kỳ tên nào cho một biến như age, sex, salary, year1990hoặc bất kỳ thứ gì khác mà bạn muốn cung cấp, nhưng hầu hết các ngôn ngữ lập trình chỉ cho phép sử dụng các ký tự giới hạn trong tên biến của chúng. Hiện tại, chúng tôi sẽ đề xuất chỉ sử dụnga....z, A....Z, 0....9 trong tên biến của bạn và bắt đầu tên của chúng chỉ bằng bảng chữ cái thay vì chữ số.

  • Hầu như không có ngôn ngữ lập trình nào cho phép bắt đầu tên biến của chúng bằng một chữ số, vì vậy 1990year sẽ không phải là một tên biến hợp lệ trong khi year1990 hoặc là ye1990ar là các tên biến hợp lệ.

Mọi ngôn ngữ lập trình đều cung cấp nhiều quy tắc hơn liên quan đến các biến và bạn sẽ học chúng khi bạn sẽ đi sâu hơn về ngôn ngữ lập trình đó.

Lưu trữ giá trị trong các biến

Bạn đã thấy cách chúng tôi tạo biến trong phần trước. Bây giờ, hãy lưu trữ một số giá trị trong các biến đó -

#include <stdio.h>

int main() {
   int a;
   int b;
   
   a = 10;
   b = 20;
}

Chương trình trên có hai câu lệnh bổ sung mà chúng ta đang lưu trữ 10 trong biến a và 20 đang được lưu trữ trong biến b. Hầu như tất cả các ngôn ngữ lập trình đều có cách lưu trữ giá trị trong biến tương tự nhau, trong đó chúng ta giữ tên biến ở phía bên trái của dấu bằng = và bất kỳ giá trị nào chúng ta muốn lưu trữ trong biến, chúng ta giữ giá trị đó ở phía bên tay phải.

Bây giờ, chúng tôi đã hoàn thành hai bước, đầu tiên chúng tôi tạo hai biến và sau đó chúng tôi lưu trữ các giá trị cần thiết trong các biến đó. Bây giờ biếna có giá trị 10 và biến b có giá trị 20. Nói cách khác, khi chương trình trên được thực thi, vị trí bộ nhớ có tên a sẽ giữ 10 và vị trí bộ nhớ b sẽ giữ 20.

Truy cập các giá trị được lưu trữ trong các biến

Nếu chúng ta không sử dụng các giá trị được lưu trữ trong các biến, thì sẽ không có ích gì trong việc tạo các biến và lưu trữ các giá trị trong chúng. Chúng ta biết rằng chương trình trên có hai biếnabvà chúng lưu trữ các giá trị 10 và 20 tương ứng. Vì vậy, chúng ta hãy thử in các giá trị được lưu trữ trong hai biến này. Sau đây là một chương trình C, chương trình này in ra các giá trị được lưu trữ trong các biến của nó:

#include <stdio.h>

int main() {
   int a;
   int b;
   
   a = 10;
   b = 20;
   
   printf( "Value of a = %d\n", a );
   printf( "Value of b = %d\n", b );
}

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

Value of a = 10
Value of b = 20

Bạn phải đã thấy printf()trong chương trước chúng ta đã sử dụng nó để in "Hello, World!". Lần này, chúng tôi đang sử dụng nó để in giá trị của các biến. Chúng tôi đang tận dụng%d, sẽ được thay thế bằng các giá trị của biến đã cho trong câu lệnh printf (). Chúng ta có thể in cả hai giá trị bằng một câu lệnh printf () như sau:

#include <stdio.h>

int main() {
   int a;
   int b;
   
   a = 10;
   b = 20;
   
   printf( "Value of a = %d and value of b = %d\n", a, b );
}

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

Value of a = 10 and value of b = 20

Nếu bạn muốn sử dụng float trong lập trình C, thì bạn sẽ phải sử dụng %f thay vì %dvà nếu bạn muốn in một giá trị ký tự, thì bạn sẽ phải sử dụng %c. Tương tự, các kiểu dữ liệu khác nhau có thể được in bằng cách sử dụng% và các ký tự khác nhau.

Các biến trong Java

Sau đây là chương trình tương đương được viết bằng ngôn ngữ lập trình Java. Chương trình này sẽ tạo hai biếnab và rất giống với lập trình C, nó sẽ gán 10 và 20 trong các biến này và cuối cùng in ra giá trị của hai biến theo hai cách:

public class DemoJava {
   public static void main(String []args) {
      int a;
      int b;
   
      a = 10;
      b = 20;
   
      System.out.println("Value of a = " + a);
      System.out.println("Value of b = " + b);
      System.out.println("Value of a = " + a + " and value of b = " + b);     
   }
}

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

Value of a = 10
Value of b = 20
Value of a = 10 and value of b = 20

Các biến trong Python

Sau đây là chương trình tương đương được viết bằng Python. Chương trình này sẽ tạo hai biếnab đồng thời gán 10 và 20 trong các biến đó.

Python không muốn bạn chỉ định kiểu dữ liệu tại thời điểm tạo biến và không cần tạo biến trước.

a = 10
b = 20
   
print "Value of a = ", a
print "Value of b = ", b
print "Value of a = ", a, " and value of b = ", b

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

Value of a =  10
Value of b =  20
Value of a =  10  and value of b =  20

Bạn có thể sử dụng cú pháp sau trong lập trình C và Java để khai báo các biến và gán giá trị cùng một lúc:

#include <stdio.h>

int main() {
   int a = 10;
   int b = 20;
   
   printf( "Value of a = %d and value of b = %d\n", a, b );
}

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

Value of a = 10 and value of b = 20

Cho đến nay, chúng ta đã đề cập đến hai khái niệm quan trọng được gọi là biến và kiểu dữ liệu của chúng. Chúng tôi đã thảo luận về cách sử dụngint, longfloatđể chỉ định các kiểu dữ liệu khác nhau. Chúng ta cũng đã học cách đặt tên cho các biến để lưu trữ các giá trị khác nhau.

Mặc dù chương này không bắt buộc riêng biệt vì các từ khóa dành riêng là một phần của cú pháp lập trình cơ bản, chúng tôi đã tách nó ra để giải thích nó ngay sau các kiểu dữ liệu và biến để dễ hiểu.

Giống như int, long và float, có rất nhiều từ khóa khác được hỗ trợ bởi ngôn ngữ lập trình C mà chúng ta sẽ sử dụng cho các mục đích khác nhau. Các ngôn ngữ lập trình khác nhau cung cấp các tập hợp từ khóa dành riêng khác nhau, nhưng có một quy tắc quan trọng và phổ biến trong tất cả các ngôn ngữ lập trình là chúng ta không thể sử dụng từ khóa dành riêng để đặt tên cho các biến của mình, điều đó có nghĩa là chúng ta không thể đặt tên biến của mình nhưint hoặc là float thay vào đó, những từ khóa này chỉ có thể được sử dụng để chỉ định một kiểu dữ liệu biến.

Ví dụ: nếu bạn cố gắng sử dụng bất kỳ từ khóa dành riêng nào cho mục đích tên biến, thì bạn sẽ gặp lỗi cú pháp.

#include <stdio.h>

int main() {
   int float;
   float = 10;
   
   printf( "Value of float = %d\n", float);
}

Khi bạn biên dịch chương trình trên, nó tạo ra lỗi sau:

main.c: In function 'main':
main.c:5:8: error: two or more data types in declaration specifiers
   int float;
......

Bây giờ hãy đặt một tên riêng cho biến số nguyên của chúng ta, sau đó chương trình trên sẽ biên dịch và thực thi thành công -

#include <stdio.h>

int main() {
   int count;
   count = 10;

   printf( "Value of count = %d\n", count);
}

Từ khóa dành riêng cho lập trình C

Đây là một bảng có gần như tất cả các từ khóa được hỗ trợ bởi ngôn ngữ lập trình C -

Tự động khác Dài công tắc điện
phá vỡ enum Đăng ký typedef
trường hợp bên ngoài trở về liên hiệp
char Phao nổi ngắn chưa ký
hăng sô cho đã ký vô hiệu
tiếp tục đi đến kích thước bay hơi
mặc định nếu tĩnh trong khi
làm int cấu trúc _Đóng gói
gấp đôi

Các từ khóa dành riêng cho lập trình Java

Đây là một bảng có gần như tất cả các từ khóa được hỗ trợ bởi ngôn ngữ lập trình Java -

trừu tượng khẳng định boolean phá vỡ
byte trường hợp nắm lấy char
lớp học hăng sô tiếp tục mặc định
làm gấp đôi khác enum
kéo dài sau cùng cuối cùng Phao nổi
cho đi đến nếu dụng cụ
nhập khẩu ví dụ int giao diện
Dài tự nhiên Mới gói hàng
riêng tư được bảo vệ công cộng trở về
ngắn tĩnh nghiêm ngặt siêu
công tắc điện đồng bộ điều này phi
ném tạm thời thử vô hiệu
bay hơi trong khi

Các từ khóa dành riêng cho lập trình Python

Đây là một bảng có gần như tất cả các từ khóa được hỗ trợ bởi ngôn ngữ lập trình Python -

người thực thi không phải
khẳng định cuối cùng hoặc là
phá vỡ cho vượt qua
lớp học từ in
tiếp tục toàn cầu nâng cao
phản đối nếu trở về
del nhập khẩu thử
elif trong trong khi
khác với
ngoại trừ lambda năng suất

Chúng tôi biết bạn không thể ghi nhớ tất cả những từ khóa này, nhưng chúng tôi đã liệt kê chúng xuống cho mục đích tham khảo của bạn và để giải thích khái niệm reserved keywords. Vì vậy, hãy cẩn thận khi đặt tên cho biến của bạn, bạn không nên sử dụng bất kỳ từ khóa dành riêng nào cho ngôn ngữ lập trình đó.

Toán tử trong ngôn ngữ lập trình là một ký hiệu thông báo cho trình biên dịch hoặc trình thông dịch thực hiện các phép toán toán học, quan hệ hoặc logic cụ thể và tạo ra kết quả cuối cùng. Chương này sẽ giải thích khái niệmoperators và nó sẽ đưa bạn qua các toán tử quan hệ và số học quan trọng có sẵn trong C, Java và Python.

Toán tử số học

Các chương trình máy tính được sử dụng rộng rãi để tính toán toán học. Chúng ta có thể viết một chương trình máy tính có thể thực hiện phép tính đơn giản như cộng hai số (2 + 3) và chúng ta cũng có thể viết một chương trình có thể giải một phương trình phức tạp như P (x) = x 4 + 7x 3 - 5x + 9. Nếu bạn thậm chí là một học sinh kém, bạn phải biết rằng trong biểu thức đầu tiên 2 và 3 là các toán hạng và + là một toán tử. Các khái niệm tương tự tồn tại trong Lập trình máy tính.

Hãy xem hai ví dụ sau:

2 + 3

P(x) = x4 + 7x3 - 5x + 9.

Hai câu lệnh này được gọi là biểu thức số học trong ngôn ngữ lập trình và plus, minusđược sử dụng trong các biểu thức này được gọi là toán tử số học và các giá trị được sử dụng trong các biểu thức này như 2, 3 và x, v.v., được gọi là toán hạng. Ở dạng đơn giản nhất của chúng, các biểu thức như vậy tạo ra kết quả số.

Tương tự, một ngôn ngữ lập trình cung cấp các toán tử số học khác nhau. Bảng sau liệt kê một số toán tử số học quan trọng có sẵn trong ngôn ngữ lập trình C. Giả sử biến A giữ 10 và biến B giữ 20, thì -

Nhà điều hành Sự miêu tả Thí dụ
+ Thêm hai toán hạng A + B sẽ cho 30
- Trừ toán hạng thứ hai với toán hạng đầu tiên A - B sẽ cho -10
* Nhân cả hai toán hạng A * B sẽ cho 200
/ Chia tử số cho tử số B / A sẽ cho 2
% Điều này cho thấy phần còn lại của một phép chia số nguyên B% A sẽ cho 0

Sau đây là một ví dụ đơn giản về Lập trình C để hiểu các toán tử toán học trên:

#include <stdio.h>

int main() {
   int a, b, c;
   
   a = 10;
   b = 20;
   
   c = a + b;   
   printf( "Value of c = %d\n", c);
   
   c = a - b;   
   printf( "Value of c = %d\n", c);
   
   c = a * b;   
   printf( "Value of c = %d\n", c);
   
   c = b / a;   
   printf( "Value of c = %d\n", c);
   
   c = b % a;   
   printf( "Value of c = %d\n", c);
}

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

Value of c = 30
Value of c = -10
Value of c = 200
Value of c = 2
Value of c = 0

Toán tử quan hệ

Hãy xem xét một tình huống mà chúng ta tạo hai biến và gán chúng một số giá trị như sau:

A = 20
B = 10

Ở đây, rõ ràng là biến A lớn hơn B về các giá trị. Vì vậy, chúng ta cần sự trợ giúp của một số ký hiệu để viết các biểu thức như vậy được gọi là biểu thức quan hệ. Nếu chúng ta sử dụng ngôn ngữ lập trình C, thì nó sẽ được viết như sau:

(A > B)

Ở đây, chúng tôi đã sử dụng một ký hiệu> và nó được gọi là một toán tử quan hệ và ở dạng đơn giản nhất, chúng tạo ra kết quả Boolean có nghĩa là kết quả sẽ là đúng hoặc sai. Tương tự, một ngôn ngữ lập trình cung cấp các toán tử quan hệ khác nhau. Bảng sau liệt kê một số toán tử quan hệ quan trọng có sẵn trong ngôn ngữ lập trình C. Giả sử biếnA giữ 10 và biến B giữ 20, sau đó -

Nhà điều hành Sự miêu tả Thí dụ
== Kiểm tra xem giá trị của hai toán hạng có bằng nhau hay không, nếu có thì điều kiện trở thành true. (A == B) không đúng.
! = Kiểm tra xem giá trị của hai toán hạng có bằng nhau hay không, nếu các giá trị không bằng nhau thì điều kiện trở thành true. (A! = B) là đúng.
> Kiểm tra xem giá trị của toán hạng bên trái có lớn hơn giá trị của toán hạng bên phải hay không, nếu có thì điều kiện trở thành true. (A> B) là không đúng.
< Kiểm tra xem giá trị của toán hạng bên trái có nhỏ hơn giá trị của toán hạng bên phải hay không, nếu có thì điều kiện trở thành true. (A <B) là đúng.
> = Kiểm tra xem giá trị của toán hạng bên trái có lớn hơn hoặc bằng giá trị của toán hạng bên phải hay không, nếu có thì điều kiện trở thành true. (A> = B) là không đúng.
<= Kiểm tra xem giá trị của toán hạng bên trái có nhỏ hơn hoặc bằng giá trị của toán hạng bên phải hay không, nếu có thì điều kiện trở thành true. (A <= B) là đúng.

Ở đây, chúng tôi sẽ chỉ cho bạn một ví dụ về Lập trình C sử dụng if conditional statement. Mặc dù tuyên bố này sẽ được thảo luận sau trong một chương riêng, nhưng tóm lại, chúng tôi sử dụngif statement để kiểm tra một điều kiện và nếu điều kiện là đúng, thì phần thân của if statement được thực thi, nếu không thì phần thân của if statement bị bỏ qua.

#include <stdio.h>

int main() {
   int a, b;
   
   a = 10;
   b = 20;
   
   /* Here we check whether a is equal to 10 or not */
   if( a == 10 ) {
	   
      /* if a is equal to 10 then this body will be executed */
      printf( "a is equal to 10\n");
   }
   
   /* Here we check whether b is equal to 10 or not */
   if( b == 10 ) {
	
      /* if b is equal to 10 then this body will be executed */
      printf( "b is equal to 10\n");
   }
   
   /* Here we check if a is less b than or not */
   if( a < b ) {
	
      /* if a is less than b then this body will be executed */
      printf( "a is less than b\n");
   }
   
   /* Here we check whether a and b are not equal */
   if( a != b ) {
	
      /* if a is not equal to b then this body will be executed */
      printf( "a is not equal to b\n");
   }
}

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

a is equal to 10
a is less than b
a is not equal to b

Toán tử logic

Toán tử logic rất quan trọng trong bất kỳ ngôn ngữ lập trình nào và chúng giúp chúng ta đưa ra quyết định dựa trên những điều kiện nhất định. Giả sử chúng ta muốn kết hợp kết quả của hai điều kiện, thì toán tử logic AND và OR sẽ giúp chúng ta tạo ra kết quả cuối cùng.

Bảng sau đây cho thấy tất cả các toán tử logic được hỗ trợ bởi ngôn ngữ C. Giả sử biếnA giữ 1 và biến B giữ 0, sau đó -

Nhà điều hành Sự miêu tả Thí dụ
&& Được gọi là toán tử logic AND. Nếu cả hai toán hạng đều khác 0, thì điều kiện trở thành true. (A && B) là sai.
|| Được gọi là Toán tử logic HOẶC. Nếu bất kỳ toán hạng nào trong hai toán hạng khác 0, thì điều kiện trở thành true. (A || B) là đúng.
! Được gọi là Toán tử logic NOT. Sử dụng để đảo ngược trạng thái logic của toán hạng của nó. Nếu một điều kiện là đúng thì toán tử logic NOT sẽ sai. ! (A && B) là đúng.

Hãy thử ví dụ sau để hiểu tất cả các toán tử logic có sẵn trong ngôn ngữ lập trình C:

#include <stdio.h>

int main() {
   int a = 1;
   int b = 0;

   if ( a && b ) {
	
      printf("This will never print because condition is false\n" );
   }
   if ( a || b ) {
	
      printf("This will be printed print because condition is true\n" );
   }
   if ( !(a && b) ) {
	
      printf("This will be printed print because condition is true\n" );
   }
}

Khi bạn biên dịch và thực thi chương trình trên, nó tạo ra kết quả sau:

This will be printed print because condition is true
This will be printed print because condition is true

Toán tử trong Java

Sau đây là chương trình tương đương được viết bằng Java. Lập trình C và Java cung cấp tập hợp các toán tử và câu lệnh điều kiện gần như giống hệt nhau. Chương trình này sẽ tạo hai biếnab, rất giống với lập trình C, sau đó chúng ta gán 10 và 20 cho các biến này và cuối cùng, chúng ta sẽ sử dụng các toán tử số học và quan hệ khác nhau -

Bạn có thể thử thực hiện chương trình sau để xem đầu ra, kết quả phải giống với kết quả được tạo bởi ví dụ trên.

public class DemoJava {
   public static void main(String []args) {
      int a, b, c;
   
      a = 10;
      b = 20;
   
      c = a + b;   
      System.out.println("Value of c = " + c );
   
      c = a - b;
      System.out.println("Value of c = " + c );
   
      c = a * b;   
      System.out.println("Value of c = " + c );
   
      c = b / a;   
      System.out.println("Value of c = " + c );
   
      c = b % a;   
      System.out.println("Value of c = " + c );
      
      if( a == 10 ) {
		
         System.out.println("a is equal to 10" );
      }
   }
}

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

Value of c = 30
Value of c = -10
Value of c = 200
Value of c = 2
Value of c = 0
a is equal to 10

Toán tử trong Python

Sau đây là chương trình tương đương được viết bằng Python. Chương trình này sẽ tạo hai biếnabđồng thời gán 10 và 20 trong các biến đó. May mắn thay, lập trình C và ngôn ngữ lập trình Python cung cấp tập hợp các toán tử gần như giống hệt nhau. Chương trình này sẽ tạo hai biếnab, rất giống với lập trình C, sau đó chúng ta gán 10 và 20 trong các biến này và cuối cùng, chúng ta sẽ sử dụng các toán tử số học và quan hệ khác nhau.

Bạn có thể thử thực hiện chương trình sau để xem đầu ra, kết quả phải giống với kết quả được tạo bởi ví dụ trên.

a = 10
b = 20
   
c = a + b   
print "Value of c = ", c

c = a - b   
print "Value of c = ", c

c = a * b   
print "Value of c = ", c

c = a / b   
print "Value of c = ", c

c = a % b   
print "Value of c = ", c

if( a == 10 ):
   print "a is equal to 10"

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

Value of c =  30
Value of c =  -10
Value of c =  200
Value of c =  0
Value of c =  10
a is equal to 10

Ra quyết định là rất quan trọng đối với lập trình máy tính. Sẽ có nhiều tình huống khi bạn được cung cấp hai hoặc nhiều lựa chọn và bạn sẽ phải chọn một tùy chọn dựa trên các điều kiện đã cho. Ví dụ, chúng tôi muốn in một nhận xét về một học sinh dựa trên các điểm được bảo đảm của anh ta. Sau đây là tình huống -

Assume given marks are x for a student:

If given marks are more than 95, then
Student is brilliant

If given marks are less than 30, then
Student is poor

If given marks are less than 95 and more than 30, then
Student is average

Bây giờ, câu hỏi là làm thế nào để viết một mã lập trình để xử lý các tình huống như vậy. Hầu như tất cả các ngôn ngữ lập trình đều cung cấp các câu lệnh có điều kiện hoạt động dựa trên sơ đồ sau:

Hãy viết một chương trình C với sự trợ giúp của if conditional statements để chuyển tình huống đã cho ở trên thành mã lập trình -

#include <stdio.h>

int main() {
   int x = 45;
   
   if( x > 95) {
	
      printf( "Student is brilliant\n");
   }
   if( x < 30) {
	
      printf( "Student is poor\n");
   }
   if( x < 95 && x > 30 ) {
	
      printf( "Student is average\n");
   }
}

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

Student is average

Chương trình trên sử dụng if conditional statements. Đây, cái đầu tiênif statementkiểm tra điều kiện đã cho tức là biến x có lớn hơn 95 hay không và nếu nó thấy điều kiện là đúng, thì phần thân điều kiện được nhập để thực hiện các câu lệnh đã cho. Ở đây chúng ta chỉ có một câu lệnh printf () để in một nhận xét về học sinh.

Tương tự, thứ hai if statementlàm. Cuối cùng, thứ baif statement được thực thi, ở đây chúng ta có hai điều kiện sau:

  • Điều kiện đầu tiên là x > 95

  • Điều kiện thứ hai là x < 30

Máy tính đánh giá cả hai điều kiện đã cho và sau đó, kết quả tổng thể được kết hợp với sự trợ giúp của toán tử nhị phân &&. Nếu kết quả cuối cùng là true thì câu lệnh điều kiện sẽ được thực hiện, ngược lại sẽ không có câu lệnh nào được thực hiện.

Hướng dẫn này sẽ cung cấp cho bạn ý tưởng cơ bản về các dạng if statements và giới thiệu về switchcâu lệnh có sẵn trong ngôn ngữ lập trình C. Các ngôn ngữ lập trình khác nhau cung cấp các loại câu lệnh ra quyết định khác nhau, nhưng khái niệm cơ bản vẫn giống như được giải thích trong hướng dẫn này.

câu lệnh if ... else

An if câu lệnh có thể được theo sau bởi một tùy chọn elsecâu lệnh này thực thi khi biểu thức Boolean sai. Cú pháp của mộtif...else câu lệnh trong ngôn ngữ lập trình C là:

if(boolean_expression) {
   
   /* Statement(s) will execute if the boolean expression is true */
} else {
  
  /* Statement(s) will execute if the boolean expression is false */
}

Cú pháp trên có thể được biểu diễn dưới dạng một sơ đồ như hình dưới đây:

An if...elsetuyên bố hữu ích khi chúng ta phải đưa ra quyết định trong số hai lựa chọn. Ví dụ, nếu một học sinh đạt được hơn 95 điểm, thì học sinh đó xuất sắc, nếu không thì không thể mã hóa tình huống như vậy, như sau:

#include <stdio.h>

int main() {
   int x = 45;
   
   if( x > 95) {
	
      printf( "Student is brilliant\n");
   } else {
      printf( "Student is not brilliant\n");
   }
}

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

Student is not brilliant

câu lệnh if ... elseif ... else

An if câu lệnh có thể được theo sau bởi một tùy chọn else if...else , rất hữu ích để kiểm tra các điều kiện khác nhau.

Trong khi sử dụng if, else if, else , có một số điểm cần lưu ý -

  • An if có thể không có hoặc một else's và nó phải đến sau một else if.

  • An if có thể có từ 0 đến nhiều else…if's và họ phải đến trước else.

  • Một lần else…if thành công, không ai trong số còn lại else…if's hoặc là else's sẽ được kiểm nghiệm.

Cú pháp của một if...else if...else câu lệnh trong ngôn ngữ lập trình C là:

if(boolean_expression 1) {

   /* Executes when the boolean expression 1 is true */
}
else if( boolean_expression 2) {

   /* Executes when the boolean expression 2 is true */
}
else if( boolean_expression 3) {

   /* Executes when the boolean expression 3 is true */
} else {
   
   /* Executes when the none of the above condition is true */
}

Bây giờ với sự giúp đỡ của if...elseif...else tuyên bố, chương trình đầu tiên có thể được mã hóa như sau:

#include <stdio.h>

int main() {
   int x = 45;
   
   if( x > 95) {
      printf( "Student is brilliant\n");
   } 
   else if( x < 30) {
      printf( "Student is poor\n");
   } 
   else if( x < 95 && x > 30 ) {
      printf( "Student is average\n");
   }
}

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

Student is average

Tuyên bố chuyển đổi

A switch tuyên bố là một sự thay thế của if statementscho phép một biến được kiểm tra xem có bình đẳng với một danh sách các giá trị. Mỗi giá trị được gọi làcasevà biến đang được bật được kiểm tra cho từng trường hợp chuyển mạch. Nó có cú pháp sau:

switch(expression){
   case ONE :
      statement(s);
      break;
   case TWO:
      statement(s);
      break;
   ......
   
   default :
      statement(s);
}

Các expression được sử dụng trong một switchcâu lệnh phải cung cấp một giá trị số nguyên, giá trị này sẽ được so sánh để bình đẳng với các trường hợp khác nhau đã cho. Bất cứ khi nào một giá trị biểu thức khớp với một giá trị trường hợp, phần thân của trường hợp đó sẽ được thực thi và cuối cùng, công tắc sẽ được kết thúc bằng cách sử dụngbreaktuyên bố. Nếu không có câu lệnh break nào được cung cấp, thì máy tính sẽ tiếp tục thực hiện các câu lệnh khác có sẵn bên dưới cho trường hợp phù hợp. Nếu không có trường hợp nào phù hợp, thì phần thân trường hợp mặc định được thực thi.

Cú pháp trên có thể được biểu diễn dưới dạng một sơ đồ như hình dưới đây:

Bây giờ, hãy xem xét một ví dụ khác mà chúng ta muốn viết từ tiếng Anh tương đương cho một số nhất định. Sau đó, nó có thể được mã hóa như sau:

#include <stdio.h>

int main() {
   int x = 2;
   
   switch( x ){
      case 1 :
         printf( "One\n");
         break;
      case 2 :
         printf( "Two\n");
         break;
      case 3 :
         printf( "Three\n");
         break;
      case 4 :
         printf( "Four\n");
         break;
      default :
         printf( "None of the above...\n");
   }
}

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

Two

Quyết định trong Java

Sau đây là chương trình tương đương được viết bằng Java cũng hỗ trợ if, if...else, if...elseif...elseswitch các câu lệnh.

Bạn có thể thử thực hiện chương trình sau để xem đầu ra, kết quả phải giống với kết quả được tạo bởi ví dụ C ở trên.

public class DemoJava {
   public static void main(String []args) {
      int x = 45;
   
      if( x > 95) {
         System.out.println( "Student is brilliant");
      } 
      else if( x < 30) {
         System.out.println( "Student is poor");
      } 
      else if( x < 95 && x > 30 ) {
         System.out.println( "Student is average");
      }
   }
}

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

Student is average

Các quyết định bằng Python

Sau đây là chương trình tương đương được viết bằng Python. Python cung cấpif, if...else, if...elif...elseswitchcác câu lệnh. Ở đây, bạn phải lưu ý rằng Python không sử dụng dấu ngoặc nhọn cho phần thân có điều kiện, thay vào đó nó chỉ xác định phần thân của khối bằng cách sử dụng thụt đầu dòng của các câu lệnh.

Bạn có thể thử thực hiện chương trình sau để xem kết quả:

x = 45

if x > 95:
   print "Student is brilliant"
elif x < 30:
   print "Student is poor"
elif x < 95 and x > 30:
   print "Student is average"

print "The end"

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

Student is average
The end

Hãy xem xét một tình huống khi bạn muốn in Hello, World!năm lần. Đây là một chương trình C đơn giản để làm điều tương tự -

#include <stdio.h>

int main() {
   printf( "Hello, World!\n");
   printf( "Hello, World!\n");
   printf( "Hello, World!\n");
   printf( "Hello, World!\n");
   printf( "Hello, World!\n");
}

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!

Nó rất đơn giản, nhưng một lần nữa, hãy xem xét một tình huống khác khi bạn muốn viết Hello, World!một ngàn lần. Chúng ta chắc chắn không thể viết câu lệnh printf () một nghìn lần. Hầu như tất cả các ngôn ngữ lập trình đều cung cấp một khái niệm được gọi làloop, giúp thực hiện một hoặc nhiều câu lệnh với số lần mong muốn. Tất cả các ngôn ngữ lập trình cấp cao đều cung cấp nhiều dạng vòng lặp khác nhau, có thể được sử dụng để thực hiện lặp đi lặp lại một hoặc nhiều câu lệnh.

Hãy viết chương trình C trên với sự trợ giúp của while loop và sau đó, chúng ta sẽ thảo luận về cách thức hoạt động của vòng lặp này

#include <stdio.h>

int main() {
   int i = 0;
   
   while ( i < 5 ) {
      printf( "Hello, World!\n");
      i = i + 1;
   }
}

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!

Chương trình trên sử dụng một while loop, đang được sử dụng để thực thi một tập hợp các câu lệnh lập trình nằm trong {....}. Ở đây, trước tiên máy tính sẽ kiểm tra xem điều kiện đã cho, tức là biến "a" có nhỏ hơn 5 hay không và nếu nó thấy điều kiện là đúng, thì phần thân vòng lặp được nhập để thực hiện các câu lệnh đã cho. Ở đây, chúng ta có hai câu lệnh sau trong thân vòng lặp:

  • Câu lệnh đầu tiên là hàm printf () , hàm này in ra Hello World!

  • Câu lệnh thứ hai là i = i + 1 , được sử dụng để tăng giá trị của biếni

Sau khi thực hiện tất cả các câu lệnh được đưa ra trong thân vòng lặp, máy tính quay trở lại while (i <5) và điều kiện đã cho, (i <5), được kiểm tra lại, và vòng lặp được thực hiện lại nếu điều kiện đúng. Quá trình này lặp lại cho đến khi điều kiện đã cho vẫn đúng, nghĩa là biến "a" có giá trị nhỏ hơn 5.

Để kết luận, một câu lệnh lặp cho phép chúng ta thực hiện một câu lệnh hoặc một nhóm câu lệnh nhiều lần. Dưới đây là dạng chung của câu lệnh lặp trong hầu hết các ngôn ngữ lập trình -

Hướng dẫn này được thiết kế để trình bày các khái niệm cơ bản của lập trình cho những người không phải là lập trình viên, vì vậy chúng ta hãy thảo luận về hai vòng lặp quan trọng nhất có sẵn trong ngôn ngữ lập trình C. Khi bạn đã hiểu rõ về hai vòng lặp này, thì bạn có thể chọn hướng dẫn lập trình C hoặc một cuốn sách tham khảo và kiểm tra các vòng lặp khác có sẵn trong C và cách chúng hoạt động.

Vòng lặp trong khi

A while loop có sẵn trong ngôn ngữ lập trình C có cú pháp sau:

while ( condition ) {
   /*....while loop body ....*/
}

Đoạn mã trên có thể được biểu diễn dưới dạng một sơ đồ như hình dưới đây:

Các điểm quan trọng sau đây cần được lưu ý về vòng lặp while:

  • Vòng lặp while bắt đầu bằng một từ khóa while Theo sau là một condition đính kèm với ( ).

  • Ngoài câu lệnh while (), bạn sẽ có phần thân của vòng lặp được đặt trong dấu ngoặc nhọn {...}.

  • Phần thân của vòng lặp while có thể có một hoặc nhiều dòng mã nguồn được thực thi lặp lại.

  • Nếu phần thân của vòng lặp while chỉ có một dòng, thì tùy chọn sử dụng dấu ngoặc nhọn {...}.

  • Vòng lặp while tiếp tục thực thi phần thân của nó cho đến khi conditionđúng. Ngay sau khi điều kiện trở thành sai, vòng lặp while sẽ xuất hiện và tiếp tục thực thi từ câu lệnh kế tiếp ngay sau thân vòng lặp while.

  • Một điều kiện thường là một câu lệnh quan hệ, được đánh giá là đúng hoặc sai. Giá trị bằng 0 được coi là sai và mọi giá trị khác 0 đều hoạt động như đúng.

Do ... while Loop

Vòng lặp while kiểm tra một điều kiện nhất định trước khi nó thực thi bất kỳ câu lệnh nào được đưa ra trong phần nội dung. Lập trình C cung cấp một dạng vòng lặp khác, được gọi làdo...whilecho phép thực thi một phần thân của vòng lặp trước khi kiểm tra một điều kiện nhất định. Nó có cú pháp sau:

do {
   /*....do...while loop body ....*/
} 
while ( condition );

Đoạn mã trên có thể được biểu diễn dưới dạng một sơ đồ như hình dưới đây:

Nếu bạn sẽ viết ví dụ trên bằng cách sử dụng do...while vòng lặp, sau đó Hello, World sẽ tạo ra cùng một kết quả -

#include <stdio.h>

int main() {
   int i = 0;
   
   do {
      printf( "Hello, World!\n");
      i = i + 1;
   }
   while ( i < 5 );
}

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!

Tuyên bố ngắt

Khi mà breakcâu lệnh gặp phải bên trong một vòng lặp, vòng lặp ngay lập tức kết thúc và điều khiển chương trình tiếp tục ở câu lệnh tiếp theo sau vòng lặp. Cú pháp cho mộtbreak câu lệnh trong C như sau:

break;

A break câu lệnh có thể được biểu diễn dưới dạng một sơ đồ như hình dưới đây:

Sau đây là một biến thể của chương trình trên, nhưng nó sẽ ra mắt sau khi in Hello World! chỉ ba lần -

#include <stdio.h>

int main() {
   int i = 0;
   do {
      printf( "Hello, World!\n");
      i = i + 1;
      
      if( i == 3 ) {
         break;
      }
   }
   while ( i < 5 );
}

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

Hello, World!
Hello, World!
Hello, World!

Tuyên bố tiếp tục

Các continue câu lệnh trong ngôn ngữ lập trình C hoạt động giống như breaktuyên bố. Thay vì buộc phải chấm dứt,continuebuộc lặp lại tiếp theo của vòng lặp diễn ra, bỏ qua bất kỳ mã nào ở giữa. Cú pháp cho mộtcontinue câu lệnh trong C như sau:

continue;

A continue câu lệnh có thể được biểu diễn dưới dạng một sơ đồ như hình dưới đây:

Sau đây là một biến thể của chương trình trên, nhưng nó sẽ bỏ qua việc in khi biến có giá trị bằng 3 -

#include <stdio.h>

int main() {
   int i = 0;
   do {
      if( i == 3 ) {
         i = i + 1;
         continue;
      }
      printf( "Hello, World!\n");
      i = i + 1;
   }
   while ( i < 5 );
}

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

Hello, World!
Hello, World!
Hello, World!
Hello, World!

Vòng lặp trong Java

Sau đây là chương trình tương đương được viết bằng Java cũng hỗ trợ whiledo...whilecác vòng lặp. Chương trình sau sẽ inHello, World! năm lần như chúng ta đã làm trong trường hợp Lập trình C -

Bạn có thể thử thực hiện chương trình sau để xem đầu ra, kết quả phải giống với kết quả được tạo bởi ví dụ trên.

public class DemoJava {
   public static void main(String []args) {
      int i = 0;
   
      while ( i < 5 ) {
         System.out.println("Hello, World!");
         i = i + 1;
      }
   }
}

Các breakcontinue Các câu lệnh trong lập trình Java hoạt động khá giống với cách chúng hoạt động trong lập trình C.

Vòng lặp bằng Python

Sau đây là chương trình tương đương được viết bằng Python. Python cũng hỗ trợwhiledo...whilecác vòng lặp. Chương trình sau sẽ inHello, World!năm lần như chúng ta đã làm trong trường hợp Lập trình C. Ở đây bạn phải lưu ý rằng Python không sử dụng dấu ngoặc nhọn cho phần thân của vòng lặp, thay vào đó, nó chỉ đơn giản xác định phần thân của vòng lặp bằng cách sử dụng thụt đầu dòng của các câu lệnh.

Bạn có thể thử thực hiện chương trình sau để xem kết quả. Để cho thấy sự khác biệt, chúng tôi đã sử dụng thêm một câu lệnh in, câu lệnh này sẽ được thực thi khi vòng lặp kết thúc.

i = 0

while (i < 5):
   print "Hello, World!"
   i = i + 1
print "Loop ends"

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

Hello, World!
Hello, World!
Hello, World!
Hello, World!
Hello, World!
Loop ends

Các breakcontinue các câu lệnh trong Python hoạt động khá giống với cách chúng làm trong lập trình C.

Mọi ngôn ngữ lập trình đều hỗ trợ thao tác với các loại số khác nhau, chẳng hạn như số nguyên đơn giản và số dấu phẩy động. C, Java và Python phân loại những con số này thành một số loại dựa trên bản chất của chúng.

Hãy quay lại và kiểm tra chương kiểu dữ liệu, nơi chúng tôi liệt kê các kiểu dữ liệu cốt lõi liên quan đến số -

Kiểu Từ khóa Phạm vi giá trị có thể được biểu thị bằng kiểu dữ liệu này
Con số int -32,768 đến 32,767 hoặc -2,147,483,648 đến 2,147,483,647
Số nhỏ ngắn -32,768 đến 32,767
Số dài Dài -2.147.483.648 đến 2.147.483.647
Số thập phân Phao nổi 1,2E-38 đến 3,4E + 38 cho đến 6 chữ số thập phân

Những kiểu dữ liệu này được gọi là kiểu dữ liệu nguyên thủy và bạn có thể sử dụng những kiểu dữ liệu này để xây dựng nhiều kiểu dữ liệu hơn, được gọi là kiểu dữ liệu do người dùng xác định.

Chúng tôi đã thấy các phép toán toán học và logic khác nhau trên các con số trong một cuộc thảo luận về các toán tử. Như vậy chúng ta đã biết cộng số, trừ số, chia số, v.v.

Đầu tiên chúng ta hãy xem cách in các loại số khác nhau có sẵn trong ngôn ngữ lập trình C:

#include <stdio.h>

int main() {
   short  s;
   int    i;
   long   l;
   float  f;
   double d;

   s = 10;
   i = 1000;
   l = 1000000;
   f = 230.47;
   d = 30949.374;

   printf( "s: %d\n", s);
   printf( "i: %d\n", i);
   printf( "l: %ld\n", l);
   printf( "f: %.3f\n", f);
   printf( "d: %.3f\n", d);
}

Phần còn lại của mã hóa là rất rõ ràng, nhưng chúng tôi đã sử dụng %.3fđể in float và double, cho biết số chữ số sau số thập phân sẽ được in. Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

s: 10
i: 1000
l: 1000000
f: 230.470
d: 30949.374

Các phép toán trên các con số

Bảng sau liệt kê các phép toán tích hợp hữu ích khác nhau functions có sẵn trong ngôn ngữ lập trình C có thể được sử dụng cho các phép tính toán học quan trọng khác nhau.

Ví dụ, nếu bạn muốn tính căn bậc hai của một số chẳng hạn, 2304, thì bạn đã có sẵn một hàm tích hợp sẵn để tính căn bậc hai.

Sr.No. Chức năng & Mục đích
1

double cos(double);

Hàm này nhận một góc (như một nhân đôi) và trả về cosin.

2

double sin(double);

Hàm này nhận một góc (như một góc gấp đôi) và trả về sin.

3

tan đôi (double);

Hàm này nhận một góc (như một góc gấp đôi) và trả về tiếp tuyến.

4

double log(double);

Hàm này nhận một số và trả về nhật ký tự nhiên của số đó.

5

double pow(double, double);

Đầu tiên là một con số bạn muốn nâng cao và thứ hai là sức mạnh bạn muốn nâng nó lên.

6

double hypot(double, double);

Nếu bạn truyền vào hàm này độ dài hai cạnh của tam giác vuông, nó sẽ trả về độ dài cạnh huyền.

7

double sqrt(double);

Bạn chuyển hàm này một số và nó trả về căn bậc hai của nó.

số 8

int abs(int);

Hàm này trả về giá trị tuyệt đối của một số nguyên được chuyển cho nó.

9

double fabs(double);

Hàm này trả về giá trị tuyệt đối của bất kỳ số thập phân nào được chuyển đến nó.

10

double floor(double);

Tìm số nguyên nhỏ hơn hoặc bằng đối số được truyền cho nó.

Sau đây là một ví dụ đơn giản để hiển thị một vài phép toán. Để sử dụng các chức năng này, bạn cần bao gồm tệp tiêu đề toán học<math.h> trong chương trình của bạn giống như cách bạn đã bao gồm stdio.h -

#include <stdio.h>
#include <math.h>

int main() {
   short  s;
   int    i;
   long   l;
   float  f;
   double d;

   printf( "sin(s): %f\n", sin(10));
   printf( "abs(i): %f\n", abs(1000));
   printf( "floor(f): %f\n", floor(230.47));
   printf( "sqrt(l): %f\n", sqrt(1000000));
   printf( "pow(d, 2): %f\n", pow(2.374, 2));
}

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

sin(s): -0.544021
abs(i): -0.544021
floor(f): 230.000000
sqrt(l): 1000.000000
pow(d, 2): 5.635876

Bên cạnh cách sử dụng trên, bạn sẽ sử dụng số trong đếm vòng lặp, biểu diễn cờ, giá trị true hoặc false trong lập trình C.

Số trong Java

Sau đây là chương trình tương đương được viết bằng Java. Java cung cấp hầu hết tất cả các kiểu dữ liệu số có sẵn trong lập trình C.

Bạn có thể thử thực hiện chương trình sau để xem kết quả giống với kết quả được tạo bởi ví dụ C ở trên.

public class DemoJava {
   public static void main(String []args) {
      short  s;
      int    i;
      long   l;
      float  f;
      double d;

      s = 10;
      i = 1000;
      l = 1000000L;
      f = 230.47f;
      d = 30949.374;

      System.out.format( "s: %d\n", s);
      System.out.format( "i: %d\n", i);
      System.out.format( "l: %d\n", l);
      System.out.format( "f: %f\n", f);
      System.out.format( "d: %f\n", d);
   }
}

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

s: 10
i: 1000
l: 1000000
f: 230.470001
d: 30949.374000

Java cũng cung cấp đầy đủ các hàm tích hợp để tính toán toán học và bạn có thể sử dụng chúng theo cách giống như cách bạn đã làm trong lập trình C.

Số trong Python

Python hơi khác một chút so với C và Java; nó phân loại các số trongint, long, floatcomplex. Dưới đây là một số ví dụ về số trong Python:

int Dài Phao nổi phức tạp
10 51924361L 0,0 3,14j
100 -0x19323L 15,20 45.j
-786 0122L -21,9 9.322e-36j
080 0xDEFABCECBDAECBFBAEl 32,3 + e18 .876j
-0490 535633629843L -90. -.6545 + 0J
-0x260 -052318172735L -32,54e100 3e + 26J
0x69 -4721885298529L 70,2-E12 4,53e-7j

Sau đây là chương trình tương đương được viết bằng Python:

s = 10
i = 1000
l = 1000000
f = 230.47
d = 30949.374

print "s: ", s
print "i: ", i
print "l: ", l
print "f: ", f
print "d: ", d

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

s:  10
i:  1000
l:  1000000
f:  230.47
d:  30949.374

Python cũng cung cấp đầy đủ các hàm tích hợp cho các phép tính toán học và bạn có thể sử dụng chúng theo cách tương tự như cách bạn đã sử dụng chúng trong lập trình C.

Nếu làm việc với các con số trong lập trình máy tính đã dễ dàng, thì làm việc với các ký tự thậm chí còn dễ dàng hơn. Các ký tự là các bảng chữ cái đơn giản như a, b, c, d ...., A, B, C, D, ....., nhưng có một ngoại lệ. Trong lập trình máy tính, bất kỳ số có một chữ số nào như 0, 1, 2, .... và các ký tự đặc biệt như $,%, +, -...., v.v., cũng được coi là ký tự và để gán chúng trong một kiểu ký tự biến, bạn chỉ cần đặt chúng vào bên trongsingle quotes. Ví dụ, câu lệnh sau định nghĩa một biến kiểu ký tựch và chúng tôi gán giá trị 'a' cho nó -

char ch = 'a';

Đây, ch là một biến kiểu ký tự có thể chứa một ký tự trong bộ ký tự của triển khai và 'a' được gọi là character literalhoặc một hằng số ký tự. Không chỉ a, b, c, .... mà khi bất kỳ số nào như 1, 2, 3 .... hoặc bất kỳ ký tự đặc biệt nào như !, @, #, #, $, .... được giữ bên trong dấu nháy đơn , thì chúng sẽ được coi là một ký tự theo nghĩa đen và có thể được gán cho một biến kiểu ký tự, do đó, sau đây là một câu lệnh hợp lệ:

char ch = '1';

Kiểu dữ liệu ký tự sử dụng 8 bit bộ nhớ, có nghĩa là bạn có thể lưu trữ bất kỳ thứ gì trong một ký tự có giá trị ASCII nằm trong khoảng -127 đến 127, vì vậy nó có thể chứa bất kỳ giá trị nào trong số 256 giá trị khác nhau. Kiểu dữ liệu ký tự có thể lưu trữ bất kỳ ký tự nào có sẵn trên bàn phím của bạn bao gồm các ký tự đặc biệt như!, @, #, #, $,%, ^, &, *, (,), _, +, {,}, V.v.

Lưu ý rằng bạn chỉ có thể giữ một bảng chữ cái hoặc một số duy nhất bên trong dấu nháy đơn và nhiều hơn một bảng chữ cái hoặc chữ số không được phép bên trong dấu nháy đơn. Vì vậy, các câu lệnh sau không hợp lệ trong lập trình C:

char ch1 = 'ab';
char ch2 = '10';

Dưới đây là một ví dụ đơn giản, cho thấy cách xác định, gán và in các ký tự trong ngôn ngữ Lập trình C -

#include <stdio.h>

int main() {
   char  ch1;
   char  ch2;
   char  ch3;
   char  ch4;
   
   ch1 = 'a';      
   ch2 = '1';
   ch3 = '$';
   ch4 = '+';  

   printf( "ch1: %c\n", ch1);
   printf( "ch2: %c\n", ch2);
   printf( "ch3: %c\n", ch3);
   printf( "ch4: %c\n", ch4);
}

Ở đây, chúng tôi đã sử dụng% c để in một kiểu dữ liệu ký tự. Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

ch1: a
ch2: 1
ch3: $
ch4: +

Trình tự thoát

Nhiều ngôn ngữ lập trình hỗ trợ một khái niệm được gọi là Escape Sequence. Khi một ký tự đứng trước dấu gạch chéo ngược (\), nó được gọi là một chuỗi thoát và nó có ý nghĩa đặc biệt đối với trình biên dịch. Ví dụ: \ n trong câu lệnh sau là một ký tự hợp lệ và nó được gọi là một ký tự dòng mới -

char ch = '\n';

Đây, nhân vật ntrước dấu gạch chéo ngược (\), nó có ý nghĩa đặc biệt là một dòng mới nhưng hãy nhớ rằng dấu gạch chéo ngược (\) chỉ có ý nghĩa đặc biệt với một vài ký tự. Câu lệnh sau sẽ không truyền đạt bất kỳ ý nghĩa nào trong lập trình C và nó sẽ được coi là một câu lệnh không hợp lệ -

char ch = '\1';

Bảng sau liệt kê các trình tự thoát có sẵn trong ngôn ngữ lập trình C:

Trình tự thoát Sự miêu tả
\ t Chèn một tab trong văn bản tại điểm này.
\ b Chèn một backspace trong văn bản tại điểm này.
\ n Chèn một dòng mới trong văn bản tại điểm này.
\ r Chèn một dấu xuống dòng trong văn bản tại thời điểm này.
\ f Chèn một nguồn cấp dữ liệu biểu mẫu vào văn bản tại điểm này.
\ ' Chèn một ký tự trích dẫn duy nhất trong văn bản tại thời điểm này.
\ " Chèn một ký tự dấu ngoặc kép vào văn bản tại thời điểm này.
\\ Chèn một ký tự gạch chéo ngược trong văn bản tại điểm này.

Ví dụ sau đây cho thấy cách trình biên dịch diễn giải một chuỗi thoát trong một câu lệnh in:

#include <stdio.h>

int main() {
   char  ch1;
   char  ch2;
   char  ch3;
   char  ch4;
   
   ch1 = '\t';      
   ch2 = '\n';

   printf( "Test for tabspace %c and a newline %c will start here", ch1, ch2);
}

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

Test for tabspace     and a newline 
will start here

Các ký tự trong Java

Sau đây là chương trình tương đương được viết bằng Java. Java xử lý các kiểu dữ liệu ký tự giống như cách chúng ta đã thấy trong lập trình C. Tuy nhiên, Java cung cấp hỗ trợ bổ sung cho thao tác ký tự.

Bạn có thể thử thực hiện chương trình sau để xem đầu ra, kết quả phải giống với kết quả được tạo bởi ví dụ C ở trên.

public class DemoJava {
   public static void main(String []args) {
      char  ch1;
      char  ch2;
      char  ch3;
      char  ch4;
   
      ch1 = 'a';      
      ch2 = '1';
      ch3 = '$';
      ch4 = '+';  

      System.out.format( "ch1: %c\n", ch1);
      System.out.format( "ch2: %c\n", ch2);
      System.out.format( "ch3: %c\n", ch3);
      System.out.format( "ch4: %c\n", ch4);
   }
}

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

ch1:  a
ch2:  1
ch3:  $
ch4:  +

Java cũng hỗ trợ trình tự thoát giống như cách bạn đã sử dụng chúng trong lập trình C.

Các ký tự trong Python

Python không hỗ trợ bất kỳ kiểu dữ liệu ký tự nào nhưng tất cả các ký tự được coi là chuỗi, là một chuỗi ký tự. Chúng ta sẽ nghiên cứu chuỗi trong một chương riêng biệt. Bạn không cần phải có bất kỳ sự sắp xếp đặc biệt nào khi sử dụng một ký tự duy nhất trong Python.

Sau đây là chương trình tương đương được viết bằng Python:

ch1 = 'a';      
ch2 = '1';
ch3 = '$';
ch4 = '+'; 

print "ch1: ", ch1
print "ch2: ", ch2
print "ch3: ", ch3
print "ch4: ", ch4

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

ch1:  a
ch2:  1
ch3:  $
ch4:  +

Python hỗ trợ trình tự thoát theo cách giống như cách bạn đã sử dụng chúng trong lập trình C.

Hãy xem xét một tình huống mà chúng ta cần lưu trữ năm số nguyên. Nếu chúng ta sử dụng các khái niệm kiểu dữ liệu và biến đơn giản của lập trình, thì chúng ta cần năm biếnint kiểu dữ liệu và chương trình sẽ như sau:

#include <stdio.h>

int main() {
   int number1;
   int number2;
   int number3;
   int number4;
   int number5;
   
   number1 = 10;      
   number2 = 20;   
   number3 = 30;   
   number4 = 40; 
   number5 = 50;     

   printf( "number1: %d\n", number1);
   printf( "number2: %d\n", number2);
   printf( "number3: %d\n", number3);
   printf( "number4: %d\n", number4);
   printf( "number5: %d\n", number5);
}

Nó rất đơn giản, bởi vì chúng tôi phải lưu trữ chỉ năm số nguyên. Bây giờ giả sử chúng ta phải lưu trữ 5000 số nguyên. Chúng ta sẽ sử dụng 5000 biến?

Để xử lý những tình huống như vậy, hầu như tất cả các ngôn ngữ lập trình đều cung cấp một khái niệm gọi là array. Mảng là một cấu trúc dữ liệu, có thể lưu trữ một tập hợp kích thước cố định của các phần tử của cùng một kiểu dữ liệu. Mảng được sử dụng để lưu trữ một tập hợp dữ liệu, nhưng thường hữu ích hơn nếu coi một mảng là một tập hợp các biến cùng kiểu.

Thay vì khai báo các biến riêng lẻ, chẳng hạn như number1, number2, ..., number99, bạn chỉ cần khai báo một biến mảng numbercủa kiểu số nguyên và sử dụng number1 [0], number1 [1] và ..., number1 [99] để biểu diễn các biến riêng lẻ. Đây, 0, 1, 2, ..... 99 làindex kết hợp với var và chúng đang được sử dụng để đại diện cho các phần tử riêng lẻ có sẵn trong mảng.

Tất cả các mảng bao gồm các vị trí bộ nhớ liền nhau. Địa chỉ thấp nhất tương ứng với phần tử đầu tiên và địa chỉ cao nhất cho phần tử cuối cùng.

Tạo mảng

Để tạo một biến mảng trong C, một lập trình viên chỉ định kiểu của các phần tử và số phần tử sẽ được lưu trữ trong mảng đó. Dưới đây là một cú pháp đơn giản để tạo một mảng trong lập trình C:

type arrayName [ arraySize ];

Đây được gọi là mảng một chiều . CácarraySize phải là một hằng số nguyên lớn hơn 0 và typecó thể là bất kỳ kiểu dữ liệu C hợp lệ nào. Ví dụ, bây giờ để khai báo một mảng 10 phần tử được gọi lànumber thuộc loại int, sử dụng câu lệnh này -

int number[10];

Ở đây, number là một mảng biến, đủ để chứa tối đa 10 số nguyên.

Khởi tạo Mảng

Bạn có thể khởi tạo một mảng trong C hoặc từng cái một hoặc sử dụng một câu lệnh như sau:

int number[5] = {10, 20, 30, 40, 50};

Số lượng giá trị giữa các dấu ngoặc vuông {} không được lớn hơn số phần tử mà chúng ta khai báo cho mảng giữa các dấu ngoặc vuông [].

Nếu bạn bỏ qua kích thước của mảng, một mảng vừa đủ lớn để chứa quá trình khởi tạo sẽ được tạo. Do đó, nếu bạn viết -

int number[] = {10, 20, 30, 40, 50};

Bạn sẽ tạo chính xác mảng giống như bạn đã làm trong ví dụ trước. Sau đây là một ví dụ để gán một phần tử duy nhất của mảng:

number[4] = 50;

Câu lệnh trên gán phần tử thứ 5 trong mảng với giá trị là 50. Tất cả các mảng có 0 là chỉ số của phần tử đầu tiên của chúng, còn được gọi là chỉ số cơ sở và chỉ số cuối cùng của một mảng sẽ là tổng kích thước của mảng bị trừ. 1. Hình ảnh sau đây cho thấy biểu diễn bằng hình ảnh của mảng mà chúng ta đã thảo luận ở trên -

Truy cập các phần tử mảng

Một phần tử được truy cập bằng cách đánh chỉ mục tên mảng. Điều này được thực hiện bằng cách đặt chỉ mục của phần tử trong dấu ngoặc vuông sau tên của mảng. Ví dụ -

int var = number[9];

Câu lệnh trên sẽ lấy phần tử thứ 10 từ mảng và gán giá trị cho varBiến đổi. Ví dụ sau sử dụng tất cả ba khái niệm nêu trên viz. tạo, gán và truy cập mảng -

#include <stdio.h>
 
int main () {
   int number[10]; /* number is an array of 10 integers */
   int i = 0;
 
   /* Initialize elements of array n to 0 */         
   while( i < 10 ) {
	
      /* Set element at location i to i + 100 */
      number[ i ] = i + 100;
      i = i + 1;
   }
   
   /* Output each array element's value */
   i = 0;
   while( i < 10 ) {
	
      printf("number[%d] = %d\n", i, number[i] );
      i = i + 1;
   }
   
   return 0;
}

Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:

number[0] = 100
number[1] = 101
number[2] = 102
number[3] = 103
number[4] = 104
number[5] = 105
number[6] = 106
number[7] = 107
number[8] = 108
number[9] = 109

Mảng trong Java

Sau đây là chương trình tương đương được viết bằng Java. Java hỗ trợ mảng, nhưng có một chút khác biệt trong cách chúng được tạo trong Java bằng cách sử dụngnew nhà điều hành.

Bạn có thể thử thực hiện chương trình sau để xem đầu ra, kết quả phải giống với kết quả được tạo bởi ví dụ C ở trên.

public class DemoJava {
   public static void main(String []args) {
      int[] number = new int[10];
      int i = 0;
      
      while( i < 10 ) {
		
         number[ i ] = i + 100;
         i = i + 1;
      }

      i = 0;
      while( i < 10 ) {
         System.out.format( "number[%d] = %d\n", i, number[i] );
         i = i + 1;
      }
   }
}

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

number[0] = 100
number[1] = 101
number[2] = 102
number[3] = 103
number[4] = 104
number[5] = 105
number[6] = 106
number[7] = 107
number[8] = 108
number[9] = 109

Mảng (Danh sách) bằng Python

Python không có khái niệm về Mảng, thay vào đó Python cung cấp một cấu trúc dữ liệu khác được gọi là list, cung cấp chức năng tương tự như mảng ở bất kỳ ngôn ngữ nào khác.

Sau đây là chương trình tương đương được viết bằng Python:

# Following defines an empty list.
number = []
i = 0

while i < 10:
   # Appending elements in the list
   number.append(i + 100)
   i = i + 1

i = 0
while i < 10:
   # Accessing elements from the list
   print "number[", i,  "] = ", number[ i ]
   i = i + 1

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

number[ 0 ] =  100
number[ 1 ] =  101
number[ 2 ] =  102
number[ 3 ] =  103
number[ 4 ] =  104
number[ 5 ] =  105
number[ 6 ] =  106
number[ 7 ] =  107
number[ 8 ] =  108
number[ 9 ] =  109

Trong cuộc thảo luận của chúng tôi về characters, chúng tôi đã biết rằng kiểu dữ liệu ký tự giao dịch với một ký tự và bạn có thể gán bất kỳ ký tự nào từ bàn phím của mình cho một biến kiểu ký tự.

Bây giờ, hãy tiến lên phía trước một chút và xem xét một tình huống mà chúng ta cần lưu trữ nhiều ký tự trong một biến. Chúng ta đã thấy rằng lập trình C không cho phép lưu trữ nhiều hơn một ký tự trong một biến kiểu ký tự. Vì vậy, các câu lệnh sau đây không hợp lệ trong lập trình C và tạo ra lỗi cú pháp:

char ch1 = 'ab';
char ch2 = '10';

Chúng tôi cũng đã thấy cách sử dụng khái niệm arraysđể lưu trữ nhiều hơn một giá trị của kiểu dữ liệu tương tự trong một biến. Đây là cú pháp để lưu trữ và in năm số trong một mảng kiểu int:

#include <stdio.h>

main() {
   int number[5] = {10, 20, 30, 40, 50};
   int i = 0;
        
   while( i < 5 ) {
      printf("number[%d] = %d\n", i, number[i] );
      i = i + 1;
   }
}

Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:

number[0] = 10
number[1] = 20
number[2] = 30
number[3] = 40
number[4] = 50

Bây giờ, hãy xác định một mảng gồm năm ký tự giống như cách chúng ta đã làm đối với các số và thử in chúng ra -

#include <stdio.h>

main() {
   char ch[5] = {'H', 'e', 'l', 'l', 'o'};
   int i = 0;
        
   while( i < 5 ) {
      printf("ch[%d] = %c\n", i, ch[i] );
      i = i + 1;
   }
}

Ở đây, chúng tôi đã sử dụng% c để in giá trị ký tự. Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:

ch[0] = H
ch[1] = e
ch[2] = l
ch[3] = l
ch[4] = o

Nếu bạn làm xong ví dụ trên, thì tôi nghĩ bạn đã hiểu cách hoạt động của chuỗi trong lập trình C, bởi vì strings in C are represented as arrays of characters. Lập trình C đã đơn giản hóa việc gán và in các chuỗi. Hãy kiểm tra lại ví dụ tương tự một lần nữa với cú pháp đơn giản -

#include <stdio.h>

main() {
   char ch[5] = "Hello";
   int i = 0;
    
   /* Print as a complete string */
   printf("String = %s\n", ch);  

   /* Print character by character */
   while( i < 5 ) {
      printf("ch[%d] = %c\n", i, ch[i] );
      i = i + 1;
   }
}

Ở đây, chúng tôi đã sử dụng% s để in giá trị chuỗi đầy đủ bằng cách sử dụng tên mảng ch, thực sự là nơi bắt đầu của việc lưu giữ địa chỉ bộ nhớ ch biến như hình dưới đây -

Mặc dù nó không hiển thị trong các ví dụ trên, chương trình C chỉ định nội bộ ký tự null '\0'là ký tự cuối cùng của mọi chuỗi. Nó chỉ ra phần cuối của chuỗi và nó có nghĩa là nếu bạn muốn lưu trữ một chuỗi 5 ký tự trong một mảng, thì bạn phải xác định kích thước mảng là 6 như một cách thực hành tốt, mặc dù C không phàn nàn về điều đó.

Nếu đoạn mã trên được biên dịch và thực thi, nó sẽ tạo ra kết quả sau:

String = Hello
ch[0] = H
ch[1] = e
ch[2] = l
ch[3] = l
ch[4] = o

Khái niệm chuỗi cơ bản

Dựa trên những thảo luận ở trên, chúng ta có thể kết luận những điểm quan trọng sau đây về chuỗi trong ngôn ngữ lập trình C:

  • Các chuỗi trong C được biểu diễn dưới dạng mảng các ký tự.

  • Chúng ta có thể tạo một chuỗi trong lập trình C bằng cách gán từng ký tự vào một mảng ký tự.

  • Chúng ta có thể tạo một chuỗi trong lập trình C bằng cách gán một chuỗi hoàn chỉnh trong dấu ngoặc kép.

  • Chúng ta có thể in một ký tự chuỗi theo ký tự bằng cách sử dụng chỉ số con của mảng hoặc một chuỗi hoàn chỉnh bằng cách sử dụng tên mảng không có chỉ số con.

  • Ký tự cuối cùng của mỗi chuỗi là ký tự rỗng, tức là, ‘\0’.

  • Hầu hết các ngôn ngữ lập trình đều cung cấp các hàm tích hợp để thao tác với chuỗi, tức là bạn có thể nối các chuỗi, bạn có thể tìm kiếm từ một chuỗi, bạn có thể trích xuất chuỗi con từ một chuỗi, v.v. Để biết thêm, bạn có thể xem hướng dẫn chi tiết của chúng tôi về Lập trình C hoặc bất kỳ ngôn ngữ lập trình nào khác.

Chuỗi trong Java

Mặc dù bạn có thể sử dụng mảng ký tự để lưu trữ chuỗi, nhưng Java là một ngôn ngữ lập trình nâng cao và các nhà thiết kế của nó đã cố gắng cung cấp thêm chức năng. Java cung cấp các chuỗi như một kiểu dữ liệu dựng sẵn giống như bất kỳ kiểu dữ liệu nào khác. Nó có nghĩa là bạn có thể xác định chuỗi trực tiếp thay vì định nghĩa chúng dưới dạng mảng ký tự.

Sau đây là chương trình tương đương được viết bằng Java. Java sử dụngnew toán tử để tạo biến chuỗi như trong chương trình sau.

Bạn có thể thử thực hiện chương trình sau để xem kết quả:

public class DemoJava {
   public static void main(String []args) {
      String str = new String("Hello");  
      System.out.println( "String = " + str );
   }
}

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

String = Hello

Chuỗi trong Python

Tạo chuỗi trong Python cũng đơn giản như gán một chuỗi vào một biến Python bằng cách sử dụng dấu ngoặc kép hoặc đơn.

Dưới đây là một chương trình đơn giản tạo hai chuỗi và in chúng bằng hàm print () -

var1 = 'Hello World!'
var2 = "Python Programming"

print "var1 = ", var1
print "var2 = ", var2

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

var1 =  Hello World!
var2 =  Python Programming

Python không hỗ trợ kiểu ký tự; chúng được coi là chuỗi có độ dài một, do đó cũng được coi là chuỗi con.

Để truy cập các chuỗi con, hãy sử dụng dấu ngoặc vuông để cắt cùng với chỉ mục hoặc chỉ số để lấy chuỗi con của bạn. Hãy xem đoạn mã sau:

var1 = 'Hello World!'
var2 = "Python Programming"

print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

var1[0]:  H
var2[1:5]:  ytho

Hàm là một khối mã có tổ chức, có thể sử dụng lại được dùng để thực hiện một hành động có liên quan. Các chức năng cung cấp mô-đun tốt hơn cho ứng dụng của bạn và mức độ tái sử dụng mã cao. Bạn đã thấy các chức năng khác nhau nhưprintf()main(). Đây được gọi là các hàm tích hợp do chính ngôn ngữ cung cấp, nhưng chúng ta cũng có thể viết các hàm của riêng mình và hướng dẫn này sẽ dạy bạn cách viết và sử dụng các hàm đó trong ngôn ngữ lập trình C.

Điều tốt về các chức năng là chúng nổi tiếng với một số tên. Các ngôn ngữ lập trình khác nhau đặt tên cho chúng khác nhau, ví dụ: hàm, phương thức, quy trình con, thủ tục, v.v. Nếu bạn bắt gặp bất kỳ thuật ngữ nào như vậy, thì hãy tưởng tượng về cùng một khái niệm mà chúng ta sẽ thảo luận trong hướng dẫn này.

Hãy bắt đầu với một chương trình mà chúng ta sẽ xác định hai mảng số và sau đó từ mỗi mảng, chúng ta sẽ tìm ra số lớn nhất. Dưới đây là các bước để tìm ra số lớn nhất từ ​​một tập hợp số nhất định -

1. Get a list of numbers L1, L2, L3....LN
2. Assume L1 is the largest, Set max = L1
3. Take next number Li from the list and do the following
4.    If max is less than Li
5.       Set max = Li
6.    If Li is last number from the list then
7.       Print value stored in max and come out
8. Else prepeat same process starting from step 3

Hãy dịch chương trình trên sang ngôn ngữ lập trình C -

#include <stdio.h>

int main() {
   int set1[5] = {10, 20, 30, 40, 50};
   int set2[5] = {101, 201, 301, 401, 501};
   int i, max;
   
   /* Process first set of numbers available in set1[] */
   max = set1[0];
   i = 1;    
   while( i < 5 ) {
      if( max <  set1[i] ) {
         max = set1[i];
      }
      i = i + 1;
   }
   
   printf("Max in first set = %d\n", max );
    
   /* Now process second set of numbers available in set2[] */
   max = set2[0];
   i = 1;    
   while( i < 5 ) {
      if( max <  set2[i] ) {
         max = set2[i];
      }
      i = i + 1;
   }
   printf("Max in second set = %d\n", max );
}

Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:

Max in first set = 50
Max in second set = 501

Nếu bạn hiểu rõ về ví dụ trên, thì bạn sẽ trở nên dễ hiểu tại sao chúng ta cần một hàm. Trong ví dụ trên, chỉ có hai bộ số, set1 và set2, nhưng hãy xem xét tình huống mà chúng ta có 10 bộ số giống nhau trở lên để tìm ra số lớn nhất từ ​​mỗi bộ. Trong tình huống như vậy, chúng ta sẽ phải lặp lại, xử lý 10 lần hoặc hơn và cuối cùng, chương trình sẽ trở nên quá lớn với mã lặp lại. Để xử lý tình huống như vậy, chúng tôi viết các hàm của mình trong đó chúng tôi cố gắng giữ mã nguồn sẽ được sử dụng nhiều lần trong lập trình của chúng tôi.

Bây giờ, chúng ta hãy xem cách định nghĩa một hàm trong ngôn ngữ lập trình C và sau đó trong các phần tiếp theo, chúng tôi sẽ giải thích cách sử dụng chúng.

Xác định một chức năng

Dạng tổng quát của định nghĩa hàm trong ngôn ngữ lập trình C như sau:

return_type function_name( parameter list ) {
   body of the function
   
   return [expression];
}

Định nghĩa hàm trong lập trình C bao gồm tiêu đề hàmthân hàm . Đây là tất cả các phần của một hàm -

  • Return Type- Một hàm có thể trả về một giá trị. Cácreturn_typelà kiểu dữ liệu của giá trị mà hàm trả về. Một số hàm thực hiện các hoạt động mong muốn mà không trả về giá trị. Trong trường hợp này, return_type là từ khóavoid.

  • Function Name- Đây là tên thực của hàm. Tên hàm và danh sách tham số cùng nhau tạo thành chữ ký hàm.

  • Parameter List- Một tham số giống như một trình giữ chỗ. Khi một hàm được gọi, bạn chuyển một giá trị làm tham số. Giá trị này được gọi là tham số hoặc đối số thực tế. Danh sách tham số đề cập đến kiểu, thứ tự và số lượng các tham số của một hàm. Các thông số là tùy chọn; nghĩa là, một hàm có thể không chứa tham số.

  • Function Body - Phần thân của hàm chứa một tập hợp các câu lệnh xác định những gì hàm thực hiện.

Gọi một hàm

Trong khi tạo một hàm C, bạn đưa ra định nghĩa về những gì hàm phải làm. Để sử dụng một hàm, bạn sẽ phải gọi hàm đó để thực hiện một tác vụ đã xác định.

Bây giờ, hãy viết ví dụ trên với sự trợ giúp của một hàm -

#include <stdio.h>

int getMax( int set[] ) {
   int i, max;
   
   max = set[0];
   i = 1;    
   while( i < 5 ) {
      if( max <  set[i] ) {
         max = set[i];
      }
      i = i + 1;
   }
   return max;
}
main() {
   int set1[5] = {10, 20, 30, 40, 50};
   int set2[5] = {101, 201, 301, 401, 501};
   int max;

   /* Process first set of numbers available in set1[] */
   max = getMax(set1);
   printf("Max in first set = %d\n", max );
    
   /* Now process second set of numbers available in set2[] */
   max = getMax(set2);
   printf("Max in second set = %d\n", max );
}

Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:

Max in first set = 50
Max in second set = 501

Các hàm trong Java

Nếu bạn hiểu rõ về các hàm trong lập trình C, thì bạn cũng dễ dàng hiểu chúng trong Java. Lập trình Java đặt tên chúng làmethods, nhưng phần còn lại của các khái niệm vẫn ít nhiều giống nhau.

Sau đây là chương trình tương đương được viết bằng Java. Bạn có thể thử thực thi nó để xem kết quả -

public class DemoJava {
   public static void main(String []args) {
      int[] set1 = {10, 20, 30, 40, 50};
      int[] set2 = {101, 201, 301, 401, 501};
      int max;

      /* Process first set of numbers available in set1[] */
      max = getMax(set1);
      System.out.format("Max in first set = %d\n", max );

      /* Now process second set of numbers available in set2[] */
      max = getMax(set2);
      System.out.format("Max in second set = %d\n", max );
   }
   public static int getMax( int set[] ) {
      int i, max;
      max = set[0];
      i = 1;    
      
      while( i < 5 ) {
         if( max <  set[i] ) {
            max = set[i];
         }
         i = i + 1;
      }
      return max;
   }
}

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

Max in first set = 50
Max in second set = 501

Các hàm trong Python

Một lần nữa, nếu bạn biết khái niệm về hàm trong lập trình C và Java, thì Python cũng không khác nhiều. Dưới đây là cú pháp cơ bản để xác định một hàm trong Python:

def function_name( parameter list ):
   body of the function
   
   return [expression]

Sử dụng cú pháp của hàm này trong Python, ví dụ trên có thể được viết như sau:

def getMax( set ):
   max = set[0]
   i = 1   
   
   while( i < 5 ):
      if( max <  set[i] ):
         max = set[i]
      
      i = i + 1
   return max

set1 = [10, 20, 30, 40, 50]
set2 = [101, 201, 301, 401, 501]

# Process first set of numbers available in set1[]
max = getMax(set1)
print "Max in first set = ", max
    
# Now process second set of numbers available in set2[]
max = getMax(set2)
print "Max in second set = ", max

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

Max in first set =  50
Max in second set =  501

Tập tin máy tính

Tệp máy tính được sử dụng để lưu trữ dữ liệu ở định dạng kỹ thuật số như văn bản thuần túy, dữ liệu hình ảnh hoặc bất kỳ nội dung nào khác. Các tệp máy tính có thể được tổ chức bên trong các thư mục khác nhau. Tệp được sử dụng để giữ dữ liệu kỹ thuật số, trong khi thư mục được sử dụng để giữ tệp.

Các tệp máy tính có thể được coi là đối tác kỹ thuật số của các tài liệu giấy. Trong khi lập trình, bạn giữ mã nguồn của mình trong các tệp văn bản có phần mở rộng khác nhau, ví dụ: tệp lập trình C kết thúc bằng phần mở rộng.c, Các tệp lập trình Java với .javavà các tệp Python với .py.

Đầu vào / đầu ra tệp

Thông thường, bạn tạo tệp bằng các trình soạn thảo văn bản như notepad, MS Word, MS Excel hay MS Powerpoint,… Tuy nhiên, nhiều khi chúng ta cũng cần tạo tệp bằng các chương trình máy tính. Chúng tôi có thể sửa đổi tệp hiện có bằng chương trình máy tính.

Đầu vào tệp nghĩa là dữ liệu được ghi vào tệp và đầu ra tệp có nghĩa là dữ liệu được đọc từ tệp. Trên thực tế, các thuật ngữ đầu vào và đầu ra liên quan nhiều hơn đến đầu vào và đầu ra của màn hình. Khi chúng ta hiển thị một kết quả trên màn hình, nó được gọi là kết quả đầu ra. Tương tự, nếu chúng ta cung cấp một số đầu vào cho chương trình của mình từ dấu nhắc lệnh, thì nó được gọi là đầu vào.

Bây giờ, đủ để nhớ rằng ghi vào tệp là đầu vào của tệp và đọc thứ gì đó từ tệp là đầu ra của tệp.

Chế độ hoạt động tệp

Trước khi bắt đầu làm việc với bất kỳ tệp nào bằng chương trình máy tính, chúng ta cần tạo một tệp mới nếu nó không tồn tại hoặc mở một tệp đã có. Trong cả hai trường hợp, chúng tôi có thể mở tệp ở các chế độ sau:

  • Read-Only Mode- Nếu bạn định chỉ đọc một tệp hiện có và bạn không muốn ghi thêm bất kỳ nội dung nào vào tệp, thì bạn sẽ mở tệp ở chế độ chỉ đọc. Hầu như tất cả các ngôn ngữ lập trình đều cung cấp cú pháp để mở tệp ở chế độ chỉ đọc.

  • Write-Only Mode- Nếu bạn định ghi vào một tệp hiện có hoặc tệp mới được tạo nhưng bạn không muốn đọc bất kỳ nội dung đã viết nào từ tệp đó, thì bạn sẽ mở tệp ở chế độ chỉ ghi. Tất cả các ngôn ngữ lập trình đều cung cấp cú pháp để mở tệp ở chế độ chỉ ghi.

  • Read & Write Mode - Nếu bạn định đọc cũng như ghi vào cùng một tệp, thì bạn sẽ mở tệp ở chế độ đọc và ghi.

  • Append Mode- Khi bạn mở một tệp để ghi, nó cho phép bạn bắt đầu ghi từ đầu tệp; tuy nhiên nó sẽ ghi đè lên nội dung hiện có, nếu có. Giả sử chúng ta không muốn ghi đè bất kỳ nội dung hiện có nào, thì chúng ta mở tệp ở chế độ nối thêm. Chế độ nối cuối cùng là một chế độ ghi, cho phép nội dung được thêm vào ở cuối tệp. Hầu như tất cả các ngôn ngữ lập trình đều cung cấp cú pháp để mở tệp ở chế độ nối thêm.

Trong các phần tiếp theo, chúng ta sẽ học cách mở một tệp mới hoàn toàn, cách ghi vào tệp đó và sau đó, cách đọc và nối thêm nội dung vào cùng một tệp.

Mở tệp

Bạn có thể dùng fopen()chức năng tạo tệp mới hoặc mở tệp hiện có. Lời gọi này sẽ khởi tạo một đối tượng kiểuFILE, chứa tất cả thông tin cần thiết để kiểm soát luồng. Đây là nguyên mẫu, tức là chữ ký của lệnh gọi hàm này -

FILE *fopen( const char * filename, const char * mode );

Đây, filename là chuỗi ký tự, bạn sẽ sử dụng để đặt tên tệp của mình và truy cập mode có thể có một trong các giá trị sau:

Sr.No Chế độ & Mô tả
1

r

Mở tệp văn bản hiện có cho mục đích đọc.

2

w

Mở tệp văn bản để viết. Nếu nó không tồn tại, thì một tệp mới sẽ được tạo. Tại đây, chương trình của bạn sẽ bắt đầu ghi nội dung từ đầu tệp.

3

a

Mở tệp văn bản để viết ở chế độ thêm. Nếu nó không tồn tại, thì một tệp mới sẽ được tạo. Tại đây, chương trình của bạn sẽ bắt đầu thêm nội dung vào nội dung tệp hiện có.

4

r+

Mở tệp văn bản để đọc và ghi cả hai.

5

w+

Mở tệp văn bản để đọc và viết. Đầu tiên, nó cắt ngắn tệp thành độ dài bằng 0, nếu nó tồn tại; ngược lại tạo tệp nếu nó không tồn tại.

6

a+

Mở tệp văn bản để đọc và viết. Nó tạo ra một tệp, nếu nó không tồn tại. Việc đọc sẽ bắt đầu lại từ đầu, nhưng phần viết chỉ có thể được thêm vào.

Đóng tệp

Để đóng một tệp, hãy sử dụng fclose( )chức năng. Nguyên mẫu của chức năng này là -

int fclose( FILE *fp );

Các fclose( ) hàm trả về số 0 khi thành công hoặc EOF, ký tự đặc biệt, nếu có lỗi khi đóng tệp. Hàm này thực sự đưa mọi dữ liệu vẫn đang chờ xử lý trong bộ đệm vào tệp, đóng tệp và giải phóng bất kỳ bộ nhớ nào được sử dụng cho tệp. EOF là một hằng số được xác định trong tệp tiêu đềstdio.h.

Có nhiều chức năng khác nhau được cung cấp bởi thư viện chuẩn C để đọc và ghi một tệp tin theo từng ký tự hoặc dưới dạng một chuỗi có độ dài cố định. Hãy để chúng tôi xem một vài trong số họ trong phần tiếp theo.

Viết tệp

Dưới đây là hàm đơn giản nhất để ghi các ký tự riêng lẻ vào một luồng:

int fputc( int c, FILE *fp );

Chức năng fputc() ghi giá trị ký tự của đối số c vào luồng đầu ra được tham chiếu bởi fp. Nó trả về ký tự đã viết được viết trên thành công, nếu khôngEOFnếu có lỗi. Bạn có thể sử dụng các hàm sau để ghi một chuỗi bị kết thúc bằng null vào một luồng:

int fputs( const char *s, FILE *fp );

Chức năng fputs() viết chuỗi svào tệp được tham chiếu bởi fp. Nó trả về một giá trị không âm khi thành công, nếu khôngEOFđược trả lại trong trường hợp có bất kỳ lỗi nào. Bạn cũng có thể sử dụng chức năngint fprintf(FILE *fp,const char *format, ...)để ghi một chuỗi vào một tệp. Hãy thử ví dụ sau:

#include <stdio.h>

int main() {
   FILE *fp;

   fp = fopen("/tmp/test.txt", "w+");
   fprintf(fp, "This is testing for fprintf...\n");
   fputs("This is testing for fputs...\n", fp);
   fclose(fp);
}

Khi đoạn mã trên được biên dịch và thực thi, nó sẽ tạo ra một tệp mới test.txt trong /tmpthư mục và viết hai dòng bằng cách sử dụng hai chức năng khác nhau. Hãy để chúng tôi đọc tập tin này trong phần tiếp theo.

Đọc tệp

Dưới đây là hàm đơn giản nhất để đọc từng ký tự trong tệp văn bản -

int fgetc( FILE * fp );

Các fgetc() hàm đọc một ký tự từ tệp đầu vào được tham chiếu bởi fp. Giá trị trả về là ký tự được đọc; hoặc trong trường hợp có bất kỳ lỗi nào, nó sẽ trả vềEOF. Hàm sau cho phép bạn đọc một chuỗi từ một luồng:

char *fgets( char *buf, int n, FILE *fp );

Chức năng fgets() đọc tối đa n - 1 ký tự từ luồng đầu vào được tham chiếu bởi fp. Nó sao chép chuỗi đã đọc vào bộ đệmbuf, nối một null ký tự để kết thúc chuỗi.

Nếu hàm này gặp một ký tự dòng mới '\ n' hoặc EOF trước khi chúng đọc số ký tự tối đa, thì hàm này chỉ trả về các ký tự được đọc cho đến thời điểm đó, bao gồm cả ký tự dòng mới. Bạn cũng có thể dùngint fscanf(FILE *fp, const char *format, ...) để đọc các chuỗi từ một tệp, nhưng nó sẽ ngừng đọc sau khi gặp ký tự khoảng trắng đầu tiên.

#include <stdio.h>

main() {

   FILE *fp;
   char buff[255];

   fp = fopen("/tmp/test.txt", "r");
   fscanf(fp, "%s", buff);
   printf("1 : %s\n", buff );

   fgets(buff, 255, (FILE*)fp);
   printf("2: %s\n", buff );
   
   fgets(buff, 255, (FILE*)fp);
   printf("3: %s\n", buff );
   fclose(fp);
}

Khi đoạn mã trên được biên dịch và thực thi, nó sẽ đọc tệp được tạo trong phần trước và tạo ra kết quả sau:

1 : This
2 : is testing for fprintf...

3 : This is testing for fputs...

Hãy phân tích những gì đã xảy ra ở đây. Đầu tiênfscanf() phương pháp đọc Thisbởi vì sau đó, nó gặp phải một khoảng trống. Cuộc gọi thứ hai dành chofgets(), sẽ đọc dòng còn lại cho đến khi nó chạm vào cuối dòng. Cuối cùng, cuộc gọi cuối cùngfgets() đọc hết dòng thứ hai.

Tệp I / O trong Java

Java cung cấp bộ hàm phong phú hơn để xử lý Tệp I / O. Để biết thêm về chủ đề này, chúng tôi khuyên bạn nên xem Hướng dẫn Java của chúng tôi.

Ở đây, chúng ta sẽ thấy một chương trình Java đơn giản, tương đương với chương trình C đã giải thích ở trên. Chương trình này sẽ mở một tệp văn bản, viết một vài dòng văn bản vào đó và đóng tệp. Cuối cùng, cùng một tệp được mở và sau đó đọc từ một tệp đã được tạo. Bạn có thể thử thực hiện chương trình sau để xem kết quả:

import java.io.*;

public class DemoJava {
   public static void main(String []args) throws IOException {
      File file = new File("/tmp/java.txt");
      
      // Create a File
      file.createNewFile();
      
      //  Creates a FileWriter Object using file object
      FileWriter writer = new FileWriter(file); 
      
      // Writes the content to the file
      writer.write("This is testing for Java write...\n");
      writer.write("This is second line...\n");
      
      // Flush the memory and close the file
      writer.flush();
      writer.close();
      
      // Creates a FileReader Object
      FileReader reader = new FileReader(file); 
      char [] a = new char[100];
      
      // Read file content in the array
      reader.read(a);
      System.out.println( a );
      
      // Close the file
      reader.close();
   }
}

Khi chương trình trên được thực thi, nó tạo ra kết quả sau:

This is testing for Java write...
This is second line...

Tệp I / O bằng Python

Chương trình sau đây cho thấy chức năng tương tự để mở một tệp mới, ghi một số nội dung vào đó và cuối cùng, đọc cùng một tệp -

# Create a new file
fo = open("/tmp/python.txt", "w")

# Writes the content to the file
fo.write( "This is testing for Python write...\n");
fo.write( "This is second line...\n");

# Close the file
fo.close()

# Open existing file
fo = open("/tmp/python.txt", "r")

# Read file content in a variable
str = fo.read(100);
print str

# Close opened file
fo.close()

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

This is testing for Python write...
This is second line...

Chúng tôi đánh giá cao sự kiên nhẫn của bạn vì đã xem qua hướng dẫn này. Chúng tôi đã cố gắng giữ cho nó ngắn gọn nhưng vì chủ đề này bao gồm một số chủ đề, chúng tôi đã đưa ra một vài ví dụ chi tiết.

Nếu bạn chưa hiểu bất kỳ khái niệm nào, chúng tôi khuyên bạn nên xem qua hướng dẫn một lần nữa và khi bạn đã cảm thấy thoải mái với các khái niệm được giải thích trong hướng dẫn này, bạn có thể tiếp tục thêm.

Có rất nhiều môn học khác liên quan đến lập trình máy tính mà chúng tôi không cố ý đề cập để tránh bất kỳ sự nhầm lẫn nào, nhưng chúng tôi chắc chắn rằng những khái niệm đó sẽ không khó hiểu đối với bạn miễn là bạn làm cho mình thoải mái với các khái niệm được giải thích trong hướng dẫn này.

Tại điểm hướng dẫn, chúng tôi đã nỗ lực rất nhiều để chuẩn bị các hướng dẫn toàn diện về ngôn ngữ lập trình C, Java và Python và chúng tôi thực sự khuyên bạn nên bắt đầu một trong hai ngôn ngữ đó sau khi hoàn thành hướng dẫn này.

Vui lòng chia sẻ với chúng tôi quan điểm của bạn về hướng dẫn này, đề cập đến tên hướng dẫn trong dòng chủ đề tại [email protected]. Nếu bạn có bất kỳ đề xuất nào để cải thiện hướng dẫn này hơn nữa, thì chúng tôi chắc chắn muốn nghe ý kiến ​​của bạn.