TÀI LIỆU ÔN THI ĐẠI HỌC MỚI NHẤT-MIỄN PHÍ

TÀI LIỆU ÔN THI THPTQG TẤT CẢ CÁC MÔN

💗💗TOÁN-LÍ-HÓA-SINH-ANH-VĂN-SỬ-ĐỊA-GDCD💗💗

                                                        ☝EBOOK LUÔN CẬP NHẬT THEO THÁNG🌙👌

VỚI HƠN 1 TRIỆU QUYỂN SÁCH ÔN THI THPTQG.HỨA HỆN SẼ GIÚP CÁC BẠN CÓ MỘT KÌ THI THÀNH CÔNG NHẤT.DO LƯỢNG TÀI LIỆU LỚN NÊN MÌNH KHÔNG LIỆT KÊ CÁC QUYỂN SÁCH RA ĐƯỢC.DO ĐÓ BẠN MUỐN TẢI HOẶC XEM TẤT CẢ TÀI LIỆU THÌ TRUY CẬP LINK ĐỂ BÊN DƯỚI NHÉ.

LINK TẢI TÀI LIỆU:http://bit.ly/2JrZ5Hu

CHÚC CÁC BẠN CÓ KÌ THI TỐT ĐẸP

Các phép toán trong C ++

Toán tử là biểu tượng cho trình biên dịch thực hiện các thao tác toán học hoặc logic cụ thể. C++ rất giàu các toán tử dựng sẵn và cung cấp các loại toán tử sau:

  • Toán tử số học
  • Các nhà khai thác quan hệ
  • Toán tử hợp lý
  • Nhà khai thác bitwise
  • Toán tử chuyển nhượng
  • Nhà khai thác Misc

Chương này sẽ kiểm tra số học, quan hệ, logic, bitwise, phân công và các nhà khai thác khác từng người một.

Toán tử số học

Có các toán tử số học sau được hỗ trợ bởi ngôn ngữ C ++ –

Giả sử biến A giữ 10 và biến B giữ 20, sau đó –

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 từ toán hạng nhất A – B sẽ cho -10
* Nhân cả hai toán hạng A * B sẽ cho 200
/ Chia lấy phần nguyên B / A sẽ cho 2
% Chia lấy phần dư B% A sẽ cho 0
++ Tăng giá trị số nguyên lên một A ++ sẽ cho 11
– – Giảm giá trị số nguyên xuống một A– sẽ cho 9

Các nhà khai thác quan hệ

Có những toán tử quan hệ được hỗ trợ bởi ngôn ngữ C ++

Giả sử biến A giữ 10 và biến B giữ 20, sau đó –

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

Toán tử Logical

Có những toán tử logic được hỗ trợ bởi ngôn ngữ C ++.

Giả sử biến A 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 và được gọi. 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à logic hoặc toán tử. Nếu bất kỳ toán tử nào trong số hai toán hạng không khác, thì điều kiện trở thành true. (A || B) là đúng.
! Được gọi là Operical NOT Operator.Sử dụng để đảo ngược trạng thái logic của toán hạng của nó. Nếu điều kiện là đúng, thì toán tử logic NOT sẽ sai. ! (A && B) là sự thật.

Nhà khai thác bitwise

Toán tử bitwise hoạt động trên các bit và thực hiện thao tác bit-by-bit. Các bảng chân lý cho &, |, và ^ như sau:

p q p & q p | q p ^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

Giả sử nếu A = 60; và B = 13; bây giờ ở định dạng nhị phân, chúng sẽ như sau:

A = 0011 1100

B = 0000 1101

—————–

A & B = 0000 1100

A | B = 0011 1101

A ^ B = 0011 0001

~ A = 1100 0011

Các toán tử Bitwise được hỗ trợ bởi ngôn ngữ C ++ được liệt kê trong bảng sau. Giả sử biến A giữ 60 và biến B giữ 13, sau đó –

Nhà điều hành Sự miêu tả Thí dụ
& Binary AND Operator sao chép một chút vào kết quả nếu nó tồn tại trong cả hai toán hạng. (A & B) sẽ tặng 12 cái là 0000 1100
| Binary OR Operator copy một chút nếu nó tồn tại trong toán hạng. (A | B) sẽ cho 61 là 0011 1101
^ Nhà điều hành XOR nhị phân sao chép bit nếu nó được đặt trong một toán hạng nhưng không phải cả hai. (A ^ B) sẽ cho 49 là 0011 0001
~ Binary Ones Complement Operator là unary và có tác dụng của ‘flipping’ bit. (~ A) sẽ cung cấp cho -61 là 1100 0011 trong dạng bổ sung của 2 do một số nhị phân có dấu.
<< Trình điều khiển Shift trái nhị phân.Giá trị toán hạng bên trái được di chuyển sang trái bởi số bit được chỉ định bởi toán hạng bên phải. Một << 2 sẽ cho 240 là 1111 0000
>> Trình điều khiển Shift phải nhị phân. Giá trị toán hạng bên trái được di chuyển ngay bởi số bit được chỉ định bởi toán hạng bên phải. A >> 2 sẽ cho 15 là 0000 1111

Toán tử chuyển nhượng

Có các toán tử gán sau được hỗ trợ bởi ngôn ngữ C ++ –

Nhà điều hành Sự miêu tả Thí dụ
= Toán tử gán đơn giản, gán giá trị từ toán hạng bên phải sang toán hạng bên trái. C = A + B sẽ gán giá trị của A + B vào C
+ = Thêm toán tử gán AND, nó thêm toán hạng bên phải vào toán hạng bên trái và gán kết quả cho toán hạng bên trái. C + = A tương đương với C = C + A
– = Subtract AND assignment operator, Nó trừ toán hạng bên phải từ toán hạng bên trái và gán kết quả cho toán hạng bên trái. C – = A tương đương với C = C – A
* = Nhân và toán tử gán, Nó nhân toán hạng bên phải với toán hạng bên trái và gán kết quả cho toán hạng bên trái. C * = A tương đương với C = C * A
/ = Divide AND assignment operator, Nó chia toán hạng bên trái với toán hạng bên phải và gán kết quả cho toán hạng bên trái. C / = A tương đương với C = C / A
% = Toán tử mô-đun và gán, Nó lấy mô đun bằng cách sử dụng hai toán hạng và gán kết quả cho toán hạng bên trái. C% = A tương đương với C = C% A
<< = Toán tử trái và toán tử gán. C << = 2 cũng giống như C = C << 2
>> = Toán tử chuyển đổi và chuyển quyền. C >> = 2 giống như C = C >> 2
& = Toán tử bitwise AND assignment. C & = 2 giống C = C & 2
^ = Nhà điều hành HOẶC phân công độc quyền bitwise. C ^ = 2 giống như C = C ^ 2
| = OR OR và toán tử gán. C | = 2 giống như C = C | 2

Nhà khai thác Misc

Bảng sau liệt kê một số toán tử khác mà C ++ hỗ trợ.

Sr.No Toán tử & Mô tả
1 sizeof

 trả về kích thước của một biến. Ví dụ, sizeof (a), trong đó ‘a’ là số nguyên và sẽ trả về 4.

2 Điều kiện ? X: Y

Nếu Điều kiện là đúng thì nó trả về giá trị của X nếu không trả về giá trị của Y.

3 ,

gây ra một chuỗi các phép toán được thực hiện. Giá trị của toàn bộ biểu thức dấu phẩy là giá trị của biểu thức cuối cùng của danh sách được phân cách bằng dấu phẩy.

4 . (dấu chấm) và -> (mũi tên)

được sử dụng để tham chiếu các thành viên cá nhân của các lớp, các cấu trúc và các công đoàn.

5
Cast

chuyển đổi một kiểu dữ liệu sang kiểu dữ liệu khác. Ví dụ, int (2.2000) sẽ trả về 2.

6 &

trả về địa chỉ của một biến. Ví dụ & a; sẽ cung cấp địa chỉ thực của biến.

7 *

con trỏ * là con trỏ đến một biến. Ví dụ * var; sẽ trỏ đến biến var.

Các toán tử ưu tiên trong C ++

Ưu tiên toán tử xác định nhóm các thuật ngữ trong một biểu thức. Điều này ảnh hưởng đến cách một biểu thức được đánh giá. Một số nhà khai thác có quyền ưu tiên cao hơn so với các nhà khai thác khác; ví dụ, toán tử nhân có ưu tiên cao hơn toán tử cộng –

Ví dụ x = 7 + 3 * 2; ở đây, x được gán 13, không phải 20 vì toán tử * có ưu tiên cao hơn +, vì vậy trước tiên nó được nhân với 3 * 2 và sau đó thêm vào 7.

Ở đây, các toán tử có mức ưu tiên cao nhất xuất hiện ở đầu bảng, các toán tử có giá trị thấp nhất xuất hiện ở dưới cùng. Trong một biểu thức, các toán tử ưu tiên cao hơn sẽ được đánh giá đầu tiên.

thể loại Nhà điều hành Khả năng tương tác
Postfix () [] ->. ++ – – Trái sang phải
Unary + -! ~ ++ – – (loại) * và kích thước Phải sang trái
Nhân * /% Trái sang phải
Phụ gia + – Trái sang phải
Shift << >> Trái sang phải
Quan hệ <<=>> = Trái sang phải
Bình đẳng ==! = Trái sang phải
Bitwise AND & Trái sang phải
Bitwise XOR ^ Trái sang phải
Bitwise HOẶC | Trái sang phải
Logic và && Trái sang phải
Hợp lý HOẶC || Trái sang phải
Điều kiện ?: Phải sang trái
Nhiệm vụ = + = – = * = / =% = >> = << = & = ^ = | = Phải sang trái
Dấu phẩy , Trái sang phải

Lớp lưu trữ trong C ++

Một lớp lưu trữ định nghĩa phạm vi (mức hiển thị) và thời gian sống của các biến và / hoặc các hàm trong một Chương trình C ++. Các thông số này trước loại mà chúng sửa đổi. Có các lớp lưu trữ sau đây, có thể được sử dụng trong Chương trình C ++

  • auto
  • register
  • static
  • extern
  • mutable

Lớp lưu trữ auto

Lớp lưu trữ auto là lớp lưu trữ mặc định cho tất cả các biến cục bộ.

{
   int mount;
   auto int month;
}
Ví dụ trên định nghĩa hai biến với cùng một lớp lưu trữ, tự động chỉ có thể được sử dụng trong các hàm, tức là các biến cục bộ.

Lớp lưu trữ register

Lớp lưu trữ register được sử dụng để xác định các biến cục bộ cần được lưu trữ trong thanh ghi thay vì RAM. Điều này có nghĩa là biến có kích thước tối đa bằng với kích thước đăng ký (thường là một từ) và không thể có toán tử ‘&’ đơn nhất áp dụng cho nó (vì nó không có vị trí bộ nhớ).

{
   register int  miles;
}
Thanh ghi chỉ được sử dụng cho các biến yêu cầu truy cập nhanh như bộ đếm. Cũng cần lưu ý rằng việc xác định ‘đăng ký’ không có nghĩa là biến sẽ được lưu trong sổ đăng ký. Nó có nghĩa là nó được lưu trữ trong một thanh ghi tùy thuộc vào phần cứng và các hạn chế thực hiện.

Lớp lưu trữ static

Lớp lưu trữ static chỉ thị trình biên dịch để giữ một biến cục bộ tồn tại trong suốt thời gian tồn tại của chương trình thay vì tạo và hủy nó mỗi lần nó đi vào và đi ra khỏi phạm vi. Do đó, làm cho các biến cục bộ tĩnh cho phép chúng duy trì giá trị của chúng giữa các cuộc gọi hàm.

Công cụ sửa đổi tĩnh cũng có thể được áp dụng cho các biến toàn cục. Khi điều này được thực hiện, nó làm cho phạm vi của biến đó bị hạn chế đối với tệp mà nó được khai báo.

Trong C ++, khi tĩnh được sử dụng trên một thành viên dữ liệu lớp, nó chỉ gây ra một bản sao của thành viên đó được chia sẻ bởi tất cả các đối tượng của lớp của nó.

#include 
 
// Function declaration
void func(void);
 
static int count = 10; /* Global variable */
 
main() {
   while(count--) {
      func();
   }
   
   return 0;
}

// Function definition
void func( void ) {
   static int i = 5; // local static variable
   i++;
   std::cout &lt;&lt; "i is " &lt;&lt; i ;
   std::cout &lt;&lt; " and count is " &lt;&lt; count &lt;&lt; std::endl;
}
Khi mã trên được biên dịch và thực hiện, nó tạo ra kết quả sau:
i is 6 and count is 9
i is 7 and count is 8
i is 8 and count is 7
i is 9 and count is 6
i is 10 and count is 5
i is 11 and count is 4
i is 12 and count is 3
i is 13 and count is 2
i is 14 and count is 1
i is 15 and count is 0

Lớp lưu trữ bên extern

Lớp lưu trữ bên extern được sử dụng để cung cấp cho một tham chiếu của một biến toàn cầu có thể nhìn thấy tất cả các tệp chương trình. Khi bạn sử dụng ‘extern’, biến này không thể được khởi tạo vì tất cả nó chỉ là tên biến tại vị trí lưu trữ đã được định nghĩa trước đó.

Khi bạn có nhiều tệp và bạn xác định một biến toàn cục hoặc hàm, cũng sẽ được sử dụng trong các tệp khác, thì extern sẽ được sử dụng trong tệp khác để cung cấp tham chiếu về biến hoặc hàm được xác định. Chỉ để hiểu externđược sử dụng để khai báo một biến toàn cục hoặc hàm trong một tệp khác.

Trình sửa đổi bên ngoài thường được sử dụng nhất khi có hai hoặc nhiều tệp chia sẻ cùng các biến hoặc hàm toàn cục như được giải thích bên dưới.

Tệp đầu tiên: main.cpp

#include 
int count ;
extern void write_extern();
 
main() {
   count = 5;
   write_extern();
}

Tệp thứ hai: support.cpp

#include 

extern int count;

void write_extern(void) {
   std::cout &lt;&lt; "Count is " &lt;&lt; count &lt;&lt; std::endl;
}
Ở đây, từ khóa bên ngoài đang được sử dụng để khai báo đếm trong một tệp khác. Bây giờ biên dịch hai tệp này như sau:
$g++ main.cpp support.cpp -o write
Điều này sẽ tạo ra chương trình thực thi ghi , cố gắng thực hiện ghi và kiểm tra kết quả như sau:
$./write
5

Lớp lưu trữ mutable

Trình chỉ định mutable chỉ áp dụng cho các đối tượng lớp, được thảo luận sau trong hướng dẫn này. Nó cho phép một thành viên của một đối tượng ghi đè lên hàm thành viên const. Đó là, một thành viên có thể thay đổi có thể được sửa đổi bởi một hàm thành viên const.

Kiểu Modifier trong C++

C ++ cho phép các kiểu dữ liệu char, int và double có các modifier trước chúng. Công cụ sửa đổi được sử dụng để thay đổi ý nghĩa của loại cơ sở sao cho phù hợp hơn với nhu cầu của các tình huống khác nhau.

Các công cụ sửa đổi kiểu dữ liệu được liệt kê ở đây –

    • signed
    • unsigned
    • long
    • short

Các modifier được signed, unsigned, long và short có thể được áp dụng cho các kiểu cơ số nguyên. Ngoài ra, signed và unsigned có thể được áp dụng cho char, và long có thể được áp dụng để tăng gấp đôi.Các modifier được signed và unsigned cũng có thể được sử dụng làm tiền tố cho các modifier short hoặc long . Ví dụ: unsigned long int .

C ++ cho phép ký hiệu viết tắt để khai báo các số nguyên unsigned, short hoặc long . Bạn chỉ có thể sử dụng từ unsigned, short, hoặc long, mà không có int . Nó tự động ngụ ý int . Ví dụ, hai câu lệnh sau đây đều khai báo các biến số nguyên không dấu.

unsigned x;
unsigned int y;
Để hiểu sự khác biệt giữa cách thức các biến số nguyên được ký và unsigned nguyên được giải thích bởi C ++, bạn nên chạy chương trình ngắn sau đây –
#include 
using namespace std;
 
/* This program shows the difference between
   * signed and unsigned integers.
*/
int main() {
   short int i;           // a signed short integer
   short unsigned int j;  // an unsigned short integer

   j = 50000;

   i = j;
   cout << i << " " << j;

   return 0;
}
Khi chương trình này được chạy, sau đây là đầu ra –
-15536 50000
Kết quả trên là vì mẫu bit đại diện cho 50.000 như một số nguyên không dấu ngắn được hiểu là -15,536 bởi một đoạn ngắn.

Loại vòng loại trong C ++

Các loại vòng loại cung cấp thêm thông tin về các biến mà chúng đứng trước.

Sr.No Vòng loại & Ý nghĩa
1 const

Đối tượng của loại const không thể được thay đổi bởi chương trình của bạn trong quá trình thực thi.

2 volatile

Công cụ sửa đổi volatile nói với trình biên dịch rằng giá trị của biến có thể được thay đổi theo các cách không được chương trình xác định rõ ràng.

3 restrict

Một con trỏ đủ điều kiện theo restrict ban đầu là phương tiện duy nhất mà đối tượng nó trỏ đến có thể được truy cập. Chỉ C99 mới thêm một loại vòng loại mới được gọi là giới hạn.

Hằng số C ++ / Literals

Hằng số tham chiếu đến các giá trị cố định mà chương trình có thể không thay đổi và chúng được gọi là chữ .

Các hằng số có thể là bất kỳ kiểu dữ liệu cơ bản nào và có thể được chia thành các số nguyên, các chữ số dấu phẩy động, các ký tự, các chuỗi và các giá trị Boolean.

Một lần nữa, các hằng số được xử lý giống như các biến thông thường ngoại trừ các giá trị của chúng không thể được sửa đổi sau định nghĩa của chúng.

Integer Literals

Một chữ số nguyên có thể là một số thập phân, bát phân hoặc hằng số thập lục phân. Tiền tố chỉ định cơ sở hoặc cơ số: 0x hoặc 0X cho hệ thập lục phân, 0 cho bát phân và không có gì cho thập phân.

Một số nguyên nghĩa đen cũng có thể có hậu tố là kết hợp của U và L, tương ứng với dấu và dài. Hậu tố có thể là chữ hoa hoặc chữ thường và có thể theo thứ tự bất kỳ.

Dưới đây là một số ví dụ về các chữ số nguyên –

212         // Legal
215u        // Legal
0xFeeL      // Legal
078         // Illegal: 8 is not an octal digit
032UU       // Illegal: cannot repeat a suffix
Sau đây là các ví dụ khác về các loại chữ số nguyên –
85         // decimal
0213       // octal
0x4b       // hexadecimal
30         // int
30u        // unsigned int
30l        // long
30ul       // unsigned long

Dấu phẩy động

Một chữ phẩy động có một phần số nguyên, một dấu thập phân, một phần phân số và một phần số mũ. Bạn có thể biểu diễn các chữ số dấu phẩy động theo dạng thập phân hoặc dạng số mũ.

Trong khi biểu diễn bằng cách sử dụng dạng thập phân, bạn phải bao gồm dấu thập phân, số mũ hoặc cả hai và trong khi biểu diễn bằng dạng số mũ, bạn phải bao gồm phần nguyên, phần phân số hoặc cả hai. Số mũ đã ký được giới thiệu bởi e hoặc E.

Dưới đây là một số ví dụ về các dấu phẩy động –

3.14159       // Legal
314159E-5L    // Legal
510E          // Illegal: incomplete exponent
210f          // Illegal: no decimal or exponent
.e55          // Illegal: missing integer or fraction

Boolean Literals

Có hai chữ Boolean và chúng là một phần của từ khóa C ++ chuẩn –

  • Giá trị của true thể hiện đúng.
  • Giá trị sai biểu thị sai.

Bạn không nên xem xét giá trị của true bằng 1 và giá trị của false bằng 0.

Chữ ký tự

Ký tự chữ cái được kèm theo trong dấu nháy đơn. Nếu chữ bắt đầu bằng chữ L (chỉ chữ hoa), thì chữ này có ký tự rộng (ví dụ: L’x ‘) và phải được lưu trong loại biến wchar_t . Nếu không, nó là ký tự hẹp (ví dụ, ‘x’) và có thể được lưu trữ trong một biến đơn giản của kiểu char .

Ký tự chữ có thể là ký tự đơn giản (ví dụ: ‘x’), một chuỗi thoát (ví dụ: ‘\ t’) hoặc ký tự phổ quát (ví dụ: ‘\ u02C0’).

Có một số ký tự trong C ++ khi chúng được bắt đầu bằng dấu gạch chéo ngược chúng sẽ có ý nghĩa đặc biệt và chúng được sử dụng để biểu diễn như dòng mới (\ n) hoặc tab (\ t). Ở đây, bạn có danh sách một số mã chuỗi thoát như vậy –

Trình tự thoát Ý nghĩa
\\ \ tính cách
\ ‘ ‘ tính cách
\ “ ” tính cách
\? ? tính cách
\ a Cảnh báo hoặc chuông
\ b Backspace
\ f Thức ăn dạng
\ n Dòng mới
\ r Vận chuyển trở lại
\ t Tab ngang
\ v Tab dọc
\ ooo Số thập phân từ một đến ba chữ số
\ xhh. . . Số thập lục phân của một hoặc nhiều chữ số

Sau đây là ví dụ để hiển thị một vài ký tự chuỗi thoát –

#include 
using namespace std;

int main() {
   cout &lt;&lt; "Hello\tWorld\n\n";
   return 0;
}
Khi mã trên được biên dịch và thực hiện, nó tạo ra kết quả sau:
Hello   World

Chuỗi ký tự

Chuỗi literals được kèm theo trong dấu ngoặc kép. Một chuỗi chứa các ký tự tương tự với các ký tự chữ: các ký tự đơn giản, các chuỗi thoát và các ký tự phổ quát.

Bạn có thể chia một đường dài thành nhiều dòng bằng cách sử dụng các chuỗi ký tự và tách chúng bằng cách sử dụng các khoảng trắng.

Dưới đây là một số ví dụ về chuỗi ký tự. Cả ba hình thức đều giống hệt nhau.

"hello, dear"

"hello, \

dear"

"hello, " "d" "ear"

Xác định hằng số

Có hai cách đơn giản trong C ++ để xác định hằng số –

  • Sử dụng #define preprocessor.
  • Sử dụng từ khóa const .

Trình xử lý trước #define

Sau đây là biểu mẫu để sử dụng bộ xử lý trước #define để xác định hằng số –

#define identifier value
Ví dụ sau giải thích chi tiết –
#include 
using namespace std;

int main() {
   cout &lt;&lt; "Hello\tWorld\n\n";
   return 0;
}
Khi mã trên được biên dịch và thực hiện, nó tạo ra kết quả sau:
50

Từ khóa const

Bạn có thể sử dụng tiền tố const để khai báo hằng số với một kiểu cụ thể như sau:

const type variable = value;
Ví dụ sau giải thích chi tiết –
#include 
using namespace std;

int main() {
   const int  LENGTH = 10;
   const int  WIDTH  = 5;
   const char NEWLINE = '\n';
   int area;  
   
   area = LENGTH * WIDTH;
   cout &lt;&lt; area;
   cout &lt;&lt; NEWLINE;
   return 0;
}
Khi mã trên được biên dịch và thực hiện, nó tạo ra kết quả sau:
50
Lưu ý rằng đó là một thực hành lập trình tốt để xác định hằng số trong CAPITALS.

Phạm vi biến trong C ++

Phạm vi là một khu vực của chương trình và nói rộng rãi có ba địa điểm, nơi các biến có thể được khai báo –

  • Bên trong một hàm hoặc một khối được gọi là biến cục bộ,
  • Trong định nghĩa các tham số hàm được gọi là các tham số chính thức.
  • Bên ngoài tất cả các hàm được gọi là biến toàn cục.

Chúng ta sẽ học hàm là gì và tham số của nó trong các chương tiếp theo. Ở đây chúng ta hãy giải thích các biến cục bộ và toàn cầu là gì.

Biến cục bộ

Các biến được khai báo bên trong một hàm hoặc khối là các biến cục bộ. Chúng chỉ có thể được sử dụng bởi các câu lệnh bên trong hàm đó hoặc khối mã. Các biến cục bộ không được biết đến với các hàm bên ngoài của chúng. Sau đây là ví dụ sử dụng biến cục bộ –

#include 
using namespace std;
 
int main () {
   // Local variable declaration:
   int a, b;
   int c;
 
   // actual initialization
   a = 10;
   b = 20;
   c = a + b;
 
   cout &lt;&lt; c;
 
   return 0;
}

Biến toàn cục

Các biến toàn cầu được định nghĩa bên ngoài tất cả các hàm, thường là trên đầu chương trình. Các biến toàn cầu sẽ giữ giá trị của chúng trong suốt thời gian sống của chương trình của bạn.

Một biến toàn cục có thể được truy cập bởi bất kỳ hàm nào. Đó là, một biến toàn cầu có sẵn để sử dụng trong toàn bộ chương trình của bạn sau khi nó được khai báo. Sau đây là ví dụ sử dụng biến cục bộ và cục bộ –

#include 
using namespace std;
 
// Global variable declaration:
int g;
 
int main () {
   // Local variable declaration:
   int a, b;
 
   // actual initialization
   a = 10;
   b = 20;
   g = a + b;
  
   cout &lt;&lt; g;
 
   return 0;
}
Một chương trình có thể có cùng tên cho các biến cục bộ và toàn cầu nhưng giá trị của biến cục bộ bên trong một hàm sẽ được ưu tiên. Ví dụ –
#include 
using namespace std;
 
// Global variable declaration:
int g = 20;
 
int main () {
   // Local variable declaration:
   int g = 10;
 
   cout &lt;&lt; g;
 
   return 0;
}
Khi mã trên được biên dịch và thực hiện, nó tạo ra kết quả sau:
10

Khởi tạo biến cục bộ và toàn cầu

Khi một biến cục bộ được định nghĩa, nó không được khởi tạo bởi hệ thống, bạn phải tự khởi tạo nó. Các biến toàn cục được khởi tạo tự động bởi hệ thống khi bạn định nghĩa chúng như sau:

Loại dữ liệu Trình khởi tạo
int 0
char ‘\ 0’
float 0
double 0
pointer VÔ GIÁ TRỊ

Đó là một thực hành lập trình tốt để khởi tạo các biến đúng cách, nếu không đôi khi chương trình sẽ tạo ra kết quả không mong muốn.

Không gian Metric và Topo đại cương

1. Định nghĩa Metric và không gian Metric

Cho $X\neq \varnothing $, d là ánh xạ từ:  $X^{2}\rightarrow R$
                                         $ \left ( x,y \right )\in X^{2}\rightarrow d\left ( x,y \right )\in R$
thỏa mãn 3 tiên đề sau :
   1/ $d\left ( x,y \right )\geq 0$ với mọi $x,y\in X$
        $d\left ( x,y \right )=0\Leftrightarrow x=y$
   2/ $d\left ( x,y \right )=d\left ( y,x \right )$ với mọi $x,y\in X$
   3/  $d\left ( x,y \right )\leq d\left ( x,z \right )+d\left (z,y  \right )$ với mọi  $x,y,z\in X$
 ánh xạ d được gọi là Metric trên X.
Một tập X được trang bị một Metric thì gọi là Không gian Metric $M=\left ( X,d \right )$, với $d\left ( x,y \right )$ được gọi là khoảng cách từ điểm x đến điểm y. Phần tử trong không gian Metric gọi là các điểm.

2. Một số tính chất đơn giản.

  Tính chất 1: Giả sử $\left ( X,d \right )$ là không gian Metric, $x_{1},x_{2},…,x_{n}\in X$ khi đó :
    $d\left ( x_{1},x_{n} \right )\leq d\left ( x_{1} ,x_{2}\right )+d\left ( x_{2},x_{3} \right )+…+d\left ( x_{n-1},x_{n} \right )$
  Tính chất 2: Với bốn điểm $x,y,u,v\in X$ khi đó :
        $ \left | d\left ( \left ( x,y \right ) \right ) -d\left ( u,v \right )\right |\leq d\left ( x,u \right )+d\left ( y,v \right )$
  Tính chất 3: Giả sử $x,y,u\in X$ khi đó:
       $ \left | d\left ( x,u \right )-d\left ( y,u \right ) \right |\leq d\left ( x,y \right )$

3. Một số ví dụ chứng minh Không gian Metric.

 Ví dụ 1: Cho $X=R$, với mọi $x,y\in R, d\left ( x,y \right )=\left | x-y \right |$. Kiểm tra xem $\left( X,d \right)$ là một không gian Metric.
 Bài giải :
 Ta đi kiểm tra 3 tiên đề
  1, Ta có $d\left ( x,y \right )= \left |x-y  \right |\geq 0$
       Giả sử $d\left ( x,y \right )=0 \Leftrightarrow \left |x-y  \right |= 0\Leftrightarrow x=y$
                      $ \Rightarrow d\left ( x,y \right )\Leftrightarrow x=y$
  2, Với mọi $x,y\in R, d\left ( x,y \right )=\left | x-y \right |=\left | \left ( -1 \right )\left ( y-x \right ) \right |=\left | \left ( -1 \right ) \right |\left | y-x \right |=d\left ( y,x \right )$
                       $\Rightarrow  d\left ( x,y \right )=d\left ( y,x \right )$
  3, Với mọi  $x,y,z\in R$ , ta có :
       $d\left ( x,y \right )=\left | x-y \right |=\left | x-z+z-y \right |\leq \left | x-z \right |+\left | z-y \right |=d\left ( x,z \right )+d\left ( z,y \right )$
                       $\Rightarrow d\left ( x,y \right )\leq d\left (x,z\right )+d\left ( z,y \right )$
 Vậy $\left ( R,d \right )$ là một không gian Metric.
Một số ví dụ tương tự ví dụ 1 
 Ví dụ 2: Cho $X=R^{n}$, với mọi  $x\in X, x=\left ( x_{1},x_{2},…,x_{n} \right )$
                                                            $y\in Y, y= \left ( y_{1},y_{2},…,y_{n} \right )$
               Đặt $d\left ( x,y \right )=\left ( \sum_{i=1}^{n}\left ( x_{i}-y_{j} \right )^{2} \right )^{\frac{1}{2}}$
          Chứng minh rằng: $\left ( X,d \right )$ là một không gian Metric.
Ví dụ 3: Cho $X\neq \varnothing $, ta định nghĩa: $d\left ( x,y \right )=\left\{\begin{matrix}
 1, x\neq y& \\0,x=y&
\end{matrix}\right.$
              Chứng minh rằng: $\left ( X,d \right )$ là một không gian Metric