Các phương pháp lấy câu hỏi từ tệp dữ liệu

Một phần của tài liệu dethihelp32 (Trang 40 - 43)

18.1. Lấy một số câu hỏi theo nhãn đã biết

1. Khi biết một số nhãn của các câu hỏi ví dụt2017:b10,t2017:b15ta lấy vào: \loadselectedproblems[bttn]{t2017:b10,t2017:b15}{01cauhoi-toan-2017}

Dùng nó trong tùy chọn [baithi]:

\begin{vnmultiplechoice}[keycolumns=3]% \useproblem[bttn]{t2017:b10}

\useproblem[bttn]{t2017:b15} \end{vnmultiplechoice}

Trong tùy chọn [baitap]

\loadselectedproblems[bttn]{t2017:b10,t2017:b15}{01cauhoi-toan-2017} \showproblems

\begin{enumerate}[resume,label={\bf Câu \arabic *.\ }] \item\useproblem[bttn]{t2017:b10}

\item\useproblem[bttn]{t2017:b15} \end{enumerate}

2. Tương tự nếu có nhiều nhãn đưa vào danh sách: \def\dsnhan{t2017:b20,t2017:b21,t2017:b22}

\loadselectedproblems[bttnnew]{\dsnhan}{01cauhoi-toan-2017}

Sử dụng các nhãn như trên, nhưng ở đây ta dùng cách khác trong tùy chọn [baithi] \begin{vnmultiplechoice}[keycolumns=3]%

\foreachproblem[bttnnew]{\thisproblem} \end{vnmultiplechoice}

Trong tùy chọn [baitap] \showproblems

\begin{enumerate}[resume,label={\bf Câu \arabic *.\ }]

\foreachproblem[bttnnew]{\item\label{prob:\thisproblemlabel}\thisproblem} \end{enumerate}

3. Lấy các nhãn câu hỏi trong tệp dữ liệu:

Với lớp vieexamdesign.cls đưa vào tự chọn draft; \documentclass[11pt,draft]{vieexamdesign} Lấy toàn bộ câu hỏi bằng lệnh và môi trường

\begin{vnmultiplechoice}[keycolumns=3]% \selectallproblems{01cauhoi-toan-2017} \end{vnmultiplechoice}

Khi biên dịch sẽ có trang đầu tiên chứa các nhãn kèm theo tên tệp chứa nhãn như [01cauhoi-toan-2017,t2017:b01] [01cauhoi-toan-2017,t2017:b02]

[01cauhoi-toan-2017,t2017:b03] [01cauhoi-toan-2017,t2017:b04] [01cauhoi-toan-2017,t2017:b05] [01cauhoi-toan-2017,t2017:b06] ....

Chép nhãn vào một tệp và lấy nhãn bằng thay thế tên tệp bằng trắng,... t2017:b01, t2017:b02, t2017:b03, t2017:b04, t2017:b05, t2017:b06, t2017:b07, t2017:b08, t2017:b09, t2017:b10, t2017:b11, t2017:b12, t2017:b13, t2017:b14, t2017:b15, t2017:b16, t2017:b17, t2017:b18, t2017:b19, t2017:b20, t2017:b21, t2017:b22, t2017:b23, t2017:b24, t2017:b25, t2017:b26, t2017:b27, t2017:b28, t2017:b29, t2017:b30, t2017:b31, t2017:b32, t2017:b33, t2017:b34, t2017:b35, t2017:b36, t2017:b37, t2017:b38, t2017:b39, t2017:b40, t2017:b41, t2017:b42, t2017:b43, t2017:b44, t2017:b45, t2017:b46, t2017:b47, t2017:b48, t2017:b49, t2017:b50

18.2. Lấy một số câu hỏi ngẫu nhiên từ tệp dữ liệu

1. Bằng lệnh lấy một số câu hỏi, ví dụ như lấy 5 câu hỏi trong tệpcauhoi02-ktracnghiem.tex \loadrandomproblems[ktracnghiem]{5}{cauhoi02-ktracnghiem}

Tương ứng lệnh này dùng các câu hỏi được gọi vào bộ nhớ trên như sau: Tùy chọn [baithi] của dethi

\begin{vnmultiplechoice}[keycolumns=3] \foreachproblem[ktracnghiem]{\thisproblem}

\end{vnmultiplechoice}

Tùy chọn [baitap] \showproblems

\begin{enumerate}[resume,label={\bf Câu \arabic *.\ }]

\foreachproblem[ktracnghiem]{\item\label{prob:\thisproblemlabel}\thisproblem} \end{enumerate}

2. Lệnh lấy một số ngẫu nhiên câu hỏi trong tệp dữ liệu mà không cần đưa qua bộ nhớ, ví dụ lấy 4 câu hỏi từ tệp01cauhoi-toan-2017:

Trong tùy chọn [baithi]

\begin{vnmultiplechoice}[keycolumns=3] \selectrandomly{01cauhoi-toan-2017}{4}

\end{vnmultiplechoice}

Trong tùy chọn [baitap] \showproblems

\begin{enumerate}[resume,label={\bf Câu \arabic *.\ }] \selectrandomly{01cauhoi-toan-2017}{4}

18.3. Lấy toàn bộ câu hỏi và lấy đồng thời trong nhiều tệp

1. Lấy toàn bộ câu hỏi trong tệp, tùy chọn [baithi] \begin{vnmultiplechoice}[keycolumns=3]

\selectallproblems{01cauhoi-toan-2017} \end{vnmultiplechoice}

Tùy chọn [baitap] \showproblems

\begin{enumerate}[resume,label={\bf Câu \arabic *.\ }] \selectallproblems{01cauhoi-toan-2017}

\end{enumerate}

2. Những lệnh trên có thể lấy câu hỏi trong nhiều tệp khác nhau một lúc. xem trong tệp vidu02-tracnghiem-nhan-cauhoi.tex

Nhưng chú ý không đồng thời lấy hai lần câu hỏi có cùng một nhãn, mỗi câu hỏi chỉ lấy vào bộ nhớ 1 lần, nếu nhiều hơn chương trình sẽ bóa lỗi.

Một phần của tài liệu dethihelp32 (Trang 40 - 43)

Tải bản đầy đủ (PDF)

(58 trang)