Lập trình và ngôn ngữ lập trình
Nội dung Thế nào là lập trình Ngôn ngữ lập trình Ngôn ngữ C và C++ Xây dựng một chương trình đơn giản
Lập trình (programming) Các thao tác xây dựng chương trình máy tính Giải quyết vấn đề bằng máy tính Thông qua ngôn ngữ lập trình Còn gọi là viết mã (coding)
Giải quyết vấn đề bằng máy tính Xác định mục đích của bài toán Thiết kế cấu trúc dữ liệu và giải thuật Program = Data Structure + Algorithm (N. Wirth) Thể hiện bằng một NNLT cụ thể Thực thi & Kiểm tra & Hiệu chỉnh Viết tài liệu sử dụng và bàn giao
Các bước phát triển chương trình Soạn thảo mã nguồn (source code) Biên dịch mã nguồn thành tệp đối tượng (object file) Liên kết các tệp đối tượng thành tệp thực thi (executable file) Thực hiện / chạy chương trình
Ngôn ngữ lập trình Ngôn ngữ máy Dạng mã nhị phân 0-1, đặc thù theo từng dòng máy Hợp ngữ Ngôn ngữ máy ở dạng ký hiệu Ngôn ngữ bậc cao Thường độc lập với máy Có thể biểu diễn chương trình gần như lời nói
Thông dịch Khi thực hiện chương trình mới được dịch Có nhiều cấu trúc lệnh trừu tượng An toàn, khả chuyển Hiệu năng thấp
Biên dịch Dịch chương trình sang mã máy trước khi chạy Chỉ cần tệp thực thi để chạy chương trình Hiệu năng cao
Các bước chạy chương trình Biên dịch (compile): chuyển mã nguồn sang tệp đối tượng (object file) Liên kết (link): kết nối các tệp đối tượng và thư viện thành tệp thực thi
Lịch sử ngôn ngữ lập trình
Ngôn ngữ C D. Ritchie phát triển tại Bell Labs (1972) dựa trên ngôn ngữ BCPL (Martin Richards -1967) và ngôn ngữ B (Ken Thompson 1970) được cài đặt lần đầu tiên trên hệ điều hành UNIX Ngôn ngữ vạn năng (general-purpose) Ngôn ngữ bậc cao, có cấu trúc Có khả năng truy cập bộ nhớ ở mức thấp Phù hợp cho phát triển các ứng dụng lớn, ứng dụng hệ thống
Ngôn ngữ C Ngôn ngữ rất mạnh và mềm dẻo Có hệ thống thư viện (theo chuẩn ANSI/ISO) Có nhiều thư viện khác (third party) Hỗ trợ các phép toán kỹ thuật Người mới học có thể thấy rắc rối
Ngôn ngữ C++ Ngôn ngữ C cộng với đối tượng Hỗ trợ lập trình hướng đối tượng (object oriented programming) Có hệ thống thư viện mẫu chuẩn (Standard Template Library - STL)
Các thành phần của ngôn ngữ Bảng chữ cái Tập các ký tự dùng để viết chương trình C/C++ phân biệt chữ hoa, chữ thường Từ khóa Các từ cơ bản của ngôn ngữ Cú pháp Cách viết các câu lệnh Ngữ nghĩa Ý nghĩa của các cấu trúc
Từ khóa trong C auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while
and const export namespace signed typename and_eq const_cast extern new sizeof union C++ asm continue extern "C" not static unsigned auto default false not_eq static_cast using bitand #define float operator struct virtual bitor delete for or switch void bool do friend or_eq template volatile break double goto private this void case dynamic_cast if protected throw wchar_t catch else inline public true while char enum int register try xor class exit() long reinterpret_cast typedef xor_eq compl explicit mutable short typeid
Ví dụ (hello.c)
Phân tích ví dụ Dòng số 1: Chú thích tên file Có thể đánh thông tin bất kì trong chú thích Trình biên dịch sẽ không dịch chú thích
Phân tích ví dụ Dòng số 3: Chỉ thị tiền xử lý Chèn toàn bộ tệp vào vị trí này
Phân tích ví dụ Dòng số 5: Khai báo hàm có tên là Với C/C++, hàm là hàm chạy đầu tiên Còn gọi là điểm vào (entry point) Giá trị trả về là số nguyên ( ) Không có tham số
Phân tích ví dụ Dòng số 6 và 9: Dấu : điểm bắt đầu khối lệnh Dấu : điểm kết thúc khối lệnh Khối lệnh ở đây là các lệnh của hàm
Phân tích ví dụ Dòng số 7: Câu lệnh in 1 chuỗi ký tự Dấu là ký hiệu kết thúc dòng, xuống dòng Kết thúc câu lệnh bằng dấu
Phân tích ví dụ Dòng số 8: Kết thúc hàm main Trả về giá trị số nguyên ( ) bằng
Biên dịch chương trình Mở Command prompt phím cửa sổ + R gõ cmd, gõ Enter
Biên dịch chương trình Đặt đường dẫn PATH gõ Enter
Biên dịch chương trình Biên dịch gõ Enter
Chạy chương trình Chạy chương trình gõ Enter
Biên dịch và chạy trong IDE Build Run Thực hành