Chương 2: CẤU TRÚC CỦA MỘT CHƯƠNG TRÌNH C++ Mục tiêu Trình bày cấu trúc của một chương trình C++ đầy đủ; các bước thực hiện chương trình và các thao tác nhập xuất dữ liệu.. Nội dun
Trang 1Chương 2: CẤU TRÚC CỦA MỘT CHƯƠNG
TRÌNH C++
Mục tiêu
Trình bày cấu trúc của một chương trình C++ đầy đủ; các bước thực hiện chương trình và các thao tác nhập xuất dữ liệu.
Nội dung
Cấu trúc của một chương trình C++
Các tập tin thư viện thông dụng
Không gian tên
Các bước thực hiện chương trình C++
Nhập/Xuất dữ liệu
Trang 2Thông thường một chương trình được viết bằng C++ gồm các phần chính sau:
Phần khai báo các tệp nguyên mẫu (tệp tiêu đề) Phần khai báo sử dụng không gian tên
Định nghĩa các kiểu dữ liệu Phần khai báo các kiểu dữ liệu, biến, hằng, hàm, … do người lập trình định nghĩa và được sử dụng chung trong toàn bộ chương trình
Hàm main và thân chương trình Định nghĩa các hàm con (nếu có)
Ví dụ: Xét chương trình sau:
2.1 Cấu trúc của một chương trình C++
Trang 3#include <iostream>
int binh_phuong( int );
int lap_phuong( int );
using namespace std;
void main()
{ cout<<“binh phuong cua 4 la: ”<<binh_phuong(4)<<endl;
cout<<“lap phuong cua 4 la: ”<<lap_phuong(4)<<endl;
Trang 4Thư viện là các đoạn mã được viết sẵn
Do nhà sản xuất: thư viện chuẩn
Do người lập trình: thư viện mở rộng
Thư viện gồm hai phần:
Giao diện: chứa trong tệp tiêu đề (.h) cho biết các mục có trong thư viện và cách sử dụng chúng
Phần thực thi: chứa trong tệp khác (.cpp), gồm các định nghĩa của các mục có trong thư viện
Chẳng hạn: #include <iostream>
#include <string>
2.2 Các tập tin thư viện thông dụng
Trang 5Một số tập tin thư viện thông dụng
iostream: thư viện chứa các hàm nhập xuất dữ liệu như:
iomanip: thư viện chứa các hàm định dạng dữ liệu xuất:
setprecision(n), setw(n), setfill(ch), setiosflags(), …
2.2 Các tập tin thư viện thông dụng
Trang 6Không gian tên (namespace) là một đặc trưng của ANSI C++, cho phép chúng ta gộp một nhóm các lớp, các đối tượng toàn cục và các hàm dưới một cái tên
Không gian tên là một cơ chế dùng để hạn chế phạm vi
Trang 7Ví dụ: Định nghĩa không gian tên General như sau:
2.3 Không gian tên
Trang 8C++ có nhiều thư viện có sẵn, mỗi thư viện được phân cấp trong một không gian tên riêng.
Theo chuẩn ANSI C++, tất cả định nghĩa của các lớp, đối tượng và hàm của thư viện chuẩn đều được định nghĩa trong
namespace std.
Để sử dụng một thư viện hay hàm có sẵn thì phải khai báo không gian tên chứa thư viện hay hàm đó
Có hai cách sử dụng không gian tên:
Truy xuất bằng toán tử phạm vi ::
Dùng chỉ thị using
2.3 Không gian tên
Trang 9Truy xuất bằng toán tử phạm vi
{ std::cout<<first::a<<std::endl;
std::cout<<second::a<<std::endl;
}
2.3 Không gian tên
Trang 10void main() { using namespace first;
cout<<first::a<<endl; cout<<a + 2<<endl;
}
2.3 Không gian tên
Trang 11Ví dụ: Xét 2 đoạn chương trình sau:
cout<< “Hello” << endl;
return 0;
}
2.3 Không gian tên
Trang 12Quy trình viết và thực hiện chương trình Biên soạn tệp chương trình nguồn
Tiền xử lý Biên dịch chương trình Chạy chương trình
2.4 Các bước thực hiện chương trình C++
Trang 13Xác định yêu cầu của chương trình (bài toán):
Dữ liệu đầu vào (input)
Dữ liệu đầu ra (out put)
Chọn giải thuật để thực hiện yêu cầu
Soạn thảo chương trình nguồn
Dịch chương trình nguồn để sửa các lỗi gọi là lỗi cú pháp
Chạy chương trình, kiểm tra kết quả Nếu sai, sửa lại chương trình, dịch và chạy lại để kiểm tra
Quy trình viết và thực hiện chương trình
Trang 14Biên soạn chương trình là gõ nội dung chương trình vào máy, đặt tên và lưu lại dưới dạng file.
Có thể soạn thảo chương trình trên nhiều bộ soạn thảo (editor) khác nhau nhưng phải chạy trên môi trường có tích hợp C++
Nội dung chương trình cần phải trình bày rõ ràng, sáng sủa
Các câu lệnh phải được gióng thẳng cột theo đúng cấu trúc
Các câu chú thích nên ngắn gọn, rõ nghĩa và phù hợp
Biên soạn tập tin chương trình nguồn
Trang 15Trước khi chương trình nguồn được biên dịch, nó được bộ tiền xử lý kiểm tra và thực hiện các nhiệm vụ cơ bản:
Loại bỏ các chú thích từ mã nguồn Tìm các tập tin nguyên mẫu để thực thi
Tất cả các lệnh tiền xử lý đều bắt đầu bằng ký tự #
Ví dụ: #include <iostream>
Báo cho bộ tiền xử lý tìm trong thư mục chuẩn, gọi tập tin
tiêu đề iostream.h và chèn nội dung của nó vào chương trình
Trình biên dịch
Tiền xử lý
Trang 16Biên dịch chương trình là quá trình biến đổi mã nguồn thành mã máy
Trong quá trình biên dịch chương trình nếu có lỗi thì trình biên dịch sẽ thông báo lỗi
Nếu không có lỗi thì sẽ cho ra kết quả là một tập tin thực thi ứng dụng có đuôi exe gọi là chương trình đích
Biên dịch chương trình
Trang 17Các giai đoạn biên dịch chương trình
Viết bằng C++ Ngôn ngữ máy Ngôn ngữ
máy
Tập tin khả thi
.exe
Tập tin đối tượng obj
Tập tin nguồn
.cpp
Mã khác từ thư viện, …
Thông qua trình biên dịch
Thông qua trình
liên kết
Biên dịch chương trình
Trang 18Sau khi biên dịch thành công sẽ cho tập tin thực thi (.exe) và các tập tin thư viện khác
Có thể thi hành chúng như là một tập tin khả thi bình thường
Chạy chương trình
Trang 19Nhập dữ liệu Xuất dữ liệu
2.5 Nhập xuất dữ liệu
Trang 20Để nhập dữ liệu vào từ bàn phím ta sử dụng hàm cin và toán
tử nhập >> theo cú pháp:
cin >> biến 1 ; cin >> biến 2 ; …
cin >> biến n ;
cin>>biến 1>>biến 2 >>biến n;
Nhập dữ liệu
Trang 21Ví dụ :
Để nhập giá trị vào cho biến a và b ta viết:
cin>>a;
cin>>b;
Lưu ý: Khi sử dụng cin
- Lệnh sẽ bỏ qua không gán các dấu trắng (dấu cách, tab, xuống dòng vào cho các biến.
- Khi nhập vào dãy byte nhiều hơn cần thiết để gán cho
các biến thì số byte còn lại (kể cả dấu xuống dòng) sẽ
nằm trong cin Và nó sẽ tự động gán cho các biến trong
lần nhập sau
Nhập dữ liệu
Trang 22Ví dụ : Xét đoạn chương trình sau
Trang 23Để xuất giá trị của một biểu thức ra màn hình ta sử dụng hàm cout và toán tử xuất << theo cú pháp:
cout << biểu thức 1 ; cout << biểu thức 2 ; …
cout << biểu thức n ;
cout<<biểu thức 1<<biểu thức 2 <<biểu thức n;
Xuất dữ liệu
Trang 24Ví dụ :
Để xuất chuỗi “Chieu dai la 23 met” ta viết:
cout << “Chieu dai la”;
cout << “Chieu dai la 23 met”;
Để xuất ra tổng của 2 số a và b ta viết
cout << “Tong la” << a+b ;
Xuất dữ liệu
Trang 25Để sử dụng các hàm nhập xuất dữ liệu ta cần khai báo tập tin
tiêu đề iostream.h theo cú pháp:
#include <iostream>
Thực thi chương trình
Trang 26Các giá trị xuất ra màn hình có thể được trình bày dưới nhiều dạng khác nhau thông qua các công cụ định dạng như: các hàm, các cờ, các phương thức định dạng
Trang 29Các cờ định dạng
- Định dạng số thực:
- ios::fixed : dấu phẩy tĩnh (ngầm định)
- ios::scientific : Dấu phẩy động
- ios::showpoint : Xuất đủ số lẻ sau phần thập
phân.
Định dạng dữ liệu xuất
Trang 301. Viết chương trình tính và hiển thị ra màn hình chu
vi và diện tích của hình chữ nhật Với độ dài các cạnh được nhập vào từ bàn phím.
2. Giải phương trình bậc nhất với các hệ số a, b, c
Trang 314 Viết chương trình giải phương trình bậc 2 với các
hệ số được nhập vào từ bàn phím.
5. Nhập vào 3 số nguyên Kiểm tra 3 số đó có lập
thành 3 cạnh của tam giác hay không? Nếu có thì cho biết đó là tam giác gì?
BÀI TẬP THỰC HÀNH