Cho ví dụ về cách gán giá trị cho biến

Giới thiệu về cuốn sách này

Page 2

Giới thiệu về cuốn sách này

Trong bài học trước – Giới thiệu về biến, chúng ta đã đề cập đến cách khai báo một biến mà chúng ta có thể sử dụng để lưu trữ các giá trị. Trong bài học này, chúng ta sẽ khám phá tiếp cách đặt, gán các giá trị vào các biến và sử dụng các giá trị đó.

int x; // define an integer variable named x int y, z; // define two integer variables, named y and z

1. Gán giá trị cho biến

Sau khi một biến đã được khái báo, bạn có thể cung cấp cho nó một giá trị [trong một câu lệnh riêng] bằng cách sử dụng toán tử =. Quá trình này được gọi là gán giá trị.

int width; // define an integer variable named width width = 5; // copy assignment of value 5 into variable width // variable width now has value 5

Việc gán giá trị như trên chính là cách sao chép giá trị ở phía bên phải của toán tử = vào biến ở phía bên trái của toán tử. Toán tử = được gọi là toán tử gán.

Dưới đây, một ví dụ mà chúng ta sử dụng phép gán hai lần:

#include int main[] { int width; width = 5; // copy assignment of value 5 into variable width // variable width now has value 5 width = 7; // change value stored in variable width to 7 // variable width now has value 7 return 0; }

Khi chúng ta gán giá trị 7 cho biến width để nó thay đổi giá trị 5 trước đó và được ghi đè bằng 7. Các biến thông thường chỉ có thể giữ một giá trị tại một thời điểm.

Lưu ý

Một trong những lỗi phổ biến nhất mà các lập trình viên mới thường mắc phải là nhầm lẫn toán tử gán [=] với toán tử so sánh [==]. Gán [=] được sử dụng để gán giá trị cho biến. Toán tử này [==] được sử dụng để kiểm tra xem hai toán hạng có bằng nhau về giá trị hay không.

2. Sao chép và khởi tạo giá trị trực tiếp

Một nhược điểm của phép gán là nó yêu cầu ít nhất hai câu lệnh: một để khai báo biến và một để gán giá trị cho biến đó.

Hai bước này có thể được kết hợp. Khi một biến được khai báo, bạn cũng có thể cung cấp một giá trị ban đầu cho biến đó tại ngay thời điểm khai báo đó. Điều này được gọi là khởi tạo.

C ++ hỗ trợ ba cách cơ bản để khởi tạo một biến. Đầu tiên, chúng ta có thể thực hiện sao chép bằng cách sử dụng dấu bằng[=]:

int width = 5; // copy initialization of value 5 into variable width

Giống như gán, điều này sao chép giá trị ở phía bên phải của giá trị bằng với biến được tạo ở phía bên trái.

Thứ hai, chúng ta có thể thực hiện khởi tạo trực tiếp bằng cách sử dụng dấu ngoặc đơn.

int width[ 5 ]; // direct initialization of value 5 into variable width

Đối với các kiểu dữ liệu đơn giản [như số nguyên], sao chép và khởi tạo trực tiếp về cơ bản là giống nhau. Nhưng đối với một số loại nâng cao, khởi tạo trực tiếp có thể là cách tốt hơn so với khởi tạo bằng cách gán lại sau. Trước C ++ 11, khởi tạo trực tiếp được khuyến nghị so với khởi tạo lại sau trong hầu hết các trường hợp vì tăng hiệu suất.

3. Khởi tạo bằng dấu ngoặc nhọn

Thật không may, khởi tạo trực tiếp có thể được sử dụng cho tất cả các loại khởi tạo [chẳng hạn như khởi tạo một đối tượng với một danh sách dữ liệu]. Trong việc cung cấp một cơ chế khởi tạo phù hợp hơn, C ++ 11 đã thêm một cú pháp mới gọi là khởi tạo dấu ngoặc [đôi khi còn được gọi là khởi tạo thống nhất hoặc khởi tạo danh sách] sử dụng dấu ngoặc nhọn.

Khởi tạo đó có hai dạng:

int width{ 5 }; // direct brace initialization of value 5 into variable width [preferred] int height = { 6 }; // copy brace initialization of value 6 into variable height

Hai hình thức này hoạt động gần như giống hệt nhau, nhưng hình thức gán trực tiếp thường được ưa thích hơn.

Khởi tạo một biến với dấu ngoặc rỗng khi muốn khởi tạo giá trị bằng không.

int width{}; // zero initialization to value 0

Khởi tạo ngoặc nhọn có thêm lợi ích từ việc không cho phép chuyển đổi kiểu của giá trị đang gán với kiểu hiện tại của biến. Điều này có nghĩa là nếu bạn cố gắng sử dụng dấu ngoặc để khởi tạo một biến có giá trị mà nó không phù hợp với kiểu của biến đó thì trình biên dịch sẽ đưa ra cảnh báo hoặc lỗi. Ví dụ:

int width{ 4.5 }; // error: an integer variable can not hold a non-integer value

Trong đoạn trích trên, chúng ta đang cố gắng gán một số [4.5] có một phần phân số [phần 0,5] cho một biến số nguyên [chỉ có thể giữ các số mà không có các phần phân số]. Sao chép và khởi tạo trực tiếp sẽ bỏ phần phân số, dẫn đến khởi tạo giá trị width bằng 4. Tuy nhiên, khởi tạo với dấu ngoặc sẽ khiến trình biên dịch gặp lỗi [nói chung là một điều tốt, vì mất dữ liệu hiếm khi được mong muốn].

Mẹo

Ưu tiên khởi tạo trực tiếp bằng dấu ngoặc bất cứ khi nào có thể.

Bài tập C++ về Biến và Kiểu dữ liệu

Câu hỏi: Cách sử dụng lệnh gán?

Trả lời:

Cú pháp sử dụng lệnh gán:

Trong đó: tên biến là tên của biến đơn, kiểu của giá trị biểu thức phải phù hợp với kiểu của biến

Chức năng: đặt cho biến có tên ở vế trái dấu := giá trị mới bằng giá trị của biểu thức ở về phải.

VD: x1:=[-b-sqrt[b*b-4*a*c]]/[2*a];

Chú ý: biến kiểu thực có thể nhận giá trị kiểu nguyên và biến kiểu xâu có thể nhận kiểu kí tự, ngược lại thì không.

Cùng Top lời giải tìm hiểu thêm về lệnh gán nhé!

Lệnh gán là gì?

   Lệnh gán là một trong những lệnh cơ bản nhất của các ngôn ngữ lập trình. Mục đích của lệnh này là gán cho một biến đã khai báo một giá trị nào đó cùng kiểu với biến.

Cách viết lệnh gán

Tên_biến := biểu thức ;

- Ví dụ :

Khi đã khai báo

    VAR

          c   : Char ;

          i, j : Integer ;

          x, y : Real ;

          p, q : Boolean ;

thì ta có thể có các phép gán sau :

          a := 'A' ;

          c := Chr[90] ;

          i := [35 + 7] *2 mod 4 ;

          i := j + 1 ;

          x := 0.5 ;

          x := i + 1 ;

          p := i > 2*j + 1 ;

         q := not p ;

Lưu ý khi tên biến là tên của biến đơn thì kiểu của biểu thức phải phù hợp với kiểu của biến.

Ví dụ:

X1:=-b/a-x2;

Z=Z-1;

I=I+1;

Ví dụ gán sai:

B là kiểu integer C là kiểu real phép gán B:=C là sai sẽ báo lỗi khi biên dịch.

Ý nghĩa của lệnh gán

    Biến và phát biểu gán là các khái niệm quan trọng của một họ các ngôn ngữ lập trình mà PASCAL là một đại diện tiêu biểu. Chúng phản ánh cách thức hoạt động của máy tính hiện nay, đó là :

- Lưu trữ các giá trị khác nhau vào một ô nhớ tại nhưng thời điểm khác nhau.

- Một quá trình tính toán có thể coi như là một quá trình làm thay đổi giá trị của một [hay một số] ô nhớ nào đó, cho đến khi đạt được giá trị cần tìm.

Một số điểm lưu ý về phép gán

    Với ý nghĩa thông thường của phép toán [nghĩa là tính toán và cho lại một giá trị] thì phép toán gán còn một nhiệm vụ nữa là trả lại một giá trị. Giá trị trả lại của phép toán gán chính là giá trị của biểu thức sau dấu bằng. Lợi dụng điều này C++ cho phép chúng ta gán "kép" cho nhiều biến nhận cùng một giá trị bởi cú pháp:

biến_1 = biến_2 = … = biến_n = gt ;

với cách gán này tất cả các biến sẽ nhận cùng giá trị gt. Ví dụ:

int i, j, k ;

i = j = k = 1;

   Biểu thức gán trên có thể được viết lại như [i = [j = [k = 1]]], có nghĩa đầu tiên để thực hiện phép toán gán giá trị cho biến i chương trình phải tính biểu thức [j = [k = 1]], tức phải tính k = 1, đây là phép toán gán, gán giá trị 1 cho k và trả lại giá trị 1, giá trị trả lại này sẽ được gán cho j và trả lại giá trị 1 để tiếp tục gán cho i.

   Ngoài việc gán kép như trên, phép toán gán còn được phép xuất hiện trong bất kỳ biểu thức nào, điều này cho phép trong một biểu thức có phép toán gán, nó không chỉ tính toán mà còn gán giá trị cho các biến, ví dụ n = 3 + [i = 2] sẽ cho ta i = 2 và n = 5. Việc sử dụng nhiều chức năng của một câu lệnh làm cho chương trình gọn gàng hơn [trong một số trường hợp] nhưng cũng trở nên khó đọc, chẳng hạn câu lệnh trên có thể viết tách thành 2 câu lệnh i = 2; n = 3 + i; sẽ dễ đọc hơn ít nhất đối với các bạn mới bắt đầu tìm hiểu về lập trình.

Bài 4: SỬ DỤNG BIẾN TRONG CHƯƠNG TRÌNH

1. Biến là công cụ trong lập trình

- Để chương trình luôn biết chính xác dữ liệu cần xử lí ở vị trí nào trong quá trình hoạt động, các ngôn ngữ lập trình cung cấp một công cụ rất quan trọng cho người viết chương trình. Đó là biến nhớ, hay được gọi ngắn gọn là biến.

- Trong lập trình biến được dùng để lưu trữ dữ liệu và dữ liệu được biến lưu trữ có thể thay đổi trong khi thực hiện chương trình.

- Dữ liệu do biến lưu trữ được gọi là giá trị của biến.

Ví dụ: Xét câu lệnh: Writeln [15+5];  => lệnh này sẽ in ra màn hình số 20 và đưa con trỏ xuống đầu dòng tiếp theo.

=> Chúng ta có thể viết lại câu lệnh trên như sau: Ta có thể sử dụng hai biến X và Y để lưu giữ giá trị của hai số 15 và 5. Khi đó: Câu lệnh sẽ là: Writeln [x+y]; 

2. Khai báo biến

a. Khai báo biến

-  Khai báo biến gồm:

  • Khai báo tên biến. Tên biến phải tuân theo quy tắc đặt tên của ngôn ngữ lập trình.
  • Khai báo kiểu dữ liệu biến;

- Cú pháp: Var : ;

- Tùy theo ngôn ngữ lập trình, cú pháp khai báo biến có thể khác nhau.

- Ví dụ Khai báo biến trong Pascal:
Var  m, n: integer;

           s, dientich: real;

           thong_bao, ten: string;

Trong đó:

  • var là từ khóa dùng để khai báo,
  • m, n là các biến có kiểu nguyên [integer],
  • S, dientich là các biến có kiểu thực [real],
  • thong_bao, ten là biến kiểu xâu [string].

3. Sử dụng biến trong chương trình

- Các thao tác được thực hiện trên các biến là:

  • Gán giá trị cho biến và
  • Tính toán với các biến.

- Câu lệnh gán trong NNLT thường có dạng: Tên biến \[{}\]\[\leftarrow\] Biểu thức cần gán giá trị cho biến. Trong đó, \[\leftarrow\] biểu thị phép gán.

- Ví dụ:

  • x \[\leftarrow\] -c/b;
  • x \[\leftarrow\] y;
  • i \[\leftarrow\] i + 5;

- Trong ngôn ngữ lập trình Pascal, người ta kí hiệu phép gán là dấu kép := để phân biệt với dấu [=] phép so sánh.

Ví dụ:

 Lệnh trong Pascal 

Ý nghĩa

x := 12;

 Gán giá trị số12 vào biến x.

x := y;

 Gán giá trị đã lưu trong biến y vào biến x.

x := [a+b]/2;

 Thực hiện tính trung bình cộng 2 giá trị được lưu trong 2 biến a, b rồi gán lại giá trị cho biến x. 

x := x+1;

 Tăng x lên 1 đơn vị rồi gán lại giá trị cho biến x.

Lưu ý: Kiểu dữ liệu của giá trị được gán phải tùng với kiểu của biến và khi được gán giá trị mới thì giá trị cũ của biến sẽ bị xóa.

4. Hằng

- Hằng cũng dùng để lưu trữ dữ liệu

- Khác với biến, hằng là đại lượng có giá trị không đổi trong suốt quá trình thực hiện chương trình.

- Cú pháp khai báo hằng: Const =;

- Ví dụ: Const pi = 3.14; 

* Lưu ý:

- Không thể dùng câu lệnh để thay đổi giá trị của hằng ở bất kì vị trí nào trong chương trình 

- Khi cần thay đổi giá trị của hằng ta chỉ cần thay đổi giá trị tại nơi khai báo.

Video liên quan

Chủ Đề