Bài toán: Viết chương trình nhậphọ tên, điểm toán, điểm văn của một điểm trung bình và xuất kết quả... Bài toán: Viết chương trình nhậphọ tên, điểm toán, điểm văn của một điểm trung
Trang 1Chương 1
Ôn Tập
Trang 3 Bài toán: Viết chương trình nhập
họ tên, điểm toán, điểm văn của một
điểm trung bình và xuất kết quả.
2 BÀI TOÁN
Trang 43 BIẾN TOÀN CỤC
Khái niệm:Biến toàn cục là biến
được khai báo bên ngoài tất cả các hàm và được hiểu bên trong tất cả các hàm.
Thông thường biến toàn cục
được khai báo ở đầu chương trình.
Lưu ý: Biến khai báo bên trong
thân hàm main không là biến toàn cục mà là biến cục bộ của hàm main.
Trang 528. printf(“\n Van: %d” , van);
29. printf(“\n Trung binh:%f”,
dtb);
Trang 64 BIẾN CỤC BỘ
Khái niệm: Biến cục bộ là
biến đƣợc khai báo và đƣợc hiểu bên trong một phạm vi nào đó của chtrình, ra khỏi phạm vi này biến không còn đƣợc biết đến nữa vì không gian bộ nhớ cấp phát cho biến đƣợc tự động thu hồi.
Thông thường biến cục bộ được
khai báo bên trong thân của một hàm hay một khối lệnh
Lưu ý: Một biến được khai báo
bên trong thân hàm main là biến cục bộ của hàm main.
Trang 728. printf(“\n Van: %d” , van);
29. printf(“\n Trung binh:%f” ,
dtb);
Trang 9TRÌNH C ĐƠN GIẢN
chương trình C cơ bản
khai báo, khối hàm main và khối định nghĩa hàm Ba khối lệnh này được trình
Trang 10TRÌNH C ĐƠN GIẢN
Khối khai báo
Khối hàm main
Khối định nghĩa hàm
1
2
3
Trang 11TRÌNH C ĐƠN GIẢN
Khối khai báo: chứa các khai
báo hàm, khai báo biến toàn cục, khai báo sử dụng thư viện, khai báo hằng, khai báo kiểu dữ liệu…
Khối hàm main: chứa duy nhất
hàm main và thân hàm của nó Trong thân hàm main chứa các lời gọi hàm cần thiết cho chương trình.
Khối định nghĩa hàm: chứa các
định nghĩa hàm đã được khai
Trang 12 Bài toán: Viết chương trình nhập
họ tên, điểm toán, điểm văn của một
điểm trung bình và xuất kết quả.
5.2 CHƯƠNG TRÌNH
Trang 176 THAM SỐ VÀ HÀM
Khái niệm: Các thông số đầu
vào của một hàm đƣợc gọi là tham số của hàm.
Phân loại tham số: có 2 loại
tham số là tham trị và tham biến.
Tham trị: Không đổi
Tham biến: Thay đổi
Cấp phát bộ nhớ:
Tham trị: Cấp phát
Tham biến: Không cấp phát bộ
nhớ khi hàm được gọi thực hiện
mà sử dụng bộ nhớ của đối số
Trang 186 THAM SỐ VÀ HÀM
1. #include <conio.h>
2. #include <stdio.h>
3. void Nhap(char [],int&,int &);
4. void XuLy(int, int, float &);
5. void Xuat(char[],int,int,float);
Trang 216 THAM SỐ VÀ HÀM (tiếp)
1. void Nhap(char hoten[30],
int &toan, int &van)
Trang 2320.typedef struct HocSinh HOCSINH;
21.void Nhap(HOCSINH &);
22.void Xuat(HOCSINH);
23.void XuLy(HOCSINH&);
Trang 278 ỨNG DỤNG
Viết chương trình nhập vào một phân
số Rút gọn phân
số đó và xuất kết quả.
Trang 2818.typedef struct PhanSo PHANSO;
19.void Nhap(PHANSO &);
20.void Xuat(PHANSO);
21.void RutGon(PHANSO&);
Trang 3010. printf(“\n Tu: %d”,x.tu);
11. printf(“\n Mau: %d”,x.mau);
12.}
Trang 3112. x.tu = x.tu / (a+b);
13. x.mau = x.mau / (a+b);
14.}
Trang 328.2 ỨNG DỤNG 2
Viết chương trình nhập vào tọa độ 2
phẳng Oxy Tính khoảng cách giữa
quả
Trang 3318.typedef struct Diem DIEM;
19.void Nhap(DIEM &);
20.void Xuat(DIEM);
21.float KhoangCach(DIEM,DIEM);
Trang 364. }
Trang 379 BÀI TẬP
nhập vào một phân số.
nhập tọa độ hai điểm trong không gian Tính khoảng cách giữa chúng
Trang 38nhập vào hai phân số.
thương giữa chúng và xuất kết quả.
Trang 399 BÀI TẬP
nhập vào 2 số phức Tính tổng, hiệu, tích và xuất kết quả.
nhập vào một ngày Tìm
quả.
Trang 419 BÀI TẬP
nhập tọa tâm và bán kính của một đường tròn Tính diện tích và chu vi của đường tròn.
Trang 429 BÀI TẬP
Yêu cầu chung:
Làm tất cả các bài tập trong một workspace có tên là MSSV_BT01.
Trong workspace có 9 project tương ứng với từng bài tập.
Nộp bài tập lên hệ thống Moodle theo qui định.
Trang 43Chương 1
Ôn Tập
Trang 440 BÀI TẬP
Bài 1: Viết chương trình nhập vào một phân số Hãy cho biết phân số đó là phân số âm hay dương hay bằng không.
Bài 2: Viết chương trình nhập vào một ngày Tìm ngày kế tiếp
và xuất kết quả.
Bài 3: Viết chương trình nhập tọa
độ hai điểm trong không gian Tính khoảng cách giữa chúng và xuất kết quả.
Trang 450 BÀI TẬP
Bài 4: Viết chương trình nhập vào một ngày Tìm ngày hôm qua và xuất kết quả.
Bài 5: Viết chương trình nhập vào 2 phân số Tìm phân số lớn nhất và kết quả.
Bài 6: Viết chương trình nhập vào 2 số phức Tính tổng, hiệu, tích và xuất kết quả.
Bài 7: Viết chương trình nhập toạ
độ 3 đỉnh A,B,C của 1 tam giác trong mặt phẳng Oxy Tính chu
Trang 460 BÀI TẬP
Bài 8: Viết chương trình nhập tọa tâm và bán kính của một đường tròn Tính diện tích và chu vi của đường tròn.
Bài 9: Viết chương trình nhập vào hai phân số Tính tổng, hiệu, tích, thương giữa chúng và xuất kết quả.
Trang 48HƯỚNG DẪN BÀI 1
1. void Nhap(PHANSO&);
2. void Xuat(PHANSO);
3. int XetDau(PHANSO);
Trang 51HƯỚNG DẪN BÀI 1
Định nghĩa hàm xuất phân số
1 void Xuat(PHANSO x)
2 {
3 printf("\n Tu: %d",x.tu);
4 printf("\n Mau: %d",x.mau);
5 }
Trang 53HƯỚNG DẪN BÀI 2
Bài 2: Viết chương trình nhập vào một ngày Tìm ngày kế tiếp và xuất kết quả.
Trang 58 Một năm được gọi là năm nhuận khithoả một trong hai điều kiện.
Điều kiện 1: Năm chia hết cho 4
và không chia hết cho 100
Điều kiện 2: Năm chia hết cho400
Ví dụ 1: 1996 nhuận (điều kiện 1)
Ví dụ 2: 2000 nhuận (điều kiện 2)
Trang 61ngaythang[i-1];HƯỚNG DẪN BÀI 2
Trang 621 long SoThuTu(NGAY x)
31/12/2006 30/ 09/ 2007 1/1/1
HƯỚNG DẪN BÀI 2
Trang 66HƯỚNG DẪN BÀI 3
Bài 3: Viết chương trình nhập tọa
độ hai điểm trong không gian Tính khoảng cách giữa chúng và xuất kết quả.
Trang 714 }
Trang 72HƯỚNG DẪN BÀI 4
Bài 4: Viết chương trình nhập vào một ngày Tìm ngày hôm qua và xuất kết quả.
Trang 75HƯỚNG DẪN BÀI 5
Bài 5: Viết chương trình nhập vào 2 phân số Tìm phân số lớn nhất và kết quả.
Trang 76HƯỚNG DẪN BÀI 5
1. void Nhap(PHANSO&);
2. void Xuat(PHANSO);
3. int SoSanh(PHANSO,PHANSO);
Trang 79HƯỚNG DẪN BÀI 5
Định nghĩa hàm xuất phân số
1. void Xuat(PHANSO x)
2. {
3. printf("\n Tu: %d",x.tu);
4. printf("\n Mau: %d",x.mau);
5. }
Trang 81HƯỚNG DẪN BÀI 6
Bài 6: Viết chương trình nhập vào 2
số phức Tính tổng, hiệu, tích và xuất kết quả.
Trang 864 temp.thuc = a.thuc + b.thuc;
5 temp.ao = a.ao + b.ao;
6 return temp;
7 }
ab
temp
Trang 874 temp.thuc = a.thuc - b.thuc;
5 temp.ao = a.ao - b.ao;
6 return temp;
7 }
Trang 89HƯỚNG DẪN BÀI 7
Bài 7: Viết chương trình nhập toạ
độ 3 đỉnh A,B,C của 1 tam giác trong mặt phẳng Oxy Tính chu vi, diện tích và tìm tọa độ trọng tâm.
Trang 958 float b = KhoangCach(t.C,t.A);
9 float c = KhoangCach(t.A,t.B);
Trang 968 float b = KhoangCach(t.C,t.A);
9 float c = KhoangCach(t.A,t.B);
Trang 98HƯỚNG DẪN BÀI 8
Bài 8: Viết chương trình nhập tọa tâm và bán kính của một đường tròn Tính diện tích và chu vi của đường tròn.
Trang 106HƯỚNG DẪN BÀI 9
Bài 9: Viết chương trình nhập vào hai phân số Tính tổng, hiệu, tích, thương giữa chúng và xuất kết quả.
Trang 107HƯỚNG DẪN BÀI 9
1. void Nhap(PHANSO&);
2. void Xuat(PHANSO);
3. PHANSO Tong(PHANSO, PHANSO);
4. PHANSO Hieu(PHANSO, PHANSO);
5. PHANSO Tich(PHANSO, PHANSO);
6. PHANSO Thuong(PHANSO, PHANSO);
Trang 110HƯỚNG DẪN BÀI 9
Định nghĩa hàm xuất phân số
1 void Xuat(PHANSO x)
2 {
3 printf("\n Tu: %d",x.tu);
4 printf("\n Mau: %d",x.mau);
5 }
Trang 115Chương 2 CÁC PHƯƠNG PHÁP
LẬP TRÌNH
Trang 1161 MỤC TIÊU
Trong chương này các sinh viên
sẽ có một cái nhìn sơ bộ về các phương pháp lập trình khác nhau:
Phương pháp lập trình hướng lệnh.
Phương pháp lập trình hướng thủ tục, hàm.
Phương pháp lập trình hướng đơn thể.
Phương pháp lập trình hướng đối tượng (Tên Môn Học).
Trang 117LẬP TRÌNH HƯỚNG LỆNH
Khái niệm: Trong phương pháp này người ta xem chương trình là tập hợp các lệnh Khi đó việc viết chương trình là xác định xem chương trình gồm những lệnh nào, thứ tự thực hiện của các lệnh ra sao.
Trang 118LẬP TRÌNH HƯỚNG LỆNH
Hình vẽ
chương trình
lệnh
Trang 119HƯỚNG THỦ TỤC, HÀM
Khái niệm: Trong phương pháp này người ta xem chương trình là một hệ thống các thủ tục và hàm Trong
đó, mỗi thủ tục và hàm là một dãy các lệnh được sắp thứ tự Khi đó, việc viết chương trình là xác định xem chương trình gồm các thủ tục và hàm nào, mối quan hệ giữa chúng ra sao?
Trang 120HƯỚNG THỦ TỤC, HÀM
Hình vẽ
chương trình
LệnhHàm
void main() {
}
Khối khai báo
Thủ tục
…
Trang 121TRÌNH HƯỚNG ĐƠN THỂ
Khái niệm: Trong phương pháp này người ta xem chương trình là 1 hệ thống các đơn thể, mỗi một đơn thể là 1 hệ thống các thủ tục
và hàm Khi đó, việc viết chương trình là xác định xem chương trình gồm những đơn thể nào? Đơn thể nào đã có sẵn, đơn thể nào phải đi mua và đơn thể
Trang 122TRÌNH HƯỚNG ĐƠN THỂ
Phân loại đơn thể: Người ta chia đơn thể thành 2 loại là đơn thể hướng dữ liệu và đơn thể hướng chức năng.
Trang 123TRÌNH HƯỚNG ĐƠN THỂ
Phân loại đơn thể
Đơn thể hướng dữ liệu: là đơn thể được thiết kế và xây dựng để phục vụ cho một kiểu dữ liệu nào đó bên trong chương trình.
Ví dụ: Thư viện string.h
Trang 124TRÌNH HƯỚNG ĐƠN THỂ
Phân loại đơn thể
Đơn thể hướng chức năng:
là đơn thể được thiết kế và xây dựng để phục vụ cho một nhóm chức năng nào
đó bên trong chương trình.
Ví dụ: Thư viện math.h
Trang 125TRÌNH HƯỚNG ĐƠN THỂ
void main() {
} Khối khai báo
chương trình
Đơn thể 2
Đơn thể n
Trang 126TRÌNH HƯỚNG ĐỐI TƯỢNG
Khái niệm: Trong phương pháp này người ta xem chương trình là một hệ thống các đối tượng Mỗi một đối tượng là sự bao bọc bên trong nó 2 thành phần:
Trang 127TRÌNH HƯỚNG ĐỐI TƯỢNG
Khái niệm
Thành phần dữ liệu: là các thông tin về chính đối tượng Trong một số tài liệu, sách vở thành phần này còn được gọi
là thành phần thuộc tính, thành phần thông tin.
Thành phần hành động: là các khả năng mà đối tượng có thể thực hiện Thành phần này còn có các tên gọi như sau: phương thức, hàm
Trang 128TRÌNH HƯỚNG ĐỐI TƯỢNG
Mỗi một đối tượng sẽ được cài đặt bên trong chương trình dưới dạng đơn thể chứa dữ liệu Thêm vào đó
tính chất kế thừa cho phép chúng ta xây dựng đối tượng mới dựa trên cơ sở đối tượng đã có.
Trang 129Chương 3 LẬP TRÌNH HƯỚNG
ĐỐI TƯỢNG VỚI C++
Trang 1300 ĐẶT VẤN ĐỀ
Viết chương trình nhập họ tên, điểm toán, điểm văn của một học sinh Tính điểm trung bình và xuất kết quả.
Trang 1311 LỚP ĐỐI TƢỢNG (class)
Khái niệm: Lớp đối tượng tượng hiểu một cách đơn giản nhất là sự tích hợp của hai thành phần: Thành phần
Trang 1321 LỚP ĐỐI TƢỢNG (class)
Ví dụ: Hãy khai báo lớp cho bài toán
được nêu ra trong phần đặt vấn đề
Trang 1342 ĐỐI TƢỢNG (object)
Khái niệm: Đối tƣợng là một sự thể hiện của một lớp Trong một lớp có thể
có nhiều sự thể hiện khác nhau Nói một cách khác:
có thể có nhiều đối tƣợng cùng thuộc về một lớp.
Cú pháp khai báo đối tượng.
1 CTenLop <Tenđt>;
Trang 1352 ĐỐI TƢỢNG (object)
Ví dụ 1: CHocSinh x;
Trong ví dụ trên ta nói x là một đối tượng thuộc về lớp đối tượng CHocSinh.
Ví dụ 2: CHocSinh a,b;
CHocSinh y;
Trong ví dụ trên ta nói a,b,y là
ba đối tượng thuộc về lớp đối tượng CHocSinh Nói một cách khác: Lớp đối tượng CHocSinh
có ba sự thể hiện khác nhau.
Trang 1373 PHƯƠNG THỨC (method)
Ví dụ 1: Định nghĩa phương thức nhập của lớp CHocSinh.
1. void CHocSinh::Nhap()
Trang 1383 PHƯƠNG THỨC (method)
Ví dụ 2: Định nghĩa phương thức XuLy của lớp CHocSinh.
1. void CHocSinh::XuLy()
2. {
3. dtb=(float)(toan+van)/2;
4. }
Trang 1393 PHƯƠNG THỨC (method)
Ví dụ 3: Định nghĩa phương thức Xuat của lớp CHocSinh.
1. void CHocSinh::Xuat()
Trang 1404 ĐỐI TƢỢNG HÀNH ĐỘNG
Khái niệm: Đối tượng hành động là đối tượng gọi thực hiện phương thức mà lớp đối tượng
Trang 1414 ĐỐI TƯỢNG HÀNH ĐỘNG
Ví dụ 1:
1 CHocSinh hs;
2 hs.Nhap();
Trong câu lệnh thứ hai của
đoạn chương trình trên ta nói: đối tượng hs gọi thực hiện phương thức Nhập
Trang 142 Trong câu lệnh thứ hai của
đoạn chương trình trên ta nói: đối tượng a gọi thực hiện phương thức Nhập
…v v
Trang 143hotentoanvandtb
hotentoanvandtb
void Nhap()void Xuat()void XuLy()
Trang 1444 ĐỐI TƢỢNG HÀNH ĐỘNG
Ví dụ 1: Định nghĩa phương thức nhập của lớp CHocSinh.
1. void CHocSinh::Nhap()
Trang 1454 ĐỐI TƢỢNG HÀNH ĐỘNG
Ví dụ 2: Định nghĩa phương thức XuLy của lớp CHocSinh.
1. void CHocSinh::XuLy()
2. {
3. dtb=(float)(toan+van)/2;
4. }
Trang 1464 ĐỐI TƢỢNG HÀNH ĐỘNG
Ví dụ 3: Định nghĩa phương thức Xuat của lớp CHocSinh.
1. void CHocSinh::Xuat()
Trang 147 Chương trình
Trang 1516 ỨNG DỤNG
6.1 Ứng dụng 1: Viết chương trình nhập vào một phân số Rút gọn phân số đó và xuất kết quả.
Chương trình
Trang 1556 ỨNG DỤNG
6.2 Ứng dụng 2: Viết chương trình nhập vào tọa độ 2 điểm trong mặt phẳng Oxy.
giữa chúng và xuất kết quả.
Chương trình
Trang 1667 BÀI TẬP VỀ NHÀ
tập của chương 01 bằng phương pháp lập trình hướng đối tượng (9 bài).
Trang 167Chương 3 LẬP TRÌNH HƯỚNG ĐỐI
TƯỢNG VỚI C++
Trang 1680 BÀI TẬP
Bài 1: Viết chương trình nhập vào một phân số Hãy cho biết phân số đó là phân số âm hay dương hay bằng không.
Bài 2: Viết chương trình nhập vào một ngày Tìm ngày kế tiếp
và xuất kết quả.
Bài 3: Viết chương trình nhập tọa
độ hai điểm trong không gian Tính khoảng cách giữa chúng và xuất kết quả.
Trang 1690 BÀI TẬP
Bài 4: Viết chương trình nhập vào một ngày Tìm ngày hôm qua và xuất kết quả.
Bài 5: Viết chương trình nhập vào 2 phân số Tìm phân số lớn nhất và kết quả.
Bài 6: Viết chương trình nhập vào 2 số phức Tính tổng, hiệu, tích và xuất kết quả.
Bài 7: Viết chương trình nhập toạ
độ 3 đỉnh A,B,C của 1 tam giác trong mặt phẳng Oxy Tính chu
Trang 1700 BÀI TẬP
Bài 8: Viết chương trình nhập tọa tâm và bán kính của một đường tròn Tính diện tích và chu vi của đường tròn.
Bài 9: Viết chương trình nhập vào hai phân số Tính tổng, hiệu, tích, thương giữa chúng và xuất kết quả.
Trang 175HƯỚNG DẪN BÀI 1
Định nghĩa hàm xuất phân số
1. void CPhanSo::Xuat()
2. {
3. printf("\n Tu: %d“, tu);
4. printf("\n Mau: %d“, mau);
5. }
Trang 182 Một năm được gọi là năm nhuận khi thoả một trong hai điều kiện.
Điều kiện 1: Năm chia hết cho 4 và không chia hết cho 100.
Điều kiện 2: Năm chia hết cho 400.
Ví dụ 1: 1996 nhuận (điều kiện 1)
Ví dụ 2: 2000 nhuận (điều kiện 2)
Trang 183ngaythang[i-1];HƯỚNG DẪN BÀI 2
Trang 1841 long CNgay::SoThuTu()
31/12/2006 30/ 09/ 2007 1/1/1
HƯỚNG DẪN BÀI 2
Trang 1934. }
Trang 203HƯỚNG DẪN BÀI 5
Định nghĩa phương thức xuất phân số
1. Void CPhanSo::Xuat()
2. {
3. printf("\n Tu: %d“, tu);
4. printf("\n Mau: %d“, mau);
5. }
Trang 205HƯỚNG DẪN BÀI 6
phức Tính tổng, hiệu, tích và xuất kết quả.
Trang 210kq = a.Tong(b);
Trang 236HƯỚNG DẪN BÀI 9
Định nghĩa hàm xuất phân số
1 void CPhanSo::Xuat()
2 {
3 printf("\n Tu: %d“, tu);
4 printf("\n Mau: %d“,mau);
5 }
Trang 238Chương 4
SƠ LƯỢC THƯ VIỆN
IOSTREAM.H
Trang 2391 VÍ DỤ DẪN NHẬP 1
Bài toán: Viết lệnh nhập giá trị cho
một số nguyên a và xuất số nguyên
ra màn hình bằng cách sử dụng thưviện iostream.h
Phong cách cũ
1. int a;
2. printf(“Nhap mot so nguyen:”);
3. scanf(“%d”,&a);
4. printf(“So nguyen vua nhap:%d”,a);
Đoạn chương trình với thư viện
Trang 2402 VÍ DỤ DẪN NHẬP 2
Bài toán: Viết hàm nhập thông
tin của một phân số bằng cách
sử dụng thư viện iostream.h
Trang 242 Nhập, xuất một đối tượng phân số với
thư viện iostream.h
1 CPhanSo a;
2 cin>>a;
3 cout<<a;
Lưu ý
Ký hiệu >> được gọi là toán tử vào.
Ký hiệu << được gọi là toán tử ra.
Làm sao?
Trang 243cho lớp đối tượng CPhanSo.
Ngoài ra, trong khi giải quyết vấn đềnày ta còn sử dụng kỹ thuật hàm bạn(friend function) của phương pháp lậptrình hướng đối tượng
Một “hàm bạn” của lớp đối tượngđược phép truy xuất đến tất cả cácthành phần của đối tượng thuộc vềlớp đó bất chấp thành phần được khai
phạm vi nào
Trang 2444 GIẢI QUYẾT VẤN ĐỀ (tiếp)
17. friend istream& operator >>
18. (istream &is,CPhanSo &x);
19. friend ostream& operator <<
20. (ostream &os,CPhanSo &x);
21. };
Trang 2454 GIẢI QUYẾT VẤN ĐỀ (tiếp)
17. friend istream& operator >>
18. (istream &is,CPhanSo &x);
19. friend ostream& operator <<
20. (ostream &os,CPhanSo &x);
Trang 2464 GIẢI QUYẾT VẤN ĐỀ (tiếp)
17. friend istream& operator >>
18. (istream &is,CPhanSo &x);
19. friend ostream& operator <<
20. (ostream &os,CPhanSo &x);
21. };
Trang 2474 GIẢI QUYẾT VẤN ĐỀ (tiếp)
17. friend istream& operator >>
18. (istream &is,CPhanSo &x);
19. friend ostream& operator <<
20. (ostream &os,CPhanSo &x);