BIẾN. ĐỊNH DẠNG ĐẦU RA


Biến
Biến là một ô trong bộ nhớ máy tính có tên và lưu trữ một số giá trị tương ứng với loại .

Từ "biến" cho chúng ta biết rằng giá trị của nó có thể thay đổi trong quá trình thực hiện chương trình.  Khi một giá trị biến mới được lưu, giá trị biến cũ sẽ bị xóa.


Đối với máy tính, tất cả thông tin là dữ liệu trong bộ nhớ của nó - tập hợp các số 0 và 1 (nói một cách đơn giản, mọi thông tin trong máy tính chỉ là những con số và nó xử lý chúng theo cùng một cách). Tuy nhiên, chúng ta biết rằng số nguyên và số phân số hoạt động khác nhau. Do đó, mỗi ngôn ngữ lập trình có các loại dữ liệu khác nhau, được xử lý bằng các phương pháp khác nhau.

Ví dụ:
- số nguyên biến – gõ int (từ số nguyên tiếng Anh – whole), chiếm 4 byte trong bộ nhớ;
- biến thực có thể có một phần phân số (loại float – từ dấu chấm động trong tiếng Anh – dấu chấm động) chiếm 4 byte trong bộ nhớ;
- ký tự (loại char – từ ký tự tiếng Anh – ký hiệu), chiếm 1 byte trong bộ nhớ.

Hãy thử thêm một số biến vào chương trình của chúng ta.
Trước khi sử dụng một biến, bạn cần yêu cầu máy tính phân bổ không gian trong bộ nhớ cho biến đó. Để làm điều này, bạn cần khai báo một biến, tức là chỉ định loại giá trị mà nó sẽ lưu trữ và đặt tên cho nó.
Ngoài ra, nếu cần, bạn có thể gán giá trị ban đầu cho nó. 

Hãy lấy một chương trình làm ví dụ: sử dụng Hệ thống; chương trình lớp {     khoảng trống tĩnh Main()     {         int a = 6, b; // khai báo 2 biến kiểu số nguyên, tại biến a lưu ngay giá trị 6.   // Biến b chưa được khởi tạo; // những gì sẽ có trong bộ nhớ trong trường hợp này, chúng tôi không biết.     } } Máy tính sẽ không cần thiết nếu nó không có khả năng lưu trữ nhiều thông tin khác nhau trong bộ nhớ và có thể xử lý thông tin cùng loại bằng cách sử dụng cùng một thuật toán. 
Để tạo ra nhiều chương trình thú vị hơn, người ta phải học cách lưu trữ thông tin trong bộ nhớ của máy tính. Đồng thời, chúng ta cần học cách truy cập bằng cách nào đó vào các ô nhớ của máy tính. 
Trong lập trình, cũng như trong cuộc sống, để chỉ bất kỳ phần nào trong bộ nhớ của máy tính, nó sẽ xuất hiện theo tên. Sử dụng tên này, bạn có thể đọc và viết thông tin ở đó.

Ví dụ
Hãy thử viết công thức tính số nguyên tố.

Nhiệm vụ của chúng ta là hiển thị một biểu thức số học nào đó lên màn hình và yêu cầu máy tính tính toán.
Ví dụ: 
5+7=12
Ngoài ra, thay vì 5 và 7, có thể có các số khác nhau, tùy thuộc vào giá trị của các biến ab trong chương trình.

Trong câu lệnh đầu ra, bạn không chỉ có thể hiển thị văn bản mà còn hiển thị giá trị của các biến, cũng như kết quả của một biểu thức số học. Hơn nữa, trình tự đầu ra có thể khác nhau. Ví dụ, để hiển thị biểu thức trên, bạn cần viết nó như sau: Console.WriteLine(a + "+" + b + "=" + (a+b)); Nếu chúng ta muốn hiển thị giá trị của một biến, thì chúng ta chỉ cần chỉ định tên của nó mà không cần dấu ngoặc kép. Nếu chúng ta muốn hiển thị kết quả của một biểu thức số học, thì chỉ cần viết biểu thức số học một cách chính xác là đủ. Xin lưu ý: 
Các biến và văn bản được phân tách với nhau bằng toán tử "+", trong khi văn bản được viết trong dấu ngoặc kép và các biến không có dấu ngoặc kép.
 

Nhập câu lệnh
Để người dùng có thể tự đặt giá trị của biến, cần có thể nhập giá trị từ bàn phím. 
C# có hai toán tử nhập giá trị: Console.Read(); and Console.ReadLine();
 
Read chỉ đọc một ký tự từ các giá trị đã nhập hoặc -1 nếu không còn ký tự nào để đọc. Hơn nữa, phương thức này trả về một mã ký tự số nguyên, vì vậy, để nhận được một biến ký tự, bạn cần thực hiện chuyển đổi bằng cách sử dụng Convert.ToChar().
  int x = Console.Read(); // đọc mã ký tự char a = Convert.ToChar(x); // chuyển đổi mã nhận được thành giá trị của biến ký tự  
Với ReadLine() , bạn có thể đọc một chuỗi chuỗi trước khi nhập một dòng mới. Do đó, phương thức có thể trả về một chuỗi hoặc null nếu không còn chuỗi nào nữa.

Ví dụ: mục nhập đọc dòng: stringline = Console.ReadLine();
Để đọc một giá trị số nguyên, bạn cần đọc chuỗi và chuyển đổi nó thành một số:
  int a = int.Parse(Console.ReadLine());  
Nếu các số nằm trên một dòng, thì bạn cần đếm dòng, & nbsp; và lấy một mảng các chuỗi từ nó bằng cách sử dụng ký tự khoảng trắng làm dấu phân cách. Và sau đó mỗi phần tử của mảng được chuyển đổi thành một số: chuỗi[] số = Console.ReadLine().Split(' '); int a = int Parse(số[0]); int b = int.Pude(số[1]);

Thông số đầu ra
Để xuất giá trị thực, chỉ cần gọi phương thức Console.Write hoặc Console.WriteLine:
  gấp đôi a = 0,9999; Console.Write(a);  
Nhưng đôi khi bạn cần định dạng trước đầu ra của các giá trị, sẽ thuận tiện khi thực hiện việc này bằng cách sử dụng phương thức String.Format, để biết thêm chi tiết tại đây.
Đầu ra với độ chính xác nhất định
Để định dạng số phân số, bộ xác định f được sử dụng, số sau dấu phân cách cho biết có bao nhiêu ký tự sau dấu phân cách. gấp đôi a = 12,123; Console.WriteLine(String.Format("{0:f2}", a)); Kết quả sẽ là 12,12, nhưng nếu bạn sử dụng giá trị 0,9999, việc làm tròn không kiểm soát sẽ xảy ra và   1,00.

Do đó, thuật toán sau được sử dụng để loại bỏ các dấu thay vì làm tròn:
1) nhân giá trị ban đầu với 10, bao nhiêu lần tùy ý bạn để lại số thập phân;
2) sử dụng phương thức   Math.Truncate, chúng ta chỉ để lại phần nguyên;
3) chia giá trị kết quả cho 10, số lần bạn cần để lại số thập phân.

Ví dụ về đầu ra có độ chính xác hai thập phân: 
gấp đôi a = 0,9999; a = a * Math.Pow(10, 2); a = Math.Truncate(a); a = a / Math.Pow(10, 2);
 
Loại dấu phân cách khi xuất kết quả (dấu chấm hoặc dấu phẩy) tùy thuộc vào cài đặt vùng của máy tính, do đó, để luôn sử dụng dấu chấm làm dấu phân cách, bạn cần thay đổi cài đặt vùng thành bất biến, kết quả ví dụ:
 
CultureInfo ci = new CultureInfo(""); gấp đôi a = 0,9999; a = a * Math.Pow(10, 2); a = Math.Truncate(a); a = a / Math.Pow(10, 2); Console.WriteLine(a.ToString(ci));