1. Trang chủ
  2. » Giáo án - Bài giảng

Kỹ thuật lập trình 1 Bậc cao đẳng

126 2 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 đề Kỹ Thuật Lập Trình 1
Trường học Trường Cao Đẳng Công Nghệ Thủ Đức
Chuyên ngành Công Nghệ Thông Tin
Thể loại tài liệu giảng dạy
Năm xuất bản 2016
Thành phố Thủ Đức
Định dạng
Số trang 126
Dung lượng 2,35 MB

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

Nội dung

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

Trang 1

TRƯỜNG CAO ĐẲNG CÔNG NGHỆ THỦ ĐỨC

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

Trang 3

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

Trang 4

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 fit@tdc.edu.vn Xin chân thành cảm ơn!

Trang 5

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

Trang 6

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

HÀM 93

6 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

MẢNG MỘT CHIỀU 105

7 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

Trang 7

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 1

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

Trang 8

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

Trang 9

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

Trang 10

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

Trang 11

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à

Trang 12

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

Trang 13

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 7

Gosling có trồng nhiều loại cây này), họ dự định ngôn ngữ đó thay cho C++, nhưng c|c tính năng giống Objective C Cú pháp Java được vay mượn nhiều

từ C & C++ nhưng có cú ph|p hướng đối tượng đơn giản hơn v{ ít tính năng xử

lý cấp thấp hơn Do đó việc viết một chương trình bằng Java dễ hơn, đơn giản hơn, đỡ tốn công sửa lỗi hơn Trong Java, hiện tượng rò rỉ bộ nhớ hầu như không xảy ra do bộ nhớ được quản lí bởi Java Virtual Machine (JVM) bằng cách

tự động "dọn dẹp r|c" Người lập trình không phải quan t}m đến việc cấp phát

và xóa bộ nhớ như C, C++ Tuy nhiên khi sử dụng những tài nguyên mạng, file

IO, database (nằm ngoài kiểm soát của JVM) m{ người lập trình không đóng (close) các streams thì rò rỉ dữ liệu vẫn có thể xảy ra Có bốn loại ứng dụng chính bạn có thể tạo ra khi sử dụng ngôn ngữ lập trình Java đó l{ : ứng dụng cho máy tính cá nhân (Standalone application), ứng dụng web, úng dụng cho các doanh nghiệp (Enterprise application) và ứng dụng cho các thiết bị di dộng (Mobile application) Một ứng dụng của ngôn ngữ lập trình JAVA phổ biến hiện nay là phát triển hệ điều hành Android và các ứng dụng chạy trên nền tản Android

PHP: do Rasmus Lerdorf tạo ra, viết tắt của Hypertext Preprocessor – trình xử

lý siêu văn bản, là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML Do được tối ưu hóa cho c|c ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ kh|c nên PHP đ~ nhanh chóng trở thành mộtngôn ngữ lập trình web phổ biến nhất thế giớidùng để xây dựng, duy trì c|c trang web động, phát triển ứng dụng phía máy chủ Một số ứng dụng nổi tiếng như Facebook, Wikipedia, Digg, Wordpress, Joomla

JAVASCRIPT: là ngôn ngữ bậc cao Nó vốn đượ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 JavaScript có cú pháp tương tự C Được tạo ra để mở rộng các chức năng cho trang web Được dùng trong c|c trang web động để đẩy biểu mẫu PDF lên hoặc kiểm tra tính hợp lệ của dữ liệu, tương t|c, hoạt hình, theo dõi hoạt động của người dùng Các ứng dụng phổ biến hiện nay dùng Javascript là Gmail, Adobe Photoshop, Mozilla Firefox

Trang 14

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 8

Trên thế giới hiện nay có rất nhiều ngôn ngữ lập trình, và không có "ngôn ngữ

tốt nhất” do mỗi ngôn ngữ lập trình phục vụ cho một mục đích v{ đóng góp cho công nghệ vào những thời điểm khác nhau Bạn có thể được học C, C++, C# hay Java ở trường Nhưng điều đó l{ chưa đủ, vì ngôn ngữ thay đổi qua thời gian, và nếu là một người kĩ sư phần mềm có kinh nghiệm, bạn phải có khả năng học ngôn ngữ mới một cách dễ dàng

nhiều cách khác nhau thì không phải là một ngôn ngữ giản dị Ví dụ:

Ngôn ngữ C để tăng thêm một đơn vị cho biến count ta có thể sử dụng nhiều c|ch như count = count + 1; count += 1; count++ hoặc ++count

Các phép toán chồng (overload) cũng l{m cho ngôn ngữ trở nên phức tạp Chẳng hạn toán tử + có thể hiểu là cộng hai số nguyên, cộng hai số thực, hợp hai tập hợp hay ghép nối hai chuỗi ký tự

c ều khiển:

Các lệnh có cấu trúc cho phép viết c|c chương trình s|ng sủa, dễ đọc, dễ hiểu Ví dụ:

Trang 15

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 9

Ta h~y so s|nh hai đoạn chương trình in ra m{n hình 10 số tự nhiên đầu tiên được viết bằng ngôn ngữ BASIC (không có lệnh cấu trúc FOR) và ngôn ngữ Pascal

Dữ liệu và c u trúc dữ liệu:

Xem xét kiểu dữ liệu và cấu trúc dữ liệu của một ngôn ngữ cũng góp phần đ|nh giá một ngôn ngữ có dễ đọc hay không

Cú pháp:

Cú pháp của ngôn ngữ có ảnh hưởng lớn đến sự dễ đọc hiểu của chương trình

Ví dụ: FORTRAN 77 quy đinh độ dài tối đa của danh biểu l{ 6, do đó tên biến nhiều khi phải viết tắt nên khó đọc hiểu

Việc sử dụng từ khóa cũng góp phần làm cho ngôn ngữ trở nên dễ đọc Chẳng

hạn trong ngôn ngữ Pascal chỉ sử dụng một từ khóa end để kết thúc một khối,

kết thúc một lệnh case hay kết thúc một lệnh hợp th{nh do đó chương trình trở

nên khó đọc, trong khi Ada dùng các từ khóa end if để kết thúc lệnh if, end loop

để kết thúc lệnh vòng lặp thì chương trình dễ đọc hơn

T nh d viết

Là khả năng sử dụng ngôn ngữ đó để viết một chương trình cho một vấn đề nào

đó một cách dễ d{ng hay không Thông thường các ngôn ngữ dễ đọc thì đều dễ viết Tính dễ viết phải được xem xét trong ngữ cảnh của vấn đề mà ngôn ngữ được sử dụng để giải quyết Theo đó không thế so sánh tính dễ viết của hai ngôn ngữ cho cùng một bài toán mà một trong hai được thiết kế để dành riêng giải quyết b{i to|n đó Ví dụ để giải quyết bài toán quản trị dữ liệu, chúng ta không thể so sánh Pascal với một hệ quản trị cơ sở dữ liệu như Foxpro, Access

Trang 16

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 10

hay Oracle Sau đ}y l{ một số yếu tố quan trọng nhất ảnh hưởng tới tính dễ viết của ngôn ngữ

WHILE

n c

Là khả năng của ngôn ngữ hỗ trợ người lập trình tạo ra c|c chương trình đúng

đắn Độ tin cậy được thể hiện bởi c|c đặc trưng sau:

Kiểm tra kiểu:

Là kiểm tra lỗi về kiểu của chương trình trong giai đoạn dịch hoặc trong khi thực hiện Kiểm tra kiểu là một yếu tố quan trọng đảm bảo độ tin cậy của ngôn ngữ Kiểm tra kiểu sẽ b|o cho người lập trình biết các lỗi về kiểu và yêu cầu họ

có các sửa chữa cần thiết để có một chương trình đúng

Trang 17

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 11

Xử lý ngoại lệ (Exception Handing):

Là một công cụ cho phép chương trình ph|t hiện các lỗi trong thời gian thực hiện, tạo khả năng để sửa chữa chúng v{ sau đó tiếp tục thực hiện mà không

phải dừng chương trình

Sự lắm tên (Aliasing):

Khi có hai hay nhiều tên cùng liên kết tới một ô nhớ ta gọi là sự lắm tên Chẳng hạn các biến con trỏ trong ngôn ngữ Pascal cùng trỏ đến một ô nhớ Sự lắm tên

có thể làm giảm độ tin cậy do người lập trình không kiểm so|t được giá trị

được lưu trữ trong ô nhớ Hãy xét ví dụ sau trong Pascal

Chi phí:

Chi phí của một ngôn ngữ cũng thường được quan t}m như l{ một tiêu chuẩn

để đ|nh gi| ngôn ngữ Chi phí ở đ}y phải được hiểu là cả tiền bạc và thời gian

Chi phí này bao gồm:

- Chi phí đ{o tạo lập trình viên sử dụng ngôn ngữ Chi phí này phụ thuộc vào sự giản dị của ngôn ngữ

- Chi phí c{i đặt chương trình Chi phí n{y phụ thuộc vào tính dễ viết của ngôn ngữ

- Chi phí dịch chương trình

- Chi phí thực hiện chương trình

- Chi phí bảo trì chương trình

- Chi phí mua trình biên dịch

PHÂN LOẠI NGÔN NGỮ LẬP TRÌNH

1.3.2|

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.2.1 THEO TIẾN TRÌNH LỊCH SỬ PHÁT TRIỂN

Ngôn ngữ máy – Machine language

Trang 18

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 12

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

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 đượ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.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 Modul nhỏ nhất của c|c phương ph|p Lập trình khác

L p ìn ướ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ệ:

Trang 19

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 13

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 ìn ướng ố ượ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ế độ văn bản thì lập trình trực quan dễ sử dụng hơn do không phải nhớ các câu lệnh Các ngôn ngữ lập trình tr ực quan thường được sử dụng là: Visual Basic, Visual FoxPro, Visual

C, Delphi…

L p trình song song

Lập trình song song là một công việc rất phức tạp so với lập trình tuần tự thông thường, người phát triển phải thực hiện một qu| trình “song song hóa”, biến đổi c|c chương trình tuần tự th{nh chương trình song song có khả năng tận

Trang 20

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 14

dụng tối đa sức mạnh của hệ thống Lập trình song song bao gồm c|c bước :Phân hủy một thuật toán hay các dữ liệu đầu vào; Phân chia nhiệm vụ cho các

bộ phận để làm việc trong bộ vi xử lý cùng một lúc; Phối hợp v{ trao đổi giữa các bộ vi xử lý Các ngôn ngữ lập trình song song thường được sử dụng là : CUDA, Ada

L p trình phân tán

Là tạo ra các ứng dụng hoặc hệ thống mà ứng dụng và hệ thống đó được sắp đặt

ở nhiều máy khác nhau theo một nguyên tắc do người thiết kế chỉ ra Trong lập trình phân tán, một vấn đề được chia thành nhiều nhiệm vụ , mỗi nhiệm vụ trong đó được giải quyết bằng một máy tính, lập trình thực hiện công việc điều khiển nhiều máy tính cùng lúc

1.3.2.3 THEO MỤC TIÊU CỦA NGÔN NGỮ

Có các mục tiêu như đa dụng, nhúng, lập trình web, …

 Đa dụng: như C, perl, python, C++, Java, …

 Nhúng: Như Ch, Ada, …

 Lập trình web: PHP, Java Script, Cold Fusion, …

 Riêng: Như AutoLisp, Mathematica, …

CÁC BƯỚC LẬP TRÌNH

1.3.3|

Để giải quyết một bài toán trên máy tính, lập trình viên cần tuân thủ s|u bước

cơ bản sau:

Bước 1: Phân tích bài toán (Analyze the problem)

Bước 2: Thiết kế giải thuật (Plan the algorithm)

Bước 3: Chạy thử nghiệm trên giấy (Desk-check algorithm / hand-tracking) Bước 4: M~ hóa th{nh chương trình (Code the algorithm into a program)

Bước 5: Chạy thử nghiệm chương trình (Desk-check the program)

Bước 6: Đ|nh gi| v{ chỉnh sửa (Evaluate and modify the program)

Trang 21

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 15

LỰA CHỌN NGÔN NGỮ LẬP TRÌNH

1.3.4|

Sau đ}y l{ một số yếu tổ ảnh hưởng đến việc lựa chọn ngôn ngữ lập trình để học và dùng trong dự án của bạn:

Nền tảng ược hỗ trợ: là một yếu tố quan trọng quyết định ngôn ngữ nào nên

được sử dụng ngoại trừ ngôn ngữ lập trình hỗ trợ đa nền tảng Ví dụ ứng dụng được phát triển trên nền tảng Microsoft có thể được lập trình bằng một số ngôn ngữ mà Microsoft hỗ trợ như C, C++, C#, v{ một số ngôn ngữ có thể viết được trên Visual studio Trong khi đó, những ứng dụng liên quan đến Internet, ứng dụng trên điện thoại di động có thể được phát triển bằng ngôn ngữ Java PHP cũng có thể dùng để phát triển ứng dụng Web

Thời gian phát triển ứng dụng: Với những ứng dụng được phát triển nhanh,

Visual Basic là lựa chọn phù hợp để tăng tốc độ phát triển Tuy nhiên, khi mà thời gian không bị ràng buộc bởi khách hàng, một số ngôn ngữ lập trình như C, C++ có thể được sử dụng

Chi phí phát triển phần mềm: Để phù hợp với ngân sách của người dùng cuối

hoặc khách hàng, việc lựa chọn ngôn ngữ lập trình không làm nên sự khác biệt Những ngôn ngữ lập trình với giấy phép phải được mua có chi phí phát triển phần mềm cao hơn những ngôn ngữ mã nguồn mở Đó l{ lý do ứng dụng được viết bởi PHP có chi phí thấp hơn ứng dụng được viết trên ASP NET framework

Tính hiệu quả: Tính hiệu quả của ứng dụng phụ thuộc trên nhiều yếu tố khác

nhau (Tốc độ xử lý, khả năng đ|p trả, tài nguyên sử dụng ) và việc lựa chọn ngôn ngữ lập trình cũng ảnh hưởng nhiều đến hiệu suất của ứng dụng Thử đưa

ra 2 ngôn ngữ lập trình Perl v{ PHP để so s|nh Perl được cho là hiệu quả hơn PHP về mặt tốc độ xử lý, sức mạnh nhưng bên cạnh đó, PHP dễ học và triển khai hơn giống như HTML

Đ tin c y của ứng dụng: Một số chương trình cần đảm bảo độ tin cậy lên đến

100%, như hệ thống trên máy bay Sử dụng những chương trình có độ tin cậy thấp có thể dẫn đến hậu quả làm thiệt mạng hành khách trên máy bay Một ngôn ngữ có khả năng vẫn được sử dụng cho các hệ thống quan trọng là ADA Trình biên dịch của mỗi ngôn ngữ lập trình cũng t|c động đến hiệu suất của nó Tuy nhiên, điều này không cần thiết để đưa ra quyết định cho việc chọn ngôn

Trang 22

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 16

ngữ lập trình Lập trình viên có nhiều kinh nghiệm có thể làm ra một ứng dụng chạy tốt hơn trên một trình biên dịch chậm hơn Điều n{y có nghĩa ngôn ngữ lập trình chỉ là công cụ, thứ quan trọng nhất vẫn là kỹ năng của lập trình viên

Các công cụ mà một lập trình viên cần có:

Một trình soạn thảo: để viết mã nguồn của chương trình bằng C++ Về lí

thuyết, một phần mềm như Notepad trong Windows hay vi trong Linux có thể l{m được điều đó Trên thực tế, sẽ tốt hơn nếu bạn có một trình soạn thảo thông minh có khả năng tô m{u c|c th{nh phần khác nhau của mã nguồn mà bạn viết, giúp bạn nhận diện chúng dễ d{ng hơn Đ}y l{ lí do m{ không lập trình viên bình thường nào sử dùng Notepad

Một trình dịch: Dể dịch mã nguồn của bạn sang hệ nhị phân Có hai loại trình

dịch là trình biên dịch và trình thông dich

Một debugger (trình soát lỗi): giúp bạn tìm ra lỗi trong chương trình Mỗi

ngôn ngữ lập trình đều cần một chương trình dịch để thực hiện việc chuyển chương trình nguồi sang ngôn ngữ máy Chúng ta có hai lựa chọn sau:

- Một là chúng ta sẽ tải mỗi công cụ một cách riêng rẽ Cách này khá phức tạp, nhưng bạn vẫn có thể thử Đặc biệt với Linux, rất nhiều lập trình viên lựa chọn

3 công cụ một cách riêng rẽ

- Hai là dùng một chương trình “3 trong 1 Chương trình n{y bao gồm cả trình

soạn thảo, trình dịch và trình soát lỗi Nó có tên gọi là IDE (Integreted Development Environment - môi trường phát triển tích hợp) Đ}y l{ một lựa

chọn được khuyến khích đối với người mới học lập trình

Có rất nhiều môi trường phát triển kh|c nhau Ban đầu, bạn có thể sẽ gặp khó khăn trong việc lựa chọn môi trường phát triển khiến bạn hài lòng Dù thế nào

đi nữa thì có một điều chắc chắn là: bạn có thể tạo ra bất cứ loại chương trình

nào với bất cứ môi trường phát triển tích hợp nào mà bạn lựa chọn Trình thông dịch – Interpreter

Trang 23

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 17

Trình thông dịch là một trình để thông dịch ngôn ngữ Trong thông dịch mã nguồn của chương trình không được dịch trước thành ngôn ngữ máy, mà khi chạy chương trình m~ nguồn mới được dịch và thực thi từng dòng lệnh 1

Tất cả các ngôn ngữ không biên dịch ra mã máy một lần duy nhất điều phải sử dụng trình thông dịch (PHP, WScripts, Perl, Linux Shell, Python ) Các ngôn ngữ theo trình thông dịch thường được gọi là script (kịch bản)

Như vậy chương trình viết bằng ngôn ngữ script phải có một trình thông dịch kèm theo khi chạy chương trình

Ưu điểm:

- Phát triển nhanh chóng

- Có thể chỉnh sửa mã nguồn bất kỳ khi nào

- Mạnh xử lý cú pháp

- Uyển chuyển mềm dẻo

- Có thể chạy trên mọi nền tảng (flatform, hệ điều hành) nếu có trình thông dịch tương ứng, tại vì không phải là ngôn ngữ máy(chỉ là file văn bản) nên không bị phụ thuộc v{o HĐH tiêu biểu là Perl, PHP, Python

Hình 1: Mô tả quá trình thông dịch

1.3.4.1 Trình biên dịch – Compiler

Trình biên dịch sẽ dịch mã nguồn thành mã máy trên một hệ điều h{nh (HĐH) x|c định và chỉ chạy trên hệ điều h{nh đó, do đó c|c chương trình được biên dịch sẽ phụ thuộc nhiều vào nền tảng và hệ điều hành

Trang 24

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 18

Ưu điểm:

- Ràng buộc chặt chẽ về kiểu trong ngôn ngữ

- Hỗ trợ c|c tính năng đa tuyến, transtion

- Do đ~ biên dịch phụ thuộc vào hệ điều h{nh nên chương trình có thể tận dụng toàn bộ c|c tính năng đặc trưng của HĐH

- Tốc độ thực thi tốt

- Bảo mật tốt (không thể xâm phạm mã nguồn l{m thay đổi chức năng của chương trình

Nhược điểm:

- Sau khi biên dịch ra ngôn ngữ máy thì chỉ có thể chạy trên một HDH x|c định

Hình 2: Mô tả quá trình biên dịch

1.3.4.2 Một số trình biên dịch C++

Dev-C++

- Dev-C++ nguyên được phát triển bởi một lập trình viên có tên là Colin Laplace

và chỉ chạy trên hệ điều hành Microsoft Windows

- Dev-C++ là một môi trường phát triển tích hợp tự do (IDE) được phân phối dưới hình thức giấy phép Công cộng GNU hỗ trợ việc lập trình bằng C/C++ Nó cũng nằm trong bộ trình dịch mã nguồn mở MinGW Chương trình IDE n{y được viết bằng ngôn ngữ Delphi Dự án phát triển Dev-C++ được lưu trữ trên SourceForge

- Bloodshed Dev-C++ là một Môi trường Phát triển Tích hợp (IDE) có hỗ trợ đầy

đủ tính năng cho ngôn ngữ lập trình C/C++ Nó sử dụng trình MinGW của GCC (Bộ trình dịch GNU) làm trình biên dịch Dev-C++ cũng có thể được dùng kết hợp với Cygwin hay bất kỳ trình dịch nền tảng GCC n{o kh|c Chương trình cho người dùng có cảm nhận hơi giống với hình thức của chương trình Microsoft Visual Studio vốn được sử dụng rộng r~i hơn Dev-C++ có một đặc điểm phụ đó

Trang 25

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 19

là nó sử dung DevPaks, là một phần gồm các gói mở rộng so với môi trường tiêu chuẩn, bao gồm c|c thư viện, mẫu, và các tiện ích được đưa thêm v{o DevPaks thường có, nhưng không nhất định, tiện ích GUI (giao diện người đùn

đồ họa), bao gồm các công cụ phổ biến như GTK+, wxWidgets, và FLTK Có những DevPaks có chứa c|c thư viện với thậm chí nhiều hàm chức năng cao hơn

Hình 3: Giao diện Dev-C++ 4

Download tại link: http://www.bloodshed.net/download.html

Trang 26

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 20

- Hỗ trợ định dạng mã nguồn rất tiện lợi cho việc sao chép code từ các nơi kh|c

về, và chỉnh sửa lại

- Miễn phí: Nó cũng giống như VC++, chúng ta không phải trả bất cứ một phí nào

để download và sử dụng nó

Hình 4: Giao diện Code Bock

Link tải về: http://www.codeblocks.org/downloads

Visual C++:

- Microsoft Visual C++ (còn được gọi là MSVC) là một sản phẩm Môi trường phát triển tích hợp (IDE) cho các ngôn ngữ lập trình C, C++, và C++/CLI của Microsoft Nó có các công cụ cho phát triển và gỡ lỗi mã nguồn C++, đặc biệt là các mã nguồn viết cho Microsoft Windows API, DirectX API, và Microsoft NET Framework

- Các chức năng của Visual C++ như tô s|ng cú ph|p, IntelliSense (chức năng về

tự động hoàn thành việc viết mã) và các chức năng gỡ lỗi tiên tiến Ví dụ, nó cho phép gỡ lỗi từ xa sử dụng một máy tính khác và cho phép gỡ lỗi bằng cách duyệt qua từng dòng lệnh tại một thời điểm Chức năng “biên tập và tiếp tục”

Trang 27

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 21

cho phép thay đổi mã nguồn và dịch lại chương trình trong qu| trình gỡ lỗi, mà không cần phải khởi động lại chương trình đang được gỡ lỗi Đặc trưng biên dịch và xây dựng hệ thống, tính năng tiền biên dịch các tập tin đầu đề (header files) và liên kết tịnh tiến (incremental link) – chỉ liên kết những phần bị thay đổi trong quá trình xây dựng phần mềm mà không làm lại từ đầu: Những đặc trưng về tính năng n{y thuyên giảm tổng thời gian biên tập, biên dịch và liên kết chương trình phần mềm, đặc biệt đối với những đề án phần mềm lớn

Hình 5: Giao diện Visual C++

Trang 28

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 22

/* ….*/: dùng cho một đoạn chú thích

Một đoạn chương trình được viết một lần nhưng có thể được đọc nhiều lần, vì vậy chương trình trở nên dễ hiểu hơn, ít tốn thời gian để đọc hơn khi nó được chú thích đầy đủ, rõ ràng.Và việc chú thích cho các dòng hoặc đoạn code, nội dung chua thích bao gồm những gì trở thành một chuẩn bắt buộc mà lập trình viên phải tuân thủ

Trang 29

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 23

#include

Các câu bắt đầu bằng dấu (#) được dùng cho khai báo tiền hàm (preprocessor) Chúng không phải là những dòng mã thực hiện nhưng được dùng để báo hiệu cho trình dịch Ở đ}y c}u lệnh #include báo cho trình dịch biết cần phải đính kèm thư viện iostream trong quá trình biên dịch để có thể hiểu được các câu lệnh v{o ra bên dưới Đ}y l{ một thư viện v{o ra cơ bản trong C++ và nó phải được "include" vì nó sẽ được dùng trong chương trình Đ}y l{ c|ch cổ điển để

sử dụng thư viện iostream

int main ()

Dòng n{y tương ứng với phần bắt đầu khai b|o h{m main H{m main l{ điểm

mà tất cả c|c chương trình C++ bắt đầu thực hiện Nó không phụ thuộc vào vị trí của hàm này (ở đầu, cuối hay ở giữa của mã nguồn) mà nội dung của nó luôn được thực hiện đầu tiên khi chương trình bắt đầu Thêm v{o đó, do nguyên nhân nói trên, mọi chương trình C++ đều phải tồn tại một hàm main Theo sau main là một cặp ngoặc đơn bởi vì nó là một hàm Trong C++, tất cả các hàm mà sau đó l{ một cặp ngoặc đơn () thì có nghĩa l{ nó có thể có hoặc không có tham

Quá trình biên dịch mã nguồn C++:

Hình 6: qui trình biên dịch mã nguồn C++

1 Tiền xử lý (Preprocess):

- Qu| trình n{y không quan t}m đến cú pháp C/C++

Trang 30

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 24

gì nhau)

3 Liên kết (Linker):

- Quá trình này sẽ liên kết tất cả các tệp tin object o/.obj để tạo ra tệp tin exe

1.6| GIẢI THUẬT VÀ ĐẶC TẢ GIẢI THUẬT

KHÁI NIỆM

1.6.1|

Một giải thuật (còn gọi là thuật toán) có thể được định nghĩa như l{ một thủ tục, công thức hay cách giải quyết vấn đề Nó gồm một tập hợp c|c bước giúp đạt được lời giải

Đặt tả giải thuật: giải thuật được viết bằng c|ch dùng hai phương ph|p chuẩn là

mã giả (pseudo code) v{ lưu đồ (flowchart)

LƯU ĐỒ

1.6.2|

Một lưu đồ là một hình ảnh minh hoạ cho giải thuật Nó vẽ ra biểu đồ của luồng chỉ thị hay những hoạt động trong một tiến trình Mỗi hoạt động như vậy được biểu diễn qua những ký hiệu

Tập các ký hiệu dùng biểu diễn lưu đồ:

Trang 31

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 25

Khối Nhập xuất Khối xử lý Lựa chọn 1 trong 2 trường hợp Gọi chương trình con

Bắt đầu, kết thúc Luồng xử lý Điểm ghép nối

Trang 32

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 26

Max =c

Output: xuất max

Trang 33

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 27

Câu hỏi ôn tập:

1 Hãy mô tả công việc của một lập trình viên

2 Các kỹ năng n{o l{ cần thiết để trở thành một lập trình viên giỏi?

3 Dựa vào lịch sử phát triển phần mềm, hãy giải thích lý do tại sao ngôn ngữ lập trình C/C++ thích hợp cho người mới học lập trình

4 Hãy nêu các ngôn ngữ lập trình là ngôn ngữ dẫn xuất của ngôn ngữ C

5 Hãy phân biệt Compiler và Interprter

6 H~y nêu c|c bước cơ bản để viết một chương trình chạy trên máy tính

7 Hãy mô tả cấu trúc cơ bản của một chương trình C/C++

8 Hãy trình bày các ký hiệu dùng trong biểu diễn lưu đồ giải thuật

9 Sử dụng sơ đồ thể hiện các phương pháp lập trình hiện nay và các ngôn ngữ sử dụng trong các phương pháp đó

Trang 34

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 28

Trang 35

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 29

Chương n{y nhằm giúp sinh viên các hiểu biết về tên, phương ph|p đặt tên cho đối tượng; sự khác nhau giữa biến, hằng; cách sử dụng biến hằng; các kiểu dữ liệu cơ sở và cách vận dụng để giải quyết bài toán

Trang 36

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 30

C phân biệt chữ hoa, chữ thường Do đó tập ký tự trong C bao gồm:

 Các ký số: 0…9

 Các ký tự mẫu tự: a z, A Z

 Các ký tự đặt bịêt: + - * / % & ! # ^ & …

Tập ký tự trong C++ bao gồm các ký tự in được của bàn phím chuẩn

return short static struct signed

sizeof switch typedef union unsigned void volatile while

Trang 37

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 31

ký tự liên tục gồm: Ký tự chữ, số và dấu gạch dưới Ký tự đầu của tên phải là chữ hoặc dấu gạch dưới Khi đặt tên không được đặt trùng với các từ khóa

- Không trùng tên từ khoá

Lưu ý: Tên nên gợi nhớ công dụng của đối tượng

Ví dụ:

- Tên đúng: TrungBinh, Delta, _x1, …

- Tên sai: Trung Binh, 1x

2.4| CÁC KIỂU DỮ LIỆU CƠ BẢN

KIỂU SỐ NGUYÊN

2.4.1|

Kiểu Kích thước(byte) Miền giá trị

Trang 38

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 32

Kiểu Kích thước(byte) Miền giá trị

string 1byte/ 1 ký tự 0 hoặc nhiều ký tự

KIỂU DỮ LIỆU ĐẶC BIỆT

2.4.4|

C++ có một kiểu dữ liệu đặc biệt là void Kiểu dữ liệu này chỉ cho trình biên

dịch C++ biết rằng đối tượng không thuộc bất cứ kiểu dữ liệu nào Trong C++, các hàm số thường trả về dữ liệu thuộc một kiểu n{o đó Tuy nhiên, khi một

h{m không có gì để trả về, kiểu dữ liệu void được sử dụng để chỉ điều này

Trang 39

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 33

Khai báo biến toàn cục: Vị trí biến đặt bên ngoài tất cả các hàm, cấu trúc Các biến này có ảnh hưởng đến toàn bộ chương trình, có thể được sử dụng bởi bất

cứ phần nào của chương trình Chu trình sống của nó là bắt đầu chạy chương trình đến lúc kết thúc chương trình

Khai báo biến cục bộ: Vị trí biến đặt bên trong hàm, cấu trúc… Chỉ ảnh hưởng nội bộ bên trong hàm, cấu trúc đó… Chu trình sống của nó bắt đầu từ lúc hàm, cấu trúc được gọi thực hiện đến lúc thực hiện xong

Trang 40

Tài liệu giảng dạy Kỹ thuật lập trình 1 Trang 34

Ngày đăng: 11/10/2022, 23:19

HÌNH ẢNH LIÊN QUAN

Hình  3: Giao diện Dev-C++ 4 - Kỹ thuật lập trình 1 Bậc cao đẳng
nh 3: Giao diện Dev-C++ 4 (Trang 25)
Hình  4: Giao diện Code Bock - Kỹ thuật lập trình 1 Bậc cao đẳng
nh 4: Giao diện Code Bock (Trang 26)
Hình  5: Giao diện Visual C++ - Kỹ thuật lập trình 1 Bậc cao đẳng
nh 5: Giao diện Visual C++ (Trang 27)
Hình  6: qui trình biên dịch mã nguồn C++ - Kỹ thuật lập trình 1 Bậc cao đẳng
nh 6: qui trình biên dịch mã nguồn C++ (Trang 29)

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN