1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Phương pháp lập trình hướng đối tượng: Nhìn lại lập trình cơ bản qua lăng kính Lập trình hướng đối tượng - Lê Xuân Định (tt)

36 53 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 36
Dung lượng 2,08 MB

Nội dung

Phần tiếp theo bài giảng Phương pháp lập trình hướng đối tượng: Nhìn lại lập trình cơ bản qua lăng kính Lập trình hướng đối tượng cung cấp cho người học các kiến thức về Hàm - Đơn vị xử lý dữ liệu. Mời các bạn cùng tham khảo nội dung chi tiết.

GV: Lê Xuân Định L.X.Định CuuDuongThanCong.com https://fb.com/tailieudientucntt L.X.Định CuuDuongThanCong.com https://fb.com/tailieudientucntt Hàm – Đơn vị xử lý liệu  Mỗi thao tác xử lý liệu thực hàm  Tương đương với động từ (1) ngôn ngữ tự nhiên  Với hàm, phải xác định liệu xử lý (đầu vào) kết xử lý (đầu ra)  Ví dụ:  Tính tổng tất ước số số nguyên cho trước  Cho mảng số thập phân, tìm số lớn phần tử mảng nhỏ số nguyên cho trước  Kiểm tra xem tổng số mảng số nguyên có phải số nguyên tố hay không L.X.Định _ 1) Nếu hàm có giá trị trả về, ta thường đặt tên hàm danh/tính từ tương ứng CuuDuongThanCong.com https://fb.com/tailieudientucntt Hàm – Đơn vị xử lý liệu  Mỗi thao tác xử lý liệu thực hàm  Tương đương với động từ (1) ngôn ngữ tự nhiên  Với hàm, phải xác định liệu xử lý (đầu vào) kết xử lý (đầu ra)  Ví dụ:  Tính tổng tất ước số số nguyên cho trước  Cho mảng số thập phân, tìm số lớn phần tử mảng nhỏ số nguyên cho trước  Kiểm tra xem tổng số mảng số nguyên có phải số ngun tố hay khơng L.X.Định _ 1) Nếu hàm có giá trị trả về, ta thường đặt tên hàm danh/tính từ tương ứng CuuDuongThanCong.com https://fb.com/tailieudientucntt Hàm – Đơn vị xử lý liệu  Chương trình trò chuyện hàm  Bắt đầu từ hàm main():  main() chia tồn chương trình thành tác vụ,  main() giao việc (tác vụ) cho hàm  Mỗi hàm lại nói chuyện với hàm khác để hồn thành cơng việc  Giao tiếp hàm: Gọi tên, truyền đối số, trả kết L.X.Định CuuDuongThanCong.com https://fb.com/tailieudientucntt Hàm – Đơn vị xử lý liệu  Chương trình trị chuyện hàm VD: Tính điểm tổng kết SV void main() Hàm Nhập: Chính (main): • Gọi hàm In Nhập mànđểhình nhập (printf) điểm đểSV xuất câu thơng báo nhập điểm • Gọi hàm Tính điểm tổng kết • Gọi đểhàm lấy ĐTK Quétcủa bàn SV phím (scanf) để nhập điểm • Gọi hàm In hình (printf) để xuất ĐTK SV void nhap(∎) float tinhDTK(∎) void scanf( ) L.X.Định CuuDuongThanCong.com void printf( ) https://fb.com/tailieudientucntt Hàm – Đơn vị xử lý liệu  Chương trình trị chuyện hàm VD: Tính điểm tổng kết SV floatnhap(SinhVien void main() tinhDTK(SinhVien &sv) sv) Mã nguồn Hàm scanf: mãcác đóng! hàm? { Hàm printf: mã đóng! printf("Nhap float SinhVien dtka, = diem b; LT:"); (sv.dLT*6 nhap(a);+ nhap(b); scanf("%f", sv.dTH*4)/10; &sv.dLT); • return Với người sửdiem dụng printf("DTK printf("Nhap dtk; cuaTH:"); ahàm, = phần càitinhDTK(a)); đặt hàm môt } %f scanf("%f", \n", &sv.dTH); đen (khôngcua thấybmã } hộp printf("DTK = nguồn) %f \n", tinhDTK(b)); } • Để sử dụng hàm • Chỉ cần thấy giao diện!!! (nguyên mẫu hàm) L.X.Định CuuDuongThanCong.com void main() ? {/*mã nguồn*/} void nhap(∎) float tinhDTK(∎) ? {/*mã nguồn*/} ? {/*mã nguồn*/} void scanf( ) void printf( ) ? ? https://fb.com/tailieudientucntt Giao tiếp hàm  Chương trình trị chuyện hàm Gồm nhiều đối thoại main() - tinhDTK() • main() gọi hàm tinhDTK(): • main() truyền tham số cho tinhDTK() • tinhDTK() trả kết cho main() Cịn nói • main() sử dụng tinhDTK() (trong phần cài đặt) L.X.Định CuuDuongThanCong.com Này tinhDTK, thực với đối số Kết void main() tinhDTK(a) float tinhDTK(∎) return dtk; } https://fb.com/tailieudientucntt Các thành phần hàm  Chương trình trị chuyện hàm Gồm nhiều đối thoại Đối với hàm tinhDTK() • Bên ngồi có hàm sử dụng tinhDTK() • Bên phần cài đặt xử lý tinhDTK() • Trung gian phần giao diện lập trình tinhDTK() quy định cách giao tiếp hai bên L.X.Định CuuDuongThanCong.com void main() Sử dụng tinhDTK(a) float tinhDTK(∎) Giao diện return dtk; } Cài đặt https://fb.com/tailieudientucntt 10 Các thành phần hàm  Với hàm, ta chia giới làm phần void main() { SinhVien a, b; nhap(a); nhap(b); printf( "DTK cua a = %f \n", tinhDTK(a)); } Sử dụng L.X.Định CuuDuongThanCong.com /// Hàm tính điểm tổng kết theo công thức: /// điểm TK = (điểm LT*6 + điểm TH*4) / 10 /// Input: struct chứa điểm LT TH; Output: điểm TK float tinhDTK(SinhVien sv); Đặc tả Giao diện float tinhDTK(SinhVien sv) { float dtk = (sv.dLT*6 + sv.dTH*4)/10; return dtk; } Cài đặt https://fb.com/tailieudientucntt 11 Hoạt cảnh Sử dụng Hàm  Demo truyền tham trị/biến & trả (void)  VD1: Cộng số nguyên, trả số nguyên /// trả a + b int cong (int a, int b);  VD2: Cộng dồn số nguyên vào số nguyên khác /// b = a + b void congDon(int a, int &b); L.X.Định CuuDuongThanCong.com https://fb.com/tailieudientucntt 24 Hoạt cảnh Sử dụng Hàm  Hãy sử dụng hàm sau:  int Thương(int a, int b); /// trả phần nguyên [b/a]  void Dư(int &a, int &b, int &c); /// c = a - [a/b]*b  int Nhập(); /// trả số nguyên nhập  void XuấtUSCLN(int a, int b, int c); /// xuất thông báo “Ước số chung lớn ”  void XuấtTuầnThứ(int thu, int tuan); /// hiển thị ngày Thứ Tuần thứ tháng  Viết CTrình tính USCLN số  Nhập từ Khán giả/Random, xuất Bảng/Projector  Tính Tay, sau nâng cấp lên Máy L.X.Định CuuDuongThanCong.com https://fb.com/tailieudientucntt 26 Ước số chung lớn 1334 383 L.X.Định CuuDuongThanCong.com https://fb.com/tailieudientucntt 27 Hoạt cảnh Sử dụng Hàm  Hãy sử dụng hàm sau:  int Thương(int a, int b); /// trả phần nguyên [b/a]  void Dư(int &a, int &b, int &c); /// c = a - [a/b]*b  int Nhập(); /// trả số nguyên nhập  void XuấtUSCLN(int a, int b, int c); /// xuất thông báo “Ước số chung lớn ”  void XuấtTuầnThứ(int thu, int tuan); /// hiển thị ngày Thứ Tuần thứ tháng  Viết CTrình cho nhập ngày tháng nhập tháng Thứ mấy, xong hiển thị cho biết ngày Thứ Tuần thứ tháng L.X.Định CuuDuongThanCong.com https://fb.com/tailieudientucntt 29 L.X.Định CuuDuongThanCong.com https://fb.com/tailieudientucntt 30 Khai báo & Sử dụng Hàm  Giao diện (nguyên mẫu hàm) kiểu_tr ả_về tên_hàm ( danh_sách_khai_báo_tham_s ố) float thuong (int a, int b);  Sử dụng (lời gọi hàm) biến_tr ả_về = tên_hàm ( danh_sách_đối_số );  int x = 1; float q = thuong(x,15); // Đọc máy móc: gọi hàm thuong() với đối số (giá trị x 15), gán giá trị trả vào biến q // Đọc tự nhiên: lưu kết tính thương x 15 vào biến q L.X.Định CuuDuongThanCong.com https://fb.com/tailieudientucntt 31 Khai báo & Sử dụng Hàm  Giao diện (nguyên mẫu hàm) kiểu_tr ả_về tên_hàm ( danh_sách_khai_báo_tham_s ố)  VD: int f(char ch, float a[]) // đọc máy móc: Hàm f nhận tham số (1 ký tự ch mảng a số thập phân) trả số nguyên  VD: float thuong(int a, int b) // đọc tự nhiên: Hàm tính thương số nguyên (trả số thập phân)  Sử dụng (lời gọi hàm) biến_tr ả_về = tên_hàm ( danh_sách_đối_số ); L.X.Định CuuDuongThanCong.com https://fb.com/tailieudientucntt 32 Tương ứng Giao diện & Sử dụng  Giao diện (nguyên mẫu hàm) kiểu_tr ả_về tên_hàm ( danh_sách_khai_báo_tham_s ố) VD: float thuong (int a, int b)  Khai báo tham số := khai báo biến Tương ứng 1-1  Sử dụng (lời gọi hàm) biến_tr ả_về = tên_hàm ( danh_sách_đối_số ); VD: float q = thuong (x,15);  Truyền đối số := truyền giá trị cho biến  Giá trị vào/ra có kiểu tương ứng với khai báo giao diện L.X.Định CuuDuongThanCong.com https://fb.com/tailieudientucntt 33 Tương ứng Giao diện & Sử dụng  Giao diện phải có kiểu, sử dụng khơng ghi kiểu, giá-trị vào/ra phải có kiểu tương ứng với khai báo giao diện  Ví dụ:  Giao diện: float thuong(int a, int b) Sử dụng: q = thuong(x,y);  Các biến q,x,y phải có kiểu: float q; int x,y;  Giao diện: float thuong(int a, int b) Sử dụng: q = thuong(x,1.2);  Lỗi cú pháp: 1.2 không thuộc kiểu int L.X.Định CuuDuongThanCong.com https://fb.com/tailieudientucntt 34 Tương ứng Giao diện & Sử dụng  Giao diện phải có kiểu, sử dụng khơng ghi kiểu, giá-trị vào/ra phải có kiểu tương ứng với khai báo giao diện  Ví dụ:  Giao diện: float thuong(a, b)  Lỗi cú pháp: a, b thiếu kiểu nguyên mẫu hàm  Sử dụng: float q = thuong(int x=2, int y=3)  Lỗi cú pháp: ghi kiểu lời gọi hàm L.X.Định CuuDuongThanCong.com https://fb.com/tailieudientucntt 35 Tương ứng Giao diện & Sử dụng  Giao diện phải có kiểu, sử dụng khơng ghi kiểu, giá-trị vào/ra phải có kiểu tương ứng với khai báo giao diện  Ví dụ: Khơng có giá trị trả thìb) sử dụng bắt  Giao diện: void thuong(int a, int đầu tên hàm Sử dụng: printf(“%f”, thuong(2,3));  Lỗi cú pháp: sử dụng giá trịtrảvề không khai báo  Giao diện: float thuong(int a, Có int giá b) trị trả sử dụng khơng bắt Sử dụng: thuong(2,3);  Lỗi ngữ nghĩa: bỏ giá trị trả đầu tên hàm L.X.Định CuuDuongThanCong.com https://fb.com/tailieudientucntt 36 Tóm tắt: Giao diện & Sử dụng  Các cấp phụ thuộc: Biến  Hàm  Khai báo (giao diện) & sử dụng phải tương thích với Khai báo (giao diện) Kiểu, tên biến Đọc/ghi giá trị có kiểu tương ứng: • Khi đọc phải có giá trị xác định Truyền tham số cho hàm: • Gián tiếp đọc/ghi giá trị Nguyên mẫu hàm: • Kiểu trả về, tên hàm • Danh sách tham số Gọi hàm: • Giá trị vào/ra phải có kiểu tương ứng với nguyên mẫu hàm Biến Hàm L.X.Định Sử dụng CuuDuongThanCong.com https://fb.com/tailieudientucntt 38 BT Ứng dụng – (Về nhà)  Hãy khai báo nguyên mẫu hàm cho hàm sau (trước hàm main) sử dụng chúng (1 lời gọi hàm tương ứng với hàm) hàm main Kiểm tra xem số nguyên có phải số chẵn hay khơng Kiểm tra xem số nguyên có chia hết cho số ngun hay khơng Tính thương hai số nguyên (chỉ lấy phần nguyên) Tìm số lớn mảng số thập phân Tìm vị trí số lớn mảng số thập phân Chèn số nguyên vào mảng số thập phân vị trí cho trước L.X.Định CuuDuongThanCong.com https://fb.com/tailieudientucntt 39 BT Ứng dụng –  Hãy khai báo nguyên mẫu hàm (tiếp theo) Hãy viết khái báo hàm file MyLib.h để chương trình sau dịch được: L.X.Định #include “MyLib.h” void main(){ float a[100]; int x; for(int i=0; i

Ngày đăng: 11/01/2020, 19:21

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN