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.
Web-Dev-For-Beginners/translations/km/2-js-basics/4-arrays-loops/assignment.md

117 lines
11 KiB

# ការប្រលងអារេ និងរង្វិល
## សេចក្ដីណែនាំ
បញ្ចប់លំហាត់ខាងក្រោមសម្រាប់លំហាត់ការងារជាមួយអារេ និងរង្វិល។ លំហាត់នីមួយៗសង់លើគំនិតពីមេរៀន ហើយលើកទឹកចិត្តឱ្យអ្នកអនុវត្តប្រភេទរង្វិលនានា និងវិធីសាស្រ្តអារេទាំងឡាយ។
### លំហាត់ ១៖ កម្មវិធីបង្កើតលំនាំលេខ
បង្កើតកម្មវិធីមួយដែលបញ្ជីលេខរៀងរាល់អង្គទី 3 រវាងលេខ 1 ដល់ 20 ហើយបង្ហាញវាលើកុងសូល។
**តម្រូវការៈ**
- ប្រើរង្វិល `for` ជាមួយការបន្ថែមលេខប.custom
- បង្ហាញលេខក្នុងទ្រង់ទ្រាយងាយស្រួលសម្រាប់អ្នកប្រើ
- បន្ថែមមតិយោបល់ពន្យល់អំពីតម្រឹមដែលអ្នកប្រើ
**លទ្ធផលដែលរំពឹងទុក៖**
```
3, 6, 9, 12, 15, 18
```
> **គំនុំ:** កែប្រែសមីការជុំវិញនៅក្នុងរង្វិល `for` របស់អ្នកដើម្បីរំលងលេខ។
### លំហាត់ ២៖ ការវិភាគអារេ
បង្កើតអារេមួយដែលមានយ៉ាងហោចណាស់ 8 លេខខុសគ្នា ហើយសរសេរមុខងារដើម្បីវិភាគទិន្នន័យ។
**តម្រូវការៈ**
- បង្កើតអារេឈ្មោះ `numbers` ដែលមានតម្លៃយ៉ាងហោចណាស់ 8
- សរសេរមុខងារ `findMaximum()` ដែលបង្វិលលេខខ្ពស់បំផុត
- សរសេរមុខងារ `findMinimum()` ដែលបង្វិលលេខទាបបំផុត
- សរសេរមុខងារ `calculateSum()` ដែលបង្វិលសរុបលេខទាំងអស់
- សាកល្បងមុខងារនីមួយៗ និងបង្ហាញលទ្ធផល
**ការប្រកួតបន្ថែម៖** បង្កើតមុខងារដែលស្វែងរកលេខទីពីរខ្ពស់ក្នុងអារេ។
### លំហាត់ ៣៖ ការការពារ អារេខ្សែអក្សរ
បង្កើតអារេឈ្មោះបង្ហាញភាពចូលចិត្តរបស់អ្នក ជាភាពយប់/សៀវភៅ/ចម្រៀង ហើយហាត់ប្រើប្រភេទរង្វិលផ្សេងៗ។
**តម្រូវការៈ**
- បង្កើតអារេមួយដែលមានតម្លៃខ្សែអក្សរយ៉ាងហោចណាស់ 5
- ប្រើរង្វិល `for` ប្រពៃណី ដើម្បីបង្ហាញធាតុជាលេខ (1. ឈ្មោះធាតុ)
- ប្រើរង្វិល `for...of` ដើម្បីបង្ហាញធាតុជាអក្សរ​បំបែរជាអក្សរធំ
- ប្រើវិធីសាស្រ្ត `forEach()` ដើម្បីរាប់ និងបង្ហាញចំនួនតួអក្សរផ្តល់ទៅ
**លទ្ធផលគំរូ៖**
```
Traditional for loop:
1. The Matrix
2. Inception
3. Interstellar
For...of loop (uppercase):
THE MATRIX
INCEPTION
INTERSTELLAR
Character count:
Total characters across all titles: 42
```
### លំហាត់ ៤៖ ការរើសតម្លៃទិន្នន័យ (កម្រិតខ្ពស់)
បង្កើតកម្មវិធីមួយដែលដំណើរការអារេមួយដែលមានវត្ថុតំណាងឱ្យសិស្ស។
**តម្រូវការៈ**
- បង្កើតអារេដែលមានវត្ថុសិស្សយ៉ាងហោចណាស់ 5 ដែលមានគុណលក្ខណៈៈ `name`, `age`, `grade`
- ប្រើរង្វិលដើម្បីស្វែងរកសិស្សដែលមានអាយុ 18 ឆ្នាំ ឬច្រើនជាង
- គណនាកម្រិតជាប់តម្រូវនៃពិន្ទុសរុបរបស់សិស្សទាំងអស់
- បង្កើតអារេថ្មីដែលមានតែសិស្សដែលមានពិន្ទុច្រើនជាង 85 តែប៉ុណ្ណោះ
**រចនាសម្ព័ន្ធគំរូ៖**
```javascript
const students = [
{ name: "Alice", age: 17, grade: 92 },
{ name: "Bob", age: 18, grade: 84 },
// បន្ថែមសិស្សបន្ថែម...
];
```
## ការសាកល្បងកូដរបស់អ្នក
សាកល្បងកម្មវិធីរបស់អ្នកដោយ៖
1. រត់លំហាត់នីមួយៗនៅលើកុងសូលរបស់ឧបករណ៍រុករក
2. ពិនិត្យមើលលទ្ធផលត្រូវតាមការរំពឹង
3. សាកល្បងជាមួយតម្លៃទិន្នន័យផ្សេងៗ
4. ពិនិត្យថាកូដរបស់អ្នកអាចដោះស្រាយករណីជ្រោះ (អារេ គ្មានធាតុ ឬ មានធាតុតែមួយ) បាន
## គោលការណ៍ដាក់ស្នើ
បញ្ចូលអ្វីខាងក្រោមក្នុងការដាក់ស្នើរបស់អ្នក៖
- កូដ JavaScript ដែលមានមតិយោបល់លម្អិតសម្រាប់លំហាត់នីមួយៗ
- រូបថតអេក្រង់ ឬ លទ្ធផលអក្សរបង្ហាញកម្មវិធីរបស់អ្នកដំណើរការ
- ពណ៌នាខ្លីអំពីប្រភេទរង្វិលដែលអ្នកបានជ្រើសសម្រាប់កិច្ចការនីមួយៗ និងហេតុផល
## តារាងឥណទាន
| កម្រិតគោលការណ៍ | ល្អឥតខ្ចោះ (3 ពិន្ទុ) | ល្អគ្រប់គ្រាន់ (2 ពិន្ទុ) | ត្រូវព្យាយាមបន្ត (1 ពិន្ទុ) |
| -------- | -------------------- | ------------------- | --------------------------- |
| **មុខងារ** | លំហាត់ទាំងអស់បញ្ចប់បានត្រឹមត្រូវ រួមមានបញ្ហាបន្ថែម | លំហាត់ទាំងអស់ដែលតម្រូវបានធ្វើត្រឹមត្រូវ | លំហាត់ខ្លះមិនបញ្ចប់ ឬមានកំហុស |
| **គុណភាពកូដ** | កូដស្អាត ចំណាត់ថ្នាក់បានល្អ ជាមួយឈ្មោះអថេរពិពណ៌នា | កូដដំណើរការបាន តែអាចល្អជាងនេះ | កូដចម្លែក មិនងាយយល់ |
| **មតិយោបល់** | មានមតិយោបល់ពេញលេញពន្យល់ការគិត និងការសម្រេចចិត្ត | មានមតិយោបល់មូលដ្ឋាន | មានមតិយោបល់តិច ឬគ្មានទេ |
| **ប្រើរង្វិល** | បង្ហាញការយល់ដឹងល្អអំពីប្រភេទរង្វិលនានា | ប្រើរង្វិលបានត្រឹមត្រូវ ប៉ុន្តែមិនមានចំនួនបំផុត | ប្រើរង្វិលខុស ឬប្រើមិនមានប្រសិទ្ធភាព |
| **ការសាកល្បង** | មានភស្តុតាងសាកល្បងបានយ៉ាងពេញលេញជាមួយសេណារីយ៉ូច្រើន | បង្ហាញការសាកល្បងមូលដ្ឋាន | មានភស្តុតាងសាកល្បងតិច |
## សំណួរពិចារណា
បន្ទាប់ពីបញ្ចប់លំហាត់ សូមពិចារណា៖
1. ប្រភេទរង្វិលណាដែលអ្នកមានអារម្មណ៍ថាធម្មតាសម្រាប់ប្រើ និងហេតុអ្វី?
2. តើយ៉ាងដូចម្តេចដែលអ្នកប្រឈមមុខពេលធ្វើការជាមួយអារេ?
3. តើជំនាញទាំងនេះអាចអនុវត្តទៅលើគំរោងអភិវឌ្ឍវិបក្នុងពិភពពិតយ៉ាងដូចម្តេច?
4. តើអ្នកនឹងធ្វើការផ្លាស់ប្តូរអ្វីខ្លះ ប្រសិនបើត្រូវបង្កើនប្រសិទ្ធភាពកូដរបស់អ្នក?
---
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
**ការព្រមាន**៖
ឯកសារនេះត្រូវបានបំលែងភាសាដោយប្រើសេវាកម្មបំលែងភាសា AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំរកការពិតត្រឹមត្រូវ សូមយល់ថាការបំលែងផ្ទាល់ខ្លួនដោយម៉ាស៊ីនអាចមានកំហុសឬមិនមែនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសារបស់ខ្លួនគួរត្រូវបានគិតថាជាផ្នែកមានសុពលភាព។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំការបំលែងភាសាដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការវិវាទណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបំលែងភាសានេះឡើយ។
<!-- CO-OP TRANSLATOR DISCLAIMER END -->