Click to edit Master subtitle style
Bài 1: Tổng quan về ngơn ngữ lập
trình C
Ngơn ngữ C có một số các đặc điểm nổi bật
sau :
◦
◦
◦
◦
Bộ lệnh phù hợp với phương pháp lập trình cấu
trúc.
Kiểu dữ liệu phong phú.
Một chương trình C bao giờ cũng gồm một ho ặc
nhiều hàm và các hàm rời nhau.
Là ngôn ngữ linh động về cú pháp, chấp nhận
nhiều cách thể hiện chương trình .
12/11/2012
2
I. Hướng dẫn sử dụng môi trương kết hợp Turbo C
1.
Khởi động
2.
3.
C1: Từ DOS [ đường dẫn ]\ TC.EXE
C2: Từ Win C -> TC -> BIN -> TC.EXE
C3: Start -> Run -> C:\TC\BIN\TC.EXE
Mở File
Mở file mới : File -> New
Mở file đã có: File -> Open
Ghi File
Save (F2) : Ghi tệp mới đang soạn thảo vào đĩa
Save as : Ghi tệp đang soạn thảo vào đĩa theo tên mới hoặc đe
lên tệp đã có
12/11/2012
3
Chạy một chương trình
◦
◦
◦
F9 : Biên dịch
Ctrl F9 : Thực thi chương trình
Alt F5 : Xem kết quả
Thốt khỏi C
◦
◦
Thốt tạm thời về DOS : Dos Shell
Thoát hẳn khỏi C: File \ Quit ( Alt + X)
12/11/2012
4
II. Giới thiệu ngơn ngữ lập trình C
1. Các thành phần của NNLT C
◦
Tập các ký tự
◦
Chữ cái: A .. Z, a .. z
Chữ số : 0..9
Ký hiệu toán học : + - * / = ( )
Ký tự gạch nối: _
Các ký hiệu đặc biệt khác như : . , ; : [ ] { } ? ! \ & | % # $,…
Từ khố
Là những từ có một ý nghĩa hoàn toàn xác định
Asm, char, do, int, float, for, do, While,…
◦
Tên
Dùng để xác định các đại lượng khác nhau trong một chương trình
Bắt đầu bằng chữ cái hoặc gạch nối
Độ dài cực đại mặc định là 32
12/11/2012
5
2. Các kiểu dữ liệu cơ sở trong C
Kiểu số ký tự (char)
Kiểu số nguyên (int)
Kiểu dấu phẩy động (chính xác đơn (float), chính xác
kép (double))
Kiểu void
12/11/2012
6
2.1 Kiểu ký tự (char)
Một giá trị kiểu ký tự (char) chiếm 1 byte trong bộ
nhớ và biểu diễn một ký tự thơng qua bảng mã
ASCII.
Ví dụ
Ký tự
Mã ASCII
0
48
1
49
2
50
A
65
a
97
12/11/2012
7
Trong ngôn ngữ C cung cấp hai kiểu ký tự (char) là
signed char và unsigned char
Phạm vi
Số ký tự
Kích thước
signed char
-128..127
1 byte
0..255
1 byte
unsigned char
Ví dụ : char ch, ch1;
ch= ‘a’ ; ch1= 97;
12/11/2012
8
2.2 Kiểu số nguyên (int)
Kiểu
Phạm vi biểu diễn
Kích thước
int
-32768 -> 32767
2 byte
Unsigned int
0 -> 65535
2 byte
-2147483648 -
4 byte
4 byte
12/11/2012
9
2.3 Kiểu số thực hay còn gọi là kiểu dấu phẩy động
Kiểu
Phạm vi biểu diễn
Số chữ số
có nghĩa
Kích thước
float
3.4-38E -> 3.4E+38
7-8
4 byte
double
1.7E-308 -> 1.7E+308
15-16
8 byte
laong
double
3.4E-4932 -> 1.1E+4932
17-18
10 byte
12/11/2012
10
3 Hằng và biến
3.1 Hằng:
Khái niệm: hằng là giá trị bất biến trong chương
trình khơng thay đổi, khơng biến đổi về mặt giá
trị. Các loại hằng được sử dụng trong C tương
ứng với các kiểu dữ liệu nhất định
Trong C có ba loại hằng :
◦
◦
◦
Hằng số
Hằng chuỗi
Hằng ký tự
12/11/2012
11
Hằng số: là các giá trị số đã xác định, có thể là kiểu
nguyên hay kiểu thực
◦
◦
◦
Hằng nguyên: Giá trị chỉ bao gồm các chữ số, dấu +, được lưu trữ theo kiểu int. Ví dụ: 12,-12
Nếu giá trị vượt quá miền giá trị của int ho ặc có ký t ự
l (hay L ) theo sau giá trị thì lưu theo ki ểu long int. Ví
dụ: 43L hoặc 43l là hằng nguyên lưu theo ki ểu long
int.
Hằng thực: Trong giá trị có dấu chấm thập phân, ho ặc
ghi dưới dạng số có mũ, và được lưu theo ki ểu float,
double, long double. Ví dụ: 1.2 , 2.1E -3 (2.1E3=0.0021) hoặc 3.1e-2 (3.1e-2=0.031).
12/11/2012
12
Hằng ký tự
Một hằng kiểu ký tự được viết trong dấu ngoặc đơn
(' ) như 'A' hoặc 'z'.
Hằng ký tự 'A' thực sự đồng nghĩa với giá trị nguyên
65, là giá trị trong bảng mã ASCII của chữ hoa 'A'
(Như vậy giá trị của hằng chính là mã ASCII của nó).
Ðối với một vài hằng ký tự đặc biệt, ta cần sử dụng
cách viết thêm dấu \ , như '\t' tương ứng với phím
tab:
Hằng ký tự có thể tham gia vào phép toán như m ọi s ố
nguyên khác:
VD: '8' - '1'= 56-49=7.
12/11/2012
13
Cách viết
Ký tự
‘\n’
Xuống hàng
‘\t’
‘\o’
Tab
“nul” tương ứng với giá trị
nguyên 0 trong bảng mã ASCII
‘\b’
‘\r’
‘\f’
‘\\’
‘ \” ’
‘ \’ ’
Backspacse
Về đầu dòng
Sang trái
\
”
’
12/11/2012
14
Hằng chuỗi
Là chuỗi ký tự nằm trong cặp dấu nháy kép " ". Các
ký tự này cũng có thể là các ký tự được biểu diễn
bằng chuỗi thốt.
Ví dụ: "Turbo C", "Ngôn ngữ C++ \n\r"
Một hằng chuỗi được lưu trữ tận cùng bằng m ột ký
tự Nul (\0), ví dụ chuỗi "Turbo C" được lưu trữ trong
bộ nhớ như sau:
T
u
r
b
o
C
\0
12/11/2012
15
Cách định nghĩa hằng sử dụng trong chương trình
Với các giá trị hằng thường được dùng trong một chương trình
ta nên định nghĩa ở đầu chương trình (sau các dòng khai báo
những thư viện chuẩn) theo cú pháp:
#define <tên hằng> <giá trị>
Ví dụ: #define PI 3.1415
12/11/2012
16
3.2 Biến
Cách khai báo: Mỗi biến trong chương trình đều phải
được khai báo trước khi sử dụng với cú pháp khai:
Kiểu dữ liệu <danh_sách_tên_bi ến>;
Lưu ý: nếu có nhiều tên bi ến thì gi ữa các tên bi ến
phải có dấu , để ngăn cách
Ví dụ: int a,b; float x;
- Khởi đầu cho các biến
Ngay trên dòng khai báo ta có th ể gán cho bi ến m ột
giá trị. Việc làm này gọi là khởi đầu cho bi ến.
Ví dụ: int a,b=6,d=1;
12/11/2012
17
Cách truy xuất đến địa chỉ của biến
Một số hàm của C dùng đến địa chỉ của biến ví
dụ như hàm scanf. Ðể nhận địa chỉ của biến
dùng toán tử: &
Ví dụ: &tên_biến - &a : địa chỉ của biến a
12/11/2012
18
3.3 Cấu trúc tổng quát của chương trình C
1.
2.
3.
4.
5.
Một chương trình C chuẩn gồm có các thành phần
sau:
Các chỉ thị tiền biên dịch
Khai báo các kiểu dữ liệu mới
Khai báo hằng, khai báo biến
Khai báo hàm
Chương trình chính
12/11/2012
19
1.
2.
3.
4.
5.
Chỉ thị tiền biên dịch: giúp trình biên dịch thực hiện
một số công việc trước khi thực hiện một số cơng việc
trước khi thực hiện biên dịch chính thức
VD: #include <stdio.h>;
#include <conio.h>;
Khai báo kiểu dữ liệu mới: dung từ khoá typedef.
VD: typedef
int songuyen;
typedef
float mang[10];
Khai báo hằng và biến: khai báo các hằng số và
biến dùng trong chương trình
Khai báo hàm: khai báo các hàm tự viết
Chương trình chính: hàm main là hàm bắt buộc
trong chương trình. Hàm main có thể trả về giá trị
kiểu nguyên (int) hoặc không trả về giá trị nào (void)
12/11/2012
20
/* Chương trình in ra dịng chữ “Xin chào!!!” trên
màn hình */
# include <stdio.h>
void main () /* Ham chinh */
{
printf(" \n Xin chào!!! ");
/*xuong dong in chu Trung tâm đào tạo Trí Đức */
}
12/11/2012
21
* Chương trình tính chu vi và diện tích hình trịn, biết bán kính r
là một hằng số có giá trị =3.1 */
# include <stdio.h> /* khai báo thư viện hàm nhập xuất chuẩn */
# include <math.h> /* khai báo thư viện hàm toán học */
#define r 3.1
void main ()
{
float cv,dt; /* khai bao bien chu vi va dien tich kieu so thuc */
cv=2*r*M_PI; /* tinh chu vi */
dt=M_PI*r*r; /* Tinh dien tich */
printf("\nChu vi = %10.2f\nDien tich = %10.2f",cv,dt);
/* In ket qua len man hinh */
getch(); /* Tam dung chuong trinh */
}
12/11/2012
22
*Chương trình này minh họa cách vừa khai báo, vừa khởi
đầu một biến trong C */
#include <stdio.h>
void main()
{
char ki_tu = 'a'; /* Khai báo/khởi đầu kí tự. */
int so_nguyen = 15; /* Khai báo khởi đầu số nguyên */
float so_thuc = 27.62; /* Khai báo/khởi đầu số thực/
printf("%c la mot ki tu.\n",ki_tu);
printf("%d la mot so nguyen.\n",so_nguyen);
printf("%f la mot so thuc.\n",so_thuc);
}
12/11/2012
23
Bài 2:
Biểu thức và các phép toán
I. Biểu thức
◦
◦
Là sự kết hợp các phép toán và các toán hạng để
diễn đạt một cơng thức tốn học nào đó.
Biểu thức trong C gồm có biểu thức tốn h ọc và
biểu thức logic
Biểu thức toán học bao gồm các phép toán số học và
các hằng, các biến, các hàm
Biểu thức logic bao gồm các biến, hằng, hàm và phép
toán logic (!: phép phủ định, &&: phép và, || : phép
hoặc)
12/11/2012
24
II. Các phép toán
Phép toán số học
Phép toán
Ý nghĩa
+
Cộng
-
Trừ
*
Nhân
/
Chia
%
Lấy phần dư
Chú ý:
-Phép toán chia 2 số nguyên sẽ chặt cụt phần th ập
phân.
-Phép tốn lấy phần dư khơng áp dụng cho các giá
trị float và double
12/11/2012
25