Bai Tap Lap Trinh C Ung Dung - B1 Credit Card

You might also like

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

Bài tập lập trình ngôn ngữ C

Bài 1: Ứng dụng của parity trong thẻ ngân hàng


Parity, hay còn gọi là xét tính chẵn lẻ, là kĩ thuật
được áp dụng rất nhiều trong kĩ thuật thông tin. Ví dụ để
kiểm soát lỗi trên 1 bản tin, có thể sử dụng thêm bit parity
vào mỗi byte để kiểm tra nếu có lỗi trên 1 bit bất kì.
Trong bài này, chúng ta sẽ tìm hiểu về ứng dụng của
parity trong thẻ ngân hàng 16 số. Để tránh phải tra cứu vào
cơ sở dữ liệu quá nhiều lần, người ta sử dụng parity vào dãy
16 số này để biết mã thẻ có hợp lệ hay không. Từ đó có thể
phát hiện người dùng nhập có bị nhầm hay không.
Giá trị số 0 1 2 3 4 5 6 7 8 9
Giá trị parity nếu số ở vị trí lẻ 0 2 4 6 8 1 3 5 7 9
Giá trị parity nếu số ở vị trí chẵn 0 1 2 3 4 5 6 7 8 9
Quy tắc tính parity như sau: đối với các số tại các vị trí lẻ (đầu tiên, thứ 3, thứ 5 … cho đến
thứ 15) thì giá trị parity cho trong bảng trên. Đối với các số tại vị trí chẵn (thứ 2, thứ 4, thứ 6 …
cho đến cuối cùng) thì giá trị parity bằng với số đó. Ví dụ với thẻ ở hình bên ta có giá trị parity là:
P = 8 + 1 + 6 + 7 + 7 + 9 + 8 + 7 + 2 + 1 + 5 + 5 + 1 + 9 + 0 + 4 = 80
Nếu parity chia hết cho 10 thì thẻ là hợp lệ, ngược lại thẻ không hợp lệ. Ví dụ như thẻ ở
trên hình là hợp lệ vì P = 80 chia hết cho 10.
Yêu cầu: Sinh viên viết chương trình:
- Cho phép người dùng nhập 1 chuỗi kí tự. Chuỗi là hợp lệ nếu chuỗi gồm 16 kí tự số hoặc
15 kí tự số và 1 kí tự ‘X’ (hoặc ‘x’), cho phép có khoảng trắng giữa các kí tự.
- Nếu chuỗi người dùng nhập là không hợp lệ, thông báo điều này ra màn hình và kết thúc.
- Nếu chuỗi người dùng nhập hợp lệ và gồm 16 kí tự số, kiểm tra xem mã thẻ có hợp lệ hay
không (dựa vào parity).
- Nếu chuỗi người dùng nhập hợp lệ và gồm 15 kí tự số, 1 kí tự ‘X’ (hoặc ‘x’), tìm giá trị của
số còn thiếu sao cho mã thẻ là hợp lệ.
Ví dụ:
Chuỗi người dùng nhập Kết quả trả về
123 456 Chuỗi không hợp lệ.
123 456 789 012 xyzt Chuỗi không hợp lệ.
4137 8947 1175 5904 Thẻ hợp lệ.
4137 8947 1175 5906 Thẻ không hợp lệ.
4137 8947 1x75 5904 x = 1.

You might also like