Download as pdf or txt
Download as pdf or txt
You are on page 1of 40

Tuần 1

Các thành phần cơ bản và Lệnh nhập xuất

CT101 – Lập trình căn bản

Khoa CNTT&TT – ĐHCT


Mục đích
• Cung cấp các khái niệm về biến, hằng, biểu thức
• Mô tả các kiểu dữ liệu cơ bản và cách sử dụng
• Giới thiệu lệnh gán, các lệnh nhập xuất cơ bản

CT101 - Lập trình căn bản 2 Khoa CNTT&TT


Yêu cầu

• Hiểu các khái niệm về biến, hằng, biểu thức


• Biết cách khai báo biến, hằng, viết một biểu thức
• Hiểu các lệnh nhập xuất cơ bản
• Ứng dụng các lệnh đơn, kiểu dữ liệu để viết một
chương trình cơ bản

CT101 - Lập trình căn bản 3 Khoa CNTT&TT


Nội dung
• Biến và các vấn đề liên quan
• Các kiểu dữ liệu cơ bản
 Kiểu int
 Kiểu char
 Kiểu float
• Biểu thức
• Lệnh nhập xuất cơ bản

CT101 - Lập trình căn bản 4 Khoa CNTT&TT


Biến(Variables)
Viết chương trình nhập hai số
#include <stdio.h>
nguyên từ bàn phím, tính tổng của
int main(){
int a, b, tong; chúng và in kết quả ra màn hình?
printf("Nhap so thu nhat:");scanf("%d",&a);
printf("Nhap so thu hai:");scanf("%d",&b);
tong = a + b;
printf("Tong hai so = %d", tong);
return 0;
}

Chương trình cần có


nơi lưu trữ dữ liệu
tạm thời trong lúc
thực hiện

CT101 - Lập trình căn bản 5 Khoa CNTT&TT


Biến(Variables)
#include <stdio.h>
• Biến: vùng nhớ được đặt
tên để lưu trữ dữ liệu int main(){
int a, b, tong;
• Trong ngôn ngữ C, biến printf("Nhap so thu nhat:");
phải được khai báo trước scanf("%d",&a); 5
printf("Nhap so thu hai:");
khi sử dụng. Việc khai báo scanf("%d",&b); 7
bao gồm đặt tên cho biến và tong = a + b; 12
quy định kiểu dữ liệu của printf("Tong hai so = %d", tong);
biến return 0;
}
• Dùng phép toán gán trị để
thay đổi giá trị của biến

a b tong

CT101 - Lập trình căn bản 6 Khoa CNTT&TT


Biến(Variables)
int a; // khai báo một biến kiểu số nguyên

int sum,a1,a2; // khai báo 3 biến cùng kiểu

int x=7; // khai báo và khởi tạo biến  int x; x=7;

a=5; // gán giá trị 5 vào biến a

a1=a; // gán giá trị của a vào biến a1

L-value R-value

a1=a1+1; // gán giá trị a1+1 vào biến a1


// (tăng giá trị a1 lên 1)

Tham khảo L-value, R-value tại:


https://www.tutorialspoint.com/cprogramming/c_variables.htm
CT101 - Lập trình căn bản 7 Khoa CNTT&TT
Biến(Variables)
Cú pháp khai báo biến

Kiểu dữ liệu Tên biến;

Có những kiểu dữ liệu gì? Đặt tên như thế nào ?

int a; double luong;


float diemTB;
char ch; int i,j,k;

CT101 - Lập trình căn bản 8 Khoa CNTT&TT


Biến(Variables)
• Tên có thể gồm chữ cái, chữ số và dấu gạch dưới.
• Tên phải bắt đầu bằng chữ cái hoặc dấu gạch dưới ( _ ) .
• Tên không được trùng với từ khóa (các từ dành riêng của
C)
• Ví dụ các tên đúng quy tắc: Sum, pieceFlag, I, J5x7,
Number_of_moves, _sysflag
• Các tên không đúng quy tắc: sum$value, 3Spencer,
int.
• C phân biệt chữ hoa và chữ thường. Ví dụ: sum, Sum,
SUM là 3 tên khác nhau

CT101 - Lập trình căn bản 9 Khoa CNTT&TT


Kiểm tra kiến thức

1. Trong các tên sau, tên nào đặt sai quy cách
a. tong b. a15 c. _var d. 12A1
2. Trong các tên sau, tên nào đúng quy cách
a. Gia tri b. int c. var@ d. value

CT101 - Lập trình căn bản 10 Khoa CNTT&TT


Kiểu dữ liệu cơ bản

• Các kiểu dữ liệu cơ bản trong C: int, float, char


• Mỗi kiểu dữ liệu có miền giá trị khác nhau
• Kiểu dữ liệu int:dùng để lưu trữ số nguyên
• Kiểu dữ liệu float:dùng để lưu trữ số thực dấu
chấm động
• Kiểu dữ liệu char:dùng để lưu trữ một ký tự (chữ
cái, chữ số, ký tự đặc biệt)
• Tham khảo:
https://www.tutorialspoint.com/cprogramming/c_data_types.htm

CT101 - Lập trình căn bản 11 Khoa CNTT&TT


Kiểu int
• Hằng số nguyên bao gồm các ký số (0 - 9) viết liền
nhau (có thể có dấu - ở đầu để biểu diễn số âm), ví
dụ: 158, –10, 0
• Dùng định dạng %d trong lệnh printf để hiển thị số
nguyên ra màn hình.
• Bình thường hằng số nguyên được viết ở cơ số 10,
nhưng nếu cần có thể biểu diễn ở cơ số 8 hoặc cơ số
16 #include <stdio.h>
int main (){
int integerVar = 100;
printf ("integerVar = %d\n", integerVar);
return 0;
}
Tham khảo thêm: limits.h
CT101 - Lập trình căn bản 12 Khoa CNTT&TT
Kiểu int
• Viết hằng số nguyên ở cơ số 8: nếu ký số đầu tiên của
hằng số nguyên là 0 thì C sẽ hiểu đây là số nguyên biểu
diễn theo cơ số 8. Trong trường hợp này, các ký số tiếp
theo phải là các ký hiệu hợp lệ trong cơ số 8 (từ 0 đến 7)
210
• Ví dụ: hằng 0177 biểu diễn giá trị 127 trong hệ thập phân
(1 × 82 + 7 × 81 + 7 × 80).
• Ví dụ: hằng 127 biểu diễn giá trị 0177 trong hệ bát phân.
127 8
7 15 8
7 1 8
1 0

CT101 - Lập trình căn bản 13 Khoa CNTT&TT


Kiểu int
• Viết hằng số nguyên ở cơ số 16: nếu phần đầu của một
hằng số nguyên là 0x (hoặc 0X) thì C hiểu đây là số nguyên
biểu diễn theo cơ số 16. Các ký hiệu tiếp theo phải là các ký
hiệu hợp lệ trong hệ cơ số 16 (0–9 và a–f (hoặc A–F))
210
• Ví dụ: hằng 0xA3F biểu diễn giá trị 2623 trong hệ thập phân
(10 × 162 + 3 × 161 + 15 × 160)
• Ví dụ: hằng 2623 biểu diễn giá trị 0xA3F trong hệ thập lục
phân. Cơ số 16 Cơ số 10
A (a) 10
2623 16 B(b) 11
15 163 16 C(c) 12
F 3 10 16 D(d) 13
3 10 0 E(e) 14
A F(f) 15
CT101 - Lập trình căn bản 14 Khoa CNTT&TT
Kiểu int
• Các định dạng hiển thị không làm thay đổi cách dữ liệu được
biểu diễn trong bộ nhớ

int x =16;
printf("%i %#X %#o\n", x,x,x);

0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 Bộ nhớ

“%i” “%#X” Định dạng


“%#o”

16 0X10 020 Hiển thị

CT101 - Lập trình căn bản 15 Khoa CNTT&TT


Kiểu int

https://www.tutorialspoint.com/cprogramming/c_data_types.htm

Tham khảo thêm: limits.h

CT101 - Lập trình căn bản 16 Khoa CNTT&TT


Kiểu int

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1

Nhị phân Số thập phân


0000000000000000 0
0000000000000001 1
… …
1111111111111111 65535 2^16-1

CT101 - Lập trình căn bản 17 Khoa CNTT&TT


Kiểu float
• Hằng số thực bao gồm các ký số viết liền nhau, phần
nguyên và phần lẻ được phân cách bằng dấu chấm.
Ví dụ: 3., 125.8, –.0001
• Dùng định dạng %f trong lệnh printf để hiển thị số
thực ra màn hình
• Hằng số thực còn có thể viết dưới dạng ký pháp
khoa học. Ví dụ hằng 1.7e4 biểu diễn giá trị 1.7×104

Tham khảo thêm: float.h


CT101 - Lập trình căn bản 18 Khoa CNTT&TT
Kiểu float

https://www.tutorialspoint.com/cprogramming/c_data_types.htm

CT101 - Lập trình căn bản 19 Khoa CNTT&TT


Kiểu char
• Biến kiểu char dùng để lưu trữ một ký tự
• Hằng ký tự được đặt trong cặp dấu nháy đơn. Ví dụ:
'a', ';', '0‘
• Dùng định dạng %c trong lệnh printf để hiển thị ký
tự ra màn hình
• Một số ký tự theo sau dấu \ sẽ có ý nghĩa đặc biệt.
Ví dụ: \n, \t
• Mỗi ký tự có mã số, thông thường là mã ASCII

CT101 - Lập trình căn bản 20 Khoa CNTT&TT


Kiểu char – Bảng mã ASCII (American Standard Code for
Information Interchange)

https://www.asciitable.com/

CT101 - Lập trình căn bản 21 Khoa CNTT&TT


Kiểu char – Bảng mã ASCII (American Standard Code for
Information Interchange)

https://www.asciitable.com/

CT101 - Lập trình căn bản 22 Khoa CNTT&TT


Kiểu char
/* displays ASCII code for a character */

0 1 0 0 0 0 0 1 Bộ nhớ (mã ASCII)

Các định dạng


hiển thị không
“%c” “%d” Định dạng làm thay đổi cách
dữ liệu được biểu
A 65 Hiển thị diễn trong bộ nhớ

CT101 - Lập trình căn bản 23 Khoa CNTT&TT


Kiểu char

https://www.tutorialspoint.com/cprogramming/c_data_types.htm

7 6 5 4 3 2 1 0
0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1

Nhị phân Số thập phân


00000000 0
00000001 1
… …
11111111 255 2^8-1

CT101 - Lập trình căn bản 24 Khoa CNTT&TT


Kiểm tra kiến thức

3. Trong các kiểu dữ liệu sau, kiểu nào có miền giá trị là các số thực?
a. int b. char c. float d. long int
4. Khi gán a = 5.2 (với a là biến kiểu int), giá trị lưu trữ vào a là gì?
a. 5.2 b. 0 c. 5 d. tất cả đều sai
5. Giá trị của biến x là bao nhiêu sau khi thực hiện đoạn lệnh:
char x = 65.7;
a. 66 b. 0 c. 65 d. Lệnh bị lỗi cú pháp
6. Chuỗi định dạng nào dưới đây dùng để hiển thị một ký tự?
a. %s b. %d c. %c d. %i

CT101 - Lập trình căn bản 25 Khoa CNTT&TT


Nhập, xuất cơ bản
Dữ liệu vào Dữ liệu ra
Lưu trữ, xử lý
(bàn phím, chuột, tập tin…) (màn hình, máy in, tập tin…)

Ví dụ: tính tổng của hai số nguyên a và b


Nhập 2 hệ số a, b từ Lưu giá trị a, b vào 2 biến Xuất kết quả ra
bàn phím Tính tổng của a và b màn hình

scanf(chuỗi định dạng, danh sách biến)


#include<stdio.h>
printf(chuỗi định dạng, danh sách tham số)

Xem thêm định dạng tại:


https://www.tutorialspoint.com/c_standard_library/c_function_scanf.htm
https://www.tutorialspoint.com/c_standard_library/c_function_printf.htm
CT101 - Lập trình căn bản 26 Khoa CNTT&TT
f

CT101 - Lập trình căn bản 27 Khoa CNTT&TT


Biểu thức toán học
• Biểu thức toán học gồm các toán hạng và các toán
tử. Trong biểu thức,
 Các toán tử có thể là các phép toán cơ bản như +, -,
*, / hoặc các hàm lời gọi hàm.
 Các toán hạng là các hằng, biến, kết quả của các
hàm.
• Trong biểu thức toán học, các toán tử có độ ưu tiên
khác nhau
• Ví dụ: cho biểu thức toán học a + (b + 4.5) * 2 với a,
b là các biến số thực. Hãy xác định các toán tử và
toán hạng của biểu thức này?

CT101 - Lập trình căn bản 28 Khoa CNTT&TT


Biểu thức toán học

CT101 - Lập trình căn bản 29 Khoa CNTT&TT


Biểu thức toán học

Độ ưu tiên của các toán tử?

Kết quả thực thi:


Toán tử -
(một ngôi)

CT101 - Lập trình căn bản 30 Khoa CNTT&TT


Biểu thức toán học

// The modulus operator

Kết quả thực thi: Phép toán chia


lấy phần dư (%)

CT101 - Lập trình căn bản 31 Khoa CNTT&TT


Biểu thức toán học
• Trong biểu thức toán học, các toán tử có độ ưu tiên
khác nhau
Độ ưu tiên
++, --
*, /, %
+, -

Kết quả thực thi:

CT101 - Lập trình căn bản 32 Khoa CNTT&TT


Chuyển đổi kiểu
• Khi gán một số nguyên vào một biến số thực, giá trị
được tự động chuyển đổi và lưu thành số thực
• Ngược lại, khi gán một số thực vào biến số nguyên,
phần lẻ thập phân sẽ bị cắt
• Trường phép toán chia (/):
 Chia 2 số nguyên => kết quả là phép chia lấy phần nguyên
 Chia một số thực và một số nguyên => kết quả là phép chia số
thực
• Chuyển đổi giá trị từ một kiểu này sang một kiểu khác
một cách tường minh bằng cách dùng toán tử chuyển
đổi sau:
(tên kiểu) biểu thức
f2 = (float) i2/100;
CT101 - Lập trình căn bản 33 Khoa CNTT&TT
Chuyển đổi kiểu
• f2 = (float)i2/100;//type cast operator
• Phép toán (float)chuyển đổi kiểu của giá trị biến i2
thành số thực trong lúc định trị biểu thức.
• Phép toán này không tác động đến giá trị lưu trữ trong
biến i2
• Ví dụ:
(int)29.55+(int)21.99 kết quả là 50
(float)6/(float)4 kết quả là 1.5
(float)6/4 kết quả là 1.5

CT101 - Lập trình căn bản 34 Khoa CNTT&TT


Chuyển đổi kiểu

• Tham khảo thêm:


https://www.tutorialspoint.com/cprogramm
ing/c_type_casting.htm

CT101 - Lập trình căn bản 35 Khoa CNTT&TT


Chuyển đổi kiểu

CT101 - Lập trình căn bản 36 Khoa CNTT&TT


Kiểm tra kiến thức

7. Chuỗi định dạng nào dưới đây dùng để hiển thị một số nguyên dài?
a. %c b. %lf c. %ld d. %f
8. Gán a = (1/2)*b với a, b là các biến kiểu int và giá trị b đang là 10.
Giá trị của a là ?
a. 5 b. 0 c. 10 d. tất cả đều sai

CT101 - Lập trình căn bản 37 Khoa CNTT&TT


Tổng kết

• Sử dụng biến để lưu trữ dữ liệu


• Trong C có các kiểu dữ liệu cơ bản như int, float, char
• Nhập, xuất cơ bản bằng lệnh scanf, printf

CT101 - Lập trình căn bản 38 Khoa CNTT&TT


Bài tập tổng kết

Thực hành các bài tập trên hệ thống else.ctu.edu.vn

CT101 - Lập trình căn bản 39 Khoa CNTT&TT


CT101 – Lập trình căn bản

Khoa CNTT&TT – ĐHCT

You might also like