เนื้อหาวิชา : 3 : กระบวนการทางคณิตศาสตร์และตรรกศาสตร์
ข้อ 151. ให้ a และ b เป็นตัวแปรจำนวนเต็ม และ % คือ modulus operator ถ้า a = 5, b = 2 ผลลัพธ์ของ a % b มีค่าเท่าใด
1 : 2
2 : 2.5
3 : 1
4 : 0.5
เฉลย: 3
อธิบาย: % คือการหารเอาเศษ โดย 5 % 2 หมายถึง 5 หาร 2 ได้ 2 เศษ 1 ดังนั้นผลลัพธ์คือ 1
ข้อ 152. ข้อใดให้ผลลัพธ์เท่ากับ (a+b/c-d)*e
1 : ((a+b)/c-d)*e
2 : (a+b)/c-d*e
3 : a+b/c*e-d*e
4 : (a*e+b*e/c-d*e)
เฉลย: 4
อธิบาย: กระจาย e เข้าไปในวงเล็บจะได้ a*e + (b/c)*e – d*e
ซึ่งเขียนเป็น a*e+b*e/c-d*e ได้ เพราะคูณและหารมีลำดับเดียวกัน
ข้อ 153.
-(-15+(2*4-2))+((6+3)*5+7)/4 มีค่าเท่าใด
1 : 23
2 : 22
3 : 21
4 : 20
เฉลย: 2
อธิบาย: คำนวณส่วนแรก 2*4-2 = 6, ดังนั้น -15+6 = -9 และ -(-9)=9
ส่วนหลัง (6+3)*5+7 = 52, 52/4 = 13 รวม 9+13 = 22
Note: ทำวงเล็บในสุดก่อน แล้วค่อยคูณ/หาร → บวก/ลบ
ข้อ 154. ข้อใดต่อไปนี้ผิด
1 : (a AND b) เป็นจริง ก็ต่อเมื่อทั้ง a และ b มีค่าเป็นจริง
2 : (NOT a) เป็นเท็จ ก็ต่อเมื่อ a มีค่าเป็นจริง
3 : (a OR b) เป็นเท็จ ก็ต่อเมื่อทั้ง a และ b มีค่าเป็นเท็จ
4 : NOT (a OR b) เป็นจริง ก็ต่อเมื่อ a หรือ b มีค่าเป็นเท็จ
เฉลย: 4
อธิบาย:
“NOT (a OR b) เป็นจริง ก็ต่อเมื่อ ทั้ง a และ b มีค่าเป็นเท็จ” (ต้องใช้คำว่า “และ” ไม่ใช่ “หรือ”)
Note:
AND → มีเท็จ เป็นเท็จ
OR → ต้องมีเท็จและเท็จ จึงเป็นเท็จ
ข้อ 155. กำหนดให้ X=1, Y=10, Z=100 นิพจน์ใดต่อไปนี้ได้ค่าตรรกะเป็นจริง
1 : NOT (Z/Y == Y)
2 : NOT(Y*X == Y)
3 : Z <= (Y*Y –1)
4 : X*Z => Z/X
เฉลย: 4
อธิบาย: ข้อที่เป็นจริงคือข้อ 4 โดยแทนค่าแล้วได้ 1*100 >= 100/1 หรือ 100 >= 100 ซึ่งเป็นจริง
Note: แทนค่าทีละตัว แล้วคำนวณก่อนเปรียบเทียบ
ข้อ 156. กำหนดให้ A=1, B=2, C=3, D=4 เงื่อนไขใดต่อไปนี้ ได้ค่าตรรกะเป็นเท็จ
1 : (A*B+C > C-B) && (A*D/B <= B)
2 : (A+B*C < B-C) || ((C+D)*A == A+B*C)
3 : (B/A <= D/C) || ((A+C) == (D*A)) && (C/B < A/D)
4 : (A < B) && (C < D) && (A > B) || (D==2*B)
เฉลย: 3
อธิบาย: แทนค่า A=1, B=2, C=3, D=4 แล้วเงื่อนไขในข้อ 3 ได้ผลเป็นเท็จ
Note:
การทำโจทย์แบบนี้ต้องคำนวณเลขก่อน แล้วค่อยเทียบค่า และใช้ AND/OR ตามลำดับ
ข้อ 157. ให้ตัวแปร wet, cold, และ windy เป็นตัวแปรที่เก็บค่าจริงเท็จได้ ถ้า wet=true, cold=false, windy=false (cold AND (NOT wet)) OR NOT(windy OR cold) มีค่าความจริงคืออะไร
1 : จริง
2 : เท็จ
3 : ไม่สามารถสรุปได้
4 : ประโยคที่เขียนหาค่าทางตรรกะไม่ได้
เฉลย: 1
อธิบาย:
wet=true = 1
cold=false = 0
windy=false = 0
(cold AND (NOT wet)) OR NOT(windy OR cold)
( 0 AND ( 0 )) OR NOT( 0 OR 0 )
( 0 ) OR NOT( 0 )
( 0 ) OR 1
= 1 = จริง
Note: แยกคิดทีละวงเล็บ จะไม่สับสน
ข้อ 158. ภาษาคอมพิวเตอร์ที่ใช้ในข้อนี้มีคุณสมบัติดังนี้
1. % แทน modulus operator
2. & แทน bitwise AND operator
3. ค่าตรรกะจริง มีค่าเท่ากับ 1
4. ค่าตรรกะเท็จ มีค่าเท่ากับ 0
5. สามารถนำค่าตรรกะไปประมวลผลกับจำนวนได้
จากการคำนวณต่อไปนี้ ข้อใดคำนวณหาคำตอบได้ถูกต้อง
1 : (3<2) + 5 มีค่าเท่ากับ 6
2 : (8 % 3) – 1 มีค่าเท่ากับ 0
3 : (3 = 3) + (6 <> 9) * 3 มีค่าเท่ากับ 6
4 : (23 – 2) & 1 มีค่าเท่ากับ 1
เฉลย: 4
อธิบาย:
1 : (3 < 2) + 5
(3 < 2) → เท็จ → 0
0 + 5 = 5 ❌ ไม่ใช่ 6
2 : (8 % 3) – 1
8 % 3 = 2 (เศษจาก 8 ÷ 3)
2 – 1 = 1 ❌ ไม่ใช่ 0
3 : (3 = 3) + (6 <> 9) * 3
(3 = 3) → จริง → 1
(6 <> 9) → จริง → 1
1 + 1 * 3 = 1 + 3 = 4 ❌ ไม่ใช่ 6
4 : (23 – 2) & 1
23 – 2 = 21
21 & 1 → bitwise AND
21 (ฐานสอง = 10101)
1 (ฐานสอง = 00001)
AND = 00001 = 1 ✅ ถูกต้อง
Note:
Bitwise AND คือการดำเนินการทางบิตที่ใช้เครื่องหมาย & ในภาษา C/C++ โดยจะนำตัวเลขสองจำนวนมาเปรียบเทียบกัน ทีละบิต แล้วคืนค่าเป็น 1 ก็ต่อเมื่อ บิตทั้งสอง เป็น 1 เหมือนกัน
ข้อ 159. ให้ y เป็นตัวแปรจำนวนเต็ม และ % คือ modulus operator
ข้อใดเป็นค่าของ y เมื่อ y = 1 – 5 / 3 + 9 % 4;
1 : 0
2 : 1
3 : -1
4 : 2
เฉลย: 2
อธิบาย:
y = 1 – 5 / 3 + 9 % 4;
= 1 – (5 / 3) + (9 % 4)
= 1 – (1) + (1) = 1
(หารจำนวนเต็ม เศษไม่ถูกนับ)
(9 ÷ 4 เหลือเศษ 1)
Note: ลำดับความสำคัญ: / และ % ทำก่อน + และ -
ข้อ 160. หลังจากส่วนของโปรแกรมข้างล่างนี้ทำงานเสร็จ answer มีค่าเท่าใด (% คือ modulus operator)
int a = 1, b = 2, c = 3; double f = 1.75, g = 1.0, h = 5; double answer; answer = a + g - b * f - c % b - h * 2;
1 : -11.6
2 : -12.5
3 : -13.1
4 : 12.0
เฉลย: 2
อธิบาย:
ใส่วงเล็บกันงง
→ answer = a + g - (b * f )- (c % b) - (h * 2);
แทนค่า
→ answer = 1 + 1.0 - (2 * 1.75)- (3 % 2) - (5 * 2);
→ answer = 1 + 1.0 - (3.5)- (1) - (10); = 12.5
Note: ลำดับความสำคัญ: / และ % ทำก่อน + และ -