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).
24 trang |
Chia sẻ: thanhle95 | Lượt xem: 549 | Lượt tải: 1
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