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

Giáo trình kỹ thuật lập trình 1
Nội dung xem thử
Mô tả chi tiết
ỦY BAN NHÂN DÂN TP. HỒ CHÍ MINH
TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THỦ ĐỨC
KHOA CÔNG NGHỆ THÔNG TIN
GIÁO TRÌNH
HỌC PHẦN: KỸ THUẬT LẬP TRÌNH 1
NGÀNH: CÔNG NGHỆ THÔNG TIN
TRÌNH ĐỘ: CAO ĐẲNG
Ban hành kèm theo Quyết định số: /QĐ-CNTĐ-CN ngày tháng năm
của Hiệu trưởng Trường Cao Đẳng Công Nghệ Thủ Đức.
TP. Hồ Chí Minh, năm 2020
TUYÊN BỐ BẢN QUYỀN
Tài liệu này thuộc loại sách giáo trình nên các nguồn thông tin có thể được phép
dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo.
Mọi mục đích khác mang tính lệch lạc hoặc sử dụng với mục đích kinh doanh
thiếu lành mạnh sẽ bị nghiêm cấm.
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 biên soạn 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ừ 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 Th p T nh 1 Trang 1
MỤC LỤC
CONTENTS
Chương 1. TỔNG QUAN VỀ NGÔN NGỮ LẬP TRÌNH .......................................... 3
1.1| Giới thiệu....................................................................................................................4
1.2| Lịch sử phát triển Ngôn ngữ lập trình ........................................................................4
1.3| Các dạng Ngôn ngữ lập trình......................................................................................6
1.4| Các giai đoạn phát triển CHƯƠNG TRÌNH..................................................................8
1.5| Cấu trúc một chương trình C# cơ bản........................................................................9
1.6| ngôn ngữ C# .............................................................................................................10
1.7| Visual Studio IDE.......................................................................................................10
1.8| Quá trình biên dịch C#..............................................................................................16
1.9| Giải thuật và đặc tả giải thuật ..................................................................................18
1.10| Bài tập.......................................................................................................................21
Chương 2. CÁC KIỂU DỮ LIỆU, HẰNG, BIẾN..................................................... 23
2.1| Tập ký tự...................................................................................................................24
2.2| Từ khóa.....................................................................................................................24
2.3| Tên và qui ước đặt tên .............................................................................................24
2.4| Các kiểu dữ liệu xây dựng sẵn..................................................................................25
2.5| Biến...........................................................................................................................27
2.6| Hằng .........................................................................................................................29
2.7| Bài tập.......................................................................................................................31
Chương 3. TOÁN TỬ VÀ BIỂU THỨC ............................................................... 33
3.1| Các loại toán tử ........................................................................................................34
3.2| Các toán tử khác.......................................................................................................41
3.3| Chuyển đổi các kiểu dữ liệu .....................................................................................42
3.4| Biểu thức ..................................................................................................................53
3.5| Câu lệnh nhập, xuất..................................................................................................53
3.6| Bài tập.......................................................................................................................57
Chương 4. CẤU TRÚC CHỌN ........................................................................... 59
4.1| Khái niệm..................................................................................................................60
4.2| Cấu trúc điều kiện if .................................................................................................60
4.3| Cấu trúc lựa chọn switch … case…............................................................................66
4.4| Bài tập.......................................................................................................................71
Chương 5. CẤU TRÚC LẶP............................................................................... 74
5.1| Khái niệm..................................................................................................................75
5.2| Cấu trúc for...............................................................................................................75
5.3| Cấu trúc while...........................................................................................................77
5.4| Cấu trúc do…while....................................................................................................79
5.5| Cấu trúc foreach.......................................................................................................80
5.6| Cấu trúc lặ l ng nhau .............................................................................................81
5.7| Câu lệnh break, continue .........................................................................................82
5.8| Bài tập.......................................................................................................................85
Chương 6. HÀM ............................................................................................. 88
6.1| Khái niệm..................................................................................................................89
6.2| Cú pháp khai báo:.....................................................................................................89
6.3| Truyền tham số.........................................................................................................90
6.4| Kiểu trả về của hàm..................................................................................................92
Tài liệu giảng dạy Th p T nh 1 Trang 2
6.5| Cách gọi hàm............................................................................................................93
6.6| Bài tập.......................................................................................................................94
Chương 7. MẢNG MỘT CHIỀU........................................................................ 96
7.1| Khái niệm..................................................................................................................97
7.2| Cú pháp khai báo......................................................................................................97
7.3| Truy xuất trên mảng.................................................................................................98
7.4| Sử dụng mảng một chiều làm tham số cho hàm:.....................................................99
7.5| Bài tập.....................................................................................................................101
Tài liệu giảng dạy Th p T nh 1 Trang 3
1. Chương 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 Th p T nh 1 Trang 4
1.1| GIỚI THIỆU
Chương 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ư ngôn ngữ tự nhiên 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.
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, …
Tài liệu giảng dạy Th p T nh 1 Trang 5
Sơ lược lịch sử phát triển ngôn ngữ lập trình
Autocode (viết năm 1952 do Alick Glennie ): Đây là tập hợp một loạt những hệ
thống ngôn ngữ lập trình đơn giản được phát triển vào những năm 50 cho hệ thống
máy tính kỹ thuật số tại đại học Manchester, Cambridge và London và được coi là
ngôn ngữ lập trình chính thức đầu tiên.
Pascal (viết năm 1970 do Niklaus Wirth): đây là ngôn ngữ được đặt theo tên nhà
toán học người Pháp Blaise Pascal. Ngôn ngữ này cho phép người dùng có thể tự
xác định dạng dữ liệu của mình theo kiểu danh sách, sơ đồ cây hay đồ thị.
C (viết năm 1972 do Brian W.Kernighan và Dennis Ritchie): Đây là một trong
những ngôn ngữ lập trình được sử dụng nhiều nhất mọi thời đại. C được thế kế để
lập trình theo cấu trúc. 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.
C++ (viết năm1980 do Bjarne Stroustrup): 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 vào bộ nhớ bên dưới. Một số ứng dụng nổi tiếng được viết bằng 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.Perl (1987): thuộc nhóm ngôn ngữ lập trình bậc cao. Ngôn ngữ này
vay mượn không ít tính năng từ những ngôn ngữ khác như C, AWK và sad. Ban
đầu nó thô sơ đến mức hướng dẫn sử dụng chỉ có 1 trang. Thế nhưng đến nay nó đã
có thêm nhiều phiên bản và nhiều thay đổi so với ban đầu.
Python (viết năm 1991 do Guido van Rossum): ngôn ngữ này được thiết kế cực kỳ
đơn giản, thậm chí là có khả năng đọc được như bảng chữ cái. Triết lý của những
nhà phát triển ngôn ngữ nay đó là làm cho mã nguồn ngắn hơn, không dài và phức
tạp như C++ hay Java.
Java (viết năm 1995 do James Gosling và bạn đồng nghiệp ở Sun Microsystems):
ngôn ngữ này được phát triển với mục tiêu càng ít phụ thuộc vào khả năng vận
Tài liệu giảng dạy Th p T nh 1 Trang 6
hành thực tế của thiết bị càng tốt. Nói cách khác là nó chỉ cần viết một lần trên một
máy, và chạy được trên mọi máy khác. Chính vì vậy mà đến nay, từ máy tính để
bàn đến điện thoại di động Symbian S40 ta đều có thể gặp các chương trình Java.
PHP (viết năm 1995 do Rasmus Lerdorf): đây là ngôn ngữ sử dụng thực thi trên
máy chủ và dùng cho việc phát triển web. Nó thực hiện các yêu cầu của người dùng
sau đó trả kết quả lên trình duyệt qua việc kết hợp với HTML tạo ra giao diện các
trang web hiện nay. Khi mới xuất hiện, PHP không được định nghĩa là một ngôn
ngữ lập trình, tuy nhiên qua thời gian, ngôn ngữ này đã có một lượng người dùng
đông đảo và vẫn là sự lựa chọn của nhiều nhà phát triển web ngày nay.
C# (viết năm 2001 do Microsoft chủ yếu bởi Anders Hejlsberg): Visual Basic .NET
(2001): Đây là ngôn ngữ được phát triển trên nền Visual Basic và thực hiện trên
nền tảng .NET framwork. Đây là lý do vì sao khi cài đặt một số chương trình sẽ có
yêu cầu cài đặt thêm .NET framwork.
Swift (viết năm 2014 do Apple): Đây là ngôn ngữ được phát triển cho những nhà
phát triển iOS và OSX (hệ điều hành Mac). Ngôn ngữ “trẻ nhất” này được hãng
giới thiệu tại sự kiện WWDC 2014. Ngôn ngữ này có ưu điểm là mã nguồn rất
ngắn và dễ đọc. Sau khi viết, các chương trình có thể được kiểm tra rất nhanh và
các bài kiểm tra cũng sẽ ở cấp độ cao hơn. Ngoài ra đồ hoạ các chương trình dùng
ngôn ngữ này cũng sẽ đẹp hơn nhưng yêu cầu phần cứng sẽ thấp hơn.
1.3| CÁC DẠNG NGÔN NGỮ LẬP TRÌNH
Có rất nhiều loại ngôn ngữ lập trình, thông thường khi phân loại ta thường dựa vào
các yếu ba tố cơ bản sau:
1.3.1| THEO TIẾN TRÌNH LỊCH SỬ PHÁT TRIỂN
Ngôn ngữ máy – Machine language: Chương trình viết bằng ngôn ngữ máy chỉ
gồm 0 và 1 nên dễ sai sót, cồng kềnh và khó đọc, khó hiểu. Chương trình được viết
có thể được thực hiện ngay không cần qua bước trung gian nào.
Hợp ngữ - Assembly language: Các câu lệnh bao gồm hai phần: phần mã lệnh (viết
tựa tiếng Anh) chỉ phép toán cần thực hiện và phần tên biến chỉ địa chỉ chứa toán
hạng của phép toán đó. Ðể máy thực hiện được một chương trình viết bằng hợp
ngữ thì chương trình đó phải được dịch sang ngôn ngữ máy. Công cụ thực hiện việc
dịch đó được gọi là Assembler
Ngôn ngữ cấp cao – High level language: Các lệnh được mã hóa bằng một ngôn
ngữ gần với ngôn ngữ Tiếng Anh. Chương trình viết trên ngôn ngữ bậc cao phải
Tài liệu giảng dạy Th p T nh 1 Trang 7
được chuyển đổi thành chương trình trên ngôn ngữ máy bằng một chương trình
dịch mới có thể thực hiện được.
1.3.2| THEO PHƯƠNG PHÁP LẬP TRÌNH (PROGRAMMING PARADIGMS)
L p trình tuyến tính: Đặc trưng của Lập trình tuyến tính là tư duy theo lối tuần tự.
Chỉ có duy nhất một luồng công việc và các công việc được thực hiện tuần tự trong
luồng đó. Chương trình sẽ được thực hiện theo thứ tự từ đầu đến cuối, lệnh này kế
tiếp lệnh kia cho đến khi kết thúc chương trình. Nhược điểm của lập trình tuyến
tính là với các ứng dụng phức tạp, người ta không thể dùng lập trình tuyến tính để
giải quyết. Nên phương pháp Lập trình tuyến tính ngày nay chỉ được sử dụng trong
phạm vi các module nhỏ nhất của các phương pháp Lập trình khác.
L p nh hướng cấu trúc: Trong Lập trình hướng cấu trúc, chương trình chính sẽ
được chia nhỏ thành các chương trình con thực hiện một công việc xác định. Đặc
trưng cơ bản nhất của Lập trình hướng cấu trúc thể hiện ở mối quan hệ:
Chương trình = Cấu trúc dữ liệu + Giải thuật
Cấu trúc dữ liệu là cách tổ chức dữ liệu cho việc xử lý bởi một hay nhiều chương
trình nào đó.
Giải thuật là một quy trình để thực hiện một công việc xác định.
Các ngôn ngữ lập trình cấu trúc cung cấp một số cấu trúc lệnh điều khiển chương
trình. Nên có ưu điểm là chương trình dể hiểu, dể theo dõi, tư duy giải thuật rõ
ràng. Nhược điểm là lập trình cấu trúc không hỗ trợ tốt cho việc sử dụng lại mã
nguồn. Bởi giải thuật luôn phụ thuộc chặt chẽ vào cấu trúc dữ liệu. Dẫn đến khi
thay đổi cấu trúc dữ liệu phải thay đổi cả giải thuật của chương trình.Với những dự
án phần mềm lớn, Lập trình cấu trúc tỏ ra không hiệu quả trong việc giải quyết các
mối quan hệ vĩ mô giữa các Module.
L p nh hướng đối ượng : Trong lập trình hướng đối tượng, người ta quy ước
các thực thể trong chương trình thành các đối tượng. Và trừu tượng hóa các đối
tượng thành các lớp đối tượng. Dữ liệu được tổ chức thành các Lớp đối tượng. Từ
đó việc quản lý bảo mật của dữ liệu được đảm bảo. Hai đặc trưng là tính đóng gói
dữ liệu và tính sử dụng lại mã nguồn. Nên ưu điểm của lập trình hướng đối tượng là
bảo mật dữ liệu chương trình, giảm sự phụ thuộc của Cấu trúc dữ liệu vào Thuật
toán, có thể sử dụng lại mã nguồn.
L p trình trực quan: Lập trình trực quan là sự kết hợp giữa đồ họa máy tính ,
ngôn ngữ lập trình và tương tác người máy. So với các ngôn ngữ lập trình bằng chế