Kết quả của phép toán -3*sign(-18.22) +(1>3)and(2>4)+ mod(-11,-5) trong Matlab là:
Trả lời:
Đáp án đúng: B
Để giải bài này, ta phải hiểu các hàm và toán tử trong Matlab:
* `sign(x)`: Hàm này trả về -1 nếu x < 0, 0 nếu x = 0, và 1 nếu x > 0. Trong trường hợp này, `sign(-18.22)` sẽ trả về -1.
* `(1>3) and (2>4)`: `1>3` là sai (false), `2>4` cũng là sai (false). Trong Matlab, `false` được biểu diễn là 0. Vì vậy, `false and false` là 0.
* `mod(x, y)`: Hàm này trả về phần dư của phép chia x cho y. `mod(-11, -5)` sẽ trả về -1.
Thay thế các giá trị này vào biểu thức ban đầu, ta có:
`-3 * sign(-18.22) + (1>3) and (2>4) + mod(-11, -5)`
`= -3 * (-1) + 0 + (-1)`
`= 3 + 0 - 1`
`= 2`
Vì không có đáp án nào là 2, nên có lẽ câu hỏi có sự sai sót hoặc các đáp án bị thiếu. Nếu `mod(-11, -5)` được hiểu là `mod(abs(-11), abs(-5))` thì giá trị là `mod(11,5) = 1`. Khi đó, biểu thức sẽ là:
`-3 * sign(-18.22) + (1>3) and (2>4) + mod(abs(-11), abs(-5))`
`= -3 * (-1) + 0 + 1`
`= 3 + 0 + 1`
`= 4`
Như vậy, đáp án D có thể đúng nếu ta hiểu `mod` theo một cách khác.
Tuy nhiên, nếu `mod(-11, -5)` được hiểu chính xác theo Matlab thì không có đáp án nào đúng.





