You are on page 1of 11

TON DUC THANG UNIVERSITY

FACULTY OF INFORMATION TECHNOLOGY

MÔN LẬP TRÌNH CƠ BẢN


BÀI THỰC HÀNH 1:
CÁC KIỂU DỮ LIỆU – CÂU LỆNH NHẬP XUẤT

I. NỘI DUNG LÝ THUYẾT

1. Các kiểu dữ liệu cơ sở


– Kiểu số nguyên:

– Kiểu số thực:

– Kiểu ký tự:
 Tên kiểu: char
 Miền giá trị: 256 ký tự trong bảng mã ASCII.
 Là kiểu số nguyên vì dữ liệu chỉ lưu ở dạng số và không lưu trực tiếp ký tự
mà chỉ lưu giá trị tương ứng mã ASCII của ký tự đó.
 Mã ASCII ký tự: ‘A’ là 65; ‘Z’ là 90
 Mã ASCII ký tự: ‘a’ là 97; ‘z’ là 122.
– Kiểu luận lý:
 Trong C chuẩn không có kiểu luận lý.
 Giá trị sai (false) là 0, giá trị đúng (true) là khác 0 (thường là 1).

© 2023 nqt Page 1 of 11


TON DUC THANG UNIVERSITY
FACULTY OF INFORMATION TECHNOLOGY
2. Biến – Hằng – Biểu thức và câu lệnh
– Biến
 Cú pháp:
 <kiểu> <tên biến>;
 <kiểu> <tên biến 1>, <tên biến 2>;
 Ví dụ:
 int i;
 int j, k;
– Hằng
 Cú pháp:
 #define <tênhằng> <giá trị>
 Hoặc sử dụng từ khóa const.
 Ví dụ:
 #define MAX 100 // Không có dấu ; ở cuối
 #define PI 3.14 // Không có dấu ; ở cuối
 const int MAX = 100;
 const float PI = 3.14;

– Câu lệnh được kết thúc bằng dấu chấm phẩy (;)
 Câu lệnh đơn: chỉ gồm 1 câu lệnh
 Câu lệnh phức: gồm nhiều câu lệnh đơn được bao bởi { và }
 Ví dụ:
 a = 2912; // Câu lệnh đơn
 { // Câu lệnh phức/khối lệnh
a = 2912;
b = 1706;
}

– Biểu thức:
 Được tạo thành từ các toán tử (Operator) và các toán hạng (Operand).
 Ví dụ: int a = 2 + 3 * 4;
3. Chuỗi định dạng ký tự điều khiển:

© 2023 nqt Page 2 of 11


TON DUC THANG UNIVERSITY
FACULTY OF INFORMATION TECHNOLOGY
4. Chuỗi định dạng đặc tả

5. Ép kiểu dữ liệu
– Ngầm định:
 Kiểu dữ liệu đích phải có dãy giá trị lớn hơn kiểu dữ liệu nguồn.
 Ví dụ: chuyển từ int sang float.
 int a = 10;
 float f = a;
– Tường minh:
 Thay đổi kiểu dữ liệu có dãy giá trị lớn sang dãy giá trị nhỏ hơn.
 Ví dụ: chuyển từ float sang int.
 float f = 10.51;
 int a = (int) f;
6. Câu lệnh nhập, xuất và định dạng xuất
Thư viện: #include <stdio.h> (standard input/output).
a) Câu lệnh xuất:
– Cú pháp: printf(<chuỗi định dạng>[, <đs1>, <đs2>, …]);
– Trong đó: <chuỗi định dạng> là cách trình bày thông tin cần xuất ra màn hình và
được đặt trong cặp nháy kép “ ”. Có các dạng chuỗi định dạng sau:
 Văn bản thường (literal text)
 Ký tự điều khiển (escape sequence)
 Đặc tả (conversion specifier)
b) Câu lệnh nhập:
– Cú pháp: scanf(<chuỗi định dạng>[, <đs1>, <đs1>, …]);
– Trong đó:
 <chuỗi định dạng> giống định dạng xuất nhưng chỉ có các đặc tả.
 Các đối số là tên các biến sẽ chứa giá trị nhập và được đặt trước dấu &
c) Định dạng xuất:
– Cú pháp:
 Định dạng xuất số nguyên: %nd
 Định dạng xuất số thực: %n.kf

© 2023 nqt Page 3 of 11


TON DUC THANG UNIVERSITY
FACULTY OF INFORMATION TECHNOLOGY
7. Sử dụng toán tử 1 ngôi (++ ; -- )
– Giống nhau giữa ++<biến> và <biến>++
 Đều tăng giá trị <biến> thêm 1 đơn vị
 Cách sử dụng như nhau nếu chúng nằm độc lập
– Khác nhau giữa ++<biến> và <biến>++
 Khi chúng nằm trong một biểu thức.
 ++<biến> sẽ tăng <biến> trước khi thực hiện biểu thức.
 <biến>++ sẽ thực hiện biểu thức trước khi tăng <biến>.
 Ví dụ:
 int i = 1;
 int b = 10 + ++i ; (1) sẽ khác với int b = 10 + i++ ; (2).
Biểu thức thức (1) b sẽ có kết quả là 12. Biểu thức (2) b sẽ có kết quả là
11.
– Tương tự cho toán tử --
8. Toán tử điều kiện
– Cú pháp:
 <biểu thức 1> ? <biểu thức 2> : <biểu thức 3>.
 <biểu thức 1> đúng thì giá trị là <biểu thức 2>.
 <biểu thức 1> sai thì giá trị là <biểu thức 3>.
– Ví dụ:
 s1 = (1 > 2) ? 2912 : 1706 ; //kết quả là s1 = 1706
 int s2 = 0;
 1 < 2 ? s2 = 2912 : s2 = 1706 ; //Kết quả s2 = 2912
II. Hướng dẫn cài đặt và sử dụng DEV – C
1. Hướng dẫn cài đặt:
– Dev-C++ là một môi trường phát triển tích hợp tự do (IDE) được phân phối dưới
hình thức giấy phép Công cộng GNU hỗ trợ việc lập trình bằng C/C++. Nó cũng
nằm trong bộ trình dịch mã nguồn mở MinGW. Chương trình IDE này được viết
bằng ngôn ngữ Delphi. (https://vi.wikipedia.org/wiki/Dev-C%2B%2B)

– Để tải và cài đặt DEV-C cần xác định phiên bản của Hệ điều hành và cài đặt đúng
phiên bản tương ứng với Hệ điều hành.

2. Hướng dẫn sử dụng:


Mở ứng dụng DEV - C được cài đặt trên máy và thực hiện các bước sau (lưu ý: Mỗi
bài tập cần thực hiện tuần tự từ bước 1)

© 2023 nqt Page 4 of 11


TON DUC THANG UNIVERSITY
FACULTY OF INFORMATION TECHNOLOGY
a) Bước 1: Chọn thẻ File -> New -> Project

b) Bước 2: Ở cửa sổ New Project trong thẻ Basic thực hiện các thao tác sau:
- Chọn icon Console Application
- Dòng A console application (MS-DOS window) chọn C Project
- Trong ô Name gõ tên Project. Lưu ý tên Project nên đặt tên tương ứng với yêu cầu
đề bài, không bỏ dấu tiếng Việt và không có khoảng trắng.
- Nhấn Ok.
- Tiếp theo chọn nơi lưu Project. Đối với thực hành (thi thực hành) tại phòng máy,
sinh viên cần chọn ổ đĩa để lưu là ổ E (SinhVien) và các đường dẫn thư mục không
được đặt tên có dấu tiếng Việt.

c) Bước 3:
Kiểm tra các khai báo các thư viện được sử dụng (dòng lệnh 1 và 2) và thực hiện
nhập các câu lệnh lập trình theo yêu cầu đề bài từ dòng lệnh số 7 (trước câu lệnh
return 0;)

© 2023 nqt Page 5 of 11


TON DUC THANG UNIVERSITY
FACULTY OF INFORMATION TECHNOLOGY
d) Bước 4:
Sau khi nhập các câu lệnh thực hiện theo yêu cầu đề bài, tiến hành việc biên dịch
câu lệnh và sửa lỗi (nếu có). Để biên dịch câu lệnh sinh viên thực hiện thao tác nhấn
chọn biểu tượng Compile trên thanh Toolbars (xem hình minh họa) hoặc nhấn phím F9
trên bàn phím.

Đối với lần đầu tiên biên dịch màn hình sẽ xuất hiện ra cửa sổ lưu file source. Lưu ý: cần
lưu chung với thư mục đã lưu Project và file source này chính là file được chấm điểm khi
nộp bài. Sinh viên cần lưu file này thường xuyên để tránh trường hợp mất bài.
Nếu trong quá trình viết code không có phát sinh ra lỗi cú pháp của câu lệnh thì quá
trình biên dịch sẽ thành công và tiếp tục thực hiện Bước 5

Nếu trong quá trình viết code có phát sinh ra lỗi cú pháp của câu lệnh thì quá trình
biên dịch sẽ không thành công, khi đó cần kiểm tra các lỗi câu lệnh được liệt kê trong
cửa sổ thông báo biên dịch. Sau khi hoàn tất việc sửa lỗi cần thực hiện lại Bước 4.
e) Bước 5:
Khi đã hoàn tất việc biên dịch và cho kết quả thành công thì sẽ tiếp tục thực hiện
việc thực thi đoạn code. Sinh viên thực hiện tao tác nhấn chọn biểu tượng Run trên
thanh Toolbars (xem hình minh họa) hoặc nhấn phím F10 trên bàn phím

© 2023 nqt Page 6 of 11


TON DUC THANG UNIVERSITY
FACULTY OF INFORMATION TECHNOLOGY
III. Bài tập mẫu hướng dẫn thực hành.
1. Viết chương trình xuất ra câu thông báo: “Chao ban den voi ngon ngu C”.
Hướng dẫn thực hành:
Bước 1: Tạo project mới theo hướng dẫn phần II.
Bước 2: Viết chương trình sau trong màn hình soạn thảo:

#include <stdio.h> //khai báo thư viện chứa các hàm nhập xuất chuẩn

void main()
{
printf("Chao ban den voi ngon ngu C");
}

Bước 3: Thực hiện biên dịch theo hướng dẫn phần II.
2. Viết chương trình xuất ra đoạn thông báo:
Chao ban!
Day la chuong trinh C dau tien.
Vui long nhan phim Enter de ket thuc.
Hướng dẫn thực hành:
Bước 1: Tạo project mới theo hướng dẫn phần II.
Bước 2: Viết chương trình sau trong màn hình soạn thảo:
#include <stdio.h>

void main()
{
printf("Chao ban!\nDay la chuong trinh C dau tien.\n");
printf("\tVui long nhan phim Enter de ket thuc.");
}
Bước 3: Thực hiện biên dịch theo hướng dẫn phần II.

3. Viết chương trình nhập vào 1 số nguyên, xuất ra màn hình số nguyên vừa
nhập.
Hướng dẫn thực hành:
Bước 1: Tạo project mới theo hướng dẫn phần II.
Bước 2: Viết chương trình sau trong màn hình soạn thảo:

#include <stdio.h>

void main()
{
int a;
printf("Nhap so nguyen a: ");
scanf("%d", &a);
printf("So nguyen vua nhap la: %d", a);
}

Bước 3: Thực hiện biên dịch theo hướng dẫn phần II.
© 2023 nqt Page 7 of 11
TON DUC THANG UNIVERSITY
FACULTY OF INFORMATION TECHNOLOGY
4. Viết chương trình nhập vào 2 số nguyên, Tính và xuất kết quả tổng, tích, hiệu
và thương 2 số nguyên vừa nhập.
#include <stdio.h>
void main()
{
int a, b, tong, hieu, tich, thuong;
float thuong;
printf("Nhap 2 so nguyen: ");
scanf("%d%d", &a, &b);
tong = a + b;
hieu = a - b;
tich = a * b;
thuong = (float) a/b; //Ép kiểu từ số nguyên sang số thực
printf("Tong = %d\n", tong);
printf("Hieu = %d\n", hieu);
printf("Tich = %d\n", tich);
printf("Thuong = %.1f", thuong);//In số thực có 1 số thập phân
}

5. Viết chương trình để có kết quả như sau:

Lưu ý: Số thực được nhập vào từ bàn phím


#include<stdio.h>
void main()
{
float fs;
printf("Nhap so thuc: ");
scanf("%f", &fs);
printf("Phan nguyen cua so thuc: %0.0f\n", fs);
printf("In so thuc co 2 chu so thap phan: %0.2f", fs);
}

6. Tính tiền khách thuê trong tháng.


– Nhập vào ngày đến ở khách sạn, nhập ngày rời khỏi khách sạn. (Lưu ý: ngày là
một số nguyên >=1 và <=31)
– Tính tổng số ngày khách đã ở trong tháng.
– Tính tiền khách phải trả, biết rằng đơn giá tuần là 650/tuần và đơn giá ngày là
100/ngày.
#include<stdio.h>
void main()
{
int nv, nr, tong, tien;
printf("Nhap vao ngay vao, ngay ra: ");
scanf("%d%d", &nv, &nr);
tong = nr - nv;
tien = tong/7 * 650 + tong % 7 * 100;
printf("Tong so ngay khach o trong thang: %d\n", tong);
printf("Tien khach phai tra la: %d", tien);
}
© 2023 nqt Page 8 of 11
TON DUC THANG UNIVERSITY
FACULTY OF INFORMATION TECHNOLOGY

7. Nhập năm sinh của một người và tính tuổi của người đó.
#include<stdio.h>

void main()
{
const int namhientai = 2023;
int ns, tuoi;
printf("Nhap nam sinh: ");
scanf("%d", &ns);
tuoi = namhientai - ns;
printf("Tuoi: %d", tuoi);
}

8. Viết chương trình nhập vào 1 kí tự bất kỳ. Xuất ra mã ASCII của ký tự đó.
Nếu ký tự là chữ hoa thì biến thành chữ thường và ngược lại.

#include<stdio.h>

void main()
{
char c, hoa;
printf("Nhap ky tu: ");
scanf("%c", &c);
printf("Ma ASCII cua %c la %d\n", c, c);
hoa = (c >= 97 && c <= 122)?(c-32):(c+32);
printf("Hoa/thuong: %c", hoa);
}

9. Nhập vào 2 số nguyên a, b. Tìm số lớn nhất trong 2 số.


#include<stdio.h>

void main()
{
int a, b, max;
printf("Nhap 2 so nguyen: ");
scanf("%d%d", &a, &b);
max = (a>b)?a:b;
printf("Max = %d", max);
}

10. Nhập chương trình sau, thực thi và xem kết quả để phân biệt sự giống và
khác nhau của toán tử 1 ngôi.

#include<stdio.h>
void main()
{
int bt, i = 1;
printf("i = %d\n", i);

© 2023 nqt Page 9 of 11


TON DUC THANG UNIVERSITY
FACULTY OF INFORMATION TECHNOLOGY
bt = 10 + ++i;
printf("Ket qua cua bieu thuc: 10 + ++i la: %d; gia tri cua i
la: %d\n", bt, i);
printf("Khoi tao lai gia tri i = %d\n", i);
i = 1;
bt = 10 + i++;
printf("Ket qua cua bieu thuc: 10 + i++ la: %d; gia tri cua i
la: %d\n", bt, i);
}

IV. Bài tập tương tự ở lớp


11. Viết chương trình in ra màn hình thông tin sinh viên thực hành như sau:
Ho ten:
Ma so sinh viên:
Nganh:
So dien thoai:
12. Viết chương trình để có kết quả như sau:

13. Viết chương trình nhập tuổi của 1 người. In ra năm sinh của người đó
14. Viết chương trình để tính tiền sân bóng đá như sau:
– Tính tiền giờ dựa vào giờ vào và giờ ra. Mỗi giờ là 200000
– Tính tiền nước uống dựa vào số bình nước đã uống. Mỗi bình nước 20000
– Tính tổng tiền: tiền giờ + tiền nước uống.
15. Viết chương trình nhập vào số thực. In ra phần nguyên của số thực đó.
16. Viết chương trình để có kết quả như sau:

Với 2 số nguyên a và b được nhập từ bàn phím


17. Viết chương trình để có kết quả như sau:

18. Viết chương trình nhập vào 2 số nguyên a, b. Tính và in ra màn hình tổng bình
phương của 2 số nguyên vừa nhập.
19. Viết chương trình chuyển đổi từ độ C sang độ F. Biết rằng C = 5*(F-32)/9.
20. Viết chương trình tính giá trị của biểu thức: (với x là số nguyên, f(x) là số thực)
3𝑥 2 + 2𝑥 + 5
∫(𝑥) =
4𝑥 + 9

© 2023 nqt Page 10 of 11


TON DUC THANG UNIVERSITY
FACULTY OF INFORMATION TECHNOLOGY

V. Bài tập về nhà
21. Nhập tên sản phẩm, số lượng và đơn giá. Tính tiền và thuế giá trị gia tăng phải trả,
biết:
Tiền = số lượng * đơn giá
Thuế giá trị gia tăng = 10% tiền
22. Nhập điểm thi và hệ số 3 môn Toán, Lý, Hóa của một sinh viên. Tính điểm trung
bình của sinh viên đó.
23. Nhập 2 cạnh của hình chữ nhật (là số nguyên). Tính diện tích, chu vi và đường
chéo (số thực) của hình chữ nhật.
24. Nhập 1 ký tự. Kiểm tra ký tự đó có thuộc 26 chữ cái tiếng Anh hay không?
25. Viết chương trình giải phương trình bậc nhất: ax + b = 0 (a khác 0), với a, b là số
nguyên, x là số thực.
26. Nhập vào 1 ký tự. Kiểm tra xem ký tự đó là: chữ hoa, chữ thường hay ký tự khác.
27. Nhập 3 số nguyên. Tìm max và min của 3 số đó.
28. Nhập năm sinh. Tính tuổi tương ứng. Nếu tuổi >= 18 thì in ra: “đủ tuổi đi làm”,
ngược lại in ra: “còn tuổi đi học”.
29. Viết chương trình nhập các cạnh và chiều cao hình thang. Tính chu vi diện tích
hình thang.
30. Viết chương trình tính giá trị của biểu thức: (với x là số nguyên, f(x) là số thực)
1 2𝑥 + 12
∫(𝑥) = +
9 4𝑥

© 2023 nqt Page 11 of 11

You might also like