# Embedded Answers (Cloze)

![](/files/HVx8DEBMrgVgOlrEHpwO)

เป็นการสร้างโจทย์และคำตอบในรูปแบบต่างๆ เช่น Multiple choice , short answer และ numerical โดยการเขียนข้อความ(โค้ด) มีจุดเด่นคือความยืดหยุ่นในการสร้างตัวเลือกตอบให้มีหลากหลายรูปแบบในโจทย์ข้อเดียวกันได้

![ตัวอย่างหน้าต่างการสร้างโจทย์แบบ Embedded Answers (Cloze)](/files/72m1TITiYJbjMJFc2vDT)

### รูปแบบของโจทย์ที่สามารถทำได้

โจทย์ที่เป็นข้อความ(โค้ด)ที่จะมีคำถามย่อยในรูปแบบต่างๆฝังอยู่ คำถามย่อยที่สามารถฝังได้มีดังนี้ :

* short answers (SHORTANSWER หรือ SA หรือ MW)
* short answers (SHORTANSWER\_C หรือ SAC or MWC)&#x20;
* numerical answers (NUMERICAL หรือ NM)
* multiple choice (MULTICHOICE หรือ MC) จะแสดงคำตอบเป็นรายการ dropdown ให้เลือกตอบ
* multiple choice (MULTICHOICE\_V หรือ MCV) จะแสดงคำตอบเป็นคอลัมน์แนวตั้งให้เลือกตอบ
* multiple choice (MULTICHOICE\_H หรือ MCH)จะแสดงคำตอบเป็นคอลัมน์แนวนอนให้เลือกตอบ
* multiple choice (MULTIRESPONSE หรือ MR) จะแสดงคำตอบเป็นกล่อง checkbox แนวตั้งให้เลือกตอบ
* multiple choice (MULTIRESPONSE\_H หรือ MRH) จะแสดงคำตอบเป็นกล่อง checkbox แนวนอนให้เลือกตอบ

### การสุ่มคำถามย่อย

เมื่อเปิดการสุ่มคำถาม ตัวเลือกแบบ multiple choice ต่อไปนี้จะถูกสุ่มด้วย

* multiple choice (MULTICHOICE\_S หรือ MCS) จะแสดงคำตอบเป็นรายการ dropdown อยู่ในบรรทัดเดียวกันกับข้อความให้เลือกตอบ
* multiple choice (MULTICHOICE\_VS หรือ MCVS) จะแสดงคำตอบเป็นคอลัมน์แนวตั้งให้เลือกตอบ
* multiple choice (MULTICHOICE\_HS หรือ MCHS) จะแสดงคำตอบเป็นคอลัมน์แนวนอนให้เลือกตอบ
* multiple choice (MULTIRESPONSE\_S หรือ MRS) จะแสดงคำตอบเป็นกล่อง checkbox แนวตั้งให้เลือกตอบ
* multiple choice (MULTIRESPONSE\_HS หรือ MRHS) จะแสดงคำตอบเป็นกล่อง checkbox แนวนอนให้เลือกตอบ

หรือใช้ Cloze editor เพื่อให้สร้างคำถามได้ง่ายและรวดเร็วขึ้น

![](/files/2m9jtjqgdDM9hu7XqHLf)

![](/files/476R97hBciq8sl6m03q6)

### โครงสร้างของแต่ละ cloze คำถามย่อย

{ เริ่ม cloze คำถามย่อยด้วยเครื่องหมายปีกกา (AltGr+7)

1 กำหนดคะแนนในแต่ละ cloze คำถามย่อยด้วยตัวเลข(ไม่จำเป็น) เพื่อใช้สำหรับการคำนวนคะแนนในคำถามข้อดังกล่าว โดยตัวเลขนี้จะต้องเป็นจำนวนเต็มบวกเท่านั้น (1,2,3 เป็นต้น)

:SHORTANSWER: กำหนดประเภทของ cloze คำถามย่อย โดยพิมพ์ประเภทคำถามที่ต้องการ จากนั้นครอบด้วยเครื่องหมาย ':'

\~ เป็นเครื่องหมายสำหรับใช้คั่นระหว่างคำตอบในแต่ละตัวเลือก

\= เป็นเครื่องหมายสำหรับกำหนดคำตอบที่ถูกต้อง

(#) เป็นเครื่องหมายสำหรับกำหนดจุดเริ่มต้นของฟีดแบ็ค(ถ้ามี)

} สำหรับปิด cloze คำถามย่อย (AltGr+0)

ตัวอย่าง :&#x20;

```
{1:SHORTANSWER:=Berlin} is the capital of Germany.
```

{% hint style="info" %}
โปรดระมัดระวังในการ copy คำถามประเภทนี้ลงใน WYSIWYG HTML editor เนื่องจากระบบจะเพิ่มการเว้นบรรทัดมาให้โดยอัตโนมัติ และจำทำให้คำถามนั้นไม่สามารถแสดงผลได้
{% endhint %}

กรณีที่คำตอบที่ถูกต้องมีเครื่องหมาย } # \~ / . หรือ \ ประกอบ ให้หลีกเลี่ยงการใช้ \ วางไว้หน้าตัวอักษรในแต่ละตัว ซึ่งจะทำให้การสร้างโจทย์นั้นยุ่งยากมากขึ้น และเครื่องหมาย { ควรจะใส่ไว้ เพราะเป็นเครื่องหมายที่สำคัญ ที่ทำให้ TeX นั้นแสดงผลได้เป็นปกติ และให้หลีกเลี่ยงการใช้เครื่องหมาย \~ และ } ในการเขียนฟีดแบค เพราะระบบจะเข้าใจว่าส่วนดังกล่าวเป็นคำตอบถัดไปหรือส่วนท้ายสุดของลำดับในคำตอบแบบ short answer&#x20;

เครื่องหมาย " อาจทำให้การแสดงผลไม่สมบูรณ์เมื่อใส่เป็นสองตำแหน่งใน HTML entity: & quot; (เมื่อพิมพ์ด้วย & และ quot; ติดกัน) นอกจากนี้การแสดงผลอาจไม่สมบูรณ์ถ้าต้องการให้แสดงผลสัญลักษณ์ทางคณิตศาสตร์เมื่อใช้เครื่องหมาย \ ใน TeX เพื่อหลีกเลี่ยงปัญหาที่อาจเกิดขึ้นได้ ให้ใช้ unicode แทน

### ตัวอย่าง

ตัวอย่างการสร้างโจทย์แบบ embedded อย่างง่าย

```
จงจับคู่เมืองหลวงกับรัฐต่อไปนี้:
* ซาน ฟรานซิสโก: {1:MULTICHOICE:=แคลิฟอร์เนีย#โอเค~อะริโซนา#ผิดจ้า}
* ทูซอน: {1:MULTICHOICE:แคลิฟอร์เนีย#ผิดจ้า~%100%อะริโซนา#โอเค}
* ลอส แองเจริส: {1:MULTICHOICE:=แคลิฟอร์เนีย#โอเค~อะริโซนา#ผิดจ้า}
* ฟินิกซ์: {1:MULTICHOICE:%0%แคลิฟอร์เนีย#ผิดจ้า~=อะริโซนา#โอเค}
เมืองหลวงของฝรั่งเศสคือ {1:SHORTANSWER:%100%ปารีส#ถูกต้อง!
~%50%มาร์เซย#ไม่ใช่, เป็นเมืองที่ใหญ่ที่สุดเป็นอันดับที่สองของฝรั่งเศส (รอง
จากปารีส).~*#ตอบผิด. เมืองหลวงของฝรั่งเศสคือปารีสนั่นเอง}.
```

เมื่อแสดงผล :&#x20;

![](/files/sIoDE6H6RqHdBa6k0WKY)

ตัวอย่างที่ 2

```
This question consists of some text with an answer embedded right here {1:MULTICHOICE:Wrong answer#Feedback for this wrong answer~Another wrong answer#Feedback for the other wrong answer~=Correct answer#Feedback for correct answer~%50%Answer that gives half the credit#Feedback for half credit answer}

and right after that you will have to deal with this short answer {1:SHORTANSWER:Wrong answer#Feedback for this wrong answer~=Correct answer#Feedback for correct answer~%50%Answer that gives half the credit#Feedback for half credit answer}

and finally we have a floating point number {2:NUMERICAL:=23.8:0.1#Feedback for correct answer 23.8~%50%23.8:2#Feedback for half credit answer in the nearby region of the correct answer}.

The multichoice question can also be shown in the vertical display of the standard moodle multiple choice. {2:MCV:1. Wrong answer#Feedback for this wrong answer~2. Another wrong answer#Feedback for the other wrong answer~=3. Correct answer#Feedback for correct answer~%50%4. Answer that gives half the credit#Feedback for half credit answer}

Or in an horizontal display that is included here in a table {2:MCH:a. Wrong answer#Feedback for this wrong answer~b. Another wrong answer#Feedback for the other wrong answer~=c. Correct answer#Feedback for correct answer~%50%d. Answer that gives half the credit#Feedback for half credit answer}

A shortanswer question where case must match. Write moodle in upper case letters {1:SHORTANSWER_C:moodle#Feedback for moodle in lower case ~=MOODLE#Feedback for MOODLE in upper case ~%50%Moodle#Feedback for only first letter in upper case}

Note that addresses like www.moodle.org and smileys :-) all work as normal:

a) How good is this? {:MULTICHOICE:=Yes#Correct~No#We have a different opinion}

b) What grade would you give it? {3:NUMERICAL:=3:2}
```

เมื่อแสดงผล :&#x20;

![](/files/dlmiRPqKGp6Mp4v8C9Bo)

### การแสดงผลของฟีดแบค

{% hint style="info" %}
การแสดงผลฟีดแบคใน MULTICHOICE และ MULTICHOICE*V* จะแสดงผลเมื่อวางเมาส์เหนือช่องคำตอบ(เลื่อนเคอร์เซอร์ไปที่กล่องคำตอบ) ส่วน MULTICHOICE\_H จะแสดงผลโดยตรงบนหน้าจอข้างๆคำตอบของนักศึกษา
{% endhint %}

ตัวอย่างคำถาม :

```
สัตว์ขนิดใดเป็นสัตว์กินเนื้อ? (answer: แมว)
ทดสอบ MULTICHOICE {1:MULTICHOICE:=แมว#ใช่แล้ว ถูกต้อง~ยีราฟ#ผิด!}
ทดสอบ MULTICHOICE_H {1:MULTICHOICE_H:=แมว#ใช่แล้ว ถูกต้อง~ม้าลาย#ผิด!}
ทดสอบ MULTICHOICE_V{1:MULTICHOICE:=แมว#ใช่แล้ว ถูกต้อง~ยีราฟ#ผิด!}
```

เมื่อแสดงผล :&#x20;

![](/files/VzPlgJPVjNRfIk9lI0p2)

![](/files/QsRtiza1rhJtcap0tD3S)

### การเพิ่มรูปภาพลงในคำถามที่มีตัวเลือกแบบ multichoice

การใส่ภาพลงในตัวเลือกของ multichoice ในคำถามย่อยด้วยตัวเลือกแบบ radio choice หรือแบบ checkbox สามารถทำได้ในตัวเลือกประเภท :&#x20;

* MULTICHOICE\_V หรือ MCV
* MULTICHOICE\_H หรือ MCH
* MULTIRESPONSE หรือ MR
* MULTIRESPONSE\_H หรือ MRH

และแบบสุ่มตัวเลือก :

* MULTICHOICE\_VS หรือ MCVS
* MULTICHOICE\_HS หรือ MCHS
* MULTIRESPONSE\_S หรือ MRS
* MULTIRESPONSE\_HS หรือ MRHS

{% hint style="info" %}
ระบบไม่สามารถเพิ่มรูปภาพในตัวเลือกแบบ dropdown list ได้ (MULTICHOICE หรือ MC และ MULTICHOICE\_S หรือ MCS) เนื่องจากคำถามย่อยประเภทนี้ใช้คำสั่ง \<option>
{% endhint %}

{% hint style="info" %}
สิ่งสำคัญที่ควรพึงระวังอีกเรื่องคือ source ของรูปภาพนั้นๆ ที่มี URL แบบตายตัว หากต้องการเพิ่มรูปภาพในตัวเลือก ให้ทำการแก้ไขโค้ด HTML ของคำถามก่อน และเพิ่มรูปภาพเข้าไปด้วยวิธี manual โดยใช้โค้ด \<img> แทน
{% endhint %}

{% hint style="info" %}
ตัวอย่างหลังจากนี้อาจมีการแบ่งย่อหน้าเพื่อให้อ่านและเข้าใจง่ายขึ้น ทั้งนี้ในการทำโจทย์ของจริงควรพิมพ์โค้ดให้อยู่ในย่อหน้าเดียวกัน
{% endhint %}

```
สัตว์ชนิดใด น่ารักที่สุด

{1:MCV:&nbsp; <img src="https://post.medicalnewstoday.com/wp-content/uploads/sites/3/2020/02/322868_1100-800x825.jpg" width="150px" >&nbsp; สุนัข &nbsp;
#ใช่แล้ว น่ารักที่สุด!!

~&nbsp; <img src="https://www.petmd.com/sites/default/files/styles/article_image/public/orange-tabby-kitten-walking-across-floor.jpg?itok=ApRxY9_r" width="150px" >&nbsp; แมว &nbsp;
#น่ารัก แต่ยังไม่ใช่ที่สุด

~=&nbsp; <img src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSHiI7oXaWeyf6Glx9miA_5tB4wPooZgFKO4qUhXTw7qcExsluHmazg7O4VtCGdGMpHr_w&usqp=CAU" width="150px" >&nbsp; คุณและคุณเท่านั้น &nbsp;
#ที่ทำให้ใจผมหยุดเหงา!

~%50%&nbsp; <img src="https://i.pinimg.com/474x/03/93/91/0393910cd1ce5baf910cbc7dd10d09f9.jpg" width="150px" >&nbsp; ต้าวหนู &nbsp;
#น่ารัก แต่สู้เธอคนนั้นไม่ได้หรอก}

```

ขนาดของรูปภาพที่เหมาะสมคือกว้าง 200px กรณีที่ต้องการแก้ไขขนาดของภาพ ให้เพิ่มโค้ด \<width> ตัวอย่าง :

```
<img src="https://post.medicalnewstoday.com/wp-content/uploads/sites/3/2020/02/322868_1100-800x825.jpg" width="150px" >
```

ตัวอย่างของโจทย์ที่แสดงผล :&#x20;

![](/files/JVOX7NAHeS6I0ZrwpAi2)

### โจทย์สมการพหุนาม

คำถามย่อย MULTICHOICE (MC) และ MULTICHOICE\_S (MCS) ของโจทย์ประเภท Cloze นั้นใช้คำสั่ง \<option> ทำให้โจทย์แบบสมการต่างๆไม่สามารถใช้งานโค้ดและคำถามย่อยประเภทดังกล่าวได้ ถ้าต้องการสร้างโจทย์สมการให้สร้างด้วย MULTICHOICE\_V (MVC) และ MULTICHOICE\_H (MCH)แทน หรือใช้คำถามย่อยประเภท MULTICHOICE\_VS (MCVS) หรือ MULTICHOICE\_HS (MCHS)แทน โดยสองประเภทนี้จะรองรับการแสดงผลแบบ LaTeX , MathML และ AsciiMath ได้เป็นอย่างดี

&#x20;นอกจากนี้ยังสามารถเพิ่มสมการลงในฟีดแบคของ MCV, MCH, MCVS และ MCHS ได้อีกด้วย

กรณีที่ใช้ LaTeX ให้แทนที่ { ด้วย

```
HTML entity reference &#123;
และ }
ด้วย &#125;
```

และทุกครั้งที่ต้องการใช้ \\(

```
และ \)
เป็นตัวคั่นในการแสดงผลของข้อความ ไม่ใช่การแสดงผลในบรรทัดนั้นๆ \[
และ \]
และไม่ใช่ตัวคั่นs $$
และ $$
```

### โจทย์แบบ dropdown

ในคำถามย่อยแบบ MULTICHOICE (MC) และ MULTICHOICE\_S (MCS) จะสามารถเพิ่มข้อมูลเพิ่มเติมไปในตัวเลือกแต่ละข้อในรูปแบบของการเลื่อนเคอร์เซอร์ไปบนตัวเลือกนั้นๆได้ โดยการใช้โค้ด JavaScript ซึ่งจะเป็นประโยชน์อย่างมากในการจำกัดความกว้างของเมนู dropdown ตัวอย่าง :&#x20;

![](/files/j0DxudXR1peVy2Dtk5v4)

### โจทย์แบบ Numerical Cloze

โจทย์ประเภทนี้น.ศ.จะเห็นเป็นโจทย์แบบ short answes หรือเติมคำในช่องว่างเท่านั้น แต่โจทย์ประเภท Numerical นั้นจะยอมรับค่า error ที่อาจมีในคำตอบได้ โดยอาจารย์สามารถกำหนดช่วงของคำตอบไว้ได้ และยังสามารถแสดงคำตอบในรูปแบบต่างๆได้อีกด้วย เช่น 23.4 23,4 (ซึ่งในบางประเทศมีใช้) และ 2.34E + 1 (ซึ่งหมายถึง 2.34\*10^1) โดยระบบจะตีความเหมือนกัน

### โจทย์แบบ All or noting

วิธีการสร้างโจทย์ในรูปแบบนี้ คือ "all or nothing" ในคำถาม Cloze ก็คือการตั้งค่าคะแนนแบบติดลบ&#x20;

ตัวอย่างการตั้งค่าคะแนนให้ติดลบ :

```
โจทย์ที่มีคำถามย่อย 2 ข้อ: {1:SHORTANSWER:=คำตอบที่ถูก~%-100%*} และ {1:SHORTANSWER:=คำตอบที่ถูก~%-100%*}.
```

```
โจทย์ที่มีคำถามย่อย 3 ข้อ: : {1:SHORTANSWER:=คำตอบที่ถูก~%-200%*}, {1:SHORTANSWER:=คำตอบที่ถูก~%-200%*} 
และ {1:SHORTANSWER:=คำตอบที่ถูก~%-200%*} เป็นต้น
```

### การนำเข้าโจทย์ประเภท Cloze

โจทย์แบบ Multiple Cloze สามารถนำเข้าด้วย XML ได้ ตัวอย่าง :&#x20;

```
<?xml version="1.0" encoding="UTF-8"?>
<quiz>

<!-- question: 1  -->
<question type="cloze">
<name><text>Book Test #1</text>
</name>
<questiontext>
<text><![CDATA[..............]]></text>
</questiontext>
<generalfeedback>
<text></text>
</generalfeedback>
<shuffleanswers>0</shuffleanswers>
</question>

<!-- question: 2 -->
<question type="cloze">
<name><text>Book Test #2</text>
</name>
<questiontext>
<text><![CDATA[............]]></text>
</questiontext>
<generalfeedback>
<text></text>
</generalfeedback>
<shuffleanswers>0</shuffleanswers>
</question>

</quiz>
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.tlic.cmu.ac.th/cmumoodle-manual/quiz/creating-quiz/question-type/embedded-answers-cloze.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
