Bài giảng Lập trình C - Chương 2: Ngôn ngữ C - Bài 1: Bước đầu với ngôn ngữ C

Nội dung bài học

1. Ví dụlàm quen

2. Ghi chú

3. Từkhóa

4. Kiểu dữliệu

5. Biến

6. Phép toán

7. Ép kiểu

pdf35 trang | Chuyên mục: C/C++ | Chia sẻ: dkS00TYs | Lượt xem: 2000 | Lượt tải: 5download
Tóm tắt nội dung Bài giảng Lập trình C - Chương 2: Ngôn ngữ C - Bài 1: Bước đầu với ngôn ngữ C, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Bài 01: Bước đầu với ngôn ngữ C
GV: Trần Phước Tuấn
EMAIL: tranphuoctuan.khoatoan.dhsp@gmail.com
CHƯƠNG 02: Ngôn Ngữ C
9/16/2008T.P.Tuấn-Lập Trình CPage 2
Nội dung bài học
1. Ví dụ làm quen
2. Ghi chú
3. Từ khóa
4. Kiểu dữ liệu
5. Biến
6. Phép toán
7. Ép kiểu
9/16/2008T.P.Tuấn-Lập Trình CPage 3
1. Ví dụ làm quen
1. /* 
2. Chuong trinh xuat cau chao “Hello World!”
3. */
4. #include 
5. void main()
6. {
7. printf(“Hello World!”);
8. }
Ví dụ 01: 
9/16/2008T.P.Tuấn-Lập Trình CPage 4
1. Ví dụ làm quen
Ví dụ 01: 
9/16/2008T.P.Tuấn-Lập Trình CPage 5
1. Ví dụ làm quen
Ví dụ 01: 
• Hãy bấm Ctrl + F9 để biên dịch và chạy 
chương trình
• Alt + F5 để xem kết quả xuất ra màn hình
9/16/2008T.P.Tuấn-Lập Trình CPage 6
1. Ví dụ làm quen
Ví dụ 01: 
• Chú thích của chương trình:
• Khai báo thư viên stdio.h chứa hàm printf
• Lệnh xuất ra màn hình
9/16/2008T.P.Tuấn-Lập Trình CPage 7
1. Ví dụ làm quen
1. /* Chuong trinh nhap va in ra man hinh gia tri bien*/
2. #include 
3. #include 
4. void main(void)
5. {
6. clrscr(); //lenh xoa man hinh 
//với VC: system(“cls”); trong thư viện windows.h
7. int i;
8. printf("Nhap vao mot so: ");
9. scanf("%d", &i);
10. printf("So ban vua nhap la: %d.\n", i);
11. getch();
12. } 
Ví dụ 02: 
9/16/2008T.P.Tuấn-Lập Trình CPage 8
1. Ví dụ làm quen
Ví dụ 02: 
• clrscr(): Xóa màn hình
• getch(): chờ nhận một phím (dừng chương 
trình lại)
• scanf("%d", &i): nhập giá trị vào biến i
9/16/2008T.P.Tuấn-Lập Trình CPage 9
1. Ví dụ làm quen
1. /* Chuong trinh nhap vao 2 so a, b in ra tong*/
2. #include 
3. #include 
4. void main()
5. {
6. clrscr();
7. int a, b;
8. printf("Nhap vao so a: ");
9. scanf("%d", &a);
10. printf("Nhap vao so b: ");
11. scanf("%d", &b);
12. printf("%d + %d = %d\n", a, b, a+b);
13. getch();
14. }
Ví dụ 03: 
9/16/2008T.P.Tuấn-Lập Trình CPage 10
1. Ví dụ làm quen
Ví dụ 03: 
• Hãy cho biết kết quả khi
• Đáp án
9/16/2008T.P.Tuấn-Lập Trình CPage 11
1. Ví dụ làm quen
1. /* Chuong trinh Tinh chu vi hinh tron */
2. #include 
3. #include 
4. #define PI 3.14
5. void main()
6. {
7. clrscr();
8. float fR;
9. printf("Nhap vao ban kinh hinh tron: ");
10. scanf("%f", &fR);
11. printf(“Chu vi hinh tron: %.2f.\n", 2*PI*fR);
12. getch();
13. }
Ví dụ 04: 
9/16/2008T.P.Tuấn-Lập Trình CPage 12
1. Ví dụ làm quen
Ví dụ 03: 
• Hãy cho biết kết quả khi
• Đáp án
9/16/2008T.P.Tuấn-Lập Trình CPage 13
2. Ghi chú
• Ghi chú theo dòng
– Ký tự dùng ghi chú: //
– Tất cả các ký tự sau // đến cuối dòng là ghi 
chú
• Ghi chú đoạn
– Ký tự: /* … */
– Tất cả các ký tự nằm giữa /* và */ đều là ghi 
chú
9/16/2008T.P.Tuấn-Lập Trình CPage 14
3. Từ khóa
• asm
• break
• case
• cdecl
• char
• const
• continue
• default
• do
• int
• interrupt
• long
• near
• pascal
• register
• return
• short
• static
• double
• else
• enum
• extern
• far
• float
• for
• goto
• huge
• if
• struct
• signed
• sizeof
• switch
• typedef
• union
• unsigned
• void
• volatile
• while
9/16/2008T.P.Tuấn-Lập Trình CPage 15
4. Kiểu dữ liệu
• Là một bộ gồm 2 tập hợp A và B
– A: Tập hợp các giá trị mà kiểu dữ liệu này có thể 
lưu trữ được
– B: Tập hợp các phép toán mà có thể thực hiện 
trên kiểu dữ liệu này. 
• Ví dụ: Kiểu int (16 bit-dos)
– A: các giá trị nguyên trong đoạn [-32768,32767]
– B: các phép toán: +,-,*,/,>,=,<=,…
9/16/2008T.P.Tuấn-Lập Trình CPage 16
4. Kiểu dữ liệu
• Có 4 kiểu dữ liệu cơ bản trong C là: char, int, float, double 
0 đến 255
– 128 đến 127
– 32,768 đến 32,767
0 đến 65,535
– 32,768 đến 32,767
– 32,768 đến 32,767
0 đến 4,294,967,295
– 2,147,483,648 đến 2,147,483,647 
3.4 * 10–38 đến 3.4 * 1038
1.7 * 10–308 đến 1.7 * 10308
3.4 * 10–4932 đến 1.1 * 104932
1 byte
1 byte
2 bytes
2 bytes
2 bytes
2 bytes
4 bytes
4 bytes
4 bytes
8 bytes
10 bytes
unsigned char
char
enum
unsigned int
short int
int
unsigned long
long
float
double
long double
1
2
3
4
5
6
7
8
9
10
11
Miền giá trị
(Range)
Kích thước
(Length)
Kiểu dữ liệu
(Type)TT
Lưu ý kiểu void
9/16/2008T.P.Tuấn-Lập Trình CPage 17
5. Biến
Tên biến - Nguyên tắc đặt tên
• Tên biến không chứa khoảng trống.
• Tên biến không có các ký tự đặc biệt như: +,-
,*,…
• Tên biến phải được bắt đầu bằng ký tự chữ
hoặc dấu gạch chân.(Không bắt đầu bằng số)
• Theo sau ký tự đầu tiên có thể là các ký tự
chữ, số hoặc dấu gạch chân.
• Không đặt tên biến trùng với các từ khóa
Lưu ý: C phân biệt chữ hoa và chữ thường
9/16/2008T.P.Tuấn-Lập Trình CPage 18
5. Biến
Tên biến – Lời khuyên
• Không nên viết hoa tất cả các từ trong tên biến.
• Không nên bắt đầu bằng dấu gạch chân.
• Nên đặt tên biến có ý nghĩa, tránh viết tắt quá nhiều 
để dẫn đến tên biến tối nghĩa. 
• Tên của biến ngoại trừ biến kiểu enum và tham số
nên viết thường ký tự đầu tiên của từ đầu tiên và viết 
hoa tất cả các ký tự đầu tiên của những từ còn lại.
Ví dụ char nameStudent[30];float markEnglish;
9/16/2008T.P.Tuấn-Lập Trình CPage 19
5. Biến
Ví dụ về tên biến không hợp lệ
• 3a_1 (ký tự đầu là số)
• num-odd (sử dụng dấu gạch ngang)
• int (đặt tên trùng với từ khóa)
• del ta (có khoảng trắng)
• f(x) (có dấu ngoặc tròn) 
Ví dụ về tên biến hợp lệ
• Case
• iNumber
• Ho_Ten
9/16/2008T.P.Tuấn-Lập Trình CPage 20
5. Biến
• Cú pháp: 
• Ví dụ: 
– int a,b;
– char ch;
– float x=2,y=3.2;
– double y,t=4.5;
Khai báo
9/16/2008T.P.Tuấn-Lập Trình CPage 21
5. Biến
Phạm vi của biến
• Biến toàn cục
– Là biến được khai báo ngoài tất cả các hàm (kể cả main) 
– Nó ảnh hưởng đến toàn chương trình
– Chu kỳ sống của nó là bắt đầu khi chương trình chạy cho 
đến đi chương trình kết thúc
• Biến cục bộ
– Là biến được khai báo bên trong hàm, cấu trúc…. 
– Chỉ ảnh hưởng nội bộ bên trong hàm, cấu trúc đó…. 
– Chu trình sống của nó bắt đầu từ lúc hàm, cấu trúc được 
gọi thực hiện đến lúc thực hiện xong 
9/16/2008T.P.Tuấn-Lập Trình CPage 22
6. Phép toán
• Phép toán số học
• Phép toán quan hệ
• Phép toán luận lý
• Phép toán trên bit
• Một số phép toán khác
• Độ ưu tiên
9/16/2008T.P.Tuấn-Lập Trình CPage 23
6. Phép toán
• + : cộng
• - : trừ
• * : nhân
• / : chia
• %: chia lấy dư
Phép toán số học
áp dụng trên tất cả các toán hạng có kiểu dữ liệu 
char, int, float, double (kể cả long, short, unsigned) 
áp dụng trên các toán hạng có kiểu dữ liệu 
char, int, long 
Đảo dấu – ( ) *, / , % +, –Thứ tự ưu tiên:
9/16/2008T.P.Tuấn-Lập Trình CPage 24
6. Phép toán
• > : lớn hơn
• >=: lớn hơn hoặc bằng
• < : nhỏ hơn
• <=: nhỏ hơn hoặc bằng
• ==: bằng
• != : khác 
Phép toán quan hệ
>, >=, <, <= ==, !=Thứ tự ưu tiên:
Toán tử số học Toán tử quan hệ
9/16/2008T.P.Tuấn-Lập Trình CPage 25
6. Phép toán
• ! : NOT (phép phủ định)
• && : AND (phép và)
• || : OR (phép hoặc)
Phép toán luận lý
1 (đúng)
1 (đúng)
1 (đúng)
0 (sai)
1 (đúng)
0 (sai)
0 (sai)
0 (sai)
0 (sai)
0 (sai)
1 (đúng)
1 (đúng)
Khác 0
Bằng 0
Khác 0
Bằng 0
Khác 0
Khác 0
Bằng 0
Bằng 0
a || ba && b!aToán hạng bToán hạng a
Thứ tự ưu tiên
! && ||
! Toán tử số học Toán tử quan hệ && ||
9/16/2008T.P.Tuấn-Lập Trình CPage 26
6. Phép toán
• & : và (AND)
• | : hoặc (OR)
• ^ : hoặc loại trừ (XOR)
• >>: dịch phải
• <<: dịch trái
• ~ : đảo
Phép toán trên bit (bitwise)
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
a ^ ba | ba & b~aBit bBit a
9/16/2008T.P.Tuấn-Lập Trình CPage 27
6. Phép toán
• Phép gán: =, +=, –=, *=, /=, %=, <<=, 
>>=, &=, |=, ^= 
• Phép toán ++, --
• Toán tử 3 ngôi: ()? … : …
Phép toán khác
9/16/2008T.P.Tuấn-Lập Trình CPage 28
6. Phép toán
Phép toán khác – Phép gán
• Là phép thay thế giá trị hiện tại thành một 
giá trị mới
• Ví dụ: cho i=3
– i = i + 3  i = 6
– i += 3  i = 6 i = i + 3
– i *= 3  i = 9 i = i * 3
– a=b=6 (b=6;a=b;)
9/16/2008T.P.Tuấn-Lập Trình CPage 29
6. Phép toán
Phép toán khác – Toán tử ++, --
• Toán tử ++ (--): cộng thêm (trừ bớt) toán hạng một 
đơn vị
• Ví dụ: n=6
– Sau phép tính ++n hoặc n++, ta có n = 7.
– Sau phép tính – –n hoặc n– – , ta có n = 5.
• Sự khác nhau giữa n++ và ++n (tương tự --) n=6
– Sau phép tính x = ++n + 2, ta có x = 9. 
(n tăng 1 cộng với 2 rồi gán cho x)
– Sau phép tính x = n++ + 2, ta có x = 8. 
(n cộng với 2 gán cho x rồi mới tăng 1) 
9/16/2008T.P.Tuấn-Lập Trình CPage 30
6. Phép toán
Phép toán khác – Toán tử ++, --
#include 
#include 
void main()
{
int n,i; n=7;
i=n+++n++; printf("n = %d, i = %d\n", n, i);
i=++n+n++; printf("n = %d, i = %d\n", n, i);
i=(n++)+(++n); printf("n = %d, i = %d\n", n, i);
i=(++n)+(++n); printf("n = %d, i = %d\n", n, i);
getch();
}
9/16/2008T.P.Tuấn-Lập Trình CPage 31
6. Phép toán
Phép toán khác – Toán tử ba ngôi
• Cú pháp: 
 ? : 
• Ví dụ: 
int x,y,max;
y=5;x=7;
max=(x>y)?x:y;
(max nhận giá trị lớn nhất trong x, y)
9/16/2008T.P.Tuấn-Lập Trình CPage 32
6. Phép toán Độ ưu tiên
Trái sang phải
Phải sang trái
Trái sang phải
Trái sang phải
Trái sang phải
Trái sang phải
Trái sang phải
Trái sang phải
Trái sang phải
Trái sang phải
Trái sang phải
Trái sang phải
Phải sang trái
Phải sang trái
Trái sang phải
( ) [ ] ->
! ~ & * – ++ – – (type) sizeof
* / %
+ –
>
 >=
== !=
&
^
|
&&
||
? :
= += –= *= /= %= >= &= ^= |=
,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Trình tự kết hợpCác phép toánĐộ ưu tiên
- Phép đảo (–) ở dòng 2, phép trừ (–)ở dòng 4
- Phép lấy địa chỉ (&) ở dòng 2, phép AND bit (&) ở dòng 8
- Phép lấy đối tượng con trỏ (*) ở dòng 2, phép nhân (*) ở dòng 3. 
9/16/2008T.P.Tuấn-Lập Trình CPage 33
7. Ép kiểu
• Tự động (ngầm ẩn)
int x=3;
float y=2.4;
x=y;
• Tường minh
– Cú pháp: () ;
– Ví dụ: 
int x;float y=5.2;
x=(int) y;
9/16/2008T.P.Tuấn-Lập Trình CPage 34
7. Ép kiểu
• float a=6/4; // a==1
• float a=(float)6/4; // a==1.5
• float a=float(5/4); // a==1
• float a=500*700;
// a nhận giá trị sai do tràn kiểu số nguyên
9/16/2008 35

File đính kèm:

  • pdfBài giảng Lập trình C - Chương 2 Ngôn ngữ C - Bài 1 Bước đầu với ngôn ngữ C.pdf