1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài giảng Kỹ thuật lập trình cơ điện tử

62 6 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 đề Bài giảng Kỹ thuật lập trình cơ điện tử
Tác giả Dennis Ritchie, Bjarne Stroustrup
Trường học Trường Đại Học Thủy Lợi
Chuyên ngành Kỹ thuật Cơ điện tử
Thể loại Bài giảng
Thành phố Hà Nội
Định dạng
Số trang 62
Dung lượng 3,42 MB

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

Nội dung

PowerPoint Presentation TRƯỜNG ĐẠI HỌC THỦY LỢI Khoa Cơ khí Bộ môn Kỹ thuật Cơ điện tử Mục tiêu môn học Các chương trình, ứng dụng trên các thiết bị, máy tính hoạt động như thế nào? Làm sao để tạo một[.]

Trang 1

TRƯỜNG ĐẠI HỌC THỦY LỢI

Khoa Cơ khí

Bộ môn: Kỹ thuật Cơ điện tử

Trang 2

- Làm quen với ngôn ngữ lập trình C++

- Thực hành lập trình trên trình biên dịch DEV C++

Trang 3

Nội dung môn học

Chương 5 Lớp và Lập trình hướng đối tượng

Kiểm tra và đánh giá kết quả:

Trang 5

Chương 1: Mở đầu

Bộ môn CĐT – Khoa Cơ Khí - ĐHTL

1.1 Giới thiệu về ngôn ngữ lập trình C/C++

Ngôn ngữ C

 Tác giả: Dennis Ritchie.

 Ra đời trong những năm 1970, gắn

liền với sự phát triển HĐH Unix.

 Là một trong những ngôn ngữ phổ

biến nhất

Ngôn ngữ C++

 Tác giả: Bjarne Stroustrup.

 Ra đời năm 1979 bằng việc mở rộng ngôn

ngữ C.

 Bổ sung các tính năng mới so với C: lập

trình hướng đối tượng (OOP), lập trình

tổng quát (template), một số tính năng giúp

cho lập trình linh hoạt

Trang 8

Từ khóa

Là những danh từ riêng của ngôn ngữ lập trình được định nghĩa trước với ý nghĩa hoàn toàn xác định Từ khóa thường được dung để khai báo biến định nghĩa các kiểu dữ liệu, định nghĩa các toán tử, các hàm và viết các câu lệnh,…

Trang 9

Chương 1: Mở đầu

Bộ môn CĐT – Khoa Cơ Khí - ĐHTL

1.2 Cấu trúc một chương trình C/C++

• Dòng 1: khai báo thư viện

iostream cho việc nhập xuất.

• Dòng 2: sử dụng thư viện chuẩn

• Dòng 3: Hàm chính

• Dòng 5: Khai báo biến x

• Dòng 6: Nhập dữ liệu từ bàn phím cho biến x

• Dòng 7: Xuất kết quả

• Dòng 8: Hàm trả về 0

Chương trình: Nhập 𝒙 và in ra kết quả 𝒙𝟐

Trang 10

Chương 1: Mở đầu

1.3 Vào ra trong C++

Để in dữ liệu ra màn hình và nhập dữ liệu từ bàn phím, trong c++vẫn có thể dùng các hàm printf và scanf, ngoài ra C++ dùng toán tửxuất để đưa giá trị biểu thức ra màn hình, toán tử nhập để nhập giá trị

số (nguyên, thực) từ bàn phím và gán cho các biến

 cout<<biểu thức<<…<<biểu thức;

cin>>biến>>…>>biến;

 Nhập dữ liệu là số:

 Nhập dữ liệu là chuỗi/ xâu ký tự: sử dụng thư viện string để khai báo

string A; getline(cin, A);

Trang 11

Chương 1: Mở đầu

Bộ môn CĐT – Khoa Cơ Khí - ĐHTL

- Kiểu dữ liệu giống như là các thùng chứa, vật dụng để đựng

đồ dùng của chúng ta.

- Mỗi loại dữ liệu có kích thước khác nhau và tương ứng với miền giá trị và loại giá trị mà nó có thể thực hiện VD: Kiểu int chiếm 2 byte bộ nhớ và để chứa các số nguyên,…

Các kiểu dữ liệu cơ bản

Bao gồm:

- Các kiểu số nguyên

- Các kiểu số thực

1.4 Kiểu dữ liệu

Trang 12

Chương 1: Mở đầu

1.5 Biến & hằng

 Biến chứa giá trị, có thể thay đổi trong khi chạy

 Cần khai báo trước khi dùng và phải có kiểu dữ liệu

 Phạm vi sử dụng: Toàn cục/ nội bộ (global/local)

 Khai báo biến: <kiểu dữ liệu ><danh sách biến> Ví dụ:

 Biến có thể được khởi tạo giá trị khi khai báo:

Hằng

 Giống như biến nhưng giá trị nó không thay đổi trong quá trình chạy

 Sử dụng macro để khai báo hằng

Trang 13

Chương 1: Mở đầu

Bộ môn CĐT – Khoa Cơ Khí - ĐHTL

1.5 Toán tử

 Cơ bản: +, - , *, /

 Sinh viên giải ví dụ sau:

Trang 15

Chương 1: Mở đầu

Bộ môn CĐT – Khoa Cơ Khí - ĐHTL

Toán tử bit

 Bao gồm : &, |, ^, ~, >>, <<

 Chỉ áp dụng với kiểu số nguyên

 Chú ý tránh nhầm lần với các toán tử logic

Trang 17

Chương 2: Cấu trúc điều khiển

Bộ môn CĐT – Khoa Cơ Khí - ĐHTL

 2.3 Các cấu trúc lặp

 2.4 Lệnh rẽ nhánh và nhảy

Trang 18

Chương 2: Cấu trúc điều khiển

2.1 Cấu trúc điều kiện rẽ nhánh if, if…else

}

Trang 19

Sinh viên viết, phân tích và in kết quả của các chương trình sau:

Trang 20

Chương 2: Cấu trúc điều khiển

2.2 Cấu trúc lựa chọn switch … case

}

Trang 21

Chương 2: Cấu trúc điều khiển

Bộ môn CĐT – Khoa Cơ Khí - ĐHTL

 Ví dụ 2: Viết chương trình nhập vào một số tự nhiên,

xuất ra màn hình tên của tháng trong năm.

 Ví dụ 3: Viết chương trình nhập vào một số tự nhiên,

xuất ra màn hình số ngày của tháng đó.

Trang 22

Chương 2: Cấu trúc điều khiển

2.3 Các cấu trúc lặp

- Vòng lặp for

- Vòng lặp while

- Vòng lặp do … while

Trang 23

Chương 2: Cấu trúc điều khiển

Bộ môn CĐT – Khoa Cơ Khí - ĐHTL

Trang 24

Chương 2: Cấu trúc điều khiển

Ví dụ:

Trang 25

Chương 2: Cấu trúc điều khiển

Bộ môn CĐT – Khoa Cơ Khí - ĐHTL

Cú pháp

while (<điều kiện>) {<công việc>}

Điểm chính của vòng lặp

while là nó có thể không chạy.

Bởi vì khi kiểm tra điều kiện

và kết quả là false, phần thân

vòng lặp được bỏ qua và lệnh

đầu tiên ngay sau vòng lặp sẽ

được thực thi.

Trang 26

Chương 2: Cấu trúc điều khiển

Trang 27

Chương 2: Cấu trúc điều khiển

Bộ môn CĐT – Khoa Cơ Khí - ĐHTL

Trang 28

Chương 2: Cấu trúc điều khiển

Lệnh Continue

Lệnh continue trong C++

làm việc khá giống với lệnh

break Thay vì bắt buộc kết

thúc, nó bắt buộc vòng lặp

tiếp theo diễn ra, bỏ qua bất

kỳ đoạn code nào ở giữa

Trang 30

Ví dụ: trong thư viện <math.h>

- Hàm sin(x): Là chuỗi các lệnh tính toán để tính giá trị sin của một góc x được truyền vào, góc x có đơn vị tính là radian; hàm sin(x) trả về một số thực

- Hàm sqrt(x): Là chuỗi các lệnh tính toán để tính căn bậc 2 của đại lượng x được truyền vào, đại lượng x có đơn vị tính là một

số thực (float hay double); hàm sqrt trả về một số thực

Trang 32

Chương 3: HÀM

Lý do sử dụng Hàm?

 Tránh lặp lại mã nguồn

 Sử dụng lại một đơn vị tính toán mà không phải viết lại

 Giúp cho việc phát triển giải thuật, việc tổ chức chương trình dễdàng

Trang 34

Chương 3: HÀM

Trang 36

- Data type: kiểu trả về của hàm Đồng thời là kiểu dữ liệu mà hàm trả về.

Nếu hàm không trả về thì kiểu trả về là void.

- Function name: tên hàm, có sẵn hoặc ta tự đặt.

- Data 1, data 2,…Parameter 1, …: kiểu dữ liệu và danh sách các tham

số Một hàm có thể có hoặc không có tham số, tham số đại diện cho dữ liệu mà hàm sẽ nhận để thao tác.

- Statements: tập hợp các câu lệnh xác định nhiệm vụ mà hàm sẽ thực

hiện.

Trang 37

Ví dụ: hàm trả về giá trị lớn nhất trong hai giá trị a, b:

int max (int a, int b){

if (a>b) return a;

return b;

}

Khai báo hàm như sau:

int max (int a, int b);

Hoặc: int max (int , int );

Trong c++ kiểu tham số quan trọng hơn tên tham số của hàm trongkhai báo hàm

Trang 39

Chương 3: HÀM

Bộ môn CĐT – Khoa Cơ Khí - ĐHTL

3.3 Truyền tham số cho hàm

Để chuyển thông tin vào một hàm để tính toán, cần biết kháiniệm về tham số và đối số

Tham số (parameters): là các biến được sử dụng trong một hàm

mà giá trị của biến đó được cung cấp bởi lời gọi hàm Các tham sốđược đặt bên trong dấu ngoặc đơn, cú pháp giống khai báo biến,cách nhau bằng dấu phẩy

Đối số: các giá trị truyền vào hàm qua lời gọi hàm, cách nhau bởi

dấu phẩy Số lượng đối số tương ứng số lượng tham số của hàm

Trang 40

Chương 3: HÀM

3.3 Truyền tham số cho hàm

Ví dụ tham số và đối số

10: là đối số của thông số a

15: là đối số của thông số b

Trang 41

Chương 3: HÀM

Bộ môn CĐT – Khoa Cơ Khí - ĐHTL

3.3 Truyền tham số cho hàm

Có hai kiểu truyền tham số

 Truyền tham số bằng trị

Được sử dụng khi KHÔNG CHO PHÉP hàm được gọi thay đổi giá trị đối

 Truyền tham số bằng con trỏ, truyền bằng địa chỉ

Được sử khi MUỐN CHO PHÉP hàm được gọi thay đổi giá trị đối Hoặc Khi không muốn bộ thực thi tốn nhiều thời gian cho việc chuẩn bị tham số của hàm được gọi (nghĩa là COPY giá trị của đối số vào thông số), như truyền một mảng nhiều phần tử vào hàm được gọi

Trang 42

Chương 3: HÀM

3.3 Truyền tham số cho hàm

Dấu sao (*) chỉ ra thông số nào sẽ được truyền bằng địa chỉ

a và b sẽ được truyền bằng địa chỉ

a và b sẽ được truyền bằng trị

Trang 43

Chương 3: HÀM

3.3 Truyền tham số cho hàm

Lời gọi hàm: truyền bằng trị

Hàm swap(int a, int b) hoán đổi giá trị của 2 biến a và b

Trang 44

Chương 3: HÀM

 Tham số của hàm là biến tạm thời, tạo ra khi gọi và huỷ khi hàmkết thúc

 Gán giá trị cho tham số không ảnh hưởng tới biến nơi gọi

 Hàm được gọi là đệ quy nếu bên trong thân hàm có một lời gọiđến chính nó

 Luôn luôn phải có điều kiện dừng – “điểm neo” Khi đặt tới điểmneo này, hàm sẽ không gọi chính nó nữa

VD: Viết hàm tính n! với n được nhập từ bàn phím

Trang 45

Chương 3: HÀM

3.4 Qúa tải Hàm

Định nghĩa chồng hàm (overloading): Định nghĩa chồng hàm ( hay

còn gọi là sự tải bội ) các hàm là dung cùng một tên để định nghĩa cáchàm khác nhau Đây là một mở rộng rất có ý nghĩa của C++

 Trong C và các ngôn ngữ khác như pascal, foxpro,… thì mỗi hàm phải có một tên riêng biệt hạn chế lớn vì dùng nhiều hàm

 Nhờ định nghĩa chồng hàm, C++ có thể dùng chung một tên cho cả 3 hàm

Trang 46

Chương 4: Con trỏ và mảng

 4.1 Khai báo mảng, con trỏ

 4.2 Truy xuất đến các phần tử trong

mảng, thao tác trên mảng

 4.3 Mảng nhiều chiều

Trang 47

Chương 4: Con trỏ và mảng

Bộ môn CĐT – Khoa Cơ Khí - ĐHTL

nó lưu trữ một tập hợp tuần tự các phần tử cùng kiểu với độ dài cốđịnh Mảng thường được sử dụng để lưu trữ tập hợp dữ liệu, nhưng

nó cũng hữu dụng khi dùng để lưu trữ một tập hợp biến có cùngkiểu

4.1 Khai báo mảng, con trỏ

Kiểu dữ liệu Tên mảng [Kích cỡ mảng]

Trang 48

Chương 4: Con trỏ và mảng

Nếu bạn không khai báo kích cỡ mảng thì mảng vừa đủ lớn để giữcác giá trị được khởi tạo

int balance[] = {15, 20, 25, 30, 35};

Chỉ số trong mảng

Trang 49

Chương 4: Con trỏ và mảng

Bộ môn CĐT – Khoa Cơ Khí - ĐHTL

Một mảng được truy cập bởi cách đánh chỉ số trong tên của mảng

int hocphi = hocphik60[55];

Câu lệnh trên lấy phần tử thứ 56 của mảng và gán giá trị này cho biến hocphi

4.2 Truy xuất đến các phần tử trong mảng, thao tác trên mảng

Trang 50

Chương 4: Con trỏ và mảng

Mảng là một phần rất quan trọng trong ngôn ngữ C/C++ Dưới đây lànhững định nghĩa quan trọng liên quan đến một mảng

Mảng đa chiều trong C/C++ C/C++ hỗ trợ các mảng đa chiều Mẫu đơn giản nhất của mảng này là mảng hai chiều

Con trỏ tới một mảng trong

C/C++

Bạn có thể trỏ tới phần tử đầu tiên của mảng một cách đơn giản chỉ bởi xác định tên mảng đó, chứ không phải một chỉ số

Truyền mảng tới hàm như là

tham số trong C/C++

Bạn có thể truyền tới hàm một điểm trỏ chỉ tới một mảng bởi xác định tên mảng chứ không phải là một chỉ số

Trả về mảng từ hàm trong

C/C++

C/C++ cho phép một hàm có thể trả về một mảng

Trang 51

Chương 4: Con trỏ và mảng

C++ hỗ trợ các mảng đa chiều Dưới đây là mẫu chung

của một khai báo mảng đa chiều

Trang 52

Chương 4: Con trỏ và mảng

Xét ví dụ sau đây: Ta khai báo mảng 2 chiều với 3 hàng và 4 cột

int a[ 3 ][ 4 ] = {

Trang 53

Chương 4: Con trỏ và mảng

Bộ môn CĐT – Khoa Cơ Khí - ĐHTL

Một con trỏ là một biến mà trong đó giá trị của nó là địa chỉ của biếnkhác Ví dụ như địa chỉ của vùng nhớ Giống như các biến và hằng số,bạn phải khai báo con trỏ trước khi bạn có thể sử dụng nó để lưu trữ bất

kì địa chỉ của biến nào

Khai báo con trỏ

int *sv; // tro toi mot gia tri nguyen

double *nv; // tro toi mot gia tri

double float *luong; // tro toi mot gia tri

float char *ten // tro toi mot ky tu

Trang 54

Chương 4: Con trỏ và mảng

Khai báo con trỏ

 Cú pháp khai báo: <type> * <pointer name>

Sử dụng con trỏ trong C++

- Định nghĩa biến con trỏ

- Gán địa chỉ của biến đến một con trỏ

- Truy cập các giá trị biến địa chỉ trong biến con trỏ

Trang 55

Chương 5: Lớp và lập trình hướng đối tượng

Bộ môn CĐT – Khoa Cơ Khí - ĐHTL

 5.1 Khái niệm lớp về lớp

 5.2 Khai báo và sử dụng lớp

 5.3 Phạm vi truy xuất

 5.4 Hàm tạo, hàm hủy và các vấn đề liên quan

 5.5 Một số chương trình minh họa về lập trình

hướng đối tượng

Trang 56

Chương 5: Lớp và lập trình hướng đối tượng

Đặt vấn đề:

Lớp (Class) là khái niệm trung tâm của lập trình hướng đối tượng, nó là sự

mở rộng của các khái niệm cấu trúc (struct) của C và bản ghi (record) của pascal

Trang 57

Bộ môn CĐT – Khoa Cơ Khí - ĐHTL

Lớp (Class) có thể coi là bản thiết kế của các đối tượng (Object) Nó

là một kiểu dữ liệu do người dùng định nghĩa, chứa các thành viên

dữ liệu và các hàm thành viên của riêng nó

Ví dụ:

5.1 Khái niệm lớp về lớp

Chương 5: Lớp và lập trình hướng đối tượng

Mỗi sinh viên đều có thuộc tính chung là: mã sinh viên, mã sinh viên, tên, tuổi, quê quán, điểm toán, điểm lý, điểm hoá, đi, đứng, ngồi, học tập, …

Mỗi sinh viên là một lớp (Class)

Lớp sinhvien sẽ có các thành viên là: mã sinh viên, tên, tuổi,

quê quán, điểm toán, điểm lý, điểm hoá, … đi, đứng, ngồi, học tập,

Trang 58

Chương 4: Con trỏ và mảng

Trong C++, để định nghĩa một lớp ta bắt đầu bằng từ khóa class, tiếp theo đó là tên của lớp và phần thân lớp được bao bởi cặp dấu {} Kết thúc lớp bằng dấu ;

5.2 Khai báo và sử dụng lớp

Lớp được định nghĩa theo mẫu:

Class Tên_lớp{

//khai báo các thuộc tính (peroperties)//khai báo các phương thức (methods)};

Trang 59

Chương 4: Con trỏ và mảng

Bộ môn CĐT – Khoa Cơ Khí - ĐHTL

Trong ví dụ trên: Lớp sinh viên sẽ có:

 Thuộc tính (Attribute) là: mã sinh viên, tên, tuổi, quê quán,

điểm toán, điểm lý, điểm hoá, …

 Hành vi (Trong C++ sẽ gọi là phương thức – Method): đi, đứng, ngồi, học tập, …

5.2 Khai báo và sử dụng lớp

Trang 60

Chương 4: Con trỏ và mảng

Khai báo đối tượng:

Một lớp (sau khi định nghĩa) có thể được xem như một kiểu đối tượng và có thể dùng để khai báo các biến, mảng đối tượng

5.2 Khai báo và sử dụng lớp

 Trong lập trình hướng đối tượng, các đối tượng (Object) là một thực thể trừu tượng của một sự vật trong thế giới thực, được con người mô hình hóa, ghi lại những tính chất và hành vi, để tạo nên thuộc tính (Attribute) và phương thức (Method) của đối tượng (Object).

 Khi một lớp (Class) được định nghĩa, chỉ có đặc tả cho đối tượng được xác định Do đó các đối tượng sẽ không được khởi tạo, nghĩa là không có bộ nhớ hoặc lưu trữ được phân bổ cho các đối tượng thuộc lớp đó.

 Để sử dụng dữ liệu và các hàm truy cập được xác định trong lớp, bạn cần khai báo các đối tượng.

Lưu ý:

Trang 61

23

Trang 62

Chương 4: Con trỏ và mảng

Ngày đăng: 02/10/2023, 13:42

HÌNH ẢNH LIÊN QUAN

Sơ đồ khối - Bài giảng Kỹ thuật lập trình cơ điện tử
Sơ đồ kh ối (Trang 26)

🧩 Sản phẩm bạn có thể quan tâm