Comments trong C++

Các chú thích chương trình là các câu lệnh giải thích mà bạn có thể đưa vào trong mã C ++. Những nhận xét này giúp mọi người đọc mã nguồn. Tất cả các ngôn ngữ lập trình đều cho phép một số dạng nhận xét.

C ++ hỗ trợ nhận xét một dòng và nhiều dòng. Tất cả các ký tự có sẵn bên trong bất kỳ bình luận nào đều bị bỏ qua bởi trình biên dịch C ++.

Các chú thích C ++ bắt đầu bằng / * và kết thúc bằng * /. Ví dụ –

/* This is a comment */

/* C++ comments can also
   * span multiple lines
*/
Nhận xét cũng có thể bắt đầu bằng //, mở rộng đến cuối dòng. Ví dụ –
#include 
using namespace std;

main() {
   cout << "Hello World"; // prints Hello World
   
   return 0;
}
 

Khi mã trên được biên dịch, nó sẽ bỏ qua // bản in Hello World và bản thực thi cuối cùng sẽ tạo ra kết quả sau:

Hello World
Trong một / * và * / chú thích, // các ký tự không có ý nghĩa đặc biệt. Trong // nhận xét, / * và * / không có ý nghĩa đặc biệt. Vì vậy, bạn có thể “làm tổ” một loại bình luận trong loại khác. Ví dụ –
/* Comment out printing of Hello World:

cout << "Hello World"; // prints Hello World

*/

Một số lưu ý khi viết bài trên YeuLapTrinh

1 – Sử dụng Latex

Website có hỗ trợ công cụ viết công thức toán học Latex. Mình xin được giới hiệu cách sử dụng ở dưới đây

  • Bài viết nào dùng đến Latex thì bắt buộc phải thêm một dòng ở trên cùng
    • Viết cùng trên một dòng thì dùng: $...$
    • Viết công thức trên cả một dòng thì dùng: $$...$$

Thí dụ:

[mathjax]

Bài viết này sử dụng Latex. Test...

$a^2 + b_i^3 \ge c_{i+1}^5 + d_{x+1}^{y+1}$

2 – Tránh lỗi khi chèn code

Hầu hết các bài viết các bạn đều chèn code vào, nhưng nhiều bạn chèn code vẫn chưa đúng cách, gây lỗi. Nên mình xin được hướng dẫn cách chèn code và chú ý khi chèn code để không bị lỗi.

viet-bai-yeulaptrinh

Tab “Trực quan” và Tab “Văn bản”

Khi soạn thảo, bạn có 2 tab là “Trực quan”” và “Văn bản”.

  • Tab “Trực quan” là soạn thảo văn bản tương tự như Word
  • Tab “Văn bản” là chỉnh sửa văn bản dạng HTML. Đây là tab mà bạn chèn code

Lỗi khi soạn thảo các bạn cần chú ý ở đây là:

  • Không viết chèn code ở tab “Trực quan”, phải chèn ở trong Tab “Văn bản”
    • Bươc 1: Mở tab “Văn bản”
    • Bước 2: Chèn đoạn HTML với mẫu: <pre lang=”ten_ngon_ngu_lap_trinh”>Viết code ở đây</pre>
      • ten_ngon_ngu_lap_trinh là c, cpp, python, php, java, … Xem thêm ở GeSHi

Vd:

<pre lang="cpp">
int a, b;
int c,d;
  • Chú ý 2: Sau khi chèn code, việc chuyển đổi giữa 2 tab “Trực quan” và “Văn bản” sẽ gây lỗi. Ví dụ:
    • < thành &lt;
    • > thành &gt;
  • Vì vậy nên soạn thảo trên tab “Trực quan” xong xuôi thì mới chuyển sang tab “Văn bản” để chèn code. Tránh hành động chuyển đổi giữa 2 tab sẽ gây lỗi cho code.

 

 

 

 

 

Cú pháp cơ bản của C ++

Khi chúng ta xem xét một chương trình C ++, nó có thể được định nghĩa như một tập hợp các đối tượng giao tiếp thông qua việc gọi các phương thức của nhau. Bây giờ chúng ta hãy xem xét những gì một lớp, đối tượng, phương thức và các biến tức thời có nghĩa là gì.

  • Đối tượng – Đối tượng có các trạng thái và hành vi. Ví dụ: Chó có trạng thái – màu sắc, tên, giống cũng như hành vi – vẫy, sủa, ăn uống. Một đối tượng là một thể hiện của một lớp.
  • Lớp – Một lớp có thể được định nghĩa là một bản mẫu / kế hoạch chi tiết mô tả các hành vi / trạng thái mà đối tượng của kiểu hỗ trợ của nó.
  • Phương pháp – Một phương pháp cơ bản là một hành vi. Một lớp có thể chứa nhiều phương thức. Đó là trong các phương thức mà các logic được viết, dữ liệu được thao tác và tất cả các hành động được thực thi.
  • Instance Variables – Mỗi đối tượng có tập các biến cá thể duy nhất của nó. Trạng thái của đối tượng được tạo bởi các giá trị được gán cho các biến cá thể này.

Cấu trúc chương trình C ++

Chúng ta hãy nhìn vào một mã đơn giản có thể in chữ Hello World .

<span class="com">#include</span> <span class="str">&lt;iostream&gt;</span>
<span class="kwd">using</span> <span class="kwd">namespace</span><span class="pln"> std</span><span class="pun">;</span>

<span class="com">// main() is where program execution begins.</span>
<span class="kwd">int</span><span class="pln"> main</span><span class="pun">()</span> <span class="pun">{</span><span class="pln">
   cout </span><span class="pun">&lt;&lt;</span> <span class="str">"Hello World"</span><span class="pun">;</span> <span class="com">// prints Hello World</span>
   <span class="kwd">return</span> <span class="lit">0</span><span class="pun">;</span>
<span class="pun">}</span>
Chúng ta hãy xem xét các phần khác nhau của chương trình trên –

  • Ngôn ngữ C ++ định nghĩa một số tiêu đề, chứa các thông tin cần thiết hoặc hữu ích cho chương trình của bạn. Đối với chương trình này, tiêu đề <iostream> là cần thiết.
  • Dòng sử dụng không gian tên std; yêu cầu trình biên dịch sử dụng không gian tên std. Không gian tên là một bổ sung tương đối gần đây cho C ++.
  • Dòng tiếp theo ‘ // main () là nơi bắt đầu thực hiện chương trình. ‘là một chú thích một dòng có sẵn trong C ++. Các chú thích một dòng bắt đầu bằng // và dừng ở cuối dòng.
  • Dòng int main () là hàm chính nơi bắt đầu thực hiện chương trình.
  • Dòng lệnh tiếp theo << “Đây là chương trình C ++ đầu tiên của tôi.”; gây ra thông báo “Đây là chương trình C ++ đầu tiên của tôi” được hiển thị trên màn hình.
  • Dòng tiếp theo trả về 0; chấm dứt hàm main () và làm cho nó trả về giá trị 0 cho quá trình gọi.

Biên dịch và thực thi chương trình C ++

Hãy xem cách lưu tệp, biên dịch và chạy chương trình. Vui lòng làm theo các bước dưới đây –

  • Mở trình soạn thảo văn bản và thêm mã như trên.
  • Lưu tệp dưới dạng: hello.cpp
  • Mở một dấu nhắc lệnh và đi đến thư mục mà bạn đã lưu tệp.
  • Nhập ‘g ++ hello.cpp’ và nhấn enter để biên dịch mã của bạn. Nếu không có lỗi trong mã của bạn, dấu nhắc lệnh sẽ đưa bạn đến dòng tiếp theo và sẽ tạo ra tệp thực thi a.out.
  • Bây giờ, gõ ‘a.out’ để chạy chương trình của bạn.
  • Bạn sẽ có thể nhìn thấy ‘Hello World’ được in trên cửa sổ.
$ g++ hello.cpp
$ ./a.out
Hello World
Đảm bảo rằng g ++ nằm trong đường dẫn của bạn và bạn đang chạy nó trong thư mục chứa tệp hello.cpp.

Dấu chấm phẩy và khối trong C ++

Trong C ++, dấu chấm phẩy là một dấu kết thúc câu lệnh. Tức là, mỗi câu lệnh riêng lẻ phải được kết thúc bằng dấu chấm phẩy. Nó cho biết kết thúc của một thực thể logic.

Ví dụ, sau đây là ba câu lệnh khác nhau –

x = y;
y = y + 1;
add(x, y);
Khối là một tập hợp các câu lệnh được kết nối hợp lý được bao quanh bằng cách mở và đóng niềng răng. Ví dụ –
{
   cout &lt;&lt; "Hello World"; // prints Hello World
   return 0;
}
C ++ không nhận ra sự kết thúc của dòng như một terminator. Vì lý do này, nó không quan trọng nơi bạn đặt một tuyên bố trong một dòng. Ví dụ –
x = y;
y = y + 1;
add(x, y);
giống như
x = y; y = y + 1; add(x, y);

Định danh C ++

Mã định danh C ++ là tên được sử dụng để xác định biến, hàm, lớp, mô-đun hoặc bất kỳ mục nào do người dùng xác định khác. Mã định danh bắt đầu bằng chữ cái A đến Z hoặc từ a đến z hoặc dấu gạch dưới (_) theo sau là 0 hoặc nhiều chữ cái, dấu gạch dưới và chữ số (0 đến 9).

C ++ không cho phép các ký tự dấu câu như @, $ và% trong số nhận dạng. C ++ là một ngôn ngữ lập trình phân biệt chữ hoa chữ thường. Do đó, Nhân lựcvà nhân lực là hai định danh khác nhau trong C ++.

Dưới đây là một số ví dụ về số nhận dạng có thể chấp nhận –

mohd       zara    abc   move_name  a_123
myname50   _temp   j     a23b9      retVal

Từ khóa C ++

Danh sách sau đây hiển thị các từ dành riêng trong C ++. Các từ dành riêng này có thể không được sử dụng làm hằng số hoặc biến hoặc bất kỳ tên định danh nào khác.

asm else new this
auto enum operator throw
bool explicit private true
break export protected try
case extern public typedef
catch false register typeid
char float reinterpret_cast typename
class for return union
const friend short unsigned
const_cast goto signed using
continue if sizeof virtual
default inline static void
delete int static_cast volatile
do long struct wchar_t
double mutable switch while
dynamic_cast namespace template

Một vài ký tự có một biểu diễn thay thế, được gọi là một chuỗi dấu vết. Một dấu vết là một chuỗi ba ký tự đại diện cho một ký tự đơn và chuỗi luôn bắt đầu bằng hai dấu chấm hỏi.Trigraphs

Trigraphs được mở rộng bất cứ nơi nào chúng xuất hiện, bao gồm trong các chuỗi ký tự và các ký tự chữ, trong các chú thích và các chỉ thị tiền xử lý.

Sau đây là các chuỗi dấu vết được sử dụng thường xuyên nhất –

Trigraph Thay thế
?? = #
?? / \
?? ‘ ^
?? ( [
??) ]
??! |
?? < {
??> }
?? – ~

Tất cả các trình biên dịch không hỗ trợ các dấu vết và chúng không được khuyên dùng vì bản chất khó hiểu của chúng.

Khoảng trống trong C ++

Một dòng chỉ chứa khoảng trắng, có thể với một chú thích, được gọi là một 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. Khoảng trắng phân tách một phần của câu lệnh từ một câu lệnh khác và cho phép trình biên dịch xác định vị trí của một phần tử trong câu lệnh, chẳng hạn như int, kết thúc và phần tử tiếp theo bắt đầu.

Tuyên bố 1

int age;
Trong câu lệnh trên, phải có ít nhất một ký tự khoảng trống (thường là một dấu cách) giữa int và age để trình biên dịch có thể phân biệt chúng.

Tuyên bố 2

fruit = apples + oranges;   // Get the total fruit
Trong câu lệnh trên 2, không có ký tự khoảng trắng nào cần thiết giữa trái cây và = hoặc giữa = và táo, mặc dù bạn được tự do đưa vào một số nếu bạn muốn cho mục đích có thể đọc được.

Danh sách liên kết

1. Giới thiệu

Cấu trúc danh sách liên kết

Danh sách liên kết (linked list) được dùng để lưu giữ các phân tử có cùng kiểu giá trị. Bên dưới là ví dụ minh họa sử dụng danh sách liên kết gồm 4 phần tử để lưu giữ dãy A, B, C, D. Phần tử đầu tiên của danh sách liên kết gọi là “head”.
Trong khi các phần tử trong mảng được lưu giữ liên tiếp trong bộ nhớ, thì các phần tử trong danh sách liên kết có thể nằm ở các vị trí khác nhau trong bộ nhớ. Mỗi phần tử (node) trong danh sách liên kết gồm hai thành phần:
• “data”: Lưu giữ dữ liệu.
• “next”: Con trỏ liên kết chỉ đến phần tử tiếp theo trong danh sách liên kết.

2. Duyệt trên danh sách liên kết

Bắt đầu từ phần tử đầu tiên ”head”, di chuyển đến các phần tử khác trên danh sách liên kết dựa vào biến con trỏ liên kết “next” như bên dưới.

3. Truy cập phần tử trong danh sách liên kết

Để truy cập phần tử thứ p trong danh sách liên kết, chúng ta phải di chuyển từ phần tử đầu tiên (head) cho đến phần tử thứ p như bên dưới.

4. Chèn một phần tử vào danh sách liên kết

Để chèn một phần tử có giá trị X vào vị trí p trong danh sách liên kết, chúng ta tiến hành hai bước cơ bản sau:
• Tạo một phần tử mới chứa giá trị X.
• Gán giá trị con trỏ liên kết “next” của phần tử thứ (p-1) và phần tử mới như bên dưới.

5. Xóa một phần tử khỏi danh sách liên kết

Để xóa phần tử tại vị trí p khỏi danh sách liên kết, chúng ta thay đổi giá trị con trỏ liên kết
“next” của phần tử thứ (p-1) như hình dưới. Sau đó xóa phần tử thứ p ra khỏi bộ nhớ!

6. Danh sách liên kết đôi

Danh sách liên kết được trình bày ở trên được gọi là danh sách liên kết đơn, bởi vì mỗi phần tử trong danh sách liên kết đơn có đúng một biến con trỏ liên kết “next” chỉ đến phần tử tiếp theo trong danh sách.Việc duyệt trên danh sách liên kết đơn chỉ thực hiện được theo một chiều từ đầu danh sách đến cuối danh sách và không thực hiện được theo chiều ngược lại.

Danh sách liên kết đôi là mở rộng của danh sách liên kết đơn, trong đó mỗi phần tử có hai con trỏ liên kết:
• “previous” trỏ đến phần tử phía trước trong danh sách.
• “next” trỏ đến phần tử tiếp theo trong danh sách.
Bên dưới là ví dụ minh họa sử dụng danh sách liên kết đôi để lưu giữ dãy A, B, C, D. Phần tử đầu tiên của danh sách liên kết đôi gọi là “head”, phần tử cuối cùng gọi là “tail”.

Danh sách liên kết đôi thường được dùng trong các bài toán cần duyệt trên danh sách theo cả hai chiều. Nó cũng hay được dùng trong các bài toán mà các phép toán chèn và xóa các phần tử trong danh sách thường diễn ra ở một trong hai đầu của danh sách bởi vì các phép toán này được thực hiện một cách nhanh chóng.

7. So sánh cấu trúc danh sách liên kết và cấu trúc mảng

• Các phần tử trong mảng được lưu giữ liên tục trong bộ nhớ, cho nên việc truy cập và thay đổi giá trị một phần tử bất kì trong mảng rất nhanh. Các phần tử trong danh sách liên kết được lưu giữ tại các vị trí khác nhau trong bộ nhớ máy tính, cho nên việc truy cập và thay đổi giá trị một phần tử bất kì tốn nhiều thời gian.
• Kích thước của mảng phải được xác định và khai báo trước khi sử dụng, điều này dẫn đến khó khăn và dư thừa bộ nhớ trong các bài toán mà số lượng các phần tử không được xác định trước. Khi sử dụng danh sách liên kết, chúng ta không phải khai báo trước kích thước của danh sách. Chúng ta chỉ xin cấp phát bộ nhớ khi thêm phần tử mới vào danh sách liên kết, và sẽ xóa phần tử đó khỏi bộ nhớ khi nó bị xóa khỏi danh sách liên kết.

Nguyên tắc viết ký hiệu toán học mà ai cũng phải biết

Nhiều bạn tưởng rằng ký hiệu $x$ là giống $\mathbf{x}$. Nhưng không phải, x không in đậm là chỉ biến còn x in đậm là ký hiệu của vector. Nó khác nhau một trời một vực đấy nhé!

Trong các bài viết của tôi, các số vô hướng được biểu diễn bởi các chữ cái viết ở dạng không in đậm, có thể viết hoa, ví dụ $x_1, N, y, k$. Các vector được biểu diễn bằng các chữ cái thường in đậm, ví dụ $\mathbf{y}, \mathbf{x}_1 $. Nếu không giải thích gì thêm, các vector được mặc định hiểu là các vector cột. Các ma trận được biểu diễn bởi các chữ viết hoa in đậm, ví dụ $\mathbf{X, Y, W} $.

Đối với vector, $\mathbf{x} = [x_1, x_2, \dots, x_n]$ được hiểu là một vector hàng. Trong khi $\mathbf{x} = [x_1; x_2; \dots; x_n] $ được hiểu là vector cột. Chú ý sự khác nhau giữa dầu phẩy (,) và dấu chấm phẩy (;). Đây chính là ký hiệu mà được Matlab sử dụng.

Tương tự, trong ma trận, $\mathbf{X} = [\mathbf{x}_1, \mathbf{x}_2, \dots, \mathbf{x}_n]$ được hiểu là các vector $\mathbf{x}_j$ được đặt cạnh nhau theo thứ tự từ trái qua phải để tạo ra ma trận $\mathbf{X}$. Trong khi $\mathbf{X} = [\mathbf{x}_1; \mathbf{x}_2; \dots; \mathbf{x}_m]$ được hiểu là các vector $\mathbf{x}_i$ được đặt chồng lên nhau theo thứ tự từ trên xuống dưới dể tạo ra ma trận $\mathbf{X}$. Các vector được ngầm hiểu là có kích thước phù hợp để có thể xếp cạnh hoặc xếp chồng lên nhau.

Cho một ma trận $\mathbf{W}$, nếu không giải thích gì thêm, chúng ta hiểu rằng $\mathbf{w}_i$ là vector cột thứ $i$ của ma trận đó. Chú ý sự tương ứng giữa ký tự viết hoa và viết thường.

Mình đã muốn viết bài này từ lâu rồi những đến giờ mới hoàn thành được. Mình mong các bạn có thể phân biết được các ký hiệu toán học, chứ không thì cứ nhầm tùm lum giữa các ký hiệu, dẫn đến hiểu sai lệch.

Cú pháp cơ bản của C ++

Khi chúng ta xem xét một chương trình C ++, nó có thể được định nghĩa như một tập hợp các đối tượng giao tiếp thông qua việc gọi các phương thức của nhau. Bây giờ chúng ta hãy xem xét những gì một lớp, đối tượng, phương thức và các biến tức thời có nghĩa là gì.

  • Đối tượng – Đối tượng có các trạng thái và hành vi. Ví dụ: Chó có trạng thái – màu sắc, tên, giống cũng như hành vi – vẫy, sủa, ăn uống. Một đối tượng là một thể hiện của một lớp.
  • Lớp – Một lớp có thể được định nghĩa là một bản mẫu / kế hoạch chi tiết mô tả các hành vi / trạng thái mà đối tượng của kiểu hỗ trợ của nó.
  • Phương pháp – Một phương pháp cơ bản là một hành vi. Một lớp có thể chứa nhiều phương thức. Đó là trong các phương thức mà các logic được viết, dữ liệu được thao tác và tất cả các hành động được thực thi.
  • Instance Variables – Mỗi đối tượng có tập các biến cá thể duy nhất của nó. Trạng thái của đối tượng được tạo bởi các giá trị được gán cho các biến cá thể này.

Cấu trúc chương trình C ++

Chúng ta hãy nhìn vào một mã đơn giản có thể in chữ Hello World .

#include 
using namespace std;

// main() is where program execution begins.
int main() {
   cout &lt;&lt; "Hello World"; // prints Hello World
   return 0;
}
Chúng ta hãy xem xét các phần khác nhau của chương trình trên –

  • Ngôn ngữ C ++ định nghĩa một số tiêu đề, chứa các thông tin cần thiết hoặc hữu ích cho chương trình của bạn. Đối với chương trình này, tiêu đề <iostream> là cần thiết.
  • Dòng sử dụng không gian tên std; yêu cầu trình biên dịch sử dụng không gian tên std. Không gian tên là một bổ sung tương đối gần đây cho C ++.
  • Dòng tiếp theo ‘ // main () là nơi bắt đầu thực hiện chương trình. ‘là một chú thích một dòng có sẵn trong C ++. Các chú thích một dòng bắt đầu bằng // và dừng ở cuối dòng.
  • Dòng int main () là hàm chính nơi bắt đầu thực hiện chương trình.
  • Dòng lệnh tiếp theo << “Đây là chương trình C ++ đầu tiên của tôi.”; gây ra thông báo “Đây là chương trình C ++ đầu tiên của tôi” được hiển thị trên màn hình.
  • Dòng tiếp theo trả về 0; chấm dứt hàm main () và làm cho nó trả về giá trị 0 cho quá trình gọi.

Biên dịch và thực thi chương trình C ++

Hãy xem cách lưu tệp, biên dịch và chạy chương trình. Vui lòng làm theo các bước dưới đây –

  • Mở trình soạn thảo văn bản và thêm mã như trên.
  • Lưu tệp dưới dạng: hello.cpp
  • Mở một dấu nhắc lệnh và đi đến thư mục mà bạn đã lưu tệp.
  • Nhập ‘g ++ hello.cpp’ và nhấn enter để biên dịch mã của bạn. Nếu không có lỗi trong mã của bạn, dấu nhắc lệnh sẽ đưa bạn đến dòng tiếp theo và sẽ tạo ra tệp thực thi a.out.
  • Bây giờ, gõ ‘a.out’ để chạy chương trình của bạn.
  • Bạn sẽ có thể nhìn thấy ‘Hello World’ được in trên cửa sổ.
$ g++ hello.cpp
$ ./a.out
Hello World
Đảm bảo rằng g ++ nằm trong đường dẫn của bạn và bạn đang chạy nó trong thư mục chứa tệp hello.cpp.

Dấu chấm phẩy và khối trong C ++

Trong C ++, dấu chấm phẩy là một dấu kết thúc câu lệnh. Tức là, mỗi câu lệnh riêng lẻ phải được kết thúc bằng dấu chấm phẩy. Nó cho biết kết thúc của một thực thể logic.

Ví dụ, sau đây là ba câu lệnh khác nhau –

x = y;
y = y + 1;
add(x, y);
Khối là một tập hợp các câu lệnh được kết nối hợp lý được bao quanh bằng cách mở và đóng niềng răng. Ví dụ –
{
   cout &lt;&lt; "Hello World"; // prints Hello World
   return 0;
}
C ++ không nhận ra sự kết thúc của dòng như một terminator. Vì lý do này, nó không quan trọng nơi bạn đặt một tuyên bố trong một dòng. Ví dụ –
x = y;
y = y + 1;
add(x, y);
giống như
x = y; y = y + 1; add(x, y);

Định danh C ++

Mã định danh C ++ là tên được sử dụng để xác định biến, hàm, lớp, mô-đun hoặc bất kỳ mục nào do người dùng xác định khác. Mã định danh bắt đầu bằng chữ cái A đến Z hoặc từ a đến z hoặc dấu gạch dưới (_) theo sau là 0 hoặc nhiều chữ cái, dấu gạch dưới và chữ số (0 đến 9).

C ++ không cho phép các ký tự dấu câu như @, $ và% trong số nhận dạng. C ++ là một ngôn ngữ lập trình phân biệt chữ hoa chữ thường. Do đó, Nhân lựcvà nhân lực là hai định danh khác nhau trong C ++.

Dưới đây là một số ví dụ về số nhận dạng có thể chấp nhận –

mohd       zara    abc   move_name  a_123
myname50   _temp   j     a23b9      retVal

Từ khóa C ++

Danh sách sau đây hiển thị các từ dành riêng trong C ++. Các từ dành riêng này có thể không được sử dụng làm hằng số hoặc biến hoặc bất kỳ tên định danh nào khác.

asm else new this
auto enum operator throw
bool explicit private true
break export protected try
case extern public typedef
catch false register typeid
char float reinterpret_cast typename
class for return union
const friend short unsigned
const_cast goto signed using
continue if sizeof virtual
default inline static void
delete int static_cast volatile
do long struct wchar_t
double mutable switch while
dynamic_cast namespace template


Một vài ký tự có một biểu diễn thay thế, được gọi là một chuỗi dấu vết. Một dấu vết là một chuỗi ba ký tự đại diện cho một ký tự đơn và chuỗi luôn bắt đầu bằng hai dấu chấm hỏi.Trigraphs

Trigraphs được mở rộng bất cứ nơi nào chúng xuất hiện, bao gồm trong các chuỗi ký tự và các ký tự chữ, trong các chú thích và các chỉ thị tiền xử lý.

Sau đây là các chuỗi dấu vết được sử dụng thường xuyên nhất –

Trigraph Thay thế
?? = #
?? / \
?? ‘ ^
?? ( [
??) ]
??! |
?? < {
??> }
?? – ~

Tất cả các trình biên dịch không hỗ trợ các dấu vết và chúng không được khuyên dùng vì bản chất khó hiểu của chúng.

Khoảng trống trong C ++

Một dòng chỉ chứa khoảng trắng, có thể với một chú thích, được gọi là một 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. Khoảng trắng phân tách một phần của câu lệnh từ một câu lệnh khác và cho phép trình biên dịch xác định vị trí của một phần tử trong câu lệnh, chẳng hạn như int, kết thúc và phần tử tiếp theo bắt đầu.

Tuyên bố 1

int age;
Trong câu lệnh trên, phải có ít nhất một ký tự khoảng trống (thường là một dấu cách) giữa int và age để trình biên dịch có thể phân biệt chúng.

Tuyên bố 2

fruit = apples + oranges;   // Get the total fruit
Trong câu lệnh trên 2, không có ký tự khoảng trắng nào cần thiết giữa trái cây và = hoặc giữa = và táo, mặc dù bạn được tự do đưa vào một số nếu bạn muốn cho mục đích có thể đọc được.

Hưỡng dẫn sử dụng IPython Notebook

Ipython Notebook là công cụ soạn thảo chuyên nghiệp bởi vì nó hỗ trợ nhiều tiện ích như LaTex, biểu đồ… đặc biệt nó cho phép soạn thảo code Python và chạy trực tiếp.

Cách đọc file .ipynb

Bước 1: Tải về và cài đặt Anaconda

Bước 2: Chạy Anaconda Command Prompt

Bước 3: Chuyển về thư mục chứa file Ipython Notebook (*.ipynb)

Ví dụ: cd e:/myipynb/

Bước 4: Gõ jupyter-notebook

Chương trình sẽ đưa cho bạn một đường dẫn localhost để mở xem file .ipynb

Hướng dẫn sử dụng cơ bản

Mỗi tập tin IPython Notebook được cấu tạo từ các cell. Ở mỗi cell bạn có thể viết và thực thi câu lệnh. Như đã biết IPython Notebook mạnh mẽ ở khả năng viết code và soạn thảo văn bản do đó có 2 loại cell tương ứng với tên gọi là Code Cell  Markdown Cell.

yeulaptrinh.pư-python-notebook-cell

Markdown Cell và Code Cell

Khi tạo một tập tin mới, một cell được tạo sẵn (cell có dòng In[]: phía trước) đó là Code cell, để có thể chuyển sang Markdown cell, bạn chỉ cần nhấn Esc mất con trỏ nhấp nháy sau đó nhấn phím M. Để chuyển ngược lại sang Code Cell, bạn hãy nhấn phím Y. Đó là 2 trong số rất nhiều thao tác thường xuyên sử dụng, bạn hãy nhấn phím H để xem tất cả các phím tắt.