Tài liệu Giáo trình kỹ thuật lập trình docx

181 445 0
Tài liệu Giáo trình kỹ thuật lập trình docx

Đ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

Kỹ thuật lập trình - 1 - TRƯỜNG ĐẠI HỌC ĐÀ LẠT F 7 G GIÁO TRÌNH KỸ THUẬT LẬP TRÌNH TRẦN TUẤN MINH 2002 Trần Tuấn Minh Khoa Toán – Tin học Kỹ thuật lập trình - 2 - MỤC LỤC MỤC LỤC 2 CHƯƠNG 1 : CÁC KIỂU DỮ LIỆU CƠ BẢN TRONG C++ 4 1.1 Mở đầu 4 1.2 Các Yếu Tố Cơ Bản Của Ngôn Ngữ C++ : . 6 1.3 Các Kiểu Dữ Liệu Cơ Bản Trong C++ : 8 1.4 Các Hằng : . 10 1.5 Biến : 13 1.6 Câu lệnh gán : 14 1.7 Từ khóa : typedef . 15 1.8 Sơ Lược Về Nhập, Xuất Chuẩn Trong C++ . 15 BÀI TẬP . 19 CHƯƠNG 2 : CÁC TOÁN TỬ TRONG C++ . 21 2.1 Các toán tử số học : 21 2.2 Toán tử quan hệ và logic : . 23 2.3 Các Toán Tử Thao Tác Bit 24 2.4 Các toán tử khác. . 27 2.5 Biểu Thức : . 27 2.6 Độ ưu tiên của các toán tử 31 BÀI TẬP . 33 CHƯƠNG 3. HÀM VÀ CHƯƠNG TRÌNH . 36 3.1 Cấu trúc chung của chương trình C++ : . 36 3.2 Hàm. . 38 3.3 Một số thư viện trong C++ 45 BÀI TẬP . 48 CHƯƠNG 4. CÁC CÂU LỆNH ĐIỀU KHIỂN 49 4.1 Câu lệnh if . 49 4.2 Câu lệnh switch 53 4.4 Câu lệnh while ( Lặp với điều kiện được kiểm tra trước ) . 61 4.5 Câu lệnh do while ( Lặp với điều kiện được kiểm tra sau ) . 63 4.6 Câu lệnh goto và nhãn : . 68 4.7 Các câu lệnh break, continue : 68 4.8 Câu lệnh rổng : . 69 4.10 Các ví dụ : . 71 BÀI TẬP . 77 CHƯƠNG 5. CÁC CẤU TRÚC DỮ LIỆU CƠ BẢN . 79 5.1 Mảng : 79 5.2 Xâu tự : 91 5.3 Kiểu Cấu trúc : . 94 Trần Tuấn Minh Khoa Toán – Tin học Kỹ thuật lập trình - 3 - 5.4 Mảng cấu trúc : 97 5.5 Kiểu enum 102 BÀI TẬP . 104 CHƯƠNG 6 : CON TRỎ 110 6.1 Con trỏ : 110 6.2 Con trỏ và mảng 1 chiều : 118 6.3 Con trỏ và xâu tự : 120 6.4 Con trỏ và mảng 2 chiều : 122 6.5 Con trỏ và cấu trúc . 125 6.6. Mảng con trỏ : . 127 6.7 Tìm hiểu thêm về hàm: 128 BÀI TẬP . 136 CHƯƠNG 7 : LẬP TRÌNH ĐƠN THỂ . 137 7.1 Đơn thể chương trình : 137 7.2 Dự án (Project) . 139 7.3 Các lớp lưu trử : 145 7.4 Đệ qui . 152 7.5 Bộ tiền xử lý trong C++ : 155 BÀI TẬP : . 158 CHƯƠNG 8 : LẬP TRÌNH VỚI TẬP TIN 160 8.1 Mở đầu : . 160 8.2 Các loại tập tin : . 160 8.3 Mở đầu vê nhập/xuất tập tin trong C++ 161 8.4 Nhập/Xuất nhò phân không đònh dạng . 175 8.5 Truy cập ngẫu nhiên. . 176 BÀI TẬP . 180 TÀI LIỆU THAM KHẢO 181 Trần Tuấn Minh Khoa Toán – Tin học Kỹ thuật lập trình - 4 - CHƯƠNG 1 : CÁC KIỂU DỮ LIỆU CƠ BẢN TRONG C++. 1.1 Mở đầu. 1.2 Các yếu tố cơ bản của ngôn ngữ C++. 1.3 Các kiểu dữ liệu cơ bản trong C++. 1.4 Các hằng. 1.5 Biến. 1.6 Câu lệnh gán. 1.7 Từ khóa typedef. 1.8 Sơ lược về nhập, xuất trong C++. 1.1 Mở đầu. 1.1.1 Giới thiệu ngôn ngữ C/ C++ : Ý tưởng quan trọng nhất của C xuất phát từ ngôn ngữ BCPL do Martin Richards thiết kế. nh hưởng của BCPL lên C gián tiếp thông qua ngôn ngữ B do Ken Thompson viết năm 1970 cho hệ thống UNIX đầu tiên trên máy PDP-7. Từ ngôn ngữ B, Dennish Ritchie và Brian Kernighan phát triển thành ngôn ngữ C vào những năm 1970 tại phòng thí nghiệm của hãng AT & T để phát triển cốt lõi của hệ điều hành UNIX. Trong nhiều năm, chuẩn cho C trên thực tế là một phiên bản được cung cấp cùng với hệ điều hành Unix version 5. Nó được mô tả lần đầu tiên trong cuốn : ” The C programming language “ của Dennish Ritchie và Brian Kernighan. Cùng với sự phổ biến các máy tính cá nhân, có nhiều bản cài đặt của C được tạo ra. Đa số các cài đặt đều tương thích tốt với nhau ( tức là một chương trình được viết cho trình biên dòch này thường biên dòch thành công đối với một trình biên dòch khác ). Tuy nhiên, vì không dựa trên một chuẩn chung nên cũng có nhiều tương phản. Để khắc phục tình trạng này, vào mùa hè 1983 một hội đồng được thành lập để tạo ra một chuẩn cho C, gọi là chuẩn ANSI ( American National Standards Institute : Viện đònh chuẩn Quốc gia Mỹ). Sau 6 năm, chuẩn cuối cùng ANSI C được đề nghò vào tháng 12/1989, và bản đầu tiên được dùng vào năm 1990. Ngày nay các trình biên dòch C chính đều giữ đúng theo ANSI chuẩn. C là một ngôn ngữ có khả năng tổ hợp những thành phần tốt nhất của ngôn ngữ bậc cao và sự điều khiển linh hoạt của ngôn ngữ assembly . - Có thể xem C là ngôn ngữ "cấp thấp" theo nghóa tương đối, nghóa là C có thể xử lý trực tiếp các đối tượng tự, số, đòa chỉ. Ngoài ra, C còn sinh mã tối ưu, tập các toán tử hiệu quả cho phép thao tác đến các bit. - Tuy nhiên C vẫn có đầy đủ các đặc điểm mà bất kỳ một ngôn ngữ cấp cao nào cần phải có : - Tính khả chuyển ( portable ) . Trần Tuấn Minh Khoa Toán – Tin học Kỹ thuật lập trình - 5 - - Cho phép dễ dàng triển khai phương pháp lập trình có cấu trúc . - Cho phép xây dựng cấu trúc chương trình, diễn đạt thuật toán rõ ràng, trong sáng. Bởi các lý do trên người ta còn thường nói C là ngôn ngữ bậc trung. Sau đây là bảng vò trí của C/C++ trong thế giới các ngôn ngữ : Bậc cao nhất Ada Modula-2 Pascal COBOL FORTRAN BASIC Bậc trung C C++ FORTH Macro-assembler Ngôn ngữ C đã không ngừng cải tiến và phát triển. Năm 1987 hãng Borland đã đưa ngôn ngữ C vào thò trường của IBM-PC thông qua Turbo C. Vào những năm 1980, Bjarne Stroustrup đã cho ra đời ngôn ngữ C++ bằng cách cài vào ngôn ngữ C khái niệm lập trình hướng đối tượng. Năm 1988, hãng Zortech giới thiệu một trình biên dòch C++ cho các máy tính MS-DOS Cho tới nay đã xuất hiện nhiều phiên bản C++ trong môi trường Microsoft Windows : Borland C++, Turbo C++ của hãng Borland; Visual C++ của Microsoft. Hiện nay có nhiều chương trình lớn được viết hay được viết lại bằng C/C++ : - Hệ điều hành UNIX. - Hệ điều hành Windows. - Hệ quản trò cơ sở dữ liệu Dbase. - Các chương trình soạn thảo văn bản. - Các bảng tính điện tử. . . . . . . . . . . . . . . Trong giáo trình này ta sẽ minh họa bằng Borland C++ 3.1 for DOS. 1.1.2 Chương trình C++ đầu tiên. Chương trình C++ đơn giản sau đây xuất một dòng văn bản ra man hình. //Chương trình C++ đầu tiên. #include<iostream.h> Trần Tuấn Minh Khoa Toán – Tin học Kỹ thuật lập trình - 6 - int main() { cout<<”\nChương trình C++ đầu tiên.”; return 0; } Kết quả thực hiện chương trình sẽ xuất ra màn hình câu : Chương trình C++ đầu tiên. Ta xét chương trình trên. - Dòng đầu của chương trình : Là một dòng ghi chú, xác đònh bởi hiệu //. C++ sẽ bỏ qua đoạn văn bản trên dòng nằm sau hiệu // trong quá trình biên dòch. - Dòng 2 của chương trình : #include<iostream.h> Là một chỉ thò tiền xử lý. Những dòng bắt đàu từ hiệu # sẽ được C++ xử lý trước khi biên dòch. Ý nghóa của nó là nạp tập tin tiêu đề iostream.h vào trong chương trình. Tập tin iostream.h được dùng cho bất chương trình C++ nào có xử dụng các thao tác Nhập/Xuất dữ liệu. - Dòng 3 của chương trình : int main() main() là tên của hàm, ta họi là hàm chính, là bắt buộc phải có đối với bất kỳ một chương trình C++ nào. int là kiểu số nguyên, chỉ kiểu dữ liệu của hàm. Sau tên hàm hàm main() là thân của hàm main(), xác đònh bởi : { : bắt đầu vào thân hàm } : Kết thúc hàm. - Dòng 4 : cout<<”\nChương trình C++ đầu tiên.”; Là câu lệnh thực hiện việc xuất hằng xâu tự ra màn hình. Kết thúc mỗi câu lệnh trong C++ bằng dấy (;) .Một hằng xâu tự được rào bởi cặp dấu “ “. cout là đối tượng xuất chuẩn, liên kết với màn hình. Toán tử << có tác dụng chèn dữ liệu vào dòng xuất. tự \n điều khiển việc xuống dòng. KNLT: Mỗi chương trình nên bắt đầu bằng một ghi chú chỉ rõù mục đích của nó. 1.2 Các Yếu Tố Cơ Bản Của Ngôn Ngữ C++ : 1.2.1 hiệu cơ sở : Ngôn ngữ C++ được xây dựng từ bộ hiệu cơ sở sau : -Bộ 26 chữ cái La-Tinh viết thường (nhỏ): a,b, .,z. -Bộ 26 chữ cái La-Tinh viết hoa (lớn) : A,B, .,Z. -Bộ 10 chữ số hệ thập phân : 0,1, .,9. -Bộ dấu các toán tử số học : + - * / -Bộ dấu các toán tử so sánh : < > = - tự gạch nối : _ ( Khác dấu trừ - ). -Các hiệu khác : ' " ; , . : [ ] # $ & { } % ! . . . . Trần Tuấn Minh Khoa Toán – Tin học Kỹ thuật lập trình - 7 - Đặc biệt có khoảng trắng dùng để ngăn cách các từ (phím Space). Các hiệu cơ sở đều có trên bàn phím. 1.2.2 Các từ Từ trong C++ được xây dựng bởi các hiệu cơ sở trên. Có 2 loại từ :Từ khóa và tên. a. Từ khóa (Key Word): Là những từ có ý nghóa hoàn toàn xác đònh, chúng thường được dùng để khai báo các kiểu dữ liệu , để viết các toán tử, và các câu lệnh. Sau đây là các từ khóa trong Borland C++ (Turbo C++) : Asm auto break case catch char Class const continue default delete do Double else enum extern float for Friend goto if inline int long New operator private protected public register Return short signed sizeof static struct Switch template this throw try typedef Union unsigned virtual void volatile while Cdecl _cs _ds _es _export far Huge interrupt _loadds near Pascal _regparam _saveregs _seg _ss Ghi chú : Các từ khóa chỉ được viết thường, chẳng hạn không được viết INT mà phải viết int. b. Tên hoặc danh hiệu (identifier): Là từ do người sử dụng tự đặt để giải quyết bài toán của mình. Từ tự đặt dùng để đặt tên cho hằng, biến, hàm, tên kiểu dữ liệu mới, . Tên được đặt theo quy tắc : phải bắt đầu bằng một chữ cái hoặc dấu gạch nối,sau đó là các chữ cái, chữ số hoặc dấu gạch nối , và không được trùng với từ khóa. Tên có thể viết bằng chữ thường hoặc chữ hoa. Chiều dài cực đại của tên mặc đònh là 32. Nhưng có thể đặt lại một giá trò khác từ 1 đến 32 trong chức năng : Option - Complier - Source - Identìier length trong môi trường kết hợp của C++. Trong C++ có phân biệt chữ thường và chữ hoa. Ví dụ : - Các ví dụ sai : 21holpljpmljn // tự đầu là số ts#bnk uio0986 // Sư dụng hiệu # Khoang trang // Sử dụng khỏang trắng f(x) // Sử dụng dấu ngoặc tròn Trần Tuấn Minh Khoa Toán – Tin học Kỹ thuật lập trình - 8 - . . . . . . . . . . . . . . . . . . - Các ví dụ đúng : T123tyu09 _dll098786 1.3 Các Kiểu Dữ Liệu Cơ Bản Trong C++ : Trong C++ có 5 kiểu dữ liệu cơ bản là : - Các kiểu tự . - Các kiểu nguyên . - Kiểu Số thực dấu chấm động độ chính xác đơn : float - Kiểu Số thực dấu chấm động độ chính xác kép : double - Kiểu void. Các kiểu dữ liệu khác đều dựa vào các kiểu dữ liệu trên. Kiểu void sẽ được trình bày trong các chương sau, trong phần này ta chỉ giới thiệu các kiểu còn lại. 1.3.1 Kýù tự : Có nhiều kiểu tự. Một kiểu tự được khai báo bởi từ khóa char. Một giá trò kiểu char được lưu trử trong 8 bit và biểu diễn được 1 tự thông qua bảng mã ASCII . Chẳng hạn : tự Mã ASCII (hệ 10) 0 48 1 49 A 65 a 97 . . . . Có các kiểu tự tương ứng với các từ khóa : signed char ( như char, có dấu) unsigned char (Không dấu). Sau đây là bảng kích thước, phạm vi biểu diễn của các kiểu tự : KIỂU Phạm vi biểu diễn Kích thước Số tự Char -128 → 127 1 byte 256 signed char -128 → 127 1 byte 256 unsigned char 0 → 255 1 byte 256 Ghi chú : Có thể chia 256 tự thành 3 nhóm : - Nhóm 1 : Là các tự điều khiển, có mã ASCII từ 0 đến 31. Các tự này nói chung là không hiển thò ra màn hình. Trần Tuấn Minh Khoa Toán – Tin học Kỹ thuật lập trình - 9 - Chẳng hạn, tự mã 10 chuyển con trỏ xuống dòng dưới (trên cùng cột); tự mã 13 chuyển con trỏ về đầu dòng. . . - Nhóm 2 : Là các tự văn bản, có mã ASCII từ 32 đến 126. Các tự này có thể đưa ra màn hinh hoặc máy in. - Nhóm 3 : Là các tự đồ họa, có mã số từ 127 đến 255. Các tự này có thể đưa ra màn hình. 1.3.2 Kiểu nguyên : Trong C++ cho phép sử dụng các kiểu số nguyên được khai báo bởi từ khóa int, hoặc đi kèm theo int với các từ khóa long, short, unsigned. Số lượng bit được dùng để lưu trử một giá trò int phụ thuộc vào kích thước từ (word) của máy. Thường thì máy 16-bit sẽ dùng 16 bit để lưu trử một giá trò int , trong khi đó máy 32-bit sẽ dùng 32 bit . Kích thước và phạm vi biểu diễn của chúng được cho trong bảng sau : Kiểu Phạm vi biểu diễn Kích thước Int Chiếm 1 từ của máy. short int , short -32768 → 32767 (-2 15 → 2 15 -1) 16 bit unsigned short int 0 → 65535 (0 → 2 16 -1) 16 bit long int , long -2147483648 → 2147483647 (-2 31 → 2 31 -1 ) 32 bit unsigned long int 0 → 4294967295 ( 0 → 2 32 -1) 32 bit unsigned int Số nguyên không âm , chiếm 1 từ của máy. Ghi chú : Giá trò kiểu tự được xem là một số nguyên 8-bit. 1.3.3 Kiểu số thực : C++ cho phép sử dụng 3 kích thước giá trò thực, tương ứng với 3 từ khóa : float, double và long double. Kích thước và phạm vi biểu diễn của chúng được cho trong bảng sau : Kiểu Ý nghóa Phạm vi biểu diễn Kích thước Độ chính xác Float Số thực chính xác đơn -3.4E+38 → 3.4E+38 32 bit 6 số thập phân Double Số thực chính xác kép -1.7E+308 → 1.7E+308,0 64 bit 10 số thập phân long double Kích thước 96 bit hoặc 128 bit Ghi chú : Trần Tuấn Minh Khoa Toán – Tin học Kỹ thuật lập trình - 10 - Lưu trử trong máy : (*) Một số thực kiểu float x với | x| < 3.4E-38 được xem là bằng 0. -3.4E+38 -3.4E-38 0 3.4E-38 3.4E+38 (**) Một số thực kiểu double x với ( | x| < 1.7E-308 ) được xem là bằng 0. -1.7E+308 -1.7E-308 1.7E-308 1.7E+308 1.4 Các Hằng : Hằng là các đại lượng mà giá trò của nó không thay đổi trong quá trình tính toán. Ta thường dùng các tự hoa để biểu diễn các hằng hiệu. Trong C++ có các loại hằng sau đây: 1.4.1 Hằng số thực Giá trò được lấy là float và double. Viết theo 2 cách : 1. Dạng thập phân (dấu chấm cố đònh) : Bao gồm : Phần nguyên, dấu chấm thập phân, phẩn phân. Phần nguyên ⋅ Phần phân Ví dụ : 214.35 -43.345 234.0 Ghi chú : Phần nguyên hay phần phân có thể vắng mặt nhưng dấu châm không thể thiếu. Chẳng hạn cho phép viết : .12 7. 2. Dạng khoa học hay dạng mũ ( dấu chấm động ) : Có 3 thành phần : Phần đònh trò , hiệu E hoặc e , và phần bậc. Phần đònh trò là một số nguyên hoặc số thực dạng thập phân. Phần bậc là một số nguyên. Hai phần này cách nhau bởi tự E hoặc e. Phần đònh trò E hoặc e Phần bậc Ví dụ : 12.234E-3 // biểu diễn giá trò 0.012234 0.35E4 // biểu diễn giá trò 3500.0 -12.22e-3 // biểu diễn giá trò -0.01222 1e6 // biểu diễn giá trò 1 000 000 1.4.2 Hằng nguyên 1. Hằng int : Là số nguyên có kiểu int . Trần Tuấn Minh Khoa Toán – Tin học [...]... “ . Kỹ thuật lập trình - 1 - TRƯỜNG ĐẠI HỌC ĐÀ LẠT F 7 G GIÁO TRÌNH KỸ THUẬT LẬP TRÌNH TRẦN TUẤN MINH 2002 Trần Tuấn Minh Khoa Toán – Tin học Kỹ thuật lập. học Kỹ thuật lập trình - 5 - - Cho phép dễ dàng triển khai phương pháp lập trình có cấu trúc . - Cho phép xây dựng cấu trúc chương trình, diễn đạt thuật

Ngày đăng: 24/12/2013, 17:15

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan