You are on page 1of 19

TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.

HCM
Khoa Khoa học & Kỹ thuật Máy tính

Bài tập lớn


Escape Room
(Phiên bản v1.0)

1. Giới thiệu

Bạn tỉnh dậy và phát hiện mình bị nhốt trong căn phòng Nhập môn lập trình. Một âm thanh
từ loa phát ra yêu cầu bạn phải thoát khỏi căn phòng trước khi kỳ thi cuối kỳ diễn ra. Bạn được
cung cấp cho một chiếc máy tính và các câu đố được rải rác xung quanh căn phòng. Đồng hành
cùng bên bạn là một chú robot BiKi giúp bạn giải thích các câu đố. Nhiệm vụ của bạn là phải
tìm ra được đáp án của các câu đố, thu thập các mảnh mật mã để thoát khỏi căn phòng và tiến
đến kỳ thi cuối kỳ.

2. Yêu cầu
Trong BTL này, sinh viên cần hiện thực một chương trình giả tưởng trên ngôn ngữ C để
mô phỏng lại quá trình giải đố để thoát khỏi căn phòng thông qua các nhiệm vụ được mô tả
bên dưới. Chương trình sẽ nhận thông tin đầu vào do người dùng nhập từ bàn phím có format
được mô tả ở mục 3. Sau đó, chương trình sẽ xử lý và in ra màn hình kết quả thu được sau quá
trình thực hiện.

Tài liệu môn Nhập môn lập trình C01003 – HK02/2021-2022 1


TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
Khoa Khoa học & Kỹ thuật Máy tính

3. Mô tả chương trình
Dữ liệu đầu vào được người dùng nhập vào sẽ gồm nhiều dòng mà trong đó có dòng đầu
tiên dùng để xác định chức năng và các dòng kế tiếp là các giá trị được nhập để xử lí.
Format của dòng đầu tiên sẽ như sau:

Menu_code
<Dòng 2>

Thông số Menu_code dùng để xác định các chức năng của chương trình giả tưởng để vượt
qua các nhiệm vụ trong escape room, cụ thể là:
Nếu là 1: Nhiệm vụ 1
Nếu là 2: Nhiệm vụ 2
Nếu là 3: Nhiệm vụ 3
Nếu là 4: Nhiệm vụ 4

Tài liệu môn Nhập môn lập trình C01003 – HK02/2021-2022 2


TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
Khoa Khoa học & Kỹ thuật Máy tính

4. Nhiệm vụ 1: Mật khẩu của chiếc rương


4.1. Dẫn nhập
BiKi đưa ra chỉ dẫn đầu tiên: “Hãy tìm đến chiếc rương ngay góc phòng”. Bạn tiến đến và
nhận thấy một tờ ghi chú được đính trên chiếc rương: “Tôi không nhớ nổi mật khẩu của mình
nữa, để cho dễ nhớ, mật khẩu két sắt là số tự nhiên lớn nhất nhỏ hơn N có đúng 2 hoặc 3 ước
(trừ 1 và chính nó)”.
Hãy tìm mật khẩu két sắt bằng cách sử dụng chiếc máy tính và viết một chương trình!
4.2. Mô tả nhiệm vụ
Bạn cần phải viết chức năng cho phép người dùng nhập vào một số tự nhiên N. Chức năng
này sẽ đọc vào N và in ra số lớn nhất nhỏ hơn N có đúng 2 hoặc 3 ước (trừ 1 và chính nó).
4.3. Dữ liệu đầu vào
Dữ liệu đầu vào gồm có:
1. N: Số tự nhiên lớn hơn 0
Dữ liệu đầu vào có format như sau:

1
<N>

Lưu ý:

- Nếu dữ liệu đầu vào không hợp lệ, chương trình in ra: “Invalid request”.
- Nếu không tìm được số tự nhiên phù hợp, chương trình in ra: “-1”

4.4. Dữ liệu xuất ra


Dữ liệu xuất ra là số lớn nhất nhỏ hơn N (được nhập từ bàn phím) sao cho có đúng 2 hoặc
3 ước (trừ 1 và chính nó). Sinh viên tham khảo mục 4.5 để nắm rõ dữ liệu xuất ra.

Tài liệu môn Nhập môn lập trình C01003 – HK02/2021-2022 3


TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
Khoa Khoa học & Kỹ thuật Máy tính

4.5. Một số ví dụ tham khảo


Ví dụ 1

Input 1
2

Output -1

Giải thích Không tìm thấy số tự nhiên phù hợp

Ví dụ 2

Input 1
25

Output 22

Giải thích Danh sách các ước của 22: 1, 2, 11, 22

Ví dụ 3

Input 1
256

Output 254

Giải thích Danh sách các ước của 254: 1, 2, 127, 254

Ví dụ 4

Input 1
0

Output Invalid request

Tài liệu môn Nhập môn lập trình C01003 – HK02/2021-2022 4


TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
Khoa Khoa học & Kỹ thuật Máy tính

5. Nhiệm vụ 2: Vẽ hình theo yêu cầu


5.1. Dẫn nhập
Bạn nhanh chóng phát hiện trên tường căn phòng là một hình chữ nhật với nhiều ô vuông
nhỏ. Theo tính tò mò, bạn tiến đến và BiKi giải thích: “Trong trò chơi này, hãy chọn những ô
phù hợp để vẽ lên hình theo yêu cầu. Nhưng hãy lưu ý, nếu bạn chọn sai một ô bất kỳ thì bạn
sẽ phải làm lại từ đầu!!!”
Màn hình bên cạnh hiện ra:
“1 – Hình tam giác vuông cân ngược
2 – Hình tam giác cân
3 – Hình thang cân rỗng ruột”
Hãy mau chóng tìm ra những ô cần phải nhấn vào để giải được câu đố này.
5.2. Mô tả nhiệm vụ
Bạn cần phải viết chức năng cho phép người dùng nhập vào từ dữ liệu đầu vào được mô
tả ở mục 5.3 và in ra màn hình các hình vẽ bằng các dấu sao (*) và khoảng trắng ( ) được mô
tả ở mục 5.4.
5.3. Dữ liệu đầu vào
Dữ liệu đầu vào gồm có:
1. Mã hình: Là một số nguyên có giá trị 1, 2 hoặc 3 tương ứng với hình được mô tả ở
mục 5.1.
2. Kích thước 1: Chiều cao của hình, là một số nguyên lớn hơn 1.
3. Kích thước 2: Được nhập thêm nếu hình cần in ra là hình thang rỗng ruột, là một số
nguyên lớn hơn 1 xác định chiều dài (số dấu sao) cạnh đáy bé của hình thang
Dữ liệu đầu vào có format như sau:

2
<Mã hình> <Kích thước 1> <Kích thước 2>

Lưu ý:
- Kích thước 2 chỉ cần nhập nếu hình được chọn là hình thang cân rỗng ruột
- Nếu dữ liệu đầu vào không hợp lệ, chương trình in ra: “Invalid request”.

Tài liệu môn Nhập môn lập trình C01003 – HK02/2021-2022 5


TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
Khoa Khoa học & Kỹ thuật Máy tính

5.4. Dữ liệu xuất ra


Dữ liệu xuất ra sẽ là hình vẽ được cấu hình bởi các dấu sao (*) và khoảng trắng ( ). Trong
đó:
- Các hình vẽ sẽ dựa trên Mã hình và Kích thước mà người dùng nhập vào để in ra.
- Trên một cạnh, các dấu sao liền kề và liên tiếp nhau.
Thông tin chi tiết các hình vẽ như sau:
- Hình tam giác vuông cân ngược:
o Có chiều cao bằng với Kích thước 1
o Cạnh góc vuông còn lại được nằm phía trên và có độ dài (số dấu sao) bằng Kích
thước 1
o Sinh viên tham khảo ví dụ 5 và 6 để xác định hình vẽ cuối cùng.
- Hình tam giác cân:
o Có chiều cao bằng với Kích thước 1
o Cạnh đáy và các cạnh bên được vẽ sao cho thành một tam giác cân
o Sinh viên tham khảo ví dụ 7 và 8 để xác định hình vẽ cuối cùng.
- Hình thang cân rỗng ruột:
o Có chiều cao bằng với Kích thước 1
o Kích thước (số dấu sao) cạnh bé của hình thang bằng với Kích thước 2
o Phần ruột của hình thang rỗng.
o Cạnh đáy bé luôn nằm ở phía trên của hình thang
o Cạnh đáy lớn và các cạnh bên sinh viên tự tính toán để tạo thành hình thang cân
rỗng ruột
o Sinh viên tham khảo ví dụ 9 và 10 để xác định hình vẽ cuối cùng.

Tài liệu môn Nhập môn lập trình C01003 – HK02/2021-2022 6


TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
Khoa Khoa học & Kỹ thuật Máy tính

5.5. Một số ví dụ tham khảo


Ví dụ 5

Input 2
13

Output ***
**
*

Ví dụ 6

Input 2
16

Output ******
*****
****
***
**
*

Ví dụ 7

Input 2
24

Output *
***
*****
*******

Tài liệu môn Nhập môn lập trình C01003 – HK02/2021-2022 7


TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
Khoa Khoa học & Kỹ thuật Máy tính

Ví dụ 8

Input 2
27

Output *
***
*****
*******
*********
***********
*************

Ví dụ 9

Input 2
354

Output ****
* *
* *
* *
************

Tài liệu môn Nhập môn lập trình C01003 – HK02/2021-2022 8


TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
Khoa Khoa học & Kỹ thuật Máy tính

Ví dụ 10

Input 2
3 6 10

Output **********
* *
* *
* *
* *
********************

6. Nhiệm vụ 3: Mật mã trong ma trận


6.1. Dẫn nhập
Bạn nhìn thấy một ma trận của các con số trên trần của căn phòng. Các số nằm trên đường
chéo của ma trận này được đánh dấu rất nổi bật và đều chỉ đến một màn hình nhập mật khẩu.
BiKi liền đưa ra chỉ dẫn: “Hãy nhập vào tổng của các số nằm trên đường chéo để mở khoá
mảnh ghép thứ ba”. Bạn đã tính toán và nhập, song kết quả lại không chính xác. BiKi chợt nhớ
ra và bảo bạn rằng:

- Tôi không nhớ đường chéo đó là chính hay phụ nữa… Tôi chỉ nhớ rằng nếu tổng của
cột nhỏ nhất trong ma trận là chẵn thì bạn cần phải tìm tổng trên đường chéo chính,
ngược lại thì bạn cần phải tìm trên đường chéo phụ.
- À mà quên nữa, có một số nằm sai vị trí và có thể không thuộc đường chéo của ma
trận. Bạn phải bỏ bớt 1 số trên đường chéo và cộng thêm 1 số bất kì trên ma trận sao
cho tổng cuối cùng là lớn nhất nhé.

Tài liệu môn Nhập môn lập trình C01003 – HK02/2021-2022 9


TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
Khoa Khoa học & Kỹ thuật Máy tính

6.2. Mô tả nhiệm vụ
Trong nhiệm vụ này, bạn cần viết một hàm cho phép người dùng nhập vào từ dữ liệu đầu
vào được mô tả ở mục 6.3. Hàm này cần phải thực hiện các công việc:
- Xác định cột có tổng nhỏ nhất của ma trận là số chẵn hay lẻ. Từ đó, xác định đường
chéo cần khám phá là đường chéo chính hay phụ.
- In ra màn hình tổng của N – 1 số bất kì trên đường chéo và 1 số bất kì trên ma trận (số
này có thể nằm trên đường chéo và có thể lặp lại) sao cho tổng này là tổng lớn nhất.
6.3. Dữ liệu đầu vào
Dữ liệu đầu vào gồm có:
1. Dòng đầu tiên là N: Là số nguyên lớn hơn 1, xác định kích thước của ma trận vuông.
2. Dòng thứ hai trở đi đến dòng thứ N + 1 là các phần tử của ma trận do người dùng nhập
vào.
Dữ liệu đầu vào có format như sau:

3
N
a0,0 a0,1 … a0,N-1
a1,0 a1,1 … a1,N-1
.
.
.
aN-1,0 aN-1,1 … aN-1,N-1

Trong đó:
ai,j: Giá trị của phần tử dòng thứ i, cột thứ j của ma trận.
Lưu ý:
- Nếu dữ liệu đầu vào không hợp lệ, chương trình in ra: “Invalid request”.
6.4. Dữ liệu xuất ra
Dữ liệu xuất ra là một số nguyên thể hiện tổng N – 1 số bất kì trên đường chéo và 1 số trên
ma trận sao cho tổng này là tổng lớn nhất.

Tài liệu môn Nhập môn lập trình C01003 – HK02/2021-2022 10


TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
Khoa Khoa học & Kỹ thuật Máy tính

6.5. Một số ví dụ tham khảo


Ví dụ 11

Input 3
3
123
456
789

Output 23

Giải thích Cột có tổng nhỏ nhất của ma trận là cột 1 với tổng = 12 và là một số chẵn.
=> Mật mã nằm trên đường chéo chính của ma trận.
Tổng lớn nhất = (N – 1 phần tử của đường chéo chính) + phần tử bất kì của ma trận = (5
+ 9) + 9 = 23

Ví dụ 12

Input 3
4
8 -5 6 8
4 7 -1 9
5 6 10 8
15 1 8 1

Output 44

Giải thích Cột có tổng nhỏ nhất của ma trận là cột 2 với tổng = 9 và là một số lẻ.
=> Mật mã nằm trên đường chéo phụ của ma trận.
Tổng lớn nhất = (N – 1 phần tử của đường chéo phụ) + phần tử lớn nhất của ma trận =
(8 + 6 + 15) + 15 = 44

Tài liệu môn Nhập môn lập trình C01003 – HK02/2021-2022 11


TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
Khoa Khoa học & Kỹ thuật Máy tính

Ví dụ 13

Input 3
2
43
21

Output 8

Giải thích Cột có tổng nhỏ nhất của ma trận là cột 2 với tổng = 4 và là một số chẵn.
=> Mật mã nằm trên đường chéo chính của ma trận.
Tổng lớn nhất = (N – 1 phần tử của đường chéo chính) + phần tử lớn nhất của ma trận =
(4) + 4 = 8

7. Nhiệm vụ 4: Gậy mật mã


7.1. Dẫn nhập
Vậy là bạn đã tìm được 3 mảnh của chiếc chìa khóa giúp bạn thoát khỏi căn phòng. Manh
mối cuối cùng mà bạn tìm được chỉnh là chiếc bàn giữa phòng. Trên chiếc bàn, một mảnh giấy
được đặt với rất nhiều dòng chữ và các con số nhưng không có ý nghĩa gì cả. Bạn bối rối, nhìn
xung quanh và phát hiện 1 cây gậy được đính sẵn dưới chiếc bàn và một dải băng. Biki liền
đưa ra chỉ dẫn: “Hãy thử viết từng kí tự của một dòng lên dọc dải băng và quấn dải băng quanh
cây gậy nào”. Bạn bắt đầu viết dòng đầu tiên của mảnh giấy lên dải băng: “HPPTIOMTH-
CORA-NNIT-HLNV-AAHU-”…

H O C N H A
P M O N L A
P T R I N H
T H A T V U
I - - - - -
Hình 1. Mặt phẳng trên cây gậy sau khi quấn dải băng

Tài liệu môn Nhập môn lập trình C01003 – HK02/2021-2022 12


TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
Khoa Khoa học & Kỹ thuật Máy tính

Thật bất ngờ!!! Sau khi bạn quấn dải băng xoắn ốc xung quanh cây gậy thì những dòng
chữ bắt đầu có ý nghĩa. Khi bạn đọc từ trái sang phải, các kí tự trở thành:
“HOCNHAPMONLAPTRINHTHATVUI”
“Chưa đâu, nếu bạn tách các kí tự này ra thành từng tự với độ dài theo dãy số bên dưới mỗi
dòng thì sẽ ra một câu có nghĩa”, Biki nói tiếp.
Tuy nhiên, bạn đã sử dụng hết dải băng mất rồi!!! Hãy viết một chương trình mô phỏng lại
quá trình giải mã mật mã trên mà không phải sử dụng dải băng.
7.2. Mô tả nhiệm vụ
Trong nhiệm vụ này, bạn cần viết một hàm cho phép người dùng nhập vào từ dữ liệu đầu
vào được mô tả ở mục 7.3. Hàm này cần phải thực hiện các công việc:
- Giải mã mật mã sử dụng cây gậy và đoạn văn bản cho trước, cụ thể:
o Mô phỏng hành động quấn dải băng quanh cây gậy với một kích thước dải băng
cho trước. Kích thước dải băng sẽ xác định số lượng kí tự tối đa có thể xuất hiện
trên một dòng ngang khi quấn gậy.
o Kí tự đầu tiên của đoạn mã luôn ở vị trí đầu tiên của dải băng khi quấn.
o Kí tự trống được biểu thị bởi một dấu gạch ngang (-).
o Giải mã bằng cách đọc kết quả từ trái qua phải và trên xuống dưới, các kí tự
trống (-) sẽ bị bỏ đi ở kết quả cuối cùng.
o Ví dụ với Hình 1, kích thước dải băng = 6 và đoạn mã gốc = “HPPTIOMTH-
CORA-NNIT-HLNV-AAHU-”, ta thu được dòng chữ
“HOCNHAPMONLAPTRINHTHATVUI” sau khi đọc từ trái qua phải và trên
xuống dưới và bỏ đi các dấu gạch ngang.
- Tiếp tục giải mã đoạn văn bản sử dụng dãy số được miêu tả ở mục 7.3.
o Chương trình tiếp tục đọc vào một mảng N phần tử tương ứng với N từ trong
câu. Mỗi phần tử xác định số lượng kí tự của 1 từ trong câu. Chương trình thực
hiện việc thêm khoảng trắng để câu trở thành có nghĩa. Ví dụ, với N = 7, mảng
là {3, 4, 3, 3, 5, 4, 3} và đoạn mã hiện tại ta có là
“HOCNHAPMONLAPTRINHTHATVUI”, ta giải mã đoạn trên thành “HOC
NHAP MON LAP TRINH THAT VUI”

Tài liệu môn Nhập môn lập trình C01003 – HK02/2021-2022 13


TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
Khoa Khoa học & Kỹ thuật Máy tính

- In ra màn hình kết quả sau khi giải mã.

7.3. Dữ liệu đầu vào


Dữ liệu đầu vào gồm có:
1. Kích thước dải băng: Là số nguyên lớn hơn 0, xác định kích thước của dải băng, cũng
là số kí tự có thể xuất hiện tối đa trên một hàng ngang khi quấn dải băng.
2. Đoạn mã: Là một chuỗi chứa đoạn mã cần phải giải. Chuỗi này có độ dài không vượt
quá 256 kí tự.
3. N: Là một số nguyên lớn hơn 0, xác định số từ có trong câu.
4. a0, a1, …, aN-1: Một dãy các số thể hiện số lượng kí tự của mỗi từ
Dữ liệu đầu vào có format như sau:

4
<Kích thước dải băng>
<Đoạn mã>
<N>
a0 a1 … aN-1

Trong đó:
- ai: Số kí tự của một từ trong đoạn mã
Lưu ý:
- Nếu dữ liệu đầu vào không hợp lệ, chương trình in ra: “Invalid request”.
7.4. Dữ liệu xuất ra
Dữ liệu xuất ra là một chuỗi thể hiện kết quả cuối cùng sau khi giải mã.
7.5. Một số ví dụ tham khảo

Ví dụ 14

Input 4
5

Tài liệu môn Nhập môn lập trình C01003 – HK02/2021-2022 14


TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
Khoa Khoa học & Kỹ thuật Máy tính

CUIBCUNDIOUGATNCTNAGHOGN-
7
3534234

Output CUU CHUNG TOI DANG BI TAN CONG

Giải thích Với kích thước dải băng = 5, kết quả sau khi quấn gậy:
CUUCHUNGTOIDANGBITANCONG
Với mảng đưa vào, kết quả sau khi tách từ:
CUU CHUNG TOI DANG BI TAN CONG

Ví dụ 15

Input 4
6
HPPTIOMTH-CORA-NNIT-HLNV-AAHU-
7
3433543

Output HOC NHAP MON LAP TRINH THAT VUI

Giải thích Với kích thước dải băng = 6, kết quả sau khi quấn gậy:
HOCNHAPMONLAPTRINHTHATVUI
Với mảng đưa vào, kết quả sau khi tách từ:
HOC NHAP MON LAP TRINH THAT VUI

Ví dụ 16

Input 4
7
BSOICMKA-IP-VE-AR-EO-

Tài liệu môn Nhập môn lập trình C01003 – HK02/2021-2022 15


TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
Khoa Khoa học & Kỹ thuật Máy tính

4
4264

Output BIKI VA ESCAPE ROOM

Giải thích Với kích thước dải băng = 7, kết quả sau khi quấn gậy:
BIKIVAESCAPEROOM
Với mảng đưa vào, kết quả sau khi tách từ:
BIKI VA ESCAPE ROOM

8. Nộp bài
Sinh viên download file NMLT_assigment.zip từ trang Web của môn học. Khi giải nén file
này, sẽ có được các file sau:

escapeRoom.c Mã nguồn khởi tạo

[NMLT]Escape Room - File mô tả nội dung bài tập lớn


Assignment.pdf

File escapeRoom.c là mã nguồn khởi tạo. Sinh viên được khuyến khích sử dụng mã
nguồn này để viết tiếp.
Khi nộp bài, sinh viên nộp bài trên site e-Learning của môn học. Sinh viên điền code bài
tập lớn giống như các bài thực hành khác. Sinh viên được cung cấp 5 nơi nộp bài:
- Bài tập lớn – Nhiệm vụ 1: Sinh viên nộp bài làm và được chấm trên 20 testcases để
kiểm tra các trường hợp liên quan đến Nhiệm vụ 1.
- Bài tập lớn – Nhiệm vụ 2: Sinh viên nộp bài làm và được chấm trên 20 testcases đề
kiểm tra các trường hợp liên quan đến Nhiệm vụ 2.
- Bài tập lớn – Nhiệm vụ 3: Sinh viên nộp bài làm và được chấm trên 20 testcases đề
kiểm tra các trường hợp liên quan đến Nhiệm vụ 3.
- Bài tập lớn – Nhiệm vụ 4: Sinh viên nộp bài làm và được chấm trên 20 testcases đề
kiểm tra các trường hợp liên quan đến Nhiệm vụ 4.

Tài liệu môn Nhập môn lập trình C01003 – HK02/2021-2022 16


TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
Khoa Khoa học & Kỹ thuật Máy tính

- Bài tập lớn – Tổng hợp: Phần này gồm có 20 testcases kiểm tra cả 4 phần trên, trong
đó có một vài testcases khó. Sinh viên cần đạt tối thiểu 7 điểm ở cả 4 phần trên mới
có thể được nộp bài vào Phần Tổng hợp. Sinh viên nếu không nộp bài vào Phần Tổng
hợp sẽ được tính là 0 điểm chỉ cho phần này.
Trong mỗi phần trên, sinh viên có tối đa 10 lần làm bài. Đối với mỗi lần làm bài, sinh viên
có 10 phút để nộp code và kiểm tra. Chỉ có lần nhấn "Kiểm tra" đầu tiên là được tính điểm,
các lần sau sẽ không được lấy điểm. Kết quả bài làm chỉ hiển thị sau khi bạn nhấn nút "Hoàn
thành bài làm". Điểm cao nhất trong các lần làm bài sẽ được lấy làm điểm cho phần đó.
Điểm bài tập lớn của sinh viên được tính theo công thức sau:

Điểm BTL = (20%) Nhiệm vụ 1 + (20%) Nhiệm vụ 2 + (20%) Nhiệm vụ 3 +


(20%) Nhiệm vụ 4 + (20%) Tổng hợp
Ví dụ, sinh viên A đạt 10 điểm ở Nhiệm vụ 1, 7 điểm ở Nhiệm vụ 2, 8 điểm ở Nhiệm vụ 3
và 10 điểm ở Nhiệm vụ 4. Sinh viên A đủ điều kiện để nộp phần Tổng hợp, ở phần này kết quả
A đạt được là 6 điểm. Vậy:
Điểm BTL của A = 10 * 0.2 + 7 * 0.2 + 8 * 0.2 + 10 * 0.2 + 6 * 0.2 = 8.2
Sinh viên phải kiểm tra chương trình của mình trên MinGW và
nơi nộp bài thử trước khi nộp.
8.1. Thời hạn nộp bài
Thời hạn chót để nộp bài là 23h55 Chủ Nhật ngày 24/04/2022. Sinh viên nộp bài trên site
e-Learning của môn học. Nếu sinh viên nộp bài trễ, điểm tối đa của bài tập lớn sẽ là 0 điểm.
KHÔNG nhận bài được gửi qua mail hoặc bất kỳ hình thức nào khác.
8.2. Xử lý gian lận
Bài tập lớn phải được sinh viên tự làm. Sinh viên sẽ bị coi là gian lận nếu:
- Có sự giống nhau bất thường giữa mã nguồn của các bài nộp. Trong trường hợp này,
tất cả các bài nộp đều bị coi là gian lận. Do vậy sinh viên phải bảo vệ mã nguồn bài tập
lớn của mình.
- Sinh viên không hiểu mã nguồn do chính mình viết, trừ những phần mã được cung cấp
sẵn trong chương trình khởi tạo. Sinh viên có thể tham khảo từ bất kỳ nguồn tài liệu
nào, tuy nhiên phải đảm bảo rằng mình hiểu rõ ý nghĩa của tất cả những dòng lệnh mà

Tài liệu môn Nhập môn lập trình C01003 – HK02/2021-2022 17


TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
Khoa Khoa học & Kỹ thuật Máy tính

mình viết. Trong trường hợp không hiểu rõ mã nguồn của nơi mình tham khảo, sinh
viên được đặc biệt cảnh báo là không được sử dụng mã nguồn này; thay vào đó nên sử
dụng những gì đã được học để viết chương trình.
Trong trường hợp bị kết luận là gian lận, sinh viên sẽ bị điểm 0 cho toàn bộ môn học (không
chỉ bài tập lớn).
KHÔNG CHẤP NHẬN BẤT KỲ GIẢI THÍCH NÀO VÀ KHÔNG CÓ BẤT KỲ
NGOẠI LỆ NÀO!
Sau mỗi bài tập lớn được nộp, sẽ có một số sinh viên được gọi phỏng vấn ngẫu nhiên để
chứng minh rằng bài tập lớn vừa được nộp là do chính mình làm.

9. Changelog

-HẾT-

Tài liệu môn Nhập môn lập trình C01003 – HK02/2021-2022 18


TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
Khoa Khoa học & Kỹ thuật Máy tính

Tài liệu môn Nhập môn lập trình C01003 – HK02/2021-2022 19

You might also like