BÀI GIẢNG
NGÔN NG
Ữ
L
Ậ
P TRÌNH C/C++
TS. T
r
ần Đăn
g
Hưn
g
NGÔN NG
Ữ
L
Ậ
P TRÌNH C/C++
g
g
Khoa Công Nghệ Thông Tin
Email:
N
ộ
i Dung
N
ộ
i Dung
Chương 1: Giới thiệu
Chương 2: Các cấu trúc điều khiển
Chương 3: Hàm (functions)
Chương 4: Mảng (arrays)
/>
Trình biên d
ị
ch
Trình biên d
ị
ch
TC 3.0 (giao diện giống Pascal)
Visual C++ (windows)
(li )
gcc
(li
nux
)
Dev-C++ (windows)
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
Chương 1: Giới thiệu
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
L
ị
ch s
ử
ngôn ng
ữ
l
ậ
p trình C
L
ị
vi
ế
t h
ệ
đi
ề
u hành Unix
Độc lập với phần cứng (khả chuyển)
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
Chu
ẩ
n C (standard C)
Chu
ẩ
n C (standard C)
Có rất nhiều phiên bản C
ANSI C (American National Standards Institute): 1989
Các phiên bản update vào năm 1995 (C95), 1999 (C99)
C và C++
C là b
ả
ở
ộ
ủ
C đ
ể
h
ỗ
l
ậ
p
tr
ì
n
h h
ư
ớ
ng
đ
ố
i
tượng và thiết kế các phần mềm lớn.
C không hẳn là một phần của C++, nhưng có thể sử dụng cả C
à C h
ằ
hi
ế
k
ế
h
ìh lih h
v
à C
++
n
h
ư
vi
ệ
n chu
ẩ
n C
Chương trình C chỉ bao gồm các modules được gọi là
hàm (function)
ể
ế
Có th
ể
tự vi
ế
t các hàm
Sử dụng các hàm trong thư viện chuẩn
Tránh phát minh l
ạ
i bánh xe
(avoid re
inventing the wheel)
☺
Tránh phát minh l
ạ
i bánh xe
(avoid re
-
inventing the wheel)
☺
Đặt trong cặp dấu /* …. */
Trình biên d
ị
ch s
ẽ
b
ỏ
qua
Trình biên d
ị
ch s
ẽ
b
ỏ
qua
Được dùng để chú thích cho các dòng lệnh
Chỉ dẫn tiền biên dịch
#include <stdio h>
-
s
ử
d
ụ
ng các hàm vào/ra
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
#include <stdio
.
ể
ố
Cặp d
ấ
u {} th
ể
hiện các kh
ố
i (block) chương trình,
thân các hàm luôn được đặt trong cặp {}
L
ệ
nh printf() đ
ư
a n
ộ
i dung ra màn hình
L
ệ
nh printf() đ
ư
a n
ộ
i dung ra màn hình
Kí tự \n đưa con trỏ xuống 1 dòng mới
Hàm int main
(),
nên
a con tr
ỏ
v
ề
đ
ầ
u dòng
\
r
đ
ư
a con tr
ỏ
v
ề
đ
ầ
u dòng
\t – đưa con trỏ đến vị trí tab tiếp theo
\a – bật 1 tiếng chuông
\
\
đ
kí t
\
\
\
-
Đợi người dùng nhập giá trị, rồi gõ phím Enter
ế
Lưu giá t
r
ị vào bi
ế
n ở bên phải toán tử
Đổi giá trị được nhập sang kiểu dữ liệu của biến
= (toán tử gán)
Gán giá trị cho biến
Tá t
ử
hi ôi
Bi t
T
o
á
n
t
ử
h
a
i
ng
ôi
-
Bi
nary
g
làm tha
y
đổi các
g
g
gy
biến trong bộ nhớ
Quy tắc đặt tên biến
Chu
ỗ
i ký t
ự
(ch
ữ
cái a z A Z
Chu
ỗ
i ký t
ự
(ch
ữ
cái a
z
,
A
ư
ờ
ng.
Khai báo biến
Trước khi sử dụng các biến thì phải khai báo nó.
Cách khai báo:
Kiểu_dữ_liệu tên_biến;
hoặc
Ki
ể
ud
ữ
li
ệ
u tên bi
ế
n
=
giá tr
ị
đ
ầ
u;
Ki
ể
u
_
d
Phép nhân: *
Phép chia: /
Phép chia lấy dư: %
Q t
ắ
tiê
y = x / 4;
x = x % 10;
Q
uy
t
ắ
c
ưu
tiê
n
Các phép toán trong ngoặc được tính trước
Các ngoặc lồng nhau, các phép toán ở bên trong nhất được tính
t
ớ
h
ấ
t
tr
ư
ớ
c
pp
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
Các phép toán logic
Toán tử “và”: &&
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
Toán tử “hoặc”: ||
Các phép toán trên bit
Toán tử: & -phép toán AND
Toán tử: | - phép toán OR
Toán tử: ~ - phép đảo ngược bit
Toán tử: << - dịch bit sang trái
á
To
á
n tử: >> - dịch bit sang phải
Ví dụ:
x = 10; y = x << 2; => y = 24
x = 14; y = x >> 2; => y = 3
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
x = 9; y = 7; z = x % y; => z = 2
Các phép toán rút gọn
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
Các phép toán rút gọn
Ví dụ
x = 10; y = 20; x += y; => x = 30
x = 4; x
*
= 2;
=>
x = 8
x++: giá trị của x sẽ tăng lên 1 đơn vị SAU khi thực hiện biểu
thức có mặt của x.
Ví dụ:
x = 10; y = ++x + 2; => x = 11; y = 13
x = 10; y = x++ + 2;
=>
x = 11
;
y = 12
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN
x = 10; y = x++ + 2;
=>
x = 11
;
y = 12
x = 10; y = 20; z = 2 * (++x – y++); => x = 11; y = 21; z = -18
Các đặc tả của hàm printf()
Để đưa nội dung của các biến (hoặc biểu thức) ra màn
hình phải có các chỉ dẫn cụ thể cho từng loại dữ liệu.
Ví dụ:
int x = 20; printf(“x = %d”, x);
float x
=
15.5; printf(
“
x
=
%f
%f
float
%lf
double
%s string %x hexadecimal
Các đặc tả của hàm scanf()
Để nhập các giá trị vào cho các biến cần phải có chỉ dẫn kiểu dữ
liệu cho từng biến.
Ví dụ:
ố
ê
àí
Nhập hai s
ố
nguy
ê
n int từ b
à
n ph
í
m
printf(“Cho hai so nguyen a,b: “); scanf(“%d%d”,&a,&b);
Nhập một số int và một số float từ bàn phím
p
rintf
(
“Cho so n
g
u
y
ệ
u gi
ố
ng trong hàm printf()
Các kí t
ự
đ
ặ
c t
ả
cho t
ừ
ng ki
ể
u d
ữ
li
ệ
u gi
ố
ng trong hàm printf()
Chú ý: Hàm printf() và scanf() đều nằm trong thư viện <stdio.h>,
nên đầu chương trình phải khai báo thư viện bằng lệnh:
#include <stdio.h>
Wednesday, April 04, 2012Ngôn ngữ lập trình C © T.Đ.Hưng – ĐHSPHN