Bài giảng Kỹ thuât lập trình - Chương 1: Tổng quan về C/C++ cung cấp cho người học các kiến thức: Lập trình và ngôn ngữ lập trình, quy trình viết và thực thi chương trình, cấu trúc của một chương trình C/C++,... Mời các bạn cùng tham khảo nội dung chi tiết.
LOGO Chương I Tổng quan C/C++ 1.1 Lập trình ngơn ngữ lập trình www.themegallery.com Lập trình (Programming) - kỹ thuật cài đặt nhiều thuật tốn trừu tượng có liên quan với nhiều ngơn ngữ lập trình (NNLT) để tạo chương trình máy tính Ngơn ngữ lập trình (Programming language) - dạng ngôn ngữ thiết kế chuẩn hóa để truyền thị cho máy tính NNLT dùng để tạo chương trình nhằm mục đích điều khiển máy tính mơ tả thuật tố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 COMPANY LOGO Phân loại ngơn ngữ lập trình www.themegallery.com Ngơn ngữ máy (mã máy) - Là ngôn ngữ tảng vi xử lý Các chương trình viết tất loại ngôn ngữ khác cuối chuyển thành ngôn ngữ máy trước chương trình thi hành Hợp ngữ - Hợp ngữ tương tự ngôn ngữ máy lại sử dụng ký hiệu gợi nhớ (hay mã lệnh hình thức) để biểu diễn cho mã lệnh máy Các chương trình hợp ngữ chuyển sang mã máy thơng qua chương trình đặc biệt gọi trình hợp dịch (assembler) Ngơn ngữ cấp cao - Bao gồm danh từ, động từ, ký hiệu toán học, liên hệ thao tác luận lý Các chương trình viết ngơn ngữ cấp cao chạy loại máy tính khác (sử dụng vi xử lý khác nhau) Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình COMPANY LOGO Các ngơn ngữ lập trình thơng dụng www.themegallery.com (VISUAL) BASIC – Là NNLT hướng kiện (eventdriven) môi trường phát triển tích hợp (IDE) kết bó phát triển Alan Cooper tên Dự án Ruby (Project Ruby), sau Microsoft mua cải tiến nhiều Visual Basic thay Visual Basic NET JAVA – Một NNLT hướng đối tượng, phát triển vào cuối năm 1990 James Gosling đồng nghiệp ông Sun Microsystems (hiện bị mua lại Oracle) Hiện Java ứng dụng rộng rãi, chủ yếu ứng dụng viết Internet (game, app chức web) Java tảng để hình thành 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 COMPANY LOGO Các ngơn ngữ lập trình thơng dụng www.themegallery.com C - Được phát triển tác giả Dennis Ritchie phòng thí nghiệm Bell vào năm 1972 Ban đầu, C thiết kế ngôn ngữ để viết phần mềm hệ thống, ngày nay, xem ngôn ngữ công dụng chung C ngơn ngữ lập trình mạnh mẽ đòi hỏi kỹ lập trình chun nghiệp sử dụng hiệu FORTRAN – (FORmula TRANslator) phát triển nhóm lập trình viên cơng ty IBM lãnh đạo John Backus Công bố vào năm 1957, FORTRAN thiết kế NNLT dành cho nhà khoa học, kỹ sư toán học PASCAL - phát triển vào năm 1968 Niklaus Wirth, nhà khoa học máy tính Zurich, Thụy Sĩ Pascal 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 COMPANY LOGO Các ngơn ngữ lập trình thơng dụng www.themegallery.com C# - Được Microsoft phát triển từ C C ++ Ngôn ngữ phần thiết yếu NET Framework, lập trình viên dùng để xây dựng phần mềm, ứng dụng hệ điều hành Windows, tảng NET framework C++ - Là loại NNLT, bắt đầu nâng cao NNLT C vào năm 1979 Nó NNLT phổ biến với lĩnh vực ứng dụng bao gồm hệ thống phần mềm, phần mềm ứng dụng, máy chủ ứng dụng khách hàng, phần mềm giải trí game video PHP - Ngôn ngữ đặc biệt phù hợp để phát triển Web dễ dàng nhúng vào trang HTML PHP ngôn ngữ Opensource, server-side, cross-platform, interpretive HTML scripting language PHP ngôn ngữ mà tương lai hướng tới với bùng nổ phổ biến web Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình COMPANY LOGO Các ngơn ngữ lập trình thơng dụng www.themegallery.com JavaScript - JavaScript scripting language hướng đối tượng mà Giống Java, JavaScript có cú pháp tương tự C, gần với Self Java Là ngôn ngữ client-side , chạy trình duyệt web client với tập đơn giản câu lệnh, mã lệnh dễ 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 loại ngơn ngữ máy tính phổ biến để tạo, sửa, lấy liệu từ hệ thống có liên quan đến quản trị sở liệu Ngôn ngữ phát triển vượt xa so với mục đích ban đầu để phục vụ cho hệ thống có liên quan đến việc quản trị sở liệu Lisp - ngôn ngữ chuyên dụng ngành trí tuệ nhân tạo Nó NNLT có CTDL tảng danh sách liên kết Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình COMPANY LOGO www.themegallery.com 1.2 Quy trình viết thực thi chương trình Quy trình xây dựng phần mềm bao gồm 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 COMPANY LOGO www.themegallery.com 1.3 Cấu trúc chương trình C/C++ Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình COMPANY LOGO 1.4 Bộ kí tự từ khóa www.themegallery.com Bộ chữ viết ngơn ngữ C/C++ bao gồm kí tự, ký hiệu sau: 26 chữ Latinh lớn: A, B, C , Z 26 chữ Latinh nhỏ: a, b, c , z 10 chữ số thập phân: 0, 1, 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 bỏ qua kí tự khoảng trắng (space) khơng nằm chuỗi ) Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình COMPANY LOGO 10 www.themegallery.com 1.4 Bộ kí tự từ khóa Bộ từ khóa ngơn ngữ C++: asm case const delete enum float friend int new public short static_cast this typedef unsigned volatile auto catch const_cast else false dynamic_cast goto long operator register signed struct throw typeid using wchar_t bool char continue extern double export if mutable private reinterpret_cast sizeof switch true typename virtual while Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình break class default explicit for inline namespace protected return static template try union void COMPANY LOGO 11 www.themegallery.com 1.5 Tên gọi Tên gọi dãy kí tự dùng để gọi tên đối tượng chương trình biến, hằng, hàm, mảng,… Một số qui tắc cần tuân theo đặt tên C: Không bắt đầu chữ số, khơng trùng với từ khóa Chỉ sử dụng ký tự gồm chữ (A Z,a z), chữ số (0 9) dấu gạch ‘_’ Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình COMPANY LOGO 12 1.6 Các kiểu liệu Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình www.themegallery.com COMPANY LOGO 13 1.7 Biến www.themegallery.com Biến đại lượng người lập trình định nghĩa đặt tên thông qua việc khai báo biến: - Cú pháp khai báo chung: kiểu_dữ _liệu tên_biến ; - Khai báo nhiều biến có kiểu liệu: kiểu_dữ _liệu tên_biến1, tên_biến2,…; - Khai báo khởi tạo giá trị cho biến: kiểu_dữ _liệu tên_biến = giá trị_khởi_tạo ; Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình COMPANY LOGO 14 www.themegallery.com 1.7 Biến Hằng (constant) - đại lượng không đổi suốt trình thực thi chương trình Hằng chuỗi ký tự, ký tự, số xác định Để đặt tên hằng, ta dùng dòng lệnh sau : #define Tên_hằng Giá_trị Hoặc const Kiểu_dữ _liệu Tên_hằng = Giá_trị ; 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 COMPANY LOGO 15 www.themegallery.com 1.8 Chú thích Trong ngơn ngữ lập trình C/C++, nội dung thích viết hai cách: - Cách 1: /*chú_thích*/ Cách viết thích nhiều dòng - Cách 2: //chú_thích Cách viết thích dòng (tức thích kết thúc ta ấn phím enter) Chú ý: Chú thích viết vị trị chương trình khơng ảnh hưởng đến kết chạy chương trình Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình COMPANY LOGO 16 1.9 Vào C/C++ www.themegallery.com Các lệnh vào C học học phần THĐC Ta tìm hiểu lệnh vào C++ Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình COMPANY LOGO 17 Vào liệu từ bàn phím www.themegallery.com Để nhập liệu vào cho biến có tên biến_1, biến_2, biến_3 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 COMPANY LOGO 18 Vào liệu từ bàn phím www.themegallery.com Chú ý: toán tử nhập >> chủ yếu làm việc với liệu kiểu số Để nhập kí tự xâu kí tự, C++ cung cấp phương thức (hàm) sau: cin.get(c): cho phép nhập 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 sử dụng phương thức cin.get(c) cin.getline(s, n) nên sử dụng phương thức cin.ignore(1) để lấy kí tự xuống dòng sót lại đệm Trường ĐH GTVT TP.HCM - Bài giảng : Kỹ thuật lập trình COMPANY LOGO 19 Xuất liệu hình www.themegallery.com Để in giá trị biểu thức hình ta dùng câu lệnh sau: cout