Thao tác nhập - xuất dữ liệu là thao tác cơ bản và quan trọng, giúp các em tương tác với các chương trình. Trong bài này, thầy sẽ hướng dẫn các em cách thực hiện việc nhập dữ liệu từ bàn phím và xuất dữ liệu ra màn hình.
Nhập dữ liệu từ bàn phím, ở mức độ cơ bản, là việc người dùng (mà cụ thể ở đây là các em) nhập số, kí tự vào chương trình thông qua bàn phím máy tính. Số và kí tự do người dùng nhập vào sẽ được lưu trữ trong các biến tương ứng.
Trong ngôn ngữ C++, chúng ta có thể dùng cấu trúc lệnh sau đây để thực hiện việc nhập dữ liệu từ bàn phím:
cin >> <tên biến>;
Câu lệnh trên bao gồm:
Hàm cin - hàm nhập chuẩn của C++
Toán tử >> cho phép gán giá trị vào biến. Toán tử này tương thích với nhiều kiểu dữ liệu khác nhau nhờ đã nạp chồng (overload), vấn đề này các em chưa cần phải quan tâm vào lúc này
<tên biến> là tên của biến mà các em muốn nhập dữ liệu vào
Và đừng quên dấu ; để thông báo kết thúc câu lệnh
Khi đọc đến câu lệnh trên, chương trình sẽ dừng lại để người dùng nhập dữ liệu vào, sau đó dữ liệu sẽ được lưu trữ dưới dạng giá trị của biến đó. Vậy nhiều nhập nhiều biến thì làm thế nào?
cin >> <tên biến 1>;
cin >> <tên biến 2>;
cin >> <tên biến 3>;
...
cin >> <tên biến n>;
Đó là một cách, nhưng không hay lắm. Thật may mắn khi C++ cho phép chúng ta làm thế này:
cin >> <tên biến 1> >> <tên biến 2> >> <tên biến 3> >> ... >> <tên biến n>;
Khi chạy chương trình, các dữ liệu dành cho các biến cần được phân biệt bằng kí tự khoảng trắng. Kí tự khoảng trắng có thể là phím cách (space), phím tab hoặc phím enter.
Lưu ý: Dữ liệu đầu vào cần phải cùng kiểu dữ liệu với biến để tránh việc bị mất dữ liệu.
Ví dụ: Thầy muốn nhập dữ liệu vào ba biến sohang1, sohang2 và sohang3 kiểu nguyên. Thầy sẽ làm như sau:
int sohang1, sohang2, sohang3; //để có thể sử dụng biến nào, các em phải khai báo biến đó trước
cin >> sohang1 >> sohang2 >> sohang3;
Khi chương trình chạy, đến đoạn lệnh trên sẽ tạm dừng để người dùng nhập dữ liệu, ví dụ thầy nhập như sau
10 11 12
Sau đó thầy nhấn enter, lúc này biến sohang1 sẽ lưu giá trị là 10, sohang2 sẽ lưu giá trị là 11, sohang3 sẽ lưu giá trị là 12.
Nếu thầy nhập
10.0 11 12
thì giá trị lưu trong các biến sohang1, sohang2 và sohang3 lần lượt là 10, 0 và 0. Do ở biến sohang1 và dữ liệu nhập vào nó không tương thích nên dẫn đến mất dữ liệu.
Sau khi xử lí đầu vào xong, các chương trình thường hiển thị kết quả đầu ra ở màn hình máy tính. Trong phạm vi làm quen, đầu ra ở đây của chúng ta chỉ gồm kí tự và số.
Trong ngôn ngữ C++, chúng ta có thể dùng cấu trúc lệnh sau đây để thực hiện việc xuất dữ liệu ra màn hình:
cout << <dữ liệu>;
Câu lệnh trên bao gồm:
Hàm cout - hàm xuất chuẩn của C++
Toán tử << cho phép xuất dữ liệu ra. Toán tử này cũng tương thích với nhiều kiểu dữ liệu khác nhau nhờ nạp chồng
<dữ liệu> như thầy đã nói thì có thể là kí tự, xâu kí tự hoặc số, cũng có thể là tên của biến hoặc biểu thức
Và cũng đừng quên dấu ; nhé
Đọc đến câu lệnh trên, chương trình sẽ xuất <dữ liệu> ra màn hình. Để xuất nhiều <dữ liệu>, ta có thể dùng cấu trúc sau:
cout << <dữ liệu 1> << <dữ liệu 2> << <dữ liệu 3> << ... << <dữ liệu n>;
Thầy sẽ lấy ví dụ cho các em dễ hiểu. Ví dụ thầy có hai biến a và b và thầy muốn xuất ra kết quả phép cộng của chúng. Thầy sẽ có dòng lệnh sau:
cout << a << "+" << b << "=" << a+b;
Giả sử thầy nhập vào a và b lần lượt các giá trị 5 và 6. Màn hình chương trình khi đọc đến dòng lệnh trên sẽ xuất ra như sau:
5+6=11
Nếu các em muốn xuống hàng thì có thể dùng một trong hai cách sau:
Dùng hàm endl
Dùng "\n"
Sau đây thầy sẽ lấy ví dụ về hai cách trên.
Giả sử thầy muốn in ra câu nói của nhà thơ ngụ ngôn La Fontaine như sau:
Patience is bitter
but its fruit is sweet.
Thầy có thể viết dòng lệnh như sau:
Dùng hàm endl
cout << "Patience is bitter" << endl << "but its fruit is sweet.";
hoặc dùng "\n"
cout << "Patience is bitter\nbut its fruit is sweet.";
Hai câu lệnh trên thể hiện ra màn hình như nhau.
Mặc dù vậy, endl có tốc độ thực hiện chậm hơn "\n". Tuy nhiên ở phạm vi học tập, các em chưa phải lưu ý việc đó.
Có thể nãy giờ các em đang thử mấy dòng lệnh trên, nhưng khi chạy thì lại bị báo lỗi. Đó là vì các em chưa khai báo thư viện và không gian tên để sử dụng các câu lệnh trên. Trong phạm vi mới bắt đầu, thầy chỉ giới thiệu sơ lược cho các em hiểu về hai điều trên chứ không đi sâu vào.
Thư viện là nơi chứa các thành phần như hàm, lớp,v.v... hỗ trợ cho một khía nhất định cho việc lập trình.
Thư viên <iostream> là thư viện các hàm nhập - xuất chuẩn như cin và cout.
Như đã biết qua bài 3, các em khai báo thư viện <iostream> ở đầu chương trình bằng cách dùng cấu trúc #include <tên thư viện>:
#include <iostream>
Không gian tên là ngữ cảnh cho các đối tượng xác định.
Lấy ví dụ lớp A và B có hai bạn cùng tên, chẳng hạn là tên Phúc, để phân biệt hai bạn qua tên thì có thể gọi Phúc lớp A và Phúc lớp B hoặc nếu đã nhắc đến lớp nào từ trước thì có thể biết là đang nói đến bạn Phúc nào. Trong ví dụ trên, A và B chính là không gian tên.
Không gian tên std cho phép người dùng sử dụng các hàm chuẩn như cin, cout, endl,v.v..
Các em khai báo không gian tên ở phần khai báo của chương trình bằng cách dùng cấu trúc using namespace <tên không gian>;:
using namespace std;
Bên cạnh cách làm trên, các em có thể gọi không gian tên phía trước các hàm các em sử dụng. Ví dụ:
std::cout << "Patience is bitter" << std::endl << "but its fruit is sweet.";
Sau đây là một ví dụ về cách nhập - xuất dữ liệu bằng ngôn ngữ lập trình C++. Thầy sẽ lấy ví dụ cho bài toán sau: Cho hai số nguyên có giá trị không lớn hơn 106. Tính tổng của hai số đó.
#include <iostream> //Khai báo thư viện nhập xuất
using namespace std; //Khai báo không gian tên giúp việc nhập xuất đơn giản hơn
int main(){
int a, b; //Khai báo biến kiểu nguyên trước khi dùng
cout << "Nhap so hang thu nhat: "; //Xuất ra dòng chữ "Nhap so hang thu nhat"
cin >> a; //Dừng lại để nhập dữ liệu cho biến a
cout << "Nhap so hang thu hai: "; //Xuất ra dòng chữ "Nhap so hang thu hai"
cin >> b; //Dừng lại để nhập dữ liệu cho biến b
cout << "Tong hai so hang la: " << a+b << endl; //Xuất ra dòng chữ "Tong hai so hang la: " và kết quả, sau đó xuống hàng.
return 0; //Trả về giá trị cho hàm main
}
HƯỚNG DẪN LÀM BÀI TRÊN TRANG UPCODER
Bước 1: Vào trang upcoder.hcmup.edu.vn
Bước 2: Chọn đăng ký
Điền đầy đủ các thông tin mà hệ thống yêu cầu, mã học sinh là số thứ tự trong lớp.
Trường hợp nhóm 2 học sinh làm bài chung thì ghi 2 mã cách nhau bằng dấu gạch ngang: Ví dụ: 05-06, Tên cũng ghi tên hai đứa: Vd: Lâm Huệ mẫn - Nguyễn Thế Phong
Bước 3: Vào email để kích hoạt tài khoản, nhớ mã số kích hoạt
Bước 4: Vào lại trang upcoder để đăng nhập
Bước 5: Bấm vào mục kỳ thi --> Chọn kỳ thi, vd: TestCB
Nếu hệ thống yêu cầu điền mã lớp thì điền lớp mình, Vd: 11A6
Người viết: Thái Dương Bảo Duy