You are on page 1of 17

Hướng dẫn làm bài thực hành

học phần Tin học Đại cương

Bài thực hành số 4

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 1


Nội dung
• 1. Kiến thức liên quan đến bài thực hành số 4
• 2. Hướng dẫn làm bài thực hành số 4

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 2


1.1 Cấu trúc if_else
• Rẽ nhánh if đơn
if(điều_kiện) khối_lệnh;
*) Ý nghĩa: Nếu điều_kiện đúng thì
thực hiện khối_lệnh
• Rẽ nhánh if_else
if (điều_kiện) khối_lệnh _1;
else khối_lệnh_2;
*) Ý nghĩa: Nếu điều_kiện đúng thì
thực hiện khối_lệnh _1
ngược lại, thực hiện
khối_lệnh_2
• Thường viết đầy đủ dấu ngoặc
nhọn để dễ nhìn, đỡ bị nhầm

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 3


1.2 Cấu trúc switch
• Rẽ nhánh switch Không có break; sẽ thực hiện
switch(tên_biến) các lệnh ngay bên dưới
{các_trường_hợp};
*) Ý nghĩa: Kiểm tra biến đúng với
giá trị case nào thì thực hiện khối
lệnh tương ứng đến khi gặp break;
thì thôi.
• Cuối mỗi case thường có 1 break;
để dễ kiểm soát logic.
• Các trường hợp thường xuyển xảy
Trường hợp mặc định,
ra hơn sẽ đặt ở các case bên trên.
thường là những giá trị lỗi
• case default: đặt ở cuối cùng.

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 4


1.3 Cấu trúc for
• Cấu trúc lặp for
for(biểu_thức_1; điều_kiện; biểu_thức_2)
{khối_lệnh}

*) Ý nghĩa: Ban đầu thực hiện biểu_thức_1.


Kiểm tra điều_kiện đúng thì thực hiện khối_lệnh.
Sau đó thực hiện biểu_thức_2.
Lặp lại quá trình kiểm tra điều_kiện -> khối_lệnh -> biểu_thức_2.
Kết thúc khi điều_kiện sai.
• continue: bỏ qua các câu lệnh phía dưới rồi tiếp tục lặp.
• break: kết thúc vòng lặp, thoát khỏi vòng lặp.
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 5
1.4 Cấu trúc while, do_while
• Cấu trúc lặp while
while(điều_kiện) {khối_lệnh};
*) Ý nghĩa: Nếu điều_kiện đúng thì thực hiện
khối_lệnh. Lặp đến khi điều_kiện sai thì thôi.
• Cấu trúc lặp do_while
do { khối_lệnh
}while (điều_kiện) ;
*) Ý nghĩa: Thực hiện khối_lệnh lần đầu tiên.
Nếu điều_kiện đúng thì tiếp tục thực
hiện khối_lệnh.
Lặp đến khi điều_kiện sai thì thôi.
• Hai câu lệnh continue; và break; được sử
dụng giống như cấu trúc lặp for.

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 6


1.5 Phép toán Logic

❖ Các biểu thức logic đại số ĐÚNG, SAI sẽ được biểu diễn như thế nào?
❖ Bảng một số phép toán:
Phép toán Ký hiệu Ví dụ Đúng khi Sai khi
a đúng, b sai
VÀ && a && b a đúng, b đúng a sai, b đúng
a sai, b sai
a đúng, b đúng
HOẶC || a || b a đúng, b sai a sai, b sai
a sai, b đúng
PHỦ ĐỊNH ! !a a sai a đúng
SO SÁNH
== a == b a bằng b a khác b
BẰNG
SO SÁNH
!= a != b a khác b a bằng b
KHÁC

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 7


2.1 Bài 4.1

• Sử dụng if_else để kiểm


tra điều kiện đầu vào, nếu
điều kiện sai thì
printf(“ERROR”);
• Sử dụng vòng lặp for hoặc
while với biến i chạy lần
lượt từ 1 đến n để được
giá trị n!
• Tính cả giá trị 0! = 1.

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 8


2.2 Bài 4.2

• Để chứng minh là số
nguyên tố chỉ cần chứng
minh nó không chia hết
cho số từ 2 đến căn bậc
hai của chính nó.
• Sử dụng hàm printf() in
đầu ra chính xác như sau:
printf(“La so nguyen
to”);
Hoặc:
printf(“Khong phai so
nguyen to”);

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 9


2.3 Bài 4.3

• Sử dụng if_else để kiểm


tra điều kiện đầu vào, nếu
điều kiện sai thì
printf(“ERROR”);
• Sử dụng hàm while hoặc
for để tịnh tiến chữ số của
số nguyên từ phải quá trái
(hoặc từ trái qua phải) để
lấy tính tổng các chữ số.
• Chú ý:
123%10 = 3
123/10 = 12

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 10


2.4.1 Bài 4.4

• Sử dụng if_else để kiểm


tra điều kiện đầu vào, nếu
điều kiện sai thì
printf(“ERROR”);
• Chú ý các phép toán logic:
&&: phép và
||: phép hoặc
! : phép phủ định
== : phép so sánh
!= : so sánh khác
• Thuật toán tìm UCLN và
BCNN ở slide tiếp theo.

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 11


2.4.2 Thuật toán tìm UCLN, BCNN
• Tìm ULCN và BCNN của 2 số nguyên dương m và n ?
1. Tìm UCLN
Nếu (m > n) thì gán lại m = số dư khi m chia cho n
Ngược lại, thì gán n = số dư khi n chia cho m
Liên tục lặp lại cho đến khi m = n thì UCLN = m = n
2. Tìm BCNN
BCNN = tích 2 số ban đầu / UCLN
• Ví dụ:
Với cặp số (m, n) = (12, 18) Lần m n
BĐ: Vì n > m nên sau lần 1: Ban đầu 12 18
n = 6 (18 chia 12 dư 6) 1 12 6
Lần1: Vì m > n nên sau lần 2: 2 6 6
m = 6 (12 chia 6 dư 0)
=> UCLN = 6, BCNN = 12*18 /6 = 36
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 12
2.5.1 Bài 4.5

• Hoàn toàn tương tự tìm


nghiệm của phương tình bậc 2
trong không gian số phức.
• Xét dấu của a, nếu a âm có thể
đổi dấu rồi tính tiếp.
Xét a = 0, b = 0, c = 0
Xét a = 0, b = 0, c ≠ 0
Xét a = 0 và b ≠ 0
Xét a ≠ 0, ∆ = 0
Xét a ≠ 0, ∆ < 0
Xét a ≠ 0, ∆ > 0
• Chú ý: có 2 nghiệm thì in ra
nghiệm lớn rồi đến nghiệm bé

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 13


2.5.2 Một số gợi ý
• if_else lồng nhau:
if
if
if

else
else
else

if, else if, else

• Cách ghi đáp án nghiệm phức:


−𝑏 −∆ −𝑏 −∆
+ 𝑖, − i mỗi nghiệm một dòng.
2𝑎 2𝑎 2𝑎 2𝑎
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 14
2.6 Bài 4.6

• Khởi tạo cho S1, S2, S3 giá trị hợp lý.


• Sử dụng if_else để kiểm tra điều kiện
đầu vào, nếu điều kiện sai thì
printf(“ERROR”);
• Cả 3 tổng đều áp dụng được một
vòng lặp cho i chạy từ 1 đến n.
• Một số biến cần thiết:
Biến x_i để tính giá trị 𝒙𝒊
Biến dấu để tính S2
Biến giai_thừa để tính S3
• S1, S2, S3 có thể tính trong cùng vòng
lặp hoặc tính riêng để tránh nhầm lẫn.

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 15


2.7 Bài 4.7

• Khởi tạo cho S các giá trị hợp


lý với từng biểu thức.
• Có thể thay bằng các biến S1,
S2, S3, S4 để tính trong cùng
một vòng lặp.
• Sử dụng if_else để kiểm tra
điều kiện đầu vào, nếu điều
kiện sai thì
printf(“Error”);
• Một số biến cần thiết:
Biến x_i để tính giá trị 𝑥 𝑖
Biến giai_thừa để tính 2
biểu thức cuối.
Biến dấu để tính biểu
thức cuối.
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 16
CẢM ƠN CÁC BẠN ĐÃ XEM HƯỚNG DẪN

Mọi đóng góp xin liên hệ: hai.nt183730@sis.hust.edu.vn


Sinh viên: Nguyễn Trọng Hải
Lớp: Kỹ thuật máy tính 03 – K63
Viện: CNTT & TT

VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG 17

You might also like