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
2
Tài liệu tham khảo
Giải bài toán trên máy tính
Xác định bài toán (Input, Output)
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ể
Kiểm tra và hiệu chỉnh
Viết tài liệu sử dụng và bàn giao
Bắt buộc
Giáo trình C++ (Chương 1 – 6)
Bài tập C++
Slides bài giảng cung cấp theo tuần
Tham khảo thêm
Ebooks cung cấp
3
4
Ngôn ngữ lập trình
Thông dịch và biên dịch
Thông dịch
Ngôn ngữ máy
khi thực hiện thì mới được dịch, cần có bộ thông dịch
có những cấu trúc lệnh trừu tượng cao
an toàn, có tính khả chuyển cao
hiệu năng thấp, không phù hợp với ứng dụng lớn
đặc thù cho từng loại máy, biểu diễn ở dạng mã nhị
phân
Hợp ngữ (Assembly)
tương tự như ngôn ngữ máy, biểu diễn ở dạng ký hiệu
Biên dịch
Ngôn ngữ bậc cao
dịch toàn bộ chương trình sang mã máy
khi thực hiện chỉ cần có chương trình đích ở dạng mã
máy
hiệu năng cao, phù hợp với ứng dụng lớn, ứng dụng
hệ thống
độc lập với máy
dễ dàng biểu diễn thuật toán và cấu trúc dữ liệu phức
tạp
5
Biên dịch
6
Lịch sử ngôn ngữ lập trình
FORTRAN I
FORTRAN II
ALGOL 58
Biên dịch (Compile): dịch file mã nguồn sang file
mã máy (object)
Liên kết (Link): kết nối với các file thư viện để
thành file mã máy thực
th c hiện
hi n đượcc
thư viện liên kết động (DLL)
ALGOL 60
SIMULA I
SIMULA 67
FLOW-MATIC
COBOL
FORTRAN IV
1957
COMTRAN
LISP 1960
CPL
1965
BASIC
PL/1
BCPL
ALGOL 68
B
C
PASCAL
PROLOG
1970
1975
MODULA 2
1980
SMALLTALK 80
ADA
OBERON
MODULA 3
BETA
C++
1985
EIFFEL
1990
JAVA
1995
C#
7
2000
8
Ngôn ngữ C
Ngôn ngữ C++
Do D. Ritchie phát triển tại Viện nghiên cứu Bell
vào năm 1972
Ngôn ngữ vạn năng (general-purpose)
Bậc cao
Có khả năng truy cập bộ nhớ ở mức thấp
Chuyên nghiệp, phù hợp cho phát triển các ứng
dụng lớn, ứng dụng hệ thống
Tốt hơn C
Hỗ trợ trừu tượng dữ liệu
Hỗ trợ lập trình hướng đối tượng (object oriented
programming)
9
Thành phần của NNLT
10
Từ khóa C
Bảng chữ cái
tập các ký tự có thể sử dụng để viết chương trình
C/C++ phân biệt chữ hoa và chữ thường
Từ
T khóa
các từ cơ bản của ngôn ngữ, không thể định nghĩa lại
Cú pháp
ngữ pháp của ngôn ngữ
Ngữ nghĩa
ý nghĩa tương ứng của các cấu trúc ngôn ngữ
11
12
Từ khóa C++
C: ví dụ
hello.c:
#include <stdio.h>
void main()
{
printf(”Hello, world”);
}
13
14
C++: ví dụ
Cấu trúc 1 chương trình đơn giản
hello.cpp:
//Khai báo thư viện
#include <tên_thư_viện>
#include <iostream.h>
//Khai báo (định nghĩa) hàm
void main()
void main()
{
//Thực hiện yêu cầu
//Lời gọi hàm
}
{
cout << ”Hello, world”;
}
15
16
Sử dụng VC++ 6.0
C++: ví dụ
File New Project Win32 Console
Application
Đặt tên Project
File New File C++ Source file
Đặt tên file
F7: biên dịch Project
F4: nhảy tới lỗi (error), cảnh báo (warning)
Ctrl + F5: chạy chương trình
#include <iostream>
using namespace std;
int main()
{
cout << ”Hello, ”;
cout << ”world”
<< endl;
return 0;
}
17
18
Cấu trúc của hàm
Cấu trúc chương trình C++ đơn giản
Khai báo hàm:
void main();
Thân hàm
khối lệnh (block)
VD:
int tong(int i)
{
return 100 + i;
}
Sẽ học kỹ ở phần hàm
Tập hợp các hàm (chương trình con)
Hàm đầu tiên được thực hiện là hàm main()
int main()
{
return 0;
}
19
20
Câu lệnh - statement
Câu lệnh: ví dụ
Là đơn vị cơ bản của chương trình
khai báo biến số, hằng số
biểu thức gán
các câu lệnh if, for, switch, …
lời gọi hàm khác
Kết thúc bằng dấu “;”
Chỉ nên viết một câu lệnh trên một dòng
Chú ý: Phong cách lập trình
int a, b, c;
a = b + c;
if (a > b) a = b;
cout << a;
cout<<”Hello, world”;
21
Khối lệnh - block
{
22
Khối lệnh: ví dụ
{
}
int tmp = a;
a = b;
b = tmp;
statement
}
block
23
24
Chú thích chương trình
C++: ví dụ
Chú thích được viết giữa cặp /* */
/*
khai bao bien
*/
/
int a;
Chú thích từ // đến hết dòng (C++)
int a; // khai bao bien
Nên viết chú thích đầy đủ
#include <iostream.h>
int main()
{
cout << ”Hello, ”;
cout << ”world”
<< endl;
return 0;
}
25
Tập tin header
26
Tự thực hành
Thông tin về giao diện của thư viện mà chương
trình sử dụng
sử dụng chỉ thị #include
iostream.h: vào/ra (C++)
iostream
stdio.h: vào/ra (C)
stdlib.h: một số thư viện cơ bản (C)
cstdlib
string.h: xử lý xâu ký tự (C)
cstring
math.h: toán học (C)
cmath
Vào website môn học lấy bài
Làm quen với môi trường phát triển Visual C++
trên Windows
Tập viết các chương trình nhỏ
các ví dụ trong bài giảng và trong tài liệu tham
khảo
27
28
Bài tập: Tìm hiểu về C/C++
Tìm hiểu về lịch sử phát triển của C và C++
Tìm hiểu một số môi trường phát triển C, C++
khác
Đọc trước slide bài giảng tuần sau
29