You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
111 lines
13 KiB
111 lines
13 KiB
# ការធ្វើជម្រើស៖ កម្មវិធីកែសម្រួលពិន្ទុសិស្ស
|
|
|
|
## គោលបំណងការសិក្សា
|
|
|
|
នៅក្នុងការបម្រើការងារនេះ អ្នកនឹងហាត់បណ្ដុះបណ្ដាលកំពុងតែប្រើកំណត់ត្រាជម្រើសពីមេរៀននេះដោយបង្កើតកម្មវិធីមួយដែលដំណើរការពិន្ទុសិស្សពីប្រព័ន្ធពិន្ទុផ្សេងៗគ្នា។ អ្នកនឹងប្រើពាក្យបញ្ជា `if...else` អ្នកប្រើប្រតិបត្តិការតម្លៃប្រៀបធៀប និងប្រតិបត្តិការតារវិច្ឆ័យដើម្បីកំណត់ថា សិស្សណាដែលជាប់ថ្នាក់។
|
|
|
|
## ខិតផ្សង
|
|
|
|
អ្នកធ្វើការជាមនុស្សបុគ្គលិកសាលាដែលថ្មីៗនេះបានបញ្ចូលជាមួយស្ថាបនាផ្សេងទៀត។ ឥឡូវនេះ អ្នកត្រូវតែដំណើរការពិន្ទុសិស្សពីប្រព័ន្ធពិន្ទុ ២ ប្រព័ន្ធផ្សេងគ្នា និងកំណត់ថា សិស្សណាដែលកំពុងជាប់ភាគច្រើន។ នេះជាទីកន្លែងល្អសម្រាប់អនុវត្តប្រើប្រាស់តាកនិយមលក្ខខណ្ឌ!
|
|
|
|
### ការយល់ដឹងអំពីប្រព័ន្ធពិន្ទុ
|
|
|
|
#### ប្រព័ន្ធពិន្ទុកាលដំបូង (លេខ)
|
|
- ពិន្ទុបានផ្តល់ជាលេខពី ១ ដល់ ៥
|
|
- **ពិន្ទុភាគច្រើន**: ៣ និងខ្ពស់ជាង (៣, ៤, ឬ ៥)
|
|
- **ពិន្ទុបរាជ័យ**: តិចជាង ៣ (១ ឬ ២)
|
|
|
|
#### ប្រព័ន្ធពិន្ទុកាលទីពីរ (ពិន្ទុលេខអក្សរ)
|
|
- ពិន្ទុប្រើអក្សរ៖ `A`, `A-`, `B`, `B-`, `C`, `C-`
|
|
- **ពិន្ទុភាគច្រើន**: `A`, `A-`, `B`, `B-`, `C`, `C-` (ពិន្ទុអក្សរទាំងអស់នេះជាពិន្ទុភាគច្រើន)
|
|
- **កំណត់សម្គាល់**៖ ប្រព័ន្ធនេះមិនមានពិន្ទុបរាជ័យដូចជា `D` ឬ `F` ទេ
|
|
|
|
### បេសកកម្មរបស់អ្នក
|
|
|
|
ដោយផ្អែកលើតារាង `allStudents` ដែលបង្ហាញសិស្សទាំងអស់ និងពិន្ទុរបស់ពួកគេ សូមបង្កើតតារាងថ្មី `studentsWhoPass` ដែលមានសិស្សទាំងអស់ដែលជាប់ភាគច្រើនតាមប្រព័ន្ធពិន្ទុរបស់ពួកគេ។
|
|
|
|
```javascript
|
|
let allStudents = [
|
|
'A', // ពិន្ទុលេខអក្សរ - ជាប់
|
|
'B-', // ពិន្ទុលេខអក្សរ - ជាប់
|
|
1, // ពិន្ទុលេខ - មិនជាប់
|
|
4, // ពិន្ទុលេខ - ជាប់
|
|
5, // ពិន្ទុលេខ - ជាប់
|
|
2 // ពិន្ទុលេខ - មិនជាប់
|
|
];
|
|
|
|
let studentsWhoPass = [];
|
|
```
|
|
|
|
### ដំណើរការជាដំណាក់កាល
|
|
|
|
1. **ចាប់ផ្តើមរង្វិល** ដើម្បីឆ្លងកាត់ពិន្ទុនីមួយៗក្នុងតារាង `allStudents`
|
|
2. **គិតប្រភេទពិន្ទុ** (វាជាលេខឬអក្សរប្រភេទខ្សែ?)
|
|
3. **អនុវត្តច្បាប់ប្រព័ន្ធពិន្ទុដែលសមរម្យ**៖
|
|
- សម្រាប់លេខ៖ ពិនិត្យមើលថាពិន្ទុ >= 3 ឬទេ
|
|
- សម្រាប់ខ្សែអក្សរ៖ ពិនិត្យមើលថាវាជាការពិន្ទុអក្សរភាគច្រើនមួយឬទេ
|
|
4. **បញ្ចូលពិន្ទុភាគច្រើន** ទៅក្នុងតារាង `studentsWhoPass`
|
|
|
|
### បច្ចេកទេសផ្នែកកូដដែលមានប្រយោជន៍
|
|
|
|
ប្រើមូលដ្ឋាន JavaScript ខាងក្រោមពីមេរៀននេះ៖
|
|
|
|
- **ប្រតិបត្តិការ typeof**៖ `typeof grade === 'number'` ដើម្បីពិនិត្យថាវាជាលេខមែនទេ
|
|
- **ប្រតិបត្តិការវាយតម្លៃប្រៀបធៀប**៖ `>=` ដើម្បីប្រៀបធៀបពិន្ទុលេខ
|
|
- **ប្រតិបត្តិការតុល្យភាព**៖ `||` ដើម្បីពិនិត្យបញ្ហាពីពិន្ទុអក្សរច្រើន
|
|
- **ពាក្យបញ្ជា if...else**៖ ដើម្បីដោះស្រាយប្រព័ន្ធពិន្ទុផ្សេងៗគ្នា
|
|
- **វិធីសាស្រ្តជួរឈរ**៖ `.push()` ដើម្បីបញ្ចូលពិន្ទុភាគច្រើនទៅក្នុងតារាងថ្មី
|
|
|
|
### លទ្ធផលដែលរំពឹងទុក
|
|
|
|
ពេលអ្នកដំណើរការកម្មវិធីរបស់អ្នក តារាង `studentsWhoPass` គួរតែមាន៖ `['A', 'B-', 4, 5]`
|
|
|
|
**ហេតុអ្វីបានជាពិន្ទុទាំងនេះជាប់ភាគច្រើន៖**
|
|
- `'A'` និង `'B-'` ជាពិន្ទុអក្សរដែលត្រឹមត្រូវ (ពិន្ទុអក្សរទាំងអស់ក្នុងប្រព័ន្ធនេះជាប់ភាគច្រើន)
|
|
- `4` និង `5` ជាពិន្ទុលេខ >= 3
|
|
- `1` និង `2` បរាជ័យ ព្រោះវាជាពិន្ទុលេខ < 3
|
|
|
|
## ការធ្វើតេស្តដំណោះស្រាយរបស់អ្នក
|
|
|
|
ធ្វើតេស្តកូដរបស់អ្នកជាមួយស្ថានភាពផ្សេងៗ៖
|
|
|
|
```javascript
|
|
// សាកល្បងជាមួយការបញ្ចូលថ្នាក់នានា ដែលខុសគ្នា
|
|
let testGrades1 = ['A-', 3, 'C', 1, 'B'];
|
|
let testGrades2 = [5, 'A', 2, 'C-', 4];
|
|
|
|
// ដំណោះស្រាយរបស់អ្នកគួរតែធ្វើការ ដោយប្រើបាន ជាមួយការបញ្ចូលថ្នាក់ត្រឹមត្រូវណាមួយក៏បាន
|
|
```
|
|
|
|
## បំណងបន្ថែម
|
|
|
|
បន្ទាប់ពីអ្នកបញ្ចប់បេសកកម្មមូលដ្ឋាននេះ សូមសាកល្បងបន្ថែម៖
|
|
|
|
1. **បន្ថែមការត្រួតពិនិត្យ**៖ ពិនិត្យពិន្ទុមិនត្រឹមត្រូវ (ដូចជាលេខអវិជ្ជមាន ឬអក្សរមិនត្រឹមត្រូវ)
|
|
2. **រាប់ស្ថិតិ**៖ គណនាចំនួនសិស្សដែលជាប់ និងបរាជ័យ
|
|
3. **បំលែងពិន្ទុ**៖ បំលែងពិន្ទុទាំងអស់ទៅប្រព័ន្ធលេខតែមួយ (A=5, B=4, C=3, ដូច្នេះទៅ)
|
|
|
|
## លក្ខខណ្ឌវាយតម្លៃ
|
|
|
|
| ក្រមផ្លូវ | ល្អឥតខ្ចោះ (4) | មានជំនាញល្អ (3) | កំពុងអភិវឌ្ឍ (2) | ចាប់ផ្ដើម (1) |
|
|
|----------|-----------------|-----------------|-----------------|--------------|
|
|
| **មុខងារ** | កម្មវិធីកំណត់ពិន្ទុភាគច្រើនបានត្រឹមត្រូវពីប្រព័ន្ធទាំងពីរ | កម្មវិធីដំណើរការដោយមានបញ្ហាខ្នាតតូច ឬករណីមួយចំនួន | កម្មវិធីដំណើរការមានកំហុសផ្នែកតារាង | កម្មវិធីមានកំហុសធំរឺមិនអាចដំណើរការ |
|
|
| **រចនាសម្ព័ន្ធកូដ** | កូដរបស់អ្នកនៅស្អាត និងត្រូវបានរៀបចំល្អជាមួយតាកលក្ខខណ្ឌ if...else ព្រឹតិ្តមួយ | រចនាសម្ព័ន្ធល្អជាមួយពាក្យបញ្ជាលក្ខខណ្ឌសមរម្យ | រចនាសម្ព័ន្ធអាចទទួលយកបាន ប៉ុន្តែមានបញ្ហារចនាសម្ព័ន្ធខ្លះ | រចនាសម្ព័ន្ធមិនល្អ ដំណើរការលំបាក |
|
|
| **ការប្រើប្រាស់គំនិត** | ប្រើប្រាស់ប្រតិបត្តិការប្រតិបត្តិការប្រៀបធៀប តុល្យភាព និងតាកលក្ខខណ្ឌបានយ៉ាងមានប្រសិទ្ធភាព | ប្រើប្រាស់គំនិតមេរៀនបានល្អ ប៉ុន្តែមានចន្លោះខ្លះ | ប្រើប្រាស់គំនិតមេរៀនបានខ្លះ ប៉ុន្តែខ្វះធាតុសំខាន់ | ប្រើប្រាស់គំនិតមេរៀនបានតិច |
|
|
| **ដោះស្រាយបញ្ហា** | បង្ហាញការយល់ដឹងច្បាស់លាស់នៃបញ្ហា និងវិធីដោះស្រាយល្អ | វិធីដោះស្រាយបញ្ហាល្អជាមួយតាគន្លឹះត្រឹមត្រូវ | វិធីដោះស្រាយមធ្យមជាមួយភាពច្របូកច្របល់ខ្លះ | វិធីដោះស្រាយមិនច្បាស់ អត់បង្ហាញការយល់ដឹង |
|
|
|
|
## إرشادات التسليم
|
|
|
|
1. **ធ្វើតេស្តកូដ** របស់អ្នកយ៉ាងម៉ត់ចត់ជាមួយឧទាហរណ៍ដែលផ្តល់
|
|
2. **បន្ថែមកំណត់ចំណាំ** ពន្យល់ពីតាគន្លឹះរបស់អ្នក ជាពិសេសចំពោះតាកលក្ខខណ្ឌ
|
|
3. **ផ្ទៀងផ្ទាត់លទ្ធផល** ត្រូវតែផ្គូផ្គងជាមួយលទ្ធផលរំពឹងទុក៖ `['A', 'B-', 4, 5]`
|
|
4. **គិតពីករណីចុងក្រោយ** ដូចជាជួរឈរដែលទទេ ឬប្រភេទទិន្នន័យមិនរំពឹងទុក
|
|
|
|
> 💡 **ការណែនាំវិជ្ជាជីវៈ**: ចាប់ផ្តើមពីភាពងាយស្រួល! ធ្វើឲ្យមុខងារមូលដ្ឋានដំណើរការជាដំបូង បន្ទាប់មកបន្ថែមមុខងារលំអិតជាច្រើនទៀត។ ចងចាំថា គោលបំណងគឺដើម្បីហាត់កម្មវិធីតាកជម្រើសដោយប្រើឧបករណ៍ដែលអ្នកបានរៀននៅក្នុងមេរៀននេះ។
|
|
|
|
---
|
|
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
|
**ការបដិសេធ**៖
|
|
ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ សូមជ្រាបថាការបកប្រែដោយស្វ័យប្រវត្តិក្នុងខ្លឹមសារអាចមានកំហុសឬភាពមិនត្រឹមត្រូវខ្លះ។ ឯកសារដើមក្នុងភាសាម្ខាងគួរត្រូវបានគិតថាជាផ្នែកផ្លូវការធំបំផុត។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមផ្តល់អនុសាសន៍ឲ្យមានការបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសដែលកើតមានរួចមកពីការប្រើប្រាស់ការបកប្រែនេះទេ។
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER END --> |