Tải bản đầy đủ (.pdf) (44 trang)

Bài giảng Kỹ thuật lập trình cơ bản: Chương 2 ThS. Phạm Đào Minh Vũ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.31 MB, 44 trang )

CHƯƠNG 2
GIỚI THIỆU NGÔN NGỮ C/C++

1


LỊCH SỬ RA ĐỜI
 Ngôn ngữ C do Dennis Ritchie xây dựng từ
năm 1972 tại phòng thí nghiệm Bell
Telephone với mục đích tạo ngôn ngữ để
viết HĐH UNIX. Song nhờ có các tính năng
ưu việt và tính mềm dẻo nên được giới tin
học chấp nhận

 Năm 1978, xuất bản quyển sách “The C
programming language” do Kernighan và
Ritchie viết.
2


C++ dựa trên ngôn ngữ lập trình C

C++ được phát minh bởi Bijarne
Stroustroup, bắt đầu năm 1979
Các trình biên dịch phổ biến: Borland
C++, Microsoft Visual C++

3


ƯU ĐIỂM


 Bộ lệnh phù hợp với phương pháp lập trình có cấu
trúc module, có thể sử dụng nhiều lần trong chương
trình hoặc chương trình khác, hỗ trợ lập trình hướng
đối tượng.
 Kiểu dữ liệu phong phú, cho phép định nghĩa kiểu
dữ liệu mới.
 Linh động về cú pháp, ít từ khóa.

 Ngôn ngữ mạnh và mềm dẻo, được dùng để viết Hệ
điều hành, chương trình điều khiển, soạn thảo văn
bản, đồ hoạ, bảng tính… và các chương trình dịch
cho các ngôn ngữ khác .
4


KHUYẾT ĐIỂM
 Cú pháp thuộc loại lạ và khó học. Nếu người lập
trình đã học qua một ngôn ngữ khác thì sẽ dễ
dàng tiếp cận.
 Một số ký hiệu có nhiều nghĩa khác nhau. Ví dụ:
dấu “*” là toán tử nhân, là khai báo con trỏ, là
toán tử thay thế, … Việc sử dụng đúng nghĩa các
toán tử phụ thuộc vào ngữ cảnh sử dụng.
 Việc truy nhập tự do vào dữ liệu, việc trộn lẫn
các kiểu dữ liệu… làm cho chương trình có phần
bất ổn.
5


VÍ DỤ CHƯƠNG TRÌNH C++

Xuất ra màn hình dòng chữ: “Xin chao cac ban”
Viết bằng VC++6.0
hoặc BC++3.1

Viết bằng VC++2003
hoặc 2005, 2008, …

#include <iostream.h>

#include <iostream>
using namespace std;

void main()
{
cout<<"Xin chao cac ban";
}

void main()
{
cout<<"Xin chao cac ban";
}
6


CÁC KHÁI NIỆM
Lệnh :

Là việc thực hiện một chức năng nào đó
(khai báo, gán, xuất, nhập, …) và được
kết thúc bằng dấu chấm phẩy (;)

Khối lệnh

Khối lệnh gồm nhiều lệnh và được đặt
trong cặp dấu ngoặc { }
7


DÕNG GHI CHÖ (COMMENT)
Từ vị trí cụ thể đến cuối dòng: dùng //
ngay tại vị trí đó.
Tạo nhiều dòng ghi chú: dùng cặp ký tự /*
ngay trước dòng đầu tiên, và cặp ký tự */
ngay sau dòng cuối cùng.

Ví dụ :
void main()
{
// đây là câu xin chào
cout<<"Xin chao cac ban";
/* kết thúc */
}
8


TẬP CÁC KÝ TỰ THƯỜNG DÙNG
 Chữ cái hoa: A, B, ..., Z
 Chữ cái thường: a, b, c, ..., z
 Chữ số: 0, 1, ..., 9

 Các ký hiệu toán học: +, -, *, /, =, (, ),...

 Ký hiệu gạch nối: _

 Các ký hiệu đặc biệt như: . , ; [] {} ? ! \ & | % #...
 Không được dùng các ký hiệu như: α, φ, Ω,
π, … hoặc tiếng việt có dấu: â, ă, ô…
9


TỪ KHÓA (KEYWORD)
auto

break

case

char

const

continue
enum
if
short
switch
volatile
delete
operator
this

default

extern
int
signed
typedef
while
friend
private
throw

do
float
long
sizeof
union
bool
inline
protected
try

double
for
register
static
unsigned
catch
new
public

else
goto

return
struct
void
class
namespace
template

10


BIẾN
Một biến đại diện cho một vùng nhớ hay tập các
vùng nhớ trên bộ nhớ chính của máy tính. Tên biến
được dùng để tham khảo đến những vùng nhớ này.
Biến để lưu trữ các giá trị do người dùng nhập vào
hoặc các giá trị tạm thời trong quá trình tính toán.
Mỗi biến sẽ có tên và kiểu dữ liệu tương ứng. Kiểu
dữ liệu của biến xác định những giá trị kiểu nào có
thể được lưu trong biến (ví dụ số hay chữ…).
PHẢI khai báo BIẾN trước khi sử dụng

11


CÁC KIỂU DỮ LIỆU
 Kiểu cơ sở

Tích hợp sẵn trong ngôn ngữ
– Số nguyên
– Số thực

– Luận lý
– Mảng (xét sau)
– Chuỗi (xét sau)
 Kiểu tự định nghĩa (xét sau)
Dùng những kiểu cơ sở để xây dựng thành những
kiểu dữ liệu mới cho phù hợp với bài toán.
12


KIỂU SỐ NGUYÊN
ST
T

TÊN KIỂU

1 char

GHI CHÚ
Ký tự

KÍCH
THƯỚC

MIỀN GIÁ TRỊ

1 byte

Chứ 255 ký tự

1 byte


-126 đến 127

Số nguyên
2
Số nguyên
unsigned char dương
3 short
Số nguyên

1 byte

0 đến 255

2 bytes

-32763 đến 32762

Số nguyên
unsigned short dương

2 bytes

0 đến 65535

Số nguyên
Số nguyên
dương

4 bytes


-2147483648 đến 2147483647

4 bytes

0 đến 4294967295

Số nguyên
8
Số nguyên
unsigned long dương

4 bytes

-2147483648 đến 2147483647

4 bytes

0 đến 4294967295

4

5 int
6
unsigned int
7 long

13



KIỂU SỐ THỰC
KÍCH
THƯỚC

MIỀN GIÁ TRỊ

4 bytes

3.4*10–38 đến 3.4*1038

1

float

GHI
CHÚ
số thực

2

double

số thực

8 bytes

1.7*10–308 đến 3.4*10308

3


long double

số thực

10 bytes

3.4*10–4932 đến 3.4*104932

STT TÊN KIỂU

KIỂU LUẬN LÝ
STT
1

TÊN
GHI CHÚ
KIỂU
bool
Kiểu luận lý

KÍCH THƯỚC
1 byte

GIÁ TRỊ
1  true
0  false
14


QUI TẮC ĐẶT TÊN

Dùng để đặt tên biến, tên hằng, tên hàm, …
 Bắt đầu bằng một ký tự.
 Các ký tự trong tên biến chỉ có thể là các
ký tự chữ, số hoặc dấu gạch dưới (_)
 Không được trùng với các từ khoá.

 Không được trùng với phạm vi khai báo.
 Tên dễ hiểu, súc tích và gợi nhớ.
 Phân biệt chữ hoa và thường
15


KHAI BÁO BIẾN
Cú pháp

<Kiểu dữ liệu> tênbiến;
Ví dụ:
int a; //Khai báo biến để lưu số nguyên tên a
float c; //Khai báo biến để lưu số thực tên c
Khai báo nhiều biến cùng kiểu

<Kiểu dữ liệu> tênbiến1, tênbiến2, tênbiến3;
Ví dụ:

int a, x, y;
16


KHAI BÁO VÀ KHỞI GÁN GIÁ TRỊ BAN
ĐẦU CHO BIẾN


<Kiểu dữ liệu> tênbiến = giá trị;
Ví dụ:
int a = 5;

float b = 5.4, c = 9.2;
char ch = „n‟;
17


ĐỊNH NGHĨA HẰNG SỐ
 Hằng là đại lượng không thay đổi giá trị trong quá
trình thi hành chương trình
 Dùng toán tử #define
Cú pháp: #define <tên_hằng> <giá_trị_hằng>

Ví dụ: #define MAX 100
 Biến hằng được định nghĩa nhờ từ khoá const với
cú pháp như sau:
const <kiểu_dữ_liệu> <tên_biến> = <giá_trị>;
Ví dụ:

const int MAX = 100;

 Tên hằng số nên viết bằng chữ in HOA
18


CÁC LOẠI HẰNG SỐ
 Hằng số: Đó là các giá trị xác định, một hằng

số có thể là nguyên (có kiểu dữ liệu int, hay long
int) hay thực (có kiểu dữ liệu là float, double,
long double).

 Hằng ký tự: Được đặt trong dấu nháy đơn. Ví
dụ: 'A', 'a' tương ứng với giá trị nguyên 65, 97
trong bảng mã ASCII.
 Hằng chuỗi: Là tập hợp các ký tự được đặt
trong cặp dấu nháy kép " ". Ví dụ: “Lap trinh C"
 Chú ý: Một hằng chuỗi được trữ tận cùng bằng ký tự
19
null (\0)


KÝ HIỆU CÁC PHÉP TOÁN
STT

PHÉP
TOÁN

Ý NGHĨA

GHI CHÚ

PHÉP TOÁN SỐ HỌC
1
2
3

+

*

Cộng
Trừ
Nhân

4

/

Chia

5

%

1
2
3
4
5
6

>
<
>=
<=
==
!=


Đối với 2 số nguyên thì kết quả
là chia lấy phần nguyên
Chỉ áp dụng cho 2 số nguyên
Chia lấy phần dư
PHÉP TOÁN QUAN HỆ
Lớn hơn
Nhỏ hơn
Lớn hơn hoặc bằng
Nhỏ hơn hoặc bằng
Bằng nhau
Khác nhau
20


PHÉP TOÁN LOGIC
1 ! NOT
2 && AND
3 || OR
1

2
1
2
3
4
5
6

TOÁN TỬ TĂNG GIẢM
++ Tăng 1

Nếu toán tử tăng giảm đặt trước
thì tăng giảm trước rồi tính biểu
-- Giảm 1
thức hoặc ngược lại.
PHÉP TOÁN THAO TÁC TRÊN BIT
& AND
| OR
^ XOR
<< Dịch trái
>> Dịch phải
~ Lấy phần bù theo bit
21


Ví dụ:
int x = 5, y = 11;
int z = ++x + y++;
Kết quả: x=6; y=12; z=17
Toán tử điều kiện

(ĐK)?<BT cho trường hợp đúng>:sai>
Ví dụ:

int n;
(n%2==0)? n ++ : n --;

 nếu n = 10 thì giá trị n = 11
 nếu n = 21 thì giá trị n = 20
22



THỨ TỰ ƯU TIÊN PHÉP TOÁN
Toán tử
() [] ->
! ~ ++ -- - + *
* /
%
+
<<
>>
<
<=
>=
>
==
!=
&
|
^
&&
||
? :
= += -= *= /= %=

&

Độ ưu tiên Trình tự kết hợp
1
Từ trái qua phải

sizeof
2
Từ phải qua trái
3
Từ trái qua phải
4
Từ trái qua phải
5
Từ trái qua phải
6
Từ trái qua phải
7
Từ trái qua phải
8
Từ trái qua phải
9
Từ trái qua phải
10
Từ trái qua phải
11
Từ trái qua phải
12
Từ trái qua phải
13
Từ phải qua trái
14
Từ phải qua trái
23



CÁC LỖI THƯỜNG GẶP KHI VIẾT CHƯƠNG TRÌNH
Quên khai báo các biến sử dụng trong
chương trình.
Lưu một giá trị vào một biến nhưng không
cùng kiểu dữ liệu với biến.
Sử dụng biến trong một biểu thức khi nó
chưa có giá trị. Lỗi này thì không được phát
hiện bởi trình biên dịch, khi đó giá trị của
biến là một giá trị bất kỳ và kết quả của
biểu thức là vô nghĩa.
24


CÁC LỖI THƯỜNG GẶP KHI VIẾT CHƯƠNG TRÌNH
Sử dụng giá trị của phép chia không chính xác.
Lỗi này thường xuất hiện trong các biểu thức
có nhiều toán hạng và lỗi này rất khó phát
hiện.

Ví dụ: 3.2 + 2/3 + 1.5 thì sẽ khác (3.2 + 2)/3
+ 1.5
Sử dụng một biểu thức mà trong đó chứa
nhiều loại dữ liệu nhưng lại không biết chắc
chắn kiểu dữ liệu của kết quả.
25


×