Bài giảng Kỹ thuật lập trình - Chương I: Tổng quan về C/C++

Phân loại ngôn ngữ lập trình  Ngôn ngữ máy (mã máy) - Là ngôn ngữ nền tảng của bộ vi xử lý. Các chương trình được viết trong tất cả các loại ngôn ngữ khác cuối cùng đều được chuyển thành ngôn ngữ máy trước khi chương trình đó được thi hành.  Hợp ngữ - Hợp ngữ tương tự như ngôn ngữ máy nhưng lại sử dụng các ký hiệu gợi nhớ (hay mã lệnh hình thức) để biểu diễn cho các mã lệnh của máy. Các chương trình hợp ngữ được chuyển sang mã máy thông qua một chương trình đặc biệt gọi là trình hợp dịch (assembler).  Ngôn ngữ cấp cao - Bao gồm các danh từ, động từ, ký hiệu toán học, liên hệ và các thao tác luận lý. Các chương trình viết bằng ngôn ngữ cấp cao có thể chạy trên các loại máy tính khác nhau (sử dụng các bộ vi xử lý khác nhau).

pdf24 trang | Chia sẻ: thanhle95 | Lượt xem: 462 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Bài giảng Kỹ thuật lập trình - Chương I: Tổng quan về C/C++, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
LOGO Chương I Tổng quan về C/C++ COMPANY LOGO www.themegallery.com 1.1 Lập trình và ngôn ngữ lập trình  Lập trình (Programming) - là kỹ thuật cài đặt một hoặc nhiều thuật toán trừu tượng có liên quan với nhau bằng một hoặc nhiều ngôn ngữ lập trình (NNLT) để tạo ra một chương trình máy tính.  Ngôn ngữ lập trình (Programming language) - là một dạng ngôn ngữ được thiết kế và chuẩn hóa để truyền các chỉ thị cho máy tính. NNLT 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. Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình 2 COMPANY LOGO www.themegallery.com Phân loại ngôn ngữ lập trình  Ngôn ngữ máy (mã máy) - Là ngôn ngữ nền tảng của bộ vi xử lý. Các chương trình được viết trong tất cả các loại ngôn ngữ khác cuối cùng đều được chuyển thành ngôn ngữ máy trước khi chương trình đó được thi hành.  Hợp ngữ - Hợp ngữ tương tự như ngôn ngữ máy nhưng lại sử dụng các ký hiệu gợi nhớ (hay mã lệnh hình thức) để biểu diễn cho các mã lệnh của máy. Các chương trình hợp ngữ được chuyển sang mã máy thông qua một chương trình đặc biệt gọi là trình hợp dịch (assembler).  Ngôn ngữ cấp cao - Bao gồm các danh từ, động từ, ký hiệu toán học, liên hệ và các thao tác luận lý. Các chương trình viết bằng ngôn ngữ cấp cao có thể chạy trên các loại máy tính khác nhau (sử dụng các bộ vi xử lý khác nhau). Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình 3 COMPANY LOGO www.themegallery.com Các ngôn ngữ lập trình thông dụng  (VISUAL) BASIC – Là một NNLT hướng sự kiện (event- driven) và môi trường phát triển tích hợp (IDE) kết bó được phát triển đầu tiên bởi Alan Cooper dưới tên Dự án Ruby (Project Ruby), và sau đó được Microsoft mua và cải tiến nhiều. Visual Basic đã được thay thế bằng Visual Basic .NET.  JAVA – Một NNLT hướng đối tượng, được phát triển vào cuối những năm 1990 bởi James Gosling và các đồng nghiệp của ông tại Sun Microsystems (hiện tại bị mua lại bởi Oracle)... Hiện nay Java được ứng dụng rất rộng rãi, chủ yếu là các ứng dụng được viết trên Internet (game, app hoặc các chức năng web). Java còn là nền tảng chính để hình thành và phát triển hệ điều hành Android, thư viện ứng dụng Google play, Amazon appstore. Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình 4 COMPANY LOGO www.themegallery.com Các ngôn ngữ lập trình thông dụng  C - Được phát triển bởi tác giả Dennis Ritchie tại phòng thí nghiệm Bell vào năm 1972. Ban đầu, C được thiết kế như là một ngôn ngữ để viết các phần mềm hệ thống, nhưng ngày nay, nó được xem là một ngôn ngữ công dụng chung. C là một ngôn ngữ lập trình mạnh mẽ đòi hỏi kỹ năng lập trình chuyên nghiệp mới có thể sử dụng hiệu quả được.  FORTRAN – (FORmula TRANslator) được phát triển bởi một nhóm lập trình viên của công ty IBM dưới sự lãnh đạo của John Backus. Công bố vào năm 1957, FORTRAN được thiết kế như là một NNLT dành cho các nhà khoa học, kỹ sư và toán học.  PASCAL - được phát triển vào năm 1968 bởi Niklaus Wirth, một nhà khoa học máy tính tại Zurich, Thụy Sĩ. Pascal được phát triển để giảng dạy lập trình. Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình 5 COMPANY LOGO www.themegallery.com Các ngôn ngữ lập trình thông dụng  C# - Được Microsoft phát triển từ C và C ++ . Ngôn ngữ này là một phần thiết yếu của .NET Framework, nó được các lập trình viên dùng để xây dựng phần mềm, ứng dụng trên hệ điều hành Windows, nền tảng .NET framework  C++ - Là một loại NNLT, được bắt đầu như một bản nâng cao của NNLT C vào năm 1979. Nó là một trong những NNLT phổ biến nhất với các lĩnh vực ứng dụng bao gồm các hệ thống phần mềm, phần mềm ứng dụng, máy chủ và các ứng dụng của khách hàng, và các phần mềm giải trí như game video...  PHP - Ngôn ngữ này đặc biệt phù hợp để phát triển Web vì nó dễ dàng nhúng vào các trang HTML. PHP là ngôn ngữ Open- source, server-side, cross-platform, interpretive HTML scripting language. PHP là ngôn ngữ mà tương lai đang hướng tới với sự bùng nổ của sự phổ biến của web. Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình 6 COMPANY LOGO www.themegallery.com Các ngôn ngữ lập trình thông dụng  JavaScript - JavaScript là scripting language hướng đối tượng mà Giống Java, JavaScript có cú pháp tương tự C, nhưng nó gần với Self hơn Java. Là một ngôn ngữ client-side , nó chạy trong trình duyệt web trên client với một tập đơn giản các câu lệnh, mã lệnh dễ hơn và không cần phải biên dịch.  SQL (Structured Query Language) - Ngôn ngữ truy vấn mang tính cấu trúc là một loại ngôn ngữ máy tính phổ biến để tạo, sửa, và lấy dữ liệu từ một hệ thống có liên quan đến quản trị cơ sở dữ liệu . Ngôn ngữ này phát triển vượt xa so với mục đích ban đầu là để phục vụ cho các hệ thống có liên quan đến việc quản trị cơ sở dữ liệu.  Lisp - là ngôn ngữ chuyên dụng trong ngành trí tuệ nhân tạo. Nó là NNLT có CTDL nền tảng là các danh sách liên kết. Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình 7 COMPANY LOGO www.themegallery.com 1.2 Quy trình viết và thực thi chương trình Quy trình xây dựng phần mềm bao gồm các công việc chính:  Phân tích yêu cầu (requirements analysis);  Đặc tả (specification);  Thiết kế (design and architecture);  Lập trình (coding);  Biên dịch (compilation);  Kiểm thử (testing);  Viết tài liệu (documentation);  Bảo trì (maintenance). Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình 8 COMPANY LOGO www.themegallery.com 1.3 Cấu trúc của một chương trình C/C++ Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình 9 COMPANY LOGO www.themegallery.com 1.4 Bộ kí tự và từ khóa  Bộ chữ viết trong ngôn ngữ C/C++ bao gồm những kí tự, ký hiệu sau:  26 chữ cái Latinh lớn: A, B, C..., Z  26 chữ cái Latinh nhỏ: a, b, c ..., z  10 chữ số thập phân: 0, 1, 2...9  Các ký hiệu toán học: +, -, *, /, =,  Các ký hiệu đặc biệt: . , ; : " ' _ @ % # $ ! ^ [ ] { } ( ) ...  Dấu cách hay khoảng trống (Trình biên dịch sẽ bỏ qua kí tự khoảng trắng (space) nếu nó không nằm trong một hằng chuỗi. ) Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình 10 COMPANY LOGO www.themegallery.com 1.4 Bộ kí tự và từ khóa  Bộ từ khóa của ngôn ngữ C++: asm auto bool break case catch char class const const_cast continue default delete else extern do enum false double explicit float dynamic_cast export for friend goto if inline int long mutable namespace new operator private protected public register reinterpret_cast return short signed sizeof static static_cast struct switch template this throw true try typedef typeid typename union unsigned using virtual void volatile wchar_t while Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình 11 COMPANY LOGO www.themegallery.com 1.5 Tên gọi  Tên gọi là một dãy kí tự dùng để gọi tên các đối tượng trong chương trình như biến, hằng, hàm, mảng,  Một số qui tắc cần tuân theo khi đặt tên trong C:  Không được bắt đầu bằng chữ số, không được trùng với từ khóa.  Chỉ được sử dụng các ký tự gồm chữ cái (A..Z,a..z), chữ số (0..9) và dấu gạch dưới ‘_’. Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình 12 COMPANY LOGO www.themegallery.com 1.6 Các kiểu dữ liệu cơ bản Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình 13 COMPANY LOGO www.themegallery.com 1.7 Biến và hằng  Biến là một đại lượng được người lập trình định nghĩa và được đặt tên thông qua việc khai báo biến: - Cú pháp khai báo chung: - Khai báo nhiều biến có cùng một kiểu dữ liệu: - Khai báo và khởi tạo giá trị cho biến: Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình 14 kiểu_dữ _liệu tên_biến ; kiểu_dữ _liệu tên_biến = giá trị_khởi_tạo ; kiểu_dữ _liệu tên_biến1, tên_biến2,; COMPANY LOGO www.themegallery.com 1.7 Biến và hằng  Hằng (constant) - là đại lượng không đổi trong suốt quá trình thực thi của chương trình.  Hằng có thể là một chuỗi ký tự, một ký tự, một con số xác định. Để đặt tên một hằng, ta dùng dòng lệnh sau : Hoặc Ví dụ: #define PI 3.14 const int MAX = 100; Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình 15 #define Tên_hằng Giá_trị const Kiểu_dữ _liệu Tên_hằng = Giá_trị ; COMPANY LOGO www.themegallery.com 1.8 Chú thích  Trong ngôn ngữ lập trình C/C++, nội dung chú thích có thể được viết bằng hai cách: - Cách 1: Cách này có thể viết chú thích trên một hoặc nhiều dòng. - Cách 2: Cách này chỉ viết chú thích trên một dòng (tức là chú thích kết thúc khi ta ấn phím enter).  Chú ý: Chú thích có thể được viết ở bất kì vị trị nào trong chương trình và nó không ảnh hưởng gì đến kết quả chạy chương trình. Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình 16 /*chú_thích*/ //chú_thích COMPANY LOGO www.themegallery.com 1.9 Vào ra trong C/C++ Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình 17  Các lệnh vào ra trong C đã học ở học phần THĐC.  Ta sẽ tìm hiểu các lệnh vào ra trong C++ COMPANY LOGO www.themegallery.com Vào dữ liệu từ bàn phím Để nhập dữ liệu vào cho các biến có tên biến_1, biến_2, biến_3 chúng ta sử dụng câu lệnh: cin >> biến_1 ; cin >> biến_2 ; cin >> biến_3 ; hoặc: cin >> biến_1 >> biến_2 >> biến_3 ; Cần khai báo đầu chương trình: #include using namespace std; Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình 18 COMPANY LOGO www.themegallery.com Vào dữ liệu từ bàn phím Chú ý: toán tử nhập >> chủ yếu làm việc với dữ liệu kiểu số. Để nhập kí tự hoặc xâu kí tự, C++ cung cấp các phương thức (hàm) sau:  cin.get(c): cho phép nhập một kí tự vào biến kí tự c;  cin.getline(s, n): cho phép nhập tối đa n-1 kí tự vào xâu s. Trước khi sử dụng các phương thức cin.get(c) hoặc cin.getline(s, n) nên sử dụng phương thức cin.ignore(1) để lấy ra kí tự xuống dòng còn sót lại trong bộ đệm. Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình 19 COMPANY LOGO www.themegallery.com Xuất dữ liệu ra màn hình Để in giá trị của các biểu thức ra màn hình ta dùng câu lệnh sau: cout << bt_1 ; cout << bt_2 ; cout << bt_3 ; hoặc: cout << bt_1 << bt_2 << bt_3 ; Cần khai báo đầu chương trình: #include using namespace std; Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình 20 COMPANY LOGO www.themegallery.com Ví dụ: Tính chu vi và diện tích hình chữ nhật Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình 21 #include using namespace std; //Khai báo để dùng được cin và cout int main() { float a, b, s; cout << "Nhap vao chieu dai hinh chu nhat: "; cin >> a; cout << "Nhap vao chieu rong hinh chu nhat: "; cin >> b; cout << "Dien tich: " << a*b << "\nChu vi: " << a + b << '\n'; } COMPANY LOGO www.themegallery.com Định dạng thông tin cần in ra màn hình Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình 22 Cần khai báo #include  endl: Tương đương với kí tự xuống dòng '\n'.  setw(n): Qui định độ rộng dành để in ra các giá trị là n cột màn hình. Nếu n lớn hơn độ dài thực của giá trị, giá trị sẽ in ra theo lề phải, để trống phần thừa (dấu cách) ở trước.  setprecision(n): Chỉ định số chữ số của phần thập phân in ra là n. Số sẽ được làm tròn trước khi in ra.  setiosflags(ios::showpoint): Phương thức setprecision chỉ có tác dụng trên một dòng in. Để cố định các giá trị đã đặt cho mọi dòng in (cho đến khi đặt lại giá trị mới) ta sử dụng phương thức setiosflags(ios::showpoint). COMPANY LOGO www.themegallery.com Bài tập chương 1 Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình 23 Bài 1. Viết chương trình tính khoảng cách từ điểm A(x, y, z) tới mặt phẳng: ax + by + cz +d = 0 Yêu cầu: Viết chương trình theo 2 cách là dùng C và C++. Kết quả làm tròn đến 3 chữ số thập phân. Bài 2. Dùng ngôn ngữ C và C++ viết chương trình tính giá trị trung bình của 3 số bất kỳ. Kết quả làm tròn đến 4 chữ số thập phân. Bài 3. Dùng C và C++ viết chương trình nhập vào tên, giới tính và tuổi của một người. Xuất ra màn hình tên, giới tính và năm sinh của người đó. Bài 4. Viết chương trình nhập và xuất 1 kí tự. LOGO www.themegallery.com
Tài liệu liên quan