NGÔN NGỮ LẬP TRÌNH
C/C++
Vũ Song Tùng
1
NỘI DUNG
2
3
5
22
45
77
123
I. C/C++
3
• Ngôn trình hàm
• Linh trong các
• Truy thông qua các con
• các các
struct
• Có chia trình thành
mô-
I. C/C++
4
• các C
• hình (overload)
• các (class)
• các mã
(inheritance)
II. Các thành
Bộ ký tự
Chú thích
ịnh danh
Hằng
Biến
Vào/ra
5
II. Các thành phần cơ bản
6
• cái : a z
• cái hoa : A Z
• : 0 9
• các ( @ và $)
Ví dụ
#include <iostream>
void main()
{
int Arr[] = { 1, 2, 3, 4 };
for (int i = 0; i < 4; i++)
std::cout << Arr[i] << '\t';
}
II. Các thành phần cơ bản
7
• Dùng mô hàm hay
trình
// Hàm tính x^n
// x - số thực, n - số nguyên dương
double power(double x, int n)
{
/*
double g = 1;
for (int i = 0; i < n; i++)
g *= x;
return g;
*/
if (n == 0)
return 1; // x^0 = 1
return x * power(x, n - 1);
}
Mô hàm
Có dùng
trình
Làm rõ
II. Các thành phần cơ bản
8
• Tên cho các hàm, các , các
v.v
• Các quy danh
– dùng các cái,
– Ký tiên không là
– Không phép trùng khóa
Chú ý. Ngôn ngữ C/C++ phân biệt chữ cái hoa và chữ cái
thường
Ví dụ
void _foo() // đúng quy cách
{
int so nguyen; // sai vì có chứa dấu cách
int soNguyen; // đúng quy cách
}
II. Các thành phần cơ bản
9
• Các giá trong trình
• Có là nguyên, , ký xâu ký
Ví dụ
5 // số nguyên kiểu int
05 // số nguyên biểu diễn trong hệ 8
0x5 // số nguyên biểu diễn trong hệ 16
5u // U hoặc u – số nguyên kiểu unsigned
5l // L hoặc l – số nguyên kiểu long
5.0 // số nguyên kiểu double
'5' // ký tự có giá trị số (mã ASCII) bằng 53
'A' // ký tự có giá trị số (mã ASCII) bằng 65
"5" // xâu ký tự gồm ký tự '5' và ký tự NULL
II. Các thành phần cơ bản
10
Bảng 2.1. Các ký tự đặc biệt
Ký
tự
Mô
tả
\
t
TAB
\
n
ENTER
\
’
Nháy
\
”
Nháy
kép
\
\
\
\
0
Ký
NULL (giá 0)
II. Các thành phần cơ bản
11
• Là vùng trong RAM dùng
các giá xác
tên
• Phân
•
•
• con
II. Các thành phần cơ bản
12
• khai báo khi
Ví dụ
int a, b = 1; // Khai báo biến đơn
double A[10]; // Khai báo biến mảng
int *pa = &a; // Khai báo biến con trỏ
Cú pháp
kiểu tên_biến;
kiểu tên_biến = biểu_thức_khởi_tạo;
II. Các thành phần cơ bản
13
Bảng 2.2. Các kiểu biến
Kiểu
Kích thước
(byte)
Vùng
giá trị
nguyên
char
1
-
127
short
2
int
4
unsigned
4
long
4
long
long
8
9,223,372,036,854,775,807
float
4
±
3.4E±38
double
8
±
1.7E±308
long double
8
±
1.7E±308
II. Các thành phần cơ bản
14
• vài chú ý
Ví dụ
void main()
{
int x = 10, y;
// Các biểu thức
for (int i = 0; i < 4; i++)
{
int x = 5;
// Các biểu thức
}
int y;
}
error C2086: 'int y' : redefinition
Trong các tên khác nhau
Cùng tên có khai báo trong các
khác nhau
II. Các thành phần cơ bản
15
• vài chú ý
• Kích các vào mà
trình biên
• Dùng toán sizeof( ) kích
, hay
// Chương trình Win32 Console Application
int sz;
sz = sizeof(sz); // sz = 4
sz = sizeof(long long); // sz = 8
sz = sizeof("12345"); // sz = 6
II. Các thành phần cơ bản
16
• kê
• Dùng danh cho các giá int
enum tên_kiểu { danh sách tên };
Ví dụ
enum Boolean { False, True };
// False = 0, True = 1
enum Keys { Enter = 13, Escape = 27, A = 65, B, C };
// B = 66, C = 67
II. Các thành phần cơ bản
17
Dùng các vào/ra trong iostream
làm màn hình và bàn phím
– vào (cin) toán vào (>>)
– Các ra (cout, cerr) toán ra (<<)
Ví dụ
double a, b, c;
cout << "Nhap a, b, c: ";
cin >> a >> b >> c; // Dùng dấu cách, TAB hoặc ENTER để phân biệt các luồng
if (a != 0)
{
cout << "delta = " << b*b - 4*a*c << '\n';
// Các biểu thức
}
else
cerr << "a phai khac 0.\n";
II. Các thành phần cơ bản
18
Yêu cầu bài toán
• các a, b, c bàn phím
• thì
– Tính
– In ra màn hình các
• > 0
• = 0
• < 0 Vo nghiem.
II. Các thành phần cơ bản
19
PhuongTrinhBac2.cpp
#include <iostream> // thư viện vào/ra
using namespace std; // nơi khai báo các thành phần chuẩn
void main()
{
double a, b, c;
cout << "Nhap a, b, c: "; cin >> a >> b >> c;
if (a != 0) {
// Đoạn biểu thức giải và biện luận phương trình //
}
else
cerr << "He so a phai khac 0.";
cout << endl; // in ký tự xuống dòng
system("pause"); // tạm dừng màn hình
}
II. Các thành phần cơ bản
20
PhuongTrinhBac2.cpp
// Giải và biện luận phương trình
double d = b*b - 4*a*c;
if (d >= 0)
{
if (d > 0)
{
cout << "X1 = " << (-b - sqrt(d)) / (2 * a) << ", X2 = "
<< (b - sqrt(d))/(2 * a);
}
else
cout << "X1 = X2 = " << -b / (2 * a);
} // if (d >= 0)
else
cout << "Vo nghiem.";
II. Các thành phần cơ bản
21
• project PhuongTrinhBac2 trên Visual
Studio .NET và tra các :
– a = 1, b = 2, c = 1
– a = 1, b = 2, c = 3
– a = 1, b = 3, c = 2
• mã trình 2
Gợi ý. Giảm số lượng các biểu thức 2 * a và sqrt(d)
III. và toán
22
Ví dụ
III. và toán
23
• các toán và toán
• thúc
• Có
(-b – sqrt(d)) / (2 * a)
Các toán tử: () - / *
Các toán hạng:
Biến: a, b, d
Hằng: 2
Hàm: sqrt
III. và toán
24
Bảng 3.1. Phân loại các toán tử đơn
Nhóm
Các
toán tử
Ghi
chú
Gán
=
+
- * / %
Có
=
/
++
So
sánh
==
!= > < >= <=
Cho
giá 0 1
tra
?:
Logic
&& || !
Cho
giá 0 1
lý bit
& | ~ ^ << >>
Có
=
Con
& * new delete
Truy
thành viên
:: .
->
Các
khác
{}
() [] ,
Thứ tự ưu tiên các toán tử tham khảo tại
III. và toán
25
• Toán gán:
a = 5; // gán 5 vào a
a = b = c = 5; // tương đương: c = 5; b = c; a = b;
a = b + (c = 5); // tương đương: c = 5; a = b + c;
Cú pháp
lvalue = rvalue
lvalue – tên_biến, rvalue – một biểu thức
Ví dụ