BÀI 3 NHẬP, XUẤT - GitHub Pages 3.pdfNHẬP XUẤT DỮLIỆU 3 C++ sử dụng lớp trừu...

35
BÀI 3 NH P, XUT Email: Giảng viên: Nguyễn Văn Đồng– Khoa Công nghệ thông tin – ĐH Thủy Lợi nvdong @tlu.edu.vn

Transcript of BÀI 3 NHẬP, XUẤT - GitHub Pages 3.pdfNHẬP XUẤT DỮLIỆU 3 C++ sử dụng lớp trừu...

  • BÀI 3

    NHẬP, XUẤT

    Email:

    Giảng viên: Nguyễn Văn Đồng– Khoa Công nghệ thông tin – ĐH Thủy Lợi

    [email protected]

    mailto:[email protected]

  • NỘI DUNG

    Nhập dữ liệu từ bàn phím

    Xuất dữ liệu ra màn hình

    Nhập xuất dữ liệu với tệp tin

    2

  • NHẬP XUẤT DỮ LIỆU

    3

    C++ sử dụng lớp trừu tượng stream (dòng) để vào ra dữ liệu

    Dòng là chuỗi các bytes dữ liệu

    Dòng nhập: là chuỗi bytes từ thiết bị bàn phím, ổ cứng, mạng đến bộ nhớ

    Dòng xuất: là chuỗi các bytes từ bộ nhớ đi ra màn hình, máy in, ổcứng, truyền mạng…

    Các thư viện chuẩn nhập/xuất:

    File chuẩn

    iostream Định nghĩa các đối tượng cin, cout

    fstream Cung cấp các hàm cho điểu khiển tệp tin

    (Xemmục2.9.1tronggiáotrình)

  • NHẬP XUẤT DỮ LIỆU

    Cần khai báo tiền xử lý khi nhập, xuất dữ liệu

    #include

    Khi sử dung cin, cout nên khai báo không gian tên sau:

    using namespace std;

    4

  • XUẤT DỮ LIỆU

    Sử dụng đối tượng cout và toán tử

  • XUẤT DỮ LIỆU

    6

    Ví dụ: #include #include using namespace std;

    int main(){

    string str ="DAI HOC THUY LOI";cout

  • XUẤT DỮ LIỆU

    7

    Sử dụng endl để thêm dòng mới

    Với xâu ký tự:o sử dụng “\n” tại vị trí muốn xuống dòng

    osử dụng “\t” để cách ra một khoảng trống

  • ĐOẠN LỆNH SAU CHO NHỮNG GÌ TRÊN MÀN HÌNH?

    const double PI = 3.1415926;

    double x= 30;

    cout

  • ĐOẠN LỆNH SAU CHO NHỮNG GÌ TRÊN MÀN HÌNH?

    int x = 3, y=5;

    int z = 3*x + y;

    cout

  • NHẬP DỮ LIỆU TỪ BÀN PHÍM

    10

    Sử dụng đối tượng cin và toán tử >> để nhập dữ liệu

    Sau toán tử >> là biến

    Cú pháp:

    Cách 1: cin>> tenBien;

    Cách 2: cin>> tenBien1 >> tenBien2;

    cin nhập cho đến khi phím xuống dòng, phím tab hoặc phím

    space được gõ

  • NHẬP DỮ LIỆU TỪ BÀN PHÍM

    11

    #include using namespace std;

    int main(){

    double a;cin>>a; //nhap du lieu cho canh hinh vuong luu vao bien a

    double s; //luu dien tich hinh vuong s = a*a;cout

  • NHẬP DỮ LIỆU TỪ BÀN PHÍM

    coutr1;

    coutr2;coutr3;

    double r = 1/(1/r1+1/r2+1/r3);

    cout

  • NHẬP DỮ LIỆU TỪ BÀN PHÍM

    Trường hợp nhập nhiều biến trên cùng một lệnh, giá trị nhập cách nhau bởi dấu cách

    int x,y;coutx>>y;cout

  • NHẬP DỮ LIỆU TỪ BÀN PHÍM

    Chú ý đến kiểu dữ liệu khi nhập đầu vào

    Khi nhập sai kiểu dữ liệu chương trình không báo lỗi nhưng sẽ cho giá trị không đúng.

    14

    int x;

    coutx;

    cout

  • NHẬP DỮ LIỆU TỪ BÀN PHÍM

    Trường hợp số giá trị nhập vào nhiều hơn số biến thì máy sẽ lưuvào bộ đệm để cho lần nhập biến tiếp theo

    int x,y; coutx; couty;cout

  • NHẬP XÂU KÝ TỰ

    16

    Toán tử >> nhập xâu cho đến khi gặp khoảng trống → chỉ nhập đượcmột từ

    Cách khác:

    Sử dụng hàm getline trong thư viện string

    Thêm vào khai báo tiền xử lý

    #include

    Khai báo biển thuộc kiểu dữ liệu string

    Gọi hàm getline trong câu lệnh

    getline(cin, tenbien);

  • NHẬP XÂU KÝ TỰ

    Ví dụ:

    #include

    #include

    using namespace std;

    int main()

    {

    string diachi;

    cout

  • TÌM LỖI SAI TRONG CÁC CÂU LỆNH SAU

    cout

  • BÀI TẬP

    Bài 1:Lập trình nhập họ và tên, quê quán của một sinh viên và hiển thị ra

    màn hình.

    Bài 2: Lập trình đọc vào tọa độ 3 điểm A, B, C. Tính độ dài các đọan thẳng

    AB, AC, BC.

    Bài 3: Nhập giá trị x, y và tính biểu thức sau:

    2𝑒−𝑥+𝑦

    𝑥2+𝑦2

    19

  • NHẬP XUẤT TỆP TIN

    Thông tin được lữu trữ thành các tệp tin (file) trên ổ cứng, đĩa…

    Mỗi têp tin xác định bởi:

    Tên tệp tin

    Vị trí (đường dẫn) của tệp tin trên đĩa

    Các loại tệp tin:

    Tệp văn bản: lưu dưới dạng ký tự trên các dòng

    Tệp nhị phân: lưu dưới dạng nhị phân

    (Xemmục2.9.3tronggiáotrình)

    20

  • NHẬP XUẤT TỆP TIN

    Ví dụ: tệp tin văn bản

    o Tên tệp: sinhvien.txt

    Ho ten: Nguyen Van A

    Nam sinh: 1996

    Que quan: Ha Noi

    Ho ten: Nguyen Van B

    Nam sinh: 1995

    Que quan: Ha Nam

    21

  • Khai báo biến tệptin

    1Mở tệptin

    2Thao tácxửlý dữ liệu

    3Đóng tệptin

    4

    22

    CÁC BƯỚC THAO TÁC VỚI TỆP TIN

  • KHAI BÁO TỆP TIN

    23

    C++ cung cấp 3 lớp hỗ trợ cho việc đọc, ghi ra tệp tin

    ofstream: dùng để ghi ra tệp tin

    ifstream: đọc tệp tin

    fstream: vừa đọc, vừa ghi ra tệp tin

    Khai báo thêm thư viện khi làm việc với tệp tin

    #include

    Cú pháp khai báo:

    ifstream bientep;

    hoặc ofstream bientep;

    hoặc fstream bientep;

  • MỞ TỆP TIN

    24

    Cách 1:

    Mở tệp sau khi đã khai báo biến tệp

    bientep.open( tentep);

    Cách 2:

    Mở tệp ngay khi khai báo

    loptep bientep ( tentep);

  • MỞ TỆP TIN

    25

    Ví dụ:// vi du ve mo tep

    ##iinncclluuddee

    #include

    using namespace std;

    int main () {{

    ofstream teptin; //Khai bao tep tin

    teptin.open ("vidu.txt"); //Mo tep tin de xu ly

    teptin

  • XỬ LÝ TỆP TIN –NHẬP

    #include

    #include

    using namespace std;

    int main () {

    double a,b,c;

    ifstream teptin; //Khai bao tep tin

    teptin.open ("solieu.txt"); //Mo tep tin de xu ly

    teptin >>a>>b>>c; //Doc du lieu tu tep vao bien

    cout bien;

    Ví dụ:

    26}

  • XỬ LÝ TỆP TIN –NHẬP

    #include

    #include

    using namespace std;

    int main () {

    double a,b,c;

    ifstream teptin; //Khai bao tep tin

    Sử dụng toán tử >> để nhập dữ liệu từ tệp tin vào biến

    bientep >> bien; Ví dụ:

    teptin.open ("solieu.txt"); //Mo tep tin de xu ly

    teptin >>a>>b>>c;

    cout

  • XỬ LÝ TỆP TIN – XUẤT

    #include

    #include

    using namespace std;

    int main () {

    ofstream teptin; //Khai bao tep tin

    teptin.open ("sinhvien.txt"); //Mo tep tin de xu ly

    teptin

  • XỬ LÝ TỆP TIN – XUẤT

    #include

    #include

    using namespace std;

    int main () {

    ofstream teptin; //Khai bao tep tin

    teptin.open ("sinhvien.txt"); //Mo tep tin de xu ly

    teptin

  • ĐÓNG TỆP TIN

    Cú pháp:

    bientep.close();

    Ví dụ: #include #include

    using namespace std;

    int main () {

    ofstream teptin; //Khai bao tep tin

    teptin.open ("sinhvien.txt"); //Mo tep tin de xu ly

    teptin

  • MỘT SỐ HÀM XỬ LÝ KHÁC

    31

    Hàm Mô tả

    is_open() Kiểm tra đã mở tệp chưa? Nếu True là tệp đã được mở, False là tệp chưa được mở.

    eof() Trả về True khi đang đọc ở cuối tệp

  • MỘT SỐ HÀM XỬ LÝ KHÁC

    Ví dụ: #include #include #include using namespace std; int main () {ifstream teptin; //Khai bao tep tinteptin.open ("sinhvien.txt"); //Mo tep tin de xu ly if(teptin.is_open()){

    string hoten; int namsinh;while(!teptin.eof()){

    getline(teptin, hoten); teptin>>namsinh; cout

  • BÀI TẬP

    Bài 5: Đọc vào tọa độ 3 điểm A, B, C bàn phím.

    a. Ghi dãy số đó ra tệp tin có tên là “Tamgiac”

    b. Đọc từ file “Tamgiac” tọa độ 3 điểm A, B, C. Tính chu vi tam giác đó và hiển thị kết quả ra màn hình.

    33

    Bài 4:Nhập thông tin một hàng hóa từ bàn phím bao gồm: tên hàng hóa,đơn giá, số lượng. Sau đó thực hiện ghi ra tệp, mỗi thông tin ghi trên mộtdòng.

  • THẢO LUẬN!

    34

  • CHUẨN BỊ CHO BÀI SAU!

    CÂU LỆNH LỰA CHỌN: Chương 4 trong giáo trình