Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Kỹ thuật lập trình 1
Nội dung xem thử
Mô tả chi tiết
TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THỦ ĐỨC
Khoa Công Nghệ Thông Tin
TÀI LIỆU GIẢNG DẠY | BẬC CAO ĐẲNG
KỸ THUẬT LẬP TRÌNH 1
| 2016 – Lưu hành nội bộ |
Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang i
LỜI TÁC GIẢ
Quyển giáo trình này được biên soạn dựa theo đề cương môn học “Kỹ thuật
lập trình 1” của Khoa Công nghệ thông tin Trường Cao đẳng Công nghệ Thủ
Đức.
Giáo trình tham khảo cho một môn học sẽ không tránh khỏi những sai sót về
nội dung lẫn hình thức, nhóm biên soạn rất mong nhận được sự g p chân
thành từ các qu thầy cô và các em sinh viên để giáo trình hoàn thiện hơn.
Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang ii
GIỚI THIỆU
Khi xây dựng và phát triển chương trình đ{o tạo theo hướng tiếp cận CDIO, học
phần Kỹ thuật lập trình là kiến thức bắt buộc phải có với sinh viên các ngành
Công Nghệ Thông Tin, Truyền Thông Và Mạng Máy Tính. Đ}y l{ học phần cơ sở
nhằm trang bị các kiến thức cơ bản về lập trình, giúp sinh viên có thể tiếp tục
theo học các môn chuyên ngành Công nghệ thông tin. Thông qua các hoạt động
học tập, sinh viên còn có thể hoàn thiện dần tính chủ động, tích cực, khả năng
tự học, tư duy hệ thống, kỹ năng l{m việc nhóm, kỹ năng giao tiếp điện tử và
thói quen tuân thủ c|c quy định làm việc trong môi trường chuyên nghiệp.
Quyển gi|o trình n{y được biên soạn dựa theo đề cương môn học “Kỹ thuật lập
trình 1” của Khoa Công nghệ thông tin - Trường Cao đẳng Công nghệ Thủ Đức
để làm tài liệu tham khảo chính.
Giáo trình tham khảo cho một môn học sẽ không tránh khỏi những sai sót về
nội dung lẫn hình thức, nhóm biên soạn rất mong nhận được sự go p y cha n
thành từ ca c quy thầy cô v{ c|c em sinh viên để giáo trình hoàn thiện hơn.
Mọi góp ý xin vui lòng gửi về địa chỉ email [email protected]. Xin chân thành cảm
ơn!
Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang iii
MỤC LỤC
1. TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH ................................................................1
1.1| GIỚI THIỆU .....................................................................................................................2
1.2| LỊCH SỬ PHÁT TRIỂN NGÔN NGỮ LẬP TRÌNH..............................................3
1.3| CÁC DẠNG NGÔN NGỮ LẬP TRÌNH......................................................................8
1.4| CÁC CÔNG CỤ NGÔN NGỮ LẬP TRÌNH............................................................16
1.5| CẤU TRÚC MỘT CHƯƠNG TRÌNH C++ ............................................................21
1.6| GIẢI THUẬT VÀ ĐẶC TẢ GIẢI THUẬT..............................................................24
2. CÁC KIỂU DỮ LIỆU, HẰNG, BIẾN.............................................................................29
2.1| TẬP KÝ TỰ DÙNG TRONG C++............................................................................30
2.2| TỪ KHÓA.......................................................................................................................30
2.3| TÊN VÀ CÁCH ĐẶT TÊN.........................................................................................31
2.4| CÁC KIỂU DỮ LIỆU CƠ BẢN .................................................................................31
2.5| BIẾN................................................................................................................................33
2.6| HẰNG ..............................................................................................................................35
3. TOÁN TỬ VÀ BIỂU THỨC............................................................................................38
3.1| CÁC LOẠI TOÁN TỬ..................................................................................................39
3.2| BIỂU THỨC...................................................................................................................51
3.3| CÂU LỆNH CIN, COUT.............................................................................................52
4. CẤU TRÚC CHỌN.............................................................................................................57
Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang iv
4.1| KHÁI NIỆM ...................................................................................................................58
4.2| CẤU TRÚC ĐIỀU KIỆN.............................................................................................58
4.3| CẤU TRÚC SWITCH … CASE .................................................................................67
5. CẤU TRÚC LẶP .................................................................................................................73
5.1| KHÁI NIỆM ...................................................................................................................74
5.2| CẤU TRÚC LẶP FOR..................................................................................................74
5.3| CẤU TRÚC LẶP WHILE............................................................................................78
5.4| CẤU TRÚC LẶP DO … WHILE...............................................................................82
5.5| PHÂN BIỆT CÁC CẤU TRÚC LẶP.........................................................................85
5.6| CÂU LỆNH BREAK VÀ CONTINUE .....................................................................87
5.7| CÂU LỆNH RETURN .................................................................................................90
5.8| CÂU LỆNH GOTO .......................................................................................................90
6. HÀM.....................................................................................................................................93
6.1| KHÁI NIỆM ...................................................................................................................94
6.2| HÀM DO NGƯỜI DÙNG ĐỊNH NGHĨA...............................................................95
6.3| TRUYỀN THAM SỐ CHO HÀM..............................................................................98
6.4| TẦM VỰC CỦA BIẾN..............................................................................................102
7. MẢNG MỘT CHIỀU.....................................................................................................105
7.1| GIỚI THIỆU ...............................................................................................................106
7.2| KHAI BÁO VÀ KHỞI TẠO.....................................................................................106
7.3| TRUY XUẤT MẢNG.................................................................................................108
7.4| MỘT SỐ ỨNG DỤNG TRÊN MẢNG...................................................................117
Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 1
1. TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH
Chương n{y nhằm giới thiệu cho sinh viên các khái
niệm cơ bản về lập trình, về các dạng ngôn ngữ lập
trình, c|c phương ph|p lập trình hiện có. Ngoài ra
cũng cung cấp cho sinh viên cách thức để phân tích
một bài toán và mô tả giải thuật cho một bài toán
Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 2
1.1| GIỚI THIỆU
Chương trình – Programs / Applications: Ðó là tập các chỉ thị (instructions)
được sắp xếp theo một trật tự định trước nhằm hướng dẫn máy tính thực hiện
c|c thao t|c, h{nh động cần thiết để đ|p ứng một mục tiêu đ~ định trước của
con người như truy xuất dữ liệu, tìm kiếm, giải bài toán, ...Các chỉ thị này có thể
được viết bằng nhiều ngôn ngữ lập trình khác nhau.
Ngôn ngữ lập trình - Programming languages: là tập từ ngữ và ký hiệu cho
phép lập trình viên (programmers) hoặc người dùng có thể giao tiếp với máy
tính. Cũng giống như tiếng Anh, tiếng Tây Ban Nha hoặc tiếng Trung Quốc và
những ngôn ngữ tiếng nói khác, ngôn ngữ lập trình cũng có c|c luật được gọi là
cú ph|p (syntax) để đảm bảo ngôn ngữ đó được vận dụng một cách chính xác.
Một số ngôn ngữ lập trình thông dụng như C++, Visual Basic, C#, Java, Python.
Lập trình viên – Programmers: là người có thể thiết kế, xây dựng và bảo trì
c|c chương máy tính hoặc phần mềm. Bằng c|ch thao t|c c|c đoạn mã hoặc các
ngôn ngữ trên các công cụ lập trình.
Công cụ lập trình - Programming tools / Developer tools: công cụ lập trình
hay công cụ phát triển phần mềm là một chương trình m|y tính m{ c|c nh{
phát triển phần mềm sử dụng để tạo (create), gỡ rối (debug), duy trì
(maintain), hoặc thực hiện các hỗ trợ kh|c cho c|c chương trình hoặc các ứng
dụng.
Công việc của một lập trình viên
Công việc của người lập trình được gọi l{ software engineering. Để làm ra một
phần mềm, trước hết người ta phải tạo ra một “bản thiết kế” (framework), mỗi
lập trình viên đảm nhiệm một phần việc, sau đó c|c phần được kết nối lại tạo
thành một sản phẩm hoàn chỉnh. Lập trình viên được ví là những thợ “coding”
(người ngồi gõ những dòng lệnh (code) trên máy tính), làm ra các phần mềm
hoặc chỉnh sửa, phát triển nó dựa trên các công cụ lập trình
Các kỹ năng cần thiết của một lập trình viên:
Nghề lập trình đòi hỏi sự sáng tạo cũng như c|c kỹ năng đ|nh gi|, ph}n tích yêu
cầu của dự |n, đưa ra c|c giải pháp thiết kế hoặc cách tiếp cận công nghệ mới.
Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 3
Để trở thành một lập trình viên giỏi, bạn cần thường xuyên rèn luyện các kỹ
năng sau:
Kỹ năng ph}n tích
Kỹ năng giao tiếp
Tính sáng tạo
Kỹ năng dịch vụ khách hàng
Định hướng một cách chi tiết
Kỹ năng giải quyết vấn đề
Kỹ năng làm việc theo nhóm
Kỹ năng công nghệ
1.2| LỊCH SỬ PHÁT TRIỂN NGÔN NGỮ LẬP TRÌNH
Ngôn ngữ lập trình (programming language) là một tập con của ngôn ngữ
máy tính. Đ}y l{ một dạng ngôn ngữ được thiết kế và chuẩn hóa (đối lập với
ngôn ngữ tự nhiên) để truyền các chỉ thị cho máy tính (hoặc máy khác có bộ xử
lí). Ngôn ngữ lập trình có thể được dùng để tạo ra c|c chương trình nhằm mục
đích điều khiển máy tính hoặc mô tả các thuật to|n để người kh|c đọc hiểu.
C|c lĩnh vực ứng dụng của ngôn ngữ lập trình:
- Nghiên cứu khoa học: Fortran, C, Matlab, …
- Lập trình hệ thống: C, C++, …
- Tính toán trong kinh doanh: Java, C#, …
- Trí tuệ nhântạo: LISP, …
- Xử lý văn bản: Perl, Python, …
- Mục đích đặc biệt cho NNLT: make, sh-shell, …
Sơ lược các mốc lịch sử phát triển ngôn ngữ lập trình như sau:
Năm 1943: nữ b| tước Ada Lovelace được công nhận với ngôn ngữ máy tính
đầu tiên , đ~ viết một thuật toán cho Máy phân tích (một loại m|y tính cơ đời
đầu).
Năm 1957 – 1959: FORTRAN, LISP. COBOL là các ngôn ngữ bậc cao l}u đời
nhất được tạo ra để phục vụ cho nghiên cứu khoa học, toán học và tính toán
thương mại. Được dùng bởi NASA, các phần mềm quản lý thẻ ngân hàng, các
Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 4
máy ATM. Một bộ phim h{nh động “ The Terminator” đ~ dùng một đoạn mã
COBOL trong đoạn chữ ở mục giới thiệu về bộ phim này.
Năm 1970: nhà toán học, vật lý học người Ph|p Blaise Pascal đ~ đề xuất ngôn
ngữ lập trình bậc cao PASCAL dùng cho giảng dạy lập trình cấu trúc và cấu trúc
dữ liệu. Ngôn ngữ dẫn xuất Object Pascal được dùng phát triển các ứng dụng
trên Windows. Một số ứng dụng nổi tiếng sử dụng ngôn ngữ Pascal như: Apple
Lisa (1983), Skype, …
Năm 1972: Giữa những năm 1969 v{ 1974, phát triển khởi đầu của C diễn ra
tại phòng thí nghiệm Bell của tập đo{n AT&T (Hoa Kỳ) được thực hiện
bởi Brian W.Kernighan và Dennis Ritchie, là ngôn ngữ đa năng bậc thấp. Theo
Ritchie thì thời gian sáng tạo nhất l{ v{o năm 1972. Nó được đặt tên là C vì
nhiều đặc tính của nó rút ra từ các ngôn ngữ trước đó l{ B và BCPL. Mục đích
của phát triển trên là tạo ra được một ngôn ngữ lập trình bậc cao có thể khả
năng chuyển đổi dễ dàng từ hệ thống này sang hệ thống khác thay thế
cho ngữ trong việc lập trình hệ thống. Cũng v{o thời gian đó, người ta muốn
viết lại hệ điều hành UNIX để có thể c{i đặt được hệ điều hành này trên
nhiều kiến trúc máy tính khác nhau.Tính khả chuyển của UNIX là lí do chính
khiến cho nó và C trở nên nổi tiếng. Vì hầu hết c|c chương trình hệ thống sau
đó đều được viết bằng C, việc viết thêm c|c chương trình mới bằng C l{ điều
khá dễ hiểu.
C là nguồn gốc của nhiều ngôn ngữ dẫn xuất bao gồm C#, Java,
JavaScript, Perl, PHP và Python. Ngôn ngữ C được dùng phổ biến trong lập trình
nền tảng (platform), lập trình hệ thống, lập trình UNIX, phát triển ứng dụng trò
chơi điện tử. Các ứng dụng www trên hệ thống máy chủ (server) và máy khách
(client) đời đầu cũng được viết bằng ngôn ngữ C.
Năm 1983: Bjarne Stroustrup, một nhà khoa học m|y tính người Đan Mạch, đ~
bắt đầu làm việc với tiền thân của ngôn ngữ C++ - “C with Classes” v{o năm
1979. Sau đó, v{o năm 1983, “C with classes” được đổi tên thành C++ (++ là
toán tử tăng dần trong C). C|c tính năng mới được thêm vào bao gồm: virtual
functions (hàm ảo), function overloading (nạp chồng hàm) và operator
overloading (nạp chồng toán tử), references (kiểu tham chiếu), constants (hằng
số), toán tử cấp phát và giải phóng bộ nhớ (new/delete), cải tiến việc kiểm tra
kiểu dữ liệu v{ thêm tính năng chú thích trong code sử dụng hai dấu chéo
Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 5
ngược liền kề ( // ) tương tự như ngôn ngữ BCPL; cũng như ph|t triển một
trình biên dịch phù hợp cho những cải tiến này của ngôn ngữ C++ - Cfront.
C++ là một trong ít ngôn ngữ mà có thể đảm nhiệm được rất nhiều vai
trò trong lập trình: từ lập trình ứng dụng, lập trình nhúng, các ứng dụng
client/server, trò chơi đồ họa cho đến việc lập trình cho các hệ thống lớn và rất
lớn. C++ cho phép lập trình viên sử dụng những kĩ thuật cao cấp như lập trình
hướng đối tượng, template … m{ vẫn có thể linh động cho phép can thiệp vào
sâu bộ nhớ bên dưới. Một số ứng dụng nổi tiếng được viết bang C++ như
Adobe, Google, Chrome, Mozilla, Firefox, Internet Explorer, MySQL, Apple OS X,
Symbian OS, Winamp Media Player, …. Chính vì vậy, mặc dù ngôn ngữ C++ có
"tuổi" kh| cao nhưng nó vẫn đóng một vai trò cực kì quan trọng trong thế giới
m|y tính. V{ cũng dễ hiểu vì sao C++ được chọn làm nền tảng cho lập trình
viên.
V{o đầu c|c năm 1980, Brad J. Cox đ~ thiết kế ra ngôn ngữ Objective-C
dựa trên ngôn ngữ SmallTalk-80. Có thể hình dung rằng Objective-C là một
ngôn ngữ lập trình được đặt ở lớp trên của ngôn ngữ lập trình C truyền thống,
điều n{y có nghĩa l{ ngôn ngữ C được bổ sung thêm những thành phần mở
rộng (hay còn gọi l{ c|c extensions) để hình thành nên một ngôn ngữ lập trình
mới đó l{ Objective-C. Ngôn ngữ Objective-C này cho phép chúng ta tạo và quản
lý những đối tượng (Objects). Objective-C được dùng viết một số phiên bản OS
X và IOS của Apple, các ứng dụng, game chạy trên nền tảng của Apple.
Năm 1987: PERL là cách viết tắt cho “Practical Extraction and Report
Language”, mặc dù còn được gọi l{ “Pathologically Eclectic Rubbish Lister”.
Larry Wall đ~ tạo ra PERL với mục đích chính l{ tạo ra một ngôn ngữ lập trình
có khả năng chắt lọc một lượng lớn dữ liệu và cho phép xử lí dữ liệu nhằm thu
được kết quả cần tìm. PERL là ngôn ngữ thông dụng trong lĩnh vực quản trị hệ
thống và xử lí c|c trang Web do có c|c ưu điểm sau:
Có các thao tác quản lí tập tin, xử lí thông tin thuận tiện
Thao tác với chuỗi kí tự rất tốt
Đ~ có một thư viện mã lệnh lớn do cộng đồng sử dụng PERL đóng góp (CPAN).
Cú pháp lệnh của PERL khá giống với C, từ các kí hiệu đến tên c|c h{m, do đó,
nhiều người (đ~ có kinh nghiệm với C) thấy PERL dễ học. PERL khá linh hoạt và
Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 6
cho phép người sử dụng giải quyết với cùng một vấn đề được đặt ra theo nhiều
cách khác nhau.
Năm 1991: Python xuất hiện từ những năm 1980, hiện thực v{o th|ng 12 năm
1989, hoàn th{nh năm 1991 v{ đưa ra công chúng năm 1994 bởi Guido van
Rossum. Ý tưởng chính của Python là tạo ra một ngôn ngữ lập trình sáng sủa,
cấu trúc rõ ràng, thuận tiện cho người mới học lập trình. Python kế thừa từ
nhiều ngôn ngữ như ABC, Module-3, C, C++, UNIX Shell… Python l{ một ngôn
ngữ lập trình bậc cao, thông dịch, hướng đối tượng, đa mục đích v{ cũng l{ một
ngôn ngữ lập trình động, khá vui và thoải mái khi sử dụng. Ngôn ngữ Python có
thể dùng hát triển các ứng dụng web, phát triển phần mềm, bảo mật thông tin.
Các ứng dụng nổi tiếng được biết đến như Google, Yahoo, Spotify, …
Năm 1993: Ruby được tạo ra bởi Yukihiro “Matz” Matsumoto v{ đưa ra bản
chính thức v{o năm 1995. Ruby chịu nhiều ảnh hưởng từ Perl, và khi hoàn tất
ngôn ngữ n{y, anh đ~ đùa với một người bạn rằng nên đặt tên thế nào nghe cho
nó giống một thứ đ| quý n{o đó (Perl lúc đầu cũng được đặt tên là Pearl – ngọc
trai). Và bạn của anh đ~ gợi ý c|i tên Ruby. Sau n{y Matz cũng bất ngờ khi phát
hiện ra Pearl l{ viên đ| quý tượng trưng cho những người sinh tháng 6, còn
Ruby thì tượng trưng cho những người sinh tháng 7. Anh cho rằng cái tên Ruby
như thế là phù hợp vì Ruby kế thừa và phát triển nhiều đặc tính từ Perl. Ruby
đ~ được sử dụng để phát triển các ứng dụng web, một số ứng dụng nổi tiếng
như Twitter, Hulu, Groupon.
Ruby On rails là một Framework cho phép phát triển ứng dụng Web gồm hai
phần cơ bản:
Phần ngôn ngữ Ruby: “Ruby l{ một ngôn lập trình mã nguồn mở, linh hoạt, với
một sự nổi bật về sự đơn giản dễ dùng và hữu ích. Nó có cú ph|p “tao nh~” v{
tự nhiên dễ đọc và dễ d{ng để viết”.
Phần Framework Rails bao gồm nhiều thư viện liên kết.
Năm 1995: một bước tiến nổi bậc trong lịch sử phát triển các ngôn ngữ lập
trình đó l{ c|c ngôn ngữ lập trình JAVA, PHP, JAVASCRIPT.
JAVA: Được phát triển bởi James Gosling tại Sun Microsystems (mà bây giờ là
một công ty con của tập đo{n Oracle) v{ ph|t h{nh năm 1995. Ban đầu ngôn
ngữ n{y được gọi l{ Oak (có nghĩa l{ c}y sồi; do bên ngo{i cơ quan của ông