C# hoặc javascript reddit

Có sẵn một số IDE và miễn phí để biên dịch và thực thi các chương trình C. You can select Dev-C++, Code. Khối, hoặc Turbo C. Tuy nhiên, lựa chọn phổ biến nhất và hay được sử dụng nhất là Dev-C++ và các chương trình C trong loạt bài này cũng được biên dịch và thực thi trong Dev-C++

Bạn truy cập theo liên kết sau để tải xuống Dev-C++. Tải Dev-C++. Trên trang này cũng bao gồm cả Code. khối. Sau khi bạn tải xong, để cài đặt IDE này, bạn chỉ cần vào Google và gõ "cài đặt dev-c++" là có rất nhiều video hướng dẫn chi tiết, cho nên mình không cần trình bày thêm nữa.

Sau khi cài đặt xong, để biên dịch và thực thi một chương trình C, bạn. [a] vào File -> New -> Project -> Console Application -> C project, sau đó nhập tên vào hoặc [b] File -> New -> Source File. Cuối cùng, sao chép và dán chương trình C vào tệp bạn vừa tạo. Để biên dịch và thực thi, chọn Execute -> Compile & Run

Settings to run on Command Prompt

Nếu bạn muốn cài đặt để biên dịch và chạy trên Command Prompt, thì bạn nên đọc phần sau đây

Nếu bạn đang muốn cài đặt chương trình C, bạn phải sử dụng 2 phần mềm trên máy tính của mình. [a] Chương trình soạn thảo văn bản - Text Editor và [b] Bộ biên dịch C

soạn thảo văn bản

Được sử dụng để soạn thảo các chương trình. Ví dụ về một vài trình soạn thảo như Window Notepad, Notepad++, vim hay vi…

Tên và các phiên bản của trình soạn thảo có thể thay đổi theo các điều hành hệ thống. Ví dụ, Notepad được sử dụng trên Windows, hoặc vim hay vi được sử dụng trên Linux hoặc UNIX

Các tệp bạn tạo trong trình chỉnh sửa được gọi là tệp nguồn [file source] và chứa các mã chương trình. Các tập tin trong chương trình C thường được đặt tên với phần mở rộng ". c"

Trước khi bắt đầu chương trình của bạn, hãy chắc chắn rằng bạn có một trình soạn thảo trên máy tính và bạn có đủ kinh nghiệm để viết các chương trình trên máy tính, lưu trữ trong tệp và thực hiện nó

C compile C

Mã nguồn được viết trong tệp nguồn dưới dạng có thể đọc được. Nó sẽ được biên dịch thành mã máy, để CPU có thể thực hiện các chương trình này dựa trên các lệnh được viết

Bộ biên dịch được sử dụng để biên dịch mã nguồn [mã nguồn] của bạn đến chương trình có thể thực hiện được. Tôi giả sử bạn có kiến ​​thức cơ bản về một bộ biên dịch ngôn ngữ lập trình

Bộ biên dịch thông dụng tốt nhất là bộ biên dịch GNU C/C++, mặt khác bạn có thể có các bộ biên dịch khác như HP hoặc Solaris với Hệ điều hành tương ứng

Dưới đây là phần hướng dẫn giúp bạn cách cài đặt bộ biên dịch GNU C/C++ trên các hệ điều hành khác nhau. Tôi đang đề cập đến C/C++ bởi vì bộ biên dịch GNU gcc hoạt động cho cả ngôn ngữ C và C++

Cài đặt trên môi trường UNIX/Linux

Nếu bạn đang sử dụng Linux hoặc UNIX, bạn có thể kiểm tra bộ GCC đã được cài đặt trên môi trường của bạn không bằng lệnh sau đây

$ gcc -v

Nếu bạn đã cài đặt GNU trên máy tính của mình, thì nó sẽ phản hồi một thông báo sau

Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr .......
Thread model: posix
gcc version 4.1.2 20080704 [Red Hat 4.1.2-46]

Nếu bộ GCC chưa được cài đặt, bạn có thể cài đặt nó theo hướng dẫn trên đường liên kết dưới đây. http. // gcc. gnu. tổ chức/cài đặt/

Bài hướng dẫn này được viết dựa trên Linux và tất cả các ví dụ dược biên dịch trên Cent OS của hệ thống Linux

Cài đặt trên môi trường Mac OS

Nếu bạn sử dụng hệ điều hành Mac OS X, cách đơn giản nhất để có GCC là tải xuống môi trường phát triển Xcode, bạn có thể sử dụng bộ biên dịch GNU cho C/C++

Xcode có sẵn bên dưới liên kết sau. nhà phát triển. táo. com/công nghệ/công cụ/

Cài đặt trên Windows

Để cài đặt GCC trên Windows, bạn phải cài đặt MinGW. Để cài đặt MinGW, bạn truy cập vào www. mingw. org, and theo hướng dẫn trên trang tải xuống này. Tải xuống phiên bản mới nhất cho chương trình MinGW, bên dưới tên MinGW-. người cũ

Khi cài đặt MinWG, ít nhất bạn phải cài đặt gcc-core, gcc-g++, binutils và MinGW runtime, nhưng bạn có thể cài đặt nhiều hơn thế

Thêm thư mục con bin tại nơi cài đặt MinGW vào biến môi trường PATH của bạn, bạn có thể sử dụng trực tiếp các công cụ dưới dạng dòng lệnh một cách dễ dàng

Khi quá trình cài đặt hoàn tất, bạn có thể chạy gcc, g++, ar, ranlib, dlltool và các công cụ GNU khác trên dòng lệnh Windows

Khi bắt đầu học lập trình, có rất nhiều ngôn ngữ để lựa chọn. C/C++ là một ngôn ngữ lâu đời, có tốc độ nhanh, các kiểu dữ liệu rõ ràng. Nếu như làm chủ ngôn ngữ nền tảng như C/C++ thì sau này việc học các ngôn ngữ khác trở nên dễ dàng hơn, điều đó rất phù hợp với người mới bắt đầu. Học lập trình C/C++ có rất nhiều ứng dụng và mở ra cho bạn cực kỳ đa dạng cơ hội để làm việc cho các công ty/tập đoàn lớn

Theo mình thấy, với người mới học thì C hay C++ không có quá nhiều sự khác biệt trong cú pháp, C++ còn có thể sử dụng để thiết lập hướng đối tượng - Phần này sẽ không được giới thiệu vì trong khuôn khổ bài viết là . Hiện tại Codelearn đã có khóa học C++ cho người mới bắt đầu dành riêng cho các bạn

Trong bài viết này mình sẽ đưa ra các hướng dẫn để làm quen với C++ cơ bản nhé

Trên thị trường có rất nhiều IDE và Text Editor dành cho lập trình C/C++. Với các bạn mới bắt đầu, mình khuyến khích các bạn nên sử dụng Dev C++ làm ý tưởng chính để học. Bạn chỉ cần tải về và cài đặt theo nhiều hướng dẫn trên internet, khi muốn code 1 chương trình thì chỉ cần tạo 1 file mới và code chạy bình thường, không cần tạo project gì cả, biên dịch cũng nhanh. Ngoài ra, các bạn cũng có thể sử dụng codeblock, visual studio code,

Hướng dẫn học C++

1. Các kiểu dữ liệu trong C++, khung chương trình và cách khai báo biến

Một chương trình C++ cơ bản thường được bắt đầu bởi dòng bao gồm khai báo thư viện, sau đó là hàm

#include 
using namespace std;

int main[] {

	int a = 10; // Khai báo biến a kiểu int có giá trị nguyên là 10

	float b = 1.5; // Khai báo biến b kiểu float có giá trị thực là 1.5 

	char c; // khai báo biến c có kiểu dữ liệu là ký tự char
	c = 'a'; // gán giá trị cho biến c là ký tự 'a'

	string d; // khai báo biến d có kiểu dữ liệu là xâu string
	d = "ok" // gán giá trị cho biến d là xâu "ok"
	
	return 0;
}
3. Tất cả mọi thứ của chương trình đều sẽ chạy dọc theo hàm
#include 
using namespace std;

int main[] {

	int a = 10; // Khai báo biến a kiểu int có giá trị nguyên là 10

	float b = 1.5; // Khai báo biến b kiểu float có giá trị thực là 1.5 

	char c; // khai báo biến c có kiểu dữ liệu là ký tự char
	c = 'a'; // gán giá trị cho biến c là ký tự 'a'

	string d; // khai báo biến d có kiểu dữ liệu là xâu string
	d = "ok" // gán giá trị cho biến d là xâu "ok"
	
	return 0;
}
3 từ trên xuống dưới, có nghĩa là nếu bạn viết một hàm bên ngoài
#include 
using namespace std;

int main[] {

	int a = 10; // Khai báo biến a kiểu int có giá trị nguyên là 10

	float b = 1.5; // Khai báo biến b kiểu float có giá trị thực là 1.5 

	char c; // khai báo biến c có kiểu dữ liệu là ký tự char
	c = 'a'; // gán giá trị cho biến c là ký tự 'a'

	string d; // khai báo biến d có kiểu dữ liệu là xâu string
	d = "ok" // gán giá trị cho biến d là xâu "ok"
	
	return 0;
}
3 và trong
#include 
using namespace std;

int main[] {

	int a = 10; // Khai báo biến a kiểu int có giá trị nguyên là 10

	float b = 1.5; // Khai báo biến b kiểu float có giá trị thực là 1.5 

	char c; // khai báo biến c có kiểu dữ liệu là ký tự char
	c = 'a'; // gán giá trị cho biến c là ký tự 'a'

	string d; // khai báo biến d có kiểu dữ liệu là xâu string
	d = "ok" // gán giá trị cho biến d là xâu "ok"
	
	return 0;
}
3 không gọi đến hàm đấy thì có nghĩa là hàm đấy sẽ không chạy trong chương trình, một . Dưới đây là bộ khung cơ bản của chương trình
#include 
using namespace std;

int main[] {

	int a = 10; // Khai báo biến a kiểu int có giá trị nguyên là 10

	float b = 1.5; // Khai báo biến b kiểu float có giá trị thực là 1.5 

	char c; // khai báo biến c có kiểu dữ liệu là ký tự char
	c = 'a'; // gán giá trị cho biến c là ký tự 'a'

	string d; // khai báo biến d có kiểu dữ liệu là xâu string
	d = "ok" // gán giá trị cho biến d là xâu "ok"
	
	return 0;
}
8 bằng C++

________số 8

Có rất nhiều kiểu dữ liệu trong C++, đối với những bạn mới bắt đầu và để làm các bài tập cơ bản thì nên tìm hiểu trước về

#include 
using namespace std;

int main[] {

	int a = 10; // Khai báo biến a kiểu int có giá trị nguyên là 10

	float b = 1.5; // Khai báo biến b kiểu float có giá trị thực là 1.5 

	char c; // khai báo biến c có kiểu dữ liệu là ký tự char
	c = 'a'; // gán giá trị cho biến c là ký tự 'a'

	string d; // khai báo biến d có kiểu dữ liệu là xâu string
	d = "ok" // gán giá trị cho biến d là xâu "ok"
	
	return 0;
}
9,
Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr .......
Thread model: posix
gcc version 4.1.2 20080704 [Red Hat 4.1.2-46]
00,
Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr .......
Thread model: posix
gcc version 4.1.2 20080704 [Red Hat 4.1.2-46]
01,
Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr .......
Thread model: posix
gcc version 4.1.2 20080704 [Red Hat 4.1.2-46]
02,
Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr .......
Thread model: posix
gcc version 4.1.2 20080704 [Red Hat 4.1.2-46]
03,
Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr .......
Thread model: posix
gcc version 4.1.2 20080704 [Red Hat 4.1.2-46]
04,
Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr .......
Thread model: posix
gcc version 4.1.2 20080704 [Red Hat 4.1.2-46]
05,
Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr .......
Thread model: posix
gcc version 4.1.2 20080704 [Red Hat 4.1.2-46]
06, về cách biểu diễn . Sau khi đã làm các bài tập và hiểu rõ rồi thì có thể tìm hiểu thêm các kiểu dữ liệu khác. Dưới đây là một số ví dụ về cách khai báo biến trong C++

#include 
using namespace std;

int main[] {

	int a = 10; // Khai báo biến a kiểu int có giá trị nguyên là 10

	float b = 1.5; // Khai báo biến b kiểu float có giá trị thực là 1.5 

	char c; // khai báo biến c có kiểu dữ liệu là ký tự char
	c = 'a'; // gán giá trị cho biến c là ký tự 'a'

	string d; // khai báo biến d có kiểu dữ liệu là xâu string
	d = "ok" // gán giá trị cho biến d là xâu "ok"
	
	return 0;
}

Dưới đây là một số kiểu dữ liệu và kho lưu trữ của các kiểu dữ liệu đó

2. Các câu lệnh nhập xuất và cấu trúc các câu lệnh điều khiển

a. Nhập xuất câu lệnh

Trong C++, một cách đơn giản để nhập là sử dụng câu lệnh

Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr .......
Thread model: posix
gcc version 4.1.2 20080704 [Red Hat 4.1.2-46]
07, và xuất sử dụng câu lệnh
Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr .......
Thread model: posix
gcc version 4.1.2 20080704 [Red Hat 4.1.2-46]
08

Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr .......
Thread model: posix
gcc version 4.1.2 20080704 [Red Hat 4.1.2-46]
0

b. Câu lệnh rẽ nhánh

Cách 1. Sử dụng

Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr .......
Thread model: posix
gcc version 4.1.2 20080704 [Red Hat 4.1.2-46]
09

#include 
using namespace std;

int main[] {

	int a = 10; // Khai báo biến a kiểu int có giá trị nguyên là 10

	float b = 1.5; // Khai báo biến b kiểu float có giá trị thực là 1.5 

	char c; // khai báo biến c có kiểu dữ liệu là ký tự char
	c = 'a'; // gán giá trị cho biến c là ký tự 'a'

	string d; // khai báo biến d có kiểu dữ liệu là xâu string
	d = "ok" // gán giá trị cho biến d là xâu "ok"
	
	return 0;
}
2

cách 2. Sử dụng

#include 
using namespace std;

int main[] {

	int a = 10; // Khai báo biến a kiểu int có giá trị nguyên là 10

	float b = 1.5; // Khai báo biến b kiểu float có giá trị thực là 1.5 

	char c; // khai báo biến c có kiểu dữ liệu là ký tự char
	c = 'a'; // gán giá trị cho biến c là ký tự 'a'

	string d; // khai báo biến d có kiểu dữ liệu là xâu string
	d = "ok" // gán giá trị cho biến d là xâu "ok"
	
	return 0;
}
20

#include 
using namespace std;

int main[] {

	int a = 10; // Khai báo biến a kiểu int có giá trị nguyên là 10

	float b = 1.5; // Khai báo biến b kiểu float có giá trị thực là 1.5 

	char c; // khai báo biến c có kiểu dữ liệu là ký tự char
	c = 'a'; // gán giá trị cho biến c là ký tự 'a'

	string d; // khai báo biến d có kiểu dữ liệu là xâu string
	d = "ok" // gán giá trị cho biến d là xâu "ok"
	
	return 0;
}
4

c. Loop

Vòng lặp

#include 
using namespace std;

int main[] {

	int a = 10; // Khai báo biến a kiểu int có giá trị nguyên là 10

	float b = 1.5; // Khai báo biến b kiểu float có giá trị thực là 1.5 

	char c; // khai báo biến c có kiểu dữ liệu là ký tự char
	c = 'a'; // gán giá trị cho biến c là ký tự 'a'

	string d; // khai báo biến d có kiểu dữ liệu là xâu string
	d = "ok" // gán giá trị cho biến d là xâu "ok"
	
	return 0;
}
21

#include 
using namespace std;

int main[] {

	int a = 10; // Khai báo biến a kiểu int có giá trị nguyên là 10

	float b = 1.5; // Khai báo biến b kiểu float có giá trị thực là 1.5 

	char c; // khai báo biến c có kiểu dữ liệu là ký tự char
	c = 'a'; // gán giá trị cho biến c là ký tự 'a'

	string d; // khai báo biến d có kiểu dữ liệu là xâu string
	d = "ok" // gán giá trị cho biến d là xâu "ok"
	
	return 0;
}
6

Vòng lặp

#include 
using namespace std;

int main[] {

	int a = 10; // Khai báo biến a kiểu int có giá trị nguyên là 10

	float b = 1.5; // Khai báo biến b kiểu float có giá trị thực là 1.5 

	char c; // khai báo biến c có kiểu dữ liệu là ký tự char
	c = 'a'; // gán giá trị cho biến c là ký tự 'a'

	string d; // khai báo biến d có kiểu dữ liệu là xâu string
	d = "ok" // gán giá trị cho biến d là xâu "ok"
	
	return 0;
}
22

#include 
using namespace std;

int main[] {

	int a = 10; // Khai báo biến a kiểu int có giá trị nguyên là 10

	float b = 1.5; // Khai báo biến b kiểu float có giá trị thực là 1.5 

	char c; // khai báo biến c có kiểu dữ liệu là ký tự char
	c = 'a'; // gán giá trị cho biến c là ký tự 'a'

	string d; // khai báo biến d có kiểu dữ liệu là xâu string
	d = "ok" // gán giá trị cho biến d là xâu "ok"
	
	return 0;
}
8

Vòng lặp do while

#include 
using namespace std;

int main[] {

	int a = 10; // Khai báo biến a kiểu int có giá trị nguyên là 10

	float b = 1.5; // Khai báo biến b kiểu float có giá trị thực là 1.5 

	char c; // khai báo biến c có kiểu dữ liệu là ký tự char
	c = 'a'; // gán giá trị cho biến c là ký tự 'a'

	string d; // khai báo biến d có kiểu dữ liệu là xâu string
	d = "ok" // gán giá trị cho biến d là xâu "ok"
	
	return 0;
}
9

Bình thường thì sẽ sử dụng chủ yếu vòng lặp

#include 
using namespace std;

int main[] {

	int a = 10; // Khai báo biến a kiểu int có giá trị nguyên là 10

	float b = 1.5; // Khai báo biến b kiểu float có giá trị thực là 1.5 

	char c; // khai báo biến c có kiểu dữ liệu là ký tự char
	c = 'a'; // gán giá trị cho biến c là ký tự 'a'

	string d; // khai báo biến d có kiểu dữ liệu là xâu string
	d = "ok" // gán giá trị cho biến d là xâu "ok"
	
	return 0;
}
21 và
#include 
using namespace std;

int main[] {

	int a = 10; // Khai báo biến a kiểu int có giá trị nguyên là 10

	float b = 1.5; // Khai báo biến b kiểu float có giá trị thực là 1.5 

	char c; // khai báo biến c có kiểu dữ liệu là ký tự char
	c = 'a'; // gán giá trị cho biến c là ký tự 'a'

	string d; // khai báo biến d có kiểu dữ liệu là xâu string
	d = "ok" // gán giá trị cho biến d là xâu "ok"
	
	return 0;
}
22 thôi. Tác dụng chính của vòng lặp cho là lặp theo một lượng mà mình cần, còn vòng lặp trong khi thì sẽ lặp theo một điều kiện nhất định, do đó sẽ linh hoạt hơn vòng lặp cho. Tùy mục đích sử dụng mà lựa chọn vòng phù hợp

3. Mảng

Mảng 1 chiều

#include 
using namespace std;

int main[] {

	int a = 10; // Khai báo biến a kiểu int có giá trị nguyên là 10

	float b = 1.5; // Khai báo biến b kiểu float có giá trị thực là 1.5 

	char c; // khai báo biến c có kiểu dữ liệu là ký tự char
	c = 'a'; // gán giá trị cho biến c là ký tự 'a'

	string d; // khai báo biến d có kiểu dữ liệu là xâu string
	d = "ok" // gán giá trị cho biến d là xâu "ok"
	
	return 0;
}
2

Mảng 2 chiều

#include 
using namespace std;

int main[] {

	int a = 10; // Khai báo biến a kiểu int có giá trị nguyên là 10

	float b = 1.5; // Khai báo biến b kiểu float có giá trị thực là 1.5 

	char c; // khai báo biến c có kiểu dữ liệu là ký tự char
	c = 'a'; // gán giá trị cho biến c là ký tự 'a'

	string d; // khai báo biến d có kiểu dữ liệu là xâu string
	d = "ok" // gán giá trị cho biến d là xâu "ok"
	
	return 0;
}
3

Cũng tương tự như mảng 1 chiều và 2 chiều, các mảng nhiều chiều hơn đều có thể sử dụng theo tùy chọn mục đích của bài toán mà các bạn cần giải thích. Lưu ý là khi cấp phát cho một mảng có độ lớn là n thì chỉ được lưu các giá trị vào các vị trí từ 0 đến n-1

4. Lập trình hàm

Khi viết chương trình, nếu như tất cả mọi thứ đều được viết tuần tự trong hàm chính thì rất khó để theo dõi. Nếu như một số hàm và phần công việc được sử dụng nhiều lần thì hãy viết một hàm con ra bên ngoài là một điều hết sức cần thiết, giúp mã của bạn trở nên gọn gàng và dễ theo dõi hơn như mã hơn. Tham khảo đoạn mã sau để tính tổng hàm

#include 
using namespace std;

int main[] {

	int a = 10; // Khai báo biến a kiểu int có giá trị nguyên là 10

	float b = 1.5; // Khai báo biến b kiểu float có giá trị thực là 1.5 

	char c; // khai báo biến c có kiểu dữ liệu là ký tự char
	c = 'a'; // gán giá trị cho biến c là ký tự 'a'

	string d; // khai báo biến d có kiểu dữ liệu là xâu string
	d = "ok" // gán giá trị cho biến d là xâu "ok"
	
	return 0;
}
0

5. Xử lý chuỗi trong C++

Trong C++, xâu biểu diễn theo kiểu dữ liệu là

Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr .......
Thread model: posix
gcc version 4.1.2 20080704 [Red Hat 4.1.2-46]
06, mỗi xâu là một xâu gồm các ký tự [được biểu diễn bằng kiểu char] liên tiếp. Khác với xâu trong C là một mảng các ký tự và có kết quả mảng ký tự NULL. Các phép xử lý trong chuỗi khác so với các phép xử lý logic. Việc sử dụng kiểu chuỗi trong C++ tạo cho công việc xử lý chuỗi trở nên dễ dàng hơn so với kiểu mảng các ký tự char trong C

Nếu các bạn muốn nhập một xâu thì có 2 cách như sau

#include 
using namespace std;

int main[] {

	int a = 10; // Khai báo biến a kiểu int có giá trị nguyên là 10

	float b = 1.5; // Khai báo biến b kiểu float có giá trị thực là 1.5 

	char c; // khai báo biến c có kiểu dữ liệu là ký tự char
	c = 'a'; // gán giá trị cho biến c là ký tự 'a'

	string d; // khai báo biến d có kiểu dữ liệu là xâu string
	d = "ok" // gán giá trị cho biến d là xâu "ok"
	
	return 0;
}
1

Ngoài ra, bạn có thể tham khảo một số hàm xử lý chuỗi sau

#include 
using namespace std;

int main[] {

	int a = 10; // Khai báo biến a kiểu int có giá trị nguyên là 10

	float b = 1.5; // Khai báo biến b kiểu float có giá trị thực là 1.5 

	char c; // khai báo biến c có kiểu dữ liệu là ký tự char
	c = 'a'; // gán giá trị cho biến c là ký tự 'a'

	string d; // khai báo biến d có kiểu dữ liệu là xâu string
	d = "ok" // gán giá trị cho biến d là xâu "ok"
	
	return 0;
}
2

pause

Qua bài viết, mình đã giới thiệu các kiến ​​thức cơ bản cần biết khi mới bắt đầu học lập trình C++. Để hiểu rõ hơn về C++, mọi người có thể tìm kiếm các bài tập và luyện tập thêm trên https. // codelearning. io/training vì một khi đã được xác định theo con đường lập trình viên thì luôn phải học hỏi không liên tục. Làm nhiều bài tập thì các bạn sẽ hiểu rõ ngôn ngữ hơn. Hy vọng bài viết này hữu ích với các bạn

Chủ Đề