Tải bản đầy đủ (.pdf) (447 trang)

Lập Trình Ứng Dụng Trong Kỹ Thuật.pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (11.78 MB, 447 trang )

ĐẠI HỌC THỦY LỢI
KHOA ĐIỆN - ĐIỆN TỬ

BÀI GIẢNG MÔN HỌC:

LẬP TRÌNH ỨNG DỤNG
TRONG KỸ THUẬT
GIẢNG VIÊN BIÊN SOẠN: THS. HỒNG DUY KHANG
BỘ MƠN: KTĐK&TĐH

0903479803


TÀI LIỆU THAM KHẢO
• 1. Nguyễn Thanh Thủy, Kĩ thuật lập trình C++, NXB KH&KT, 2006
• 2. Savitch, Absolute C++, Addison Wesley, 2002
• 3. Bjarne Stroustrup, The C++ Programming Language, AT&T Lab, Murray
Hill, New Jersey.
• 4. C++ How to program-2nd, Prentice Hall, 1998.
• 5. Trần Thị Minh Châu, Ngơn ngữ lập trình C++, FOTECH. VNU, 2004
• 6. Phạm Hồng Thái, Ngơn ngữ lập trình C/C++, Bài giảng, ĐHQGHN, 2003
• 7. Đỗ Xuân Lôi, Cấu trúc dữ liệu và giải thuật, NXB ĐHQGHN, 2010
• 8. Bài giảng slide – TS. Tran Trung Dung
• 9. Các tài liệu trên mạng internet, các bài dạy online trên youtube…
14/02/2023

2


Mục tiêu
×



SV hiểu được những kiến thức cơ bản về ngơn ngữ lập trình, cách
tổ chức và viết chương trình trên một ngơn ngữ lập trình cụ thể.

×

Hiểu được những kiến thức cơ bản về các đặc điểm của các kiểu dữ
liệu trừu tượng (danh sách, cây), cũng như cách tổ chức và cài đặt
các kiểu dữ liệu đó bằng ngơn ngữ lập trình đã học.

×

SV vận dụng được các kiến thức đã học để lập trình với một/nhiều
ngơn ngữ lập trình cụ thể từ cơ bản đến nâng cao, giải quyết được
một số bài toán cơ bản do thực tế đặt ra bằng tư duy lập trình hướng
đối tượng, hướng cấu trúc…

3


CÁC KỸ NĂNG, THÁI ĐỘ CẦN CÓ:
Kỹ năng cần đạt được:

Thái độ:

• Quen thuộc với mơi trường lập trình cho
ngơn ngữ C/C++.

• Góp phần hình thành trách nhiệm
đóng góp cộng đồng.


• Viết được các chương trình C/C++ từ cơ bản
đến nâng cao.

• Biết nhận xét đánh giá các hiện tượng,
sự cố xảy ra trong quá trình thực hiện
lập trình các chương trình phần mềm.

• Nắm được phương pháp phân tích, thiết kế
và cài đặt cho một số cấu trúc dữ liệu cơ bản
như danh sách, cây.
• Hiểu và cài đặt được các thuật tốn sắp xếp
và tìm kiếm
• Vận dụng được các kiểu dữ liệu trừu tượng
để giải quyết các bài tốn đơn giản trong
thực tế.

• Hình thành tư duy phản biện, năng lực
tự học, tự nghiên cứu khoa học công
nghệ.

14/02/2023

4


NỘI DUNG MÔN HỌC
Phần 1: Lý thuyết
◎ Chương 1: Giới thiệu về ngơn ngữ lập trình C++ (3t)
◎ Chương 2: Các kiểu dữ liệu cơ bản, các cấu trúc điều khiển

(9t)
◎ Chương 3: Hàm và tổ chức chương trình (6t)
◎ Chương 4: Mảng (3t)
◎ Chương 5: Con trỏ và xâu ký tự (3t)
◎ Chương 6: Cấu trúc dữ liệu trừu tượng, struct và class (6t)

Phần 2: Thực hành + BT (15t)
5


KIỂM TRA - ĐÁNH GIÁ
Tuần


Lý thuyết





Thi cuối kỳ (70%)

Thực hành




Kiểm tra thường kỳ

Kiểm tra thường kỳ


Số tín chỉ: 3 (45 tiết)


Lý thuyết: 30 t



Thực hành: 15 t

Nội dung

1/C1
11
2/C2

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

3/C2

Các kiểu dữ liệu cơ bản, các cấu trúc
điều khiển

LT
3

6

3


6
6

3

6

3

6

12
6/C3

Tự học

K.tra

3

4/C2
5/C3

TH

3
Hàm và chương trình

6


3

6

3

6

13

3

6

7/C4

Mảng

3

6

8/C5
14

Con trỏ và xâu ký tự

3

6


9/C6

Cấu trúc dữ liệu trừu tượng, struct và
10/C6 class

3
3

6

3

6
6

15
Tổng

6

3
30

15
14/02/2023

6



Một số gợi ý


Bám sát các nội dung thực hành (quan trọng!)



Đọc tài liệu, slide trước khi đến lớp



In tài liệu, slide, bài tập



Tự đặt câu hỏi và trả lời



Tự làm bài tập ở nhà



Tóm tắt các nội dung chủ yếu



Tham gia đầy đủ trên lớp?
7



Chương 1: Giới thiệu về ngơn ngữ
lập trình C++
1.1. Các khái niệm cơ bản về Ngơn ngữ lập trình
(NNLT)
1.2. Tổng quan về lập trình
1.3. Ngơn ngữ lập trình C/C++
1.4. Biến chương trình trong C/C++
1.5. Sử dụng hằng số trong C/C++
1.6. Biểu thức
1.7. Ra quyết định: Các phép toán quan hệ
1.8. Vào/ra dữ liệu
1.9. Bài tập
8


1.1. CÁC KHÁI NIỆM CƠ BẢN VỀ NGÔN NGỮ LẬP TRÌNH
1.1.1. Tổng quan:
 Hệ thống máy tính (CPU, RAM, ROM, Input, Output…)

 Phần cứng, phần mềm
• Phần cứng: Tồn bộ các thiết bị điện tử và cơ khí của máy tính gọi chung là
phần cứng (hardware)
• Phần mềm: các chương trình chạy trên máy tính được gọi là phần mềm
(software) như hệ điều hành – OS , chương trình tiện tích, phần mềm ứng
dụng (các chương trình do người sử dụng lập ra cho ứng dụng của mình).

 Ngơn ngữ máy (bậc thấp nhất: assembly làm việc với các thanh ghi, bit dữ liệu 0, 1
– mức logic)
 Ngôn ngữ phần mềm ứng dụng: NNLT gợi nhớ + trình biên dịch thành ngôn ngữ

máy.
14/02/2023

9


1.1.1. TỔNG QUAN

10
TẠI SAO CẦN CĨ NGƠN NGỮ LẬP TRÌNH 14/02/2023
MÁY TÍNH??


1.1.2. LỊCH SỬ RA ĐỜI CỦA MỘT SỐ NGÔN NGỮ LẬP TRÌNH
Ngơn ngữ lập trình C:
• Là một ngơn ngữ mệnh lệnh được phát triển từ đầu thập niên 1970 bởi
Dennis Ritchie tại PTN Bell Telephone (công ty AT&T – USA) để dùng trong
hệ điều hành UNIX. Từ đó, ngơn ngữ này đã được sử dụng ở nhiều hệ
điều hành khác và trở thành một trong những ngôn ngữ phổ dụng nhất.
• Năm 1978, bản in đầu tiên về ngơn ngữ C được in thành sách “The C
programming language” do Kernighan và Ritchie viết. Sau đó C được Viện
Tiêu chuẩn hóa của Mỹ (ANSI) lập thành tiêu chuẩn với tên gọi “ANSI C”
năm 1983. Tổ chức tiêu chuẩn hóa quốc tế ISO cũng xây dựng chuẩn cho
C. Các chuẩn này giống nhau và được biết đến với tên chung là ANSI C.
14/02/2023

11


1.1.2. LỊCH SỬ RA ĐỜI CỦA MỘT SỐ NGÔN NGỮ LẬP TRÌNH


Lược sử C:
• C là ngơn ngữ lập trình kiểu thuật giải rất hiệu quả và được ưa chuộng
nhất để viết các phần mềm hệ thống, cũng như dùng cho việc viết các
ứng dụng.
• C cũng thường được dùng làm phương tiện giảng dạy trong khoa học
máy tính mặc dù ngôn ngữ này không được thiết kế dành cho người
nhập mơn.

• Why named C?: Vì trước đó tại Bell Telephone Laboratories đã có một
ngơn ngữ tên là B, là tiền đề của C, do Ken Thompons sáng tạo ra.
• Why B?
14/02/2023

12


C: Ngơn ngữ lập trình hướng cấu trúc!

THUẬT GIẢI (ALGORITHMS) VÀ
CHƯƠNG TRÌNH

ALGORITHMS + DATA STRUCTURES =
PROGRAMS

Tìm và
xây dựng
thuật giải

Vấn đề

bài
tốn

THUẬT GIẢI + CẤU TRÚC DỮ LIỆU = CHƯƠNG TRÌNH

Viết
chương
trình
14/02/2023

13


C – Ngơn ngữ lập trình nền tảng
14


1.1.2. LỊCH SỬ RA ĐỜI CỦA MỘT SỐ NNLT

Ngôn ngữ lập trình C++
Lược sử
 C được tạo ra bởi Dennis Ritchie ở Bell Telephone Laboratories vào năm

1972. Năm 1983, C được chuẩn hóa thành ANSI Standard C, American
National Standards Institute – ANSI.
 C++ được xây dựng trên nền tảng ANSI Standard C. Đây là một NNLT hướng

đối tượng (OOP) được phát triển bởi Bjarne Stroustrup. Tuy nhiên C++ được
mở rộng từ NNLT hướng cấu trúc C nên C++ được xem là NNLT nửa hướng
đối tượng, nửa hướng cấu trúc.

 C++ được coi là một NNLT cấp trung gian, vì nó bao gồm cả các tính năng của

ngơn ngữ cấp cao và cấp thấp.
14/02/2023

15


1.1.2. LỊCH SỬ RA ĐỜI CỦA MỘT SỐ NNLT
MỘT VÀI TÍNH NĂNG NỔI BẬT NGƠN NGỮ C++

• Tự quản lý bộ nhớ động: Sử dụng con trỏ, C++ cho phép tự quản lý bộ
nhớ, giúp tăng cường tốc độ thực thi của chương trình.
• Hỗ trợ lập trình hướng đối tượng (C++ là NNLT hướng đối tượng, bao hàm
cả ngôn ngữ C): C++ có thể được viết theo kiểu ngơn ngữ C hoặc kiểu
hướng đối tượng. Trong một số trường hợp nhất định, nó có thể được mã
hóa theo cả hai cách  C++ trở thành một ví dụ điển hình về một ngơn
ngữ lai.

• Hiệu suất cao: C++ cho phép thao tác bộ xử lý ở cấp độ thấp hơn, nó khá
nhanh hơn so với các ngơn ngữ cấp cao như Python hoặc C#
14/02/2023

16


CHỨC NĂNG CỦA NNLT C/C++
C/C++ được tạo ra để thuận tiện khi viết các chương trình lớn với số lỗi ít hơn và khi
hồn thiện có thêm những chức năng sau:


- Trở thành một ngôn ngữ cốt lõi đơn giản,
- Hệ thống kiểu đơn giản, loại bỏ được nhiều phép tốn khơng có ý nghĩa thực
dụng.

- Dùng ngơn ngữ tiền xử lý cho các nhiệm vụ như định nghĩa các macro và hàm
chứa nhiều tập tin mã nguồn (VD dạng #include).
- Cho phép dùng tới bộ nhớ máy tính qua việc sử dụng kiểu dữ liệu con trỏ. Hàm các
con trỏ hình thành một nền tảng với cho tính đóng và đa hình.
- Số lượng từ khóa nhỏ gọn.
- Hỗ trợ các bản ghi hay các kiểu dữ liệu kết hợp do người dùng định nghĩa
struct/class cho phép các dữ liệu liên hệ nhau có thể được tập hợp lại và được
điều chỉnh toàn bộ.
14/02/2023

17


ƯU ĐIỂM CỦA NGƠN NGỮ LẬP TRÌNH C/C++
• Tính tương thích cao.
• Cú pháp rất sát với suy nghĩ logic nên
việc viết code khá nhanh và đơn giản.

• Đa mơ hình và có nhiều thư viện (tính
năng gần giống với các plug-in)

14/02/2023

18



1.1.2. LỊCH SỬ RA ĐỜI CỦA MỘT SỐ NNLT
JavaScript:
• Là một ngơn ngữ lập trình thơng dịch được phát triển từ các ý niệm nguyên mẫu. Ngôn ngữ
này được dùng rộng rãi cho các trang web (phía người dùng) cũng như phía máy chủ (với
Nodejs). Được phát triển bởi Brendan Eich tại Hãng truyền thông Netscape với cái tên đầu
tiên Mocha, rồi sau đó đổi tên thành LiveScript, và cuối cùng thành JavaScript. Giống Java,
JavaScript có cú pháp tương tự C, nhưng nó gần với Self hơn Java. .js là phần mở rộng
thường được dùng cho tập tin mã nguồn JavaScript.
• JavaScript là một ngơn ngữ lập trình dựa trên nguyên mẫu với cú pháp phát triển từ C.
Giống như C, JavaScript có khái niệm từ khóa, do đó JavaScript gần như khơng thể được
mở rộng.
• JavaScript khơng có bộ xử lý xuất/nhập (input/output) riêng. Trong khi C sử dụng thư viện
xuất/nhập chuẩn, JavaScript dựa vào phần mềm ngôn ngữ được gắn vào để thực hiện
xuất/nhập.
(Nguồn wikipedia tiếng Việt)

14/02/2023

19


CÁC NGƠN NGỮ LẬP TRÌNH HIỆN TẠI
• Học thuật: Turbo Pascal, C/C++: là các ngôn ngữ mạnh, được các lập trình
viên chuyên nghiệp cũng như nghiệp dư sử dụng để lập trình hệ thống,
lập trình ứng dụng  nhu cầu tất yếu cho SV các ngành KHKT.
• Kỹ thuật đồ họa: Visual Basic, Visual C/C++
• Lập trình Web: JavaScript, Python, SQL, PHP…

• Thiết kế mạch in PCB: Orcad, Protel…
• Kỹ thuật điện, điện tử, TĐH & các ngành công nghệ khác:

Matlab/Simulink, Arduino, TIA Portal, PSim, LabVIEW…
• Kỹ thuật lập trình cho Robot, UAV: ROS/ROS2
• Hệ điều hành: Microsoft Windows, Linux, Firefox, iOS, Android, Mac OS…
14/02/2023

20


TOP 10 NGƠN NGỮ LẬP TRÌNH PHỔ BIẾN 2021

14/02/2023

21


1.1.3. TẠI SAO CẦN HỌC LẬP TRÌNH?
• Luyện tập được tư duy khái quát hóa, tổng quát và tư duy trừu tượng.

• Khi đã hiểu, có thể vận dụng vào lập trình bài tốn cụ thể.
• Bổ sung kiến thức cho SV ngành Điện - ĐT - thông tin để có các kỹ năng lập trình nâng cao
phục vụ cho các môn học chuyên ngành sau này (thiết kế mạch điện tử, truyền thông, giao
thức trong CNTT, công nghiệp, công nghệ nhúng, IoT…)
• SV sau khi có kiến thức căn bản về lập trình  có thể tự học và nghiên cứu các NNLT bậc
cao khác. Giải quyết các bài tốn thực tiễn sử dụng các cơng cụ lập trình phù hợp.
• Mỗi loại NNLT, tự nó đã có những ưu việt đặc trưng riêng, phù hợp với từng nhu cầu sử
dụng. Nếu bạn muốn phát triển về mảng cơ sở dữ liệu, đừng bỏ qua SQL; phát triển
website và internet thì nên dùng JavaScript; trình điều khiển máy tính thì nên chú tâm vào
C, C++. Hãy tìm hiểu Python nếu đam mê về mảng lập trình AI - Trí tuệ nhân tạo…

22


14/02/2023


QUY TRÌNH LÀM PHẦN MỀM
• Bước 0: Ý tưởng (Concept): Hình thành nên các ý tưởng về nhu cầu hay về thị trường làm 1 phần mềm.
• Bước 1: Xác định các yêu cầu (Requirements Specification): Chuẩn bị tài liệu mô tả một cách đầy đủ, rõ
ràng về các yêu cầu (xác định các đặc tả).
• Bước 2: Phân tích (Analysis): Hiểu vấn đề. Đánh giá các giải pháp khác nhau. Chọn giải pháp ưa thích
nhất.
• Bước 3: Thiết kế (Design): Thực hiện thiết kế hệ thống theo kiểu từ trên xuống, tạo ra các modul nhỏ.
Xác định cấu trúc dữ liệu chính và các chương trình con có liên quan đối với mỗi modul.
• Bước 4: Thực hiện (Implementation): Viết thuật giải để mô tả các thủ tục. Tạo mã (viết chương trình)
cho giải pháp đã chọn. Gỡ rối.
• Bước 5: Thử nghiệm (Testing): Thử nghiệm chương trình và khẳng định nó chạy đúng so với u cầu.

• Bước 6: Vận hành, theo dõi và bảo dưỡng (Operation, follow-up and maintenance): Cho chạy tồn hệ
thống, đánh giá các tính năng của nó. Gỡ lỗi mới phát sinh. Cập nhật hệ thống. Khẳng định rằng các thay
đổi này là đúng.
• Ngày nay, các trường Đại học của VN đang dần áp dụng chuẩn đầu ra theo phương pháp CDIO.
14/02/2023

23


Mơi trường lập trình được sử dụng
×

Tại sao lại là NNLT C/C++?


×

Việc học C trước mang tính sư phạm, học thuật
(academic), khi đã hiểu những vấn đề cơ bản
của C sẽ học được nhanh C++, sau này là

Java/JavaScript và các ngơn ngữ lập trình khác.

24


CÁC IDES (INTEGRATED DEVELOPMENT ENVIRONMENT) VÀ
TEXT EDITOR CHO LẬP TRÌNH C/C++
STT

IDEs

1

Visual Studio

2

Eclipse

3

Visual Studio Code

4


Code::Blocks

5

Clion

6

Xcode

7

NetBeans

8

CodeLite

9

Dev C++

10

Atom

Note
Ngoài khả năng code C/C++, đây là một IDE riêng biệt giành cho
C# và .NET Framework.


Hỗ trợ code nhiều NNLT

một IDE mã nguồn mở, được coi là một trong những IDE hỗ trợ
viết code C++ tốt nhất, chạy trên nền Windows.

14/02/2023

25


×