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

Ngôn ngữ lập trình C

431 193 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

Tiêu đề Ngôn ngữ lập trình C
Tác giả Nguyễn Sơn Hoàng Quốc, Nguyễn Tấn Trần Minh Khang
Trường học Khoa CNTT
Thể loại bài giảng
Định dạng
Số trang 431
Dung lượng 4,28 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

HƯỚ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.. TRÌNH HƯỚNG ĐƠN THỂ Khái niệm: Trong phương pháp này người ta xem ch

Trang 1

Chươ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 4

3 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 5

28. printf(“\n Van: %d” , van);

29. printf(“\n Trung binh:%f”,

dtb);

30.}

Trang 6

4 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

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 7

28. printf(“\n Van: %d” , van);

29. printf(“\n Trung binh:%f” ,

dtb);

30.}

Trang 9

TRÌNH C ĐƠN GIẢN

chương trình C cơ bản bao gồm 3 khối lệnh chính như sau: khối

nghĩa hàm Ba khối lệnh này được trình bày theo thứ tự của hình vẽ bên dưới.

Trang 10

TRÌNH C ĐƠN GIẢN

Khối khai báo

Khối hàm main

Khối định nghĩa

1

2

3

Trang 11

TRÌ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 báo trong khối khai báo.

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 17

6 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 18

6 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 21

6 THAM SỐ VÀ HÀM (tiếp)

1. void Nhap(char hoten[30],

int &toan, int &van)

Trang 23

20.typedef struct HocSinh HOCSINH;

21.void Nhap(HOCSINH &);

22.void Xuat(HOCSINH);

23.void XuLy(HOCSINH&);

Trang 27

8 Ứ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 28

8 ỨNG DỤNG

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 29

9 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 30

nhập vào hai phân số.

thương giữa chúng và xuất kết quả.

Trang 31

9 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 33

9 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 34

9 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 35

Chương 2 CÁC PHƯƠNG PHÁP

LẬP TRÌNH

Trang 36

1 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 37

LẬ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 38

LẬP TRÌNH HƯỚNG LỆNH

 Hình vẽ

chương trình

lệnh

Trang 39

HƯỚ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 40

HƯỚ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 41

TRÌ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

những đơn thể nào? Đơn thể nào đã có sẵn, đơn thể nào phải đi mua và đơn thể nào phải tự viết.

Trang 42

TRÌ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 43

TRÌ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 44

TRÌ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à

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 45

TRÌNH HƯỚNG ĐƠN THỂ

void main() {

} Khối khai báo

chương trình

Đơn thể 2

Đơn thể n

Trang 46

TRÌ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 47

phần

Trang 48

TRÌ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 49

Chương 3 LẬP TRÌNH HƯỚNG

ĐỐI TƯỢNG VỚI C++

Trang 50

0 ĐẶ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 51

1 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 52

1 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 54

2 ĐỐ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 55

2 ĐỐ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 57

3 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 58

3 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 59

3 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 60

4 ĐỐ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 61

4 ĐỐ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 62

 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 63

hotentoanvandtb

hotentoanvandtb

void Nhap()void Xuat()void XuLy()

Trang 64

4 ĐỐ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 65

4 ĐỐ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 66

4 ĐỐ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 67

kết quả.

Chương trình

Trang 71

6 Ứ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 75

6 ỨNG DỤNG

6.2 Ứng dụng 2: Viết chương trình nhập

trong mặt phẳng Oxy.

giữa chúng và xuất kết quả.

Chương trình

Trang 86

7 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 87

Chương 4

SƠ LƯỢC THƯ VIỆN

IOSTREAM.H

Trang 88

1 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 89

2 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 91

 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 92

cho 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 khaibáo trong phạm vi nào

Trang 93

4 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 94

4 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 95

4 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 96

4 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 97

4 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 98

4 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 99

4 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 100

4 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 101

4 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 102

4 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 103

4 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 104

4 GIẢI QUYẾT VẤN ĐỀ (tiếp)

 Định nghĩa toán tử vào

1 istream& operator >>(istream &is,

Trang 105

4 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 106

4 GIẢI QUYẾT VẤN ĐỀ (tiếp)

Trang 107

4 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 108

 Trong câu lệnh thứ hai của đoạn

chương trình trên ta nói: hàm

operator >> được gọi thực hiện với 2đối số là cin và đối tượng a

 Trong câu lệnh thứ ba của đoạn

chương trình trên ta nói: hàm

operator << được gọi thực hiện với 2đối số là cout và đối tượng a

Trang 109

 Trong câu lệnh thứ hai của đoạn

chương trình trên ta nói: hàmoperator >> được gọi thực hiện 3 lần

 Trong câu lệnh thứ ba của đoạn

chương trình trên ta nói: hàmoperator << được gọi thực hiện 3 lần

Trang 110

7 ỨNG DỤNG

nghĩa toán tử vào và

đối tượng CNgay.

Trang 111

18. friend istream& operator >>

19. (istream &is,CNgay &x);

20. friend ostream& operator <<

21. (ostream &os,CNgay &x);22.};

Trang 115

Chương 5 PHƯƠNG THỨC THIẾT LẬP, PHƯƠNG THỨC PHÁ HỦY

Trang 117

thức thiết lập của một lớp có nhiệm vụ thiết lập

lớp ngay khi đối tượng được khai báo.

Trang 118

 Các phương thức thiết lập của lớpthuộc nhóm các phương thức khởitạo.

Trang 119

PHƯƠNG THỨC THIẾT LẬP

 Ta có thể chia các phương thức thiếtlập của một lớp thành 3 nhóm nhưsau:

 Phương thức thiết lập mặc định (default constructor).

 Phương thức thiết lập sao chép (copy constructor).

 Phương thức thiết lập nhận tham số đầu vào.

 Phương thức thiết lập mặc định làphương thức thiết lập các thông banđầu cho đối tượng thuộc về lớp bằngbằng những giá trị mặc định (do ngườilập trình quyết định)

Trang 120

PHƯƠNG THỨC THIẾT LẬP

 Phương thức thiết lập sao chép (copyconstructor) là phương thức thiết lậpnhận tham số đầu vào là một đốitượng cùng thuộc về lớp Các thôngtin ban đầu của đối tượng sẽ hoàntoàn giống thông tin của đối tượngtham số đầu vào Ngoài ra, người tacòn nói phương thức thiết lập saochép được sử dụng để tao ra đốitượng mới giống hoàn toàn đối tượng

đã có sẵn

 Phương thức thiết lập nhận tham sốđầu vào là những phương thức thiếtlập ko phải là phương thức thiết lậpmặc định và phương thức thiết lậpsao chép

Trang 121

PHƯƠNG THỨC THIẾT LẬP

 Bài toán: Hãy khai báo và định nghĩa cácphương thức thiết lập cơ bản cho lớp đốitượng CPhanSo

Trang 124

PHƯƠNG THỨC THIẾT LẬP

 Định nghĩa phương thức thiết

lập khi biết đầy đủ thông tin

Trang 125

1.4 HƯỚNG DẪN SỬ DỤNG 1

 Hãy xem xét đoạn chương trình

sau và cho biết có bao nhiêu phương thức gọi thực hiện:

Trang 126

1.5 HƯỚNG DẪN SỬ DỤNG 2

 Hãy xem xét đoạn chương trình sau

và cho biết có bao nhiêu phươngthức gọi thực hiện:

Trang 127

PHƯƠNG THỨC THIẾT LẬP

 Khởi tạo giá trị ban đầu cho các đốitượng thuộc về lớp ngay khi các đốitượng được khai báo

 Ép kiểu từ đối tượng này sang đốitượng khác

Trang 128

1.7 ỨNG DỤNG

 Bài toán: Hãy khai báo và định nghĩacác phương thức thiết lập cơ bản cholớp đối tượng ngày

Trang 132

hủy của một lớp có nhiệm vụ

dọn dẹp “xác chết” của đối tượng khi đối tượng “đi bán

muối” Nói một cách khác,

phương thức phá hủy có nhiệm vụ thu hồi lại tất cả các tài nguyên đã cấp phát cho đối tượng khi đối tượng hết phạm vi hoạt động.

Trang 133

PHƯƠNG THỨC PHÁ HỦY

 Tên phương thức trùng với tên lớpnhưng có dấu ngã ở đằng trước

 Không có giá trị trả về

 Không có tham số đầu vào

 Được tự động gọi thực hiện khi đốitượng hết phạm vi sử dụng

 Phương thức phá huỷ thuộc nhóm cácphương thức xử lý

 Có và chỉ có duy nhất một phươngthức phá huỷ trong 1 lớp mà thôi

 Trong một quá trình sống của đốitượng có và chỉ có một lần phươngthức phá hủy được gọi thực hiện màthôi

Trang 134

PHƯƠNG THỨC PHÁ HỦY

 Bài toán: Hãy khai báo và định nghĩaphương thức phá hủy cho lớp đốitượng CPhanSo

Trang 136

2.3 HƯỚNG DẪN SỬ DỤNG

 Hãy cho biết đoạn chương trình sau

có bao nhiêu phương thức được gọithực hiện Biết rằng trong lớp đốitượng CPhanSo ta đã định nghĩa 3pttl cơ bản và phương thức phá hủy

Trang 137

3 BÀI TẬP VỀ NHÀ

 Hãy khai báo và định nghĩa cácphương thức thiết lập cơ bản vàphương thức phá hủy cho các lớp đốitượng sau:

Trang 138

Chương 6 TOÁN T Ử GÁN (operator=)

Trang 139

0 M ỤC TIÊU

 Hi ểu được phương thức toán tử

gán là gì?

 Hi ểu được vai trò của toán tử

gán trong l ập trình hướng đối tượng

Ngày đăng: 09/09/2014, 19:10

HÌNH ẢNH LIÊN QUAN

3. SƠ ĐỒ LỚP - Ngôn ngữ lập trình C
3. SƠ ĐỒ LỚP (Trang 209)

TỪ KHÓA LIÊN QUAN

w