Đây là nhận xét của thầy tôi ghi lại để những người vắng rút kinh nghiệm.
- Thứ nhất là yếu về kiến thức cơ bản, sao chép của nhau nhiều, chữ viết cẩu thả, thụt thò không đúng, cách viết chỉ số tùy tiện thiếu nhất quán (chỗ thì ghi là Xj, chỗ thì ghi là X[j]), ký hiệu hỗn độn lẫn lộn chữ hoa và chữ thường (chỗ thì x, chỗ khác lại X...).
- Cây thì vẽ ngang phè, con và cha không rõ ràng.
- Viết các con số liền tù tì (563) lẽ ra phải có dấu cách đủ lớn để phân biệt
5 và 6 và 3,
hay 5 và 63, hay
56 và 3.
- Dùng các dấu ngoặc đóng mở không chính xác, không rõ ràng.
- Bài toán tìm cây khung bé nhất không ghi STT bên cạnh các bước, dẫn tới lý giải và khó khăn nhiều cho người chấm theo dõi, rất tối kỵ.
- Cây khung cần có tên nút, nhưng nhiều bài không có tên nút.
- Thiếu không chỉ ra câu "
Tập cạnh của cây khung bé nhất là..."
- Nhiều bài thiếu, không
khai báo cấu trúc cây khung, trừ đến 0,25 đ.
Cụ thể sai sót đối với từng câu như sau:
Với những câu dễ là câu 2 mất điểm vì:- Lý luận là x, nhưng push, pop lại là Mi. Nếu dùng x phải có câu "đọc x từ M", nhưng nên dùng Mi để người chấm nhận ra luôn thứ tự của phần tử.
- Câu lệnh FOR i := 1 To /M/ nhưng nhiều người thiếu 2 gạch 2 bên chữ M, nên bị đánh giá không hiểu và trừ điểm nặng.
- Trong vòng lặp làm 2 công việc là pop từ ngăn xếp ra và đưa vào sau N. Càn ghi thụt thò cẩn thận, hoặc ghi trên cùng hàng thì dùng dấu {}, cùng lắm thì mới dùng BEGIN, END cũng thụt thò, nhưng dùng cái này sẽ rối, khiến giáo viên chấm mất tập trung vì loãng nội dung nếu như cứ BEGIN END toàn bài. Nếu chấm khó theo dõi chỉ cần 1 sai sót nhỏ sẽ có cớ để trừ toàn bộ số điểm.
- Lưu ý biểu thức mà không chỉ rõ chứa bên trong là gì thì M, N chấm như nhau.
- Có thể giải quyết vấn đề bằng nhiều cách, không quan trọng, miễn là phải đúng vẫn chấm điểm, tuy nhiên cách làm không tối ưu thì không được tối đa điểm.
- Khi duyệt tay, để tránh phải viết đi viết lại dãy ký tự ví dụ dòng trên viết 5 6 3 / 2 * dòng dưới có thể viết ...2 * - 5
tức là dùng dấu 3 chấm để viết. Điều này không sai, người chấm thi không phải trình độ kém đến mức không hiểu dấu 3 chấm là cái gì, cách viết này để bài thi gọn gàng, không rối mắt. Tuy nhiên lưu ý, trong stack nên dùng khoảng trống rộng, không nên dùng dấu phảy, điều này giúp cho việc theo dõi của người chấm được bao quát cũng như đánh giá chính xác đáp án hơn.
Về câu cây nhị phân Huffman:Chỉ có 1 lời giải.
Không nên dùng dấu lớn hơn hay nhỏ hơn hoặc bằng, vì khi thi thì người thi hay rối. Nói là sắp xếp giảm dần nhưng lại dùng nhầm dấu ≤ dẫn tới bài thi được luôn 0 điểm. Chỉ cần viết 1 dòng là "
Sắp xếp theo tần suất giảm dần" là tốt nhất."
Thứ nữa là khi tạo con lưu ý phải tạo riêng Y sau đó mới sao chép vào, chuyển trỏ vào... chứ làm luôn là sai, 0 đ.
Về câu 5:Trước khi viết lệnh nên xếp thành một dãy tăng dần từ Xd đến Xm, giảm dần từ X
m+1 đến Xc viết trên cùng một hàng. Viết một vài dòng ý tưởng, để nếu có làm sai sót thì vẫn không bị trừ nhiều điểm.
Sai sót thường thấy là i tăng lên i := i + 1; hoặc i ++; và j giảm đi phải viết là j := j - 1; hay j-- thế nhưng nhiều bài vẫn viết nhầm là j = j + 1 và j ++ nên sẽ bị trừ 0 điểm. Bị đánh giá là không hiểu gì.
Khi một đoạn xong trước, lấy đoạn còn lại hạ xuống, chỉ cần một vòng FOR đối với các phần tử chưa xét. Có thể viết:
Y
k = X
t và k = k + 1 hoặc
Y
k+j-t = X
t đều được, thấy cái nào dễ nhớ, dễ hiểu hơn thì sử dụng. Tuy nhiên cần chú ý tránh tạo sai mảng đích đối với chỉ số k.
Về câu 7:Áp dụng danh sách cạnh
+ Thông tin trong lời giải không đầy đủ.
+ Sắp xếp cạnh theo trọng số tăng dần sau đó pải chú ý đánh số thứ tự bên cạnh.
+ Chọn cạnh nào đánh số cạnh thứ mấy để người chấm dễ theo dõi. Khi chọn cạnh xong pải ghi đủ các thông tin sau: Cạnh nào, trọng số là bao nhiêu, tổng trọng số từ điểm xuất phát đến hết cạnh vừa chọn là bao nhiêu. Kết thúc phải nói được là tổng trọng số tìm thấy là con số cụ thể.
+ Trong bài làm chú ý khi sử dụng T[1..n-1] of Cạnh chú ý rằng tìm được cạnh D[j] nào đó , đưa vào chỉ cần T[k] = D[j] , không dùng cách là cho 2 đầu bằng nhau → được đánh giá là trình độ tồi.
+ Nên sắp xếp theo chiều tăng của trọng số trước. Một số bài làm không sắp xếp, như thế là người chấm sẽ khó theo dõi và rất mệt.
+ Viết chú giải giải thích kỹ số hiệu, cấu trúc cây T, G , rồi sự liên thông sẽ được đánh giá cao.
Về câu 8:+ Nên duyệt theo chiều rộng an toàn hơn. Mỗi khi đánh dấu mới đếm. Đánh dấu xong, đếm luôn để tránh phải duyệt lại, là an toàn nhất. Luôn chọn u là điểm xuất phát, chỉ cần nói "
Chọn đỉnh xuất phát là u" thôi.
+ Một số bài nhầm u và v rất nguy hiểm. Nên viết chữ v rõ ràng, không nên viết ngoáy để người chấm không đoán được là u hay v sẽ bị trừ, thậm chí đánh giá sai sẽ không có điểm.
Về câu 6:Bài này phải giải là sắp xếp hòa nhập, có nhiều cách giải, ở đây chỉ cần hiểu là tại một thời điểm, lấy mỗi hàng một phần tử hiện tại của hàng đó. Chọn phần tử nhỏ nhất trong số đó, đưa vào mảng đích. Hàng nào có phần tử bị lấy sẽ tăng chỉ số phần tử hiện tại lên 1.
- code:
FOR j = 1 TO m DO CS[j] = 1
A[jo, CS[jo]]= min {A[j, CS[j]] j = 1..m}
X[k] := A [jo, CS[jo]];
k := k + 1;
CS[jo] = CS[jo] + 1]
Về câu 1:- Không ghi thủ tục mà chỉ có code không thì không có điểm
- Không khai tham trị
- Hiểu không rõ, không khai báo mà di chuyển lên P mất dữ liệu ngay
- Không dùng tham số
- Code:
s : = P;
IF (s !=Nil) THEN
1)WHILE (s !=Nil) DO { c := s; s := s^.Next}
c^.next = Q;
ELSE P = Q;
OUTPUT P;
Xóa phần tử cuối được xem là bài khó nhất vì nếu có 1 phần tử mà dùng lệnh xóa thông thường sẽ không xóa được. Nên chưa làm 3 trường hợp:
P có 1 phần tử, P rỗng và P có nhiều phần tử.
- Code:
1)Input P
2) IF (P != Nil) & (P^.Next = Nil) THEN
a) s : = P;
b) WHILE (s^.Next ≠ Nil) DO {c: = s; s = s^.Next}
ELSE P: = Nil;
3) Output P