លំហសិក្សាធិការកម្ពុជា
V1.0
កម្មវិធីនេះប្រើ "input()" និង "int()" ដើម្បីទទួលចំនួនគត់វិជ្ជមាន "n" ពីអ្នកប្រើ បន្ទាប់មកប្រើអញ្ញតិ "total" សម្រាប់រក្សាផលបូក និងអញ្ញតិ "i" សម្រាប់រាប់ចាប់ពីលេខ ១ ដល់ "n"។ ផ្នត់ធ្វើឡើងវិញ "while" នឹងបន្តគណនា "total = total + i" និងបង្កើន "i" ម្តងមួយឯកតា រហូតដល់ "i" ធំជាង "n" ហើយចុងក្រោយ "print()" បង្ហាញផលបូកសរុបនៅលើអេក្រង់។
ក្នុងការសរសេរកម្មវិធី យើងតែងតែជួបប្រទះកិច្ចការដែលត្រូវអនុវត្តដដែលៗជាច្រើនលើក។ ឧទាហរណ៍ យើងចង់បូកលេខចាប់ពី ១ រហូតដល់លេខណាមួយដែលអ្នកប្រើបញ្ចូល។ ប្រសិនបើយើងសរសេរប្រមាណវិធីបូកម្ដងមួយៗ វានឹងចំណាយពេល និងពិបាកកែប្រែ។
ដើម្បីដោះស្រាយបញ្ហានេះ Python ផ្ដល់នូវរចនាសម្ព័ន្ធធ្វើឡើងវិញដែលហៅថា Loop។ ក្នុងលំហាត់នេះ យើងប្រើ while loop ដើម្បីបូកលេខចាប់ពី ១ រហូតដល់តម្លៃ n។
ឧទាហរណ៍៖ ប្រសិនបើអ្នកប្រើបញ្ចូលលេខ 5 កម្មវិធីនឹងគណនាដូចខាងក្រោម៖
1 + 2 + 3 + 4 + 5 = 15ដូច្នេះ លទ្ធផលដែលកម្មវិធីបង្ហាញគឺ 15។

ក្រោយពេលបញ្ចប់លំហាត់នេះ អ្នកសិក្សាអាច៖
input() ដើម្បីទទួលទិន្នន័យពីអ្នកប្រើ។int() ដើម្បីបម្លែងទិន្នន័យទៅជាចំនួនគត់។while loop ដើម្បីអនុវត្តសេចក្ដីបញ្ជាដដែលៗ។<=។print()។អញ្ញតិ គឺជាឈ្មោះដែលត្រូវបានប្រើសម្រាប់រក្សាទុកទិន្នន័យនៅក្នុងអង្គចងចាំរបស់កុំព្យូទ័រ។ តម្លៃដែលរក្សាទុកក្នុងអញ្ញតិអាចប្រែប្រួលបានក្នុងពេលកម្មវិធីកំពុងដំណើរការ។
ពាក្យ អថេរ អាចយកមកពន្យល់លក្ខណៈរបស់អញ្ញតិថា៖
អញ្ញតិមានតម្លៃអថេរ ព្រោះតម្លៃរបស់វាអាចផ្លាស់ប្ដូរបាន។
ឧទាហរណ៍៖
total = 0
total = total + 5នៅដំបូង អញ្ញតិ total មានតម្លៃ 0។ បន្ទាប់មក តម្លៃរបស់វាត្រូវបានផ្លាស់ប្ដូរទៅជា 5។
នៅក្នុងកម្មវិធីនេះ មានអញ្ញតិសំខាន់ៗចំនួនបី៖
n រក្សាទុកលេខដែលអ្នកប្រើបញ្ចូល។total រក្សាទុកផលបូកសរុប។i រក្សាទុកលេខដែលកំពុងត្រូវបានយកទៅបូក។input() គឺជាមុខងារដែលប្រើសម្រាប់ទទួលទិន្នន័យពីអ្នកប្រើតាមរយៈក្តារចុច។
ឧទាហរណ៍៖
input("Enter a positive integer: ")នៅពេលកម្មវិធីដំណើរការ វានឹងបង្ហាញសារ៖
Enter a positive integer:ហើយរង់ចាំឱ្យអ្នកប្រើបញ្ចូលតម្លៃ។
គួរចងចាំថា ទិន្នន័យដែលទទួលបានពី input() មានប្រភេទជា អក្សរ ឬ str ទោះបីអ្នកប្រើបញ្ចូលលេខក៏ដោយ។
int() គឺជាមុខងារដែលប្រើសម្រាប់បម្លែងទិន្នន័យទៅជាចំនួនគត់។
ឧទាហរណ៍៖
int("5")លទ្ធផលគឺចំនួនគត់៖
5ក្នុងកម្មវិធីនេះ int() ត្រូវបានប្រើដើម្បីបម្លែងតម្លៃដែលទទួលបានពី input() ទៅជាចំនួនគត់ មុនពេលយកទៅគណនា។
while គឺជារចនាសម្ព័ន្ធធ្វើឡើងវិញមួយក្នុង Python។ វាអនុវត្តបណ្ដុំសេចក្ដីបញ្ជាដដែលៗ ដរាបណាលក្ខខណ្ឌរបស់វានៅតែមានតម្លៃពិត ឬ True។
ទម្រង់ទូទៅ៖
while condition:
statementsអត្ថន័យ៖
condition។statements។False។សញ្ញា <= មានន័យថា៖
តូចជាង ឬស្មើ
ឧទាហរណ៍៖
i <= nមានន័យថា តើតម្លៃរបស់ i តូចជាង ឬស្មើនឹងតម្លៃរបស់ n ដែរឬទេ?
ប្រសិនបើពិត while loop នឹងបន្តដំណើរការ។ ប្រសិនបើមិនពិត វានឹងឈប់។
print() គឺជាមុខងារដែលប្រើសម្រាប់បង្ហាញអត្ថបទ ឬលទ្ធផលនៅលើអេក្រង់។
ឧទាហរណ៍៖
print("The sum is:", total)វាបង្ហាញឃ្លា "The sum is:" និងតម្លៃដែលរក្សាទុកនៅក្នុងអញ្ញតិ total។
# This program calculates the sum of
# numbers from 1 to n.
n = int(input("Enter a positive integer: "))
total = 0
i = 1
while i <= n:
total = total + i
i = i + 1
print("The sum is:", total)# This program calculates the sum ofបន្ទាត់នេះជាមតិយោបល់ ឬ Comment។
សញ្ញា # បញ្ជាក់ថា អត្ថបទដែលនៅពីក្រោយវាមិនមែនជាសេចក្ដីបញ្ជាដែល Python ត្រូវអនុវត្តទេ។ វាត្រូវបានសរសេរសម្រាប់ជួយឱ្យអ្នកអានកូដយល់ពីគោលបំណងរបស់កម្មវិធី។
អត្ថន័យរបស់បន្ទាត់នេះគឺ៖
កម្មវិធីនេះគណនាផលបូកនៃលេខ។
# numbers from 1 to n.បន្ទាត់នេះក៏ជាមតិយោបល់ដែរ។ វាបន្តពន្យល់ថា កម្មវិធីនឹងគណនាផលបូកលេខចាប់ពី 1 រហូតដល់ n។
អញ្ញតិ n តំណាងឱ្យលេខចុងក្រោយដែលអ្នកប្រើចង់ឱ្យកម្មវិធីគណនា។
n = int(input("Enter a positive integer: "))បន្ទាត់នេះមានមុខងារសំខាន់បី៖
input("Enter a positive integer: ")កម្មវិធីបង្ហាញសារ៖
Enter a positive integer:បន្ទាប់មក វារង់ចាំឱ្យអ្នកប្រើបញ្ចូលលេខ។
int(...)ដោយសារ input() ទទួលទិន្នន័យជាប្រភេទអក្សរ str ដូច្នេះ int() ត្រូវបានប្រើដើម្បីបម្លែងទិន្នន័យនោះទៅជាចំនួនគត់។
ឧទាហរណ៍ អ្នកប្រើបញ្ចូល៖
5ដំបូង វាត្រូវបានទទួលជា "5"។ បន្ទាប់មក int() បម្លែង "5" ទៅជា 5។
n =តម្លៃដែលបានបម្លែងរួចត្រូវបានរក្សាទុកក្នុងអញ្ញតិ n។
ប្រសិនបើអ្នកប្រើបញ្ចូល 5 នោះ៖
n = 5total = 0បន្ទាត់នេះបង្កើតអញ្ញតិឈ្មោះ total និងកំណត់តម្លៃដំបូងរបស់វាស្មើនឹង 0។
អញ្ញតិ total ប្រើសម្រាប់រក្សាទុកផលបូកសរុប។
យើងចាប់ផ្ដើមពី 0 ព្រោះនៅមុនពេលធ្វើការបូក កម្មវិធីមិនទាន់មានផលបូកណាមួយនៅឡើយទេ។
ក្នុងពេល while loop ដំណើរការ តម្លៃរបស់ total នឹងអថេរ ឬផ្លាស់ប្ដូរជាបន្តបន្ទាប់។
ឧទាហរណ៍៖
0 → 1 → 3 → 6 → 10 → 15i = 1បន្ទាត់នេះបង្កើតអញ្ញតិឈ្មោះ i និងកំណត់តម្លៃដំបូងស្មើនឹង 1។
អញ្ញតិ i ប្រើសម្រាប់រាប់លេខចាប់ពី 1 រហូតដល់ n។
យើងចាប់ផ្ដើមពី 1 ព្រោះលំហាត់តម្រូវឱ្យគណនាផលបូកចាប់ពីលេខ 1។
ឧទាហរណ៍ បើ n = 5 អញ្ញតិ i នឹងមានតម្លៃ៖
1, 2, 3, 4, 5while i <= n:បន្ទាត់នេះបង្កើតផ្នត់ធ្វើឡើងវិញ while។
លក្ខខណ្ឌគឺ៖
i <= nមានន័យថា៖
ដរាបណាតម្លៃរបស់
iតូចជាង ឬស្មើនឹងnសូមបន្តអនុវត្តសេចក្ដីបញ្ជានៅខាងក្នុង while loop។
សញ្ញា : នៅខាងចុងបន្ទាត់ បញ្ជាក់ថា បណ្ដុំសេចក្ដីបញ្ជារបស់ while ចាប់ផ្ដើមនៅបន្ទាត់បន្ទាប់។
បន្ទាត់ដែលស្ថិតនៅក្នុង while ត្រូវចូលបន្ទាត់ ឬ Indentation។
total = total + iបន្ទាត់នេះយកតម្លៃបច្ចុប្បន្នរបស់ total បូកជាមួយតម្លៃបច្ចុប្បន្នរបស់ i ហើយរក្សាទុកលទ្ធផលថ្មីត្រឡប់ទៅក្នុងអញ្ញតិ total។
រូបមន្ត៖
ផលបូកថ្មី = ផលបូកចាស់ + លេខបច្ចុប្បន្នឧទាហរណ៍ នៅជុំដំបូង៖
total = 0
i = 1ដូច្នេះ៖
total = total + i
total = 0 + 1
total = 1នៅជុំទីពីរ៖
total = 1
i = 2ដូច្នេះ៖
total = 1 + 2
total = 3តម្លៃរបស់ total នឹងត្រូវបានធ្វើបច្ចុប្បន្នភាពនៅរាល់ជុំនៃ while loop។
i = i + 1បន្ទាត់នេះបង្កើនតម្លៃរបស់អញ្ញតិ i ចំនួនមួយឯកតា។
រូបមន្ត៖
តម្លៃថ្មីរបស់ i = តម្លៃចាស់របស់ i + 1ឧទាហរណ៍៖
i = 1 → 2
i = 2 → 3
i = 3 → 4
i = 4 → 5
i = 5 → 6បន្ទាត់នេះមានសារៈសំខាន់ណាស់ ព្រោះវាធ្វើឱ្យអញ្ញតិ i ផ្លាស់ប្ដូរទៅលេខបន្ទាប់។
ប្រសិនបើមិនមានបន្ទាត់នេះទេ តម្លៃ i នឹងនៅតែស្មើនឹង 1 ហើយលក្ខខណ្ឌ i <= n នឹងនៅតែពិតជានិច្ច។ ជាលទ្ធផល while loop នឹងដំណើរការមិនចេះចប់។ បញ្ហានេះហៅថា Infinite Loop ឬផ្នត់ធ្វើឡើងវិញគ្មានទីបញ្ចប់។
print("The sum is:", total)បន្ទាត់នេះដំណើរការក្រោយពេល while loop បានបញ្ចប់។
វាបង្ហាញ៖
"The sum is:"totalប្រសិនបើ total = 15 លទ្ធផលគឺ៖
The sum is: 15បន្ទាត់នេះមិនបានចូលបន្ទាត់ក្រោម while ទេ។ ដូច្នេះ វាអនុវត្តតែមួយលើកប៉ុណ្ណោះ ក្រោយពេលការគណនាទាំងអស់បានបញ្ចប់។
សន្មតថា អ្នកប្រើបញ្ចូលលេខ៖
5តម្លៃដំបូង៖
n = 5
total = 0
i = 1ពិនិត្យលក្ខខណ្ឌ៖
1 <= 5 → ពិតគណនា៖
total = 0 + 1 = 1
i = 1 + 1 = 2ពិនិត្យលក្ខខណ្ឌ៖
2 <= 5 → ពិតគណនា៖
total = 1 + 2 = 3
i = 2 + 1 = 3ពិនិត្យលក្ខខណ្ឌ៖
3 <= 5 → ពិតគណនា៖
total = 3 + 3 = 6
i = 3 + 1 = 4ពិនិត្យលក្ខខណ្ឌ៖
4 <= 5 → ពិតគណនា៖
total = 6 + 4 = 10
i = 4 + 1 = 5ពិនិត្យលក្ខខណ្ឌ៖
5 <= 5 → ពិតគណនា៖
total = 10 + 5 = 15
i = 5 + 1 = 66 <= 5 → មិនពិតដោយសារលក្ខខណ្ឌមិនពិត while loop ត្រូវបានបញ្ចប់។
បន្ទាប់មកកម្មវិធីអនុវត្ត៖
print("The sum is:", total)លទ្ធផល៖
The sum is: 15នៅពេល n = 5 ការផ្លាស់ប្ដូរតម្លៃអញ្ញតិមានដូចខាងក្រោម៖
| ជុំ | តម្លៃ i មុនបូក | តម្លៃ total មុនបូក | ប្រមាណវិធី | តម្លៃ total ថ្មី | តម្លៃ i ថ្មី |
|---|---|---|---|---|---|
| ១ | ១ | ០ | 0 + 1 | ១ | ២ |
| ២ | ២ | ១ | 1 + 2 | ៣ | ៣ |
| ៣ | ៣ | ៣ | 3 + 3 | ៦ | ៤ |
| ៤ | ៤ | ៦ | 6 + 4 | ១០ | ៥ |
| ៥ | ៥ | ១០ | 10 + 5 | ១៥ | ៦ |
នៅពេល i ក្លាយជា 6 លក្ខខណ្ឌ 6 <= 5 មិនពិត ដូច្នេះផ្នត់ធ្វើឡើងវិញត្រូវបានបញ្ចប់។
កម្មវិធីអនុវត្តតាមលំដាប់ខាងក្រោម៖
ចាប់ផ្ដើម
↓
ទទួលលេខ n ពីអ្នកប្រើ
↓
កំណត់ total = 0
↓
កំណត់ i = 1
↓
ពិនិត្យ i <= n
↓
បើពិត
↓
total = total + i
↓
i = i + 1
↓
ត្រឡប់ទៅពិនិត្យ i <= n
↓
បើមិនពិត
↓
បង្ហាញ total
↓
បញ្ចប់អ្នកប្រើបញ្ចូល៖
Enter a positive integer: 5កម្មវិធីគណនា៖
1 + 2 + 3 + 4 + 5លទ្ធផល៖
The sum is: 15អ្នកប្រើបញ្ចូល៖
Enter a positive integer: 10កម្មវិធីគណនា៖
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10លទ្ធផល៖
The sum is: 55អ្នកប្រើបញ្ចូល៖
Enter a positive integer: 1កម្មវិធីគណនា៖
1លទ្ធផល៖
The sum is: 1ប្រសិនបើអ្នកប្រើបញ្ចូល៖
fiveint() មិនអាចបម្លែងពាក្យ five ទៅជាចំនួនគត់បានទេ។ កម្មវិធីនឹងបង្ហាញកំហុស ValueError។
ប្រសិនបើដកបន្ទាត់នេះចេញ៖
i = i + 1កម្មវិធីអាចធ្លាក់ទៅក្នុង Infinite Loop ព្រោះតម្លៃ i មិនផ្លាស់ប្ដូរ។
កូដនៅក្នុង while ត្រូវមានការចូលបន្ទាត់៖
while i <= n:
total = total + i
i = i + 1ប្រសិនបើមិនចូលបន្ទាត់ត្រឹមត្រូវ Python នឹងបង្ហាញ IndentationError។
កម្មវិធីនេះត្រូវបានរៀបចំសម្រាប់ចំនួនគត់វិជ្ជមាន។ ប្រសិនបើអ្នកប្រើបញ្ចូល 0 ឬលេខអវិជ្ជមាន លក្ខខណ្ឌ i <= n នឹងមិនពិតតាំងពីដំបូង ហើយលទ្ធផលនឹងស្មើ 0។
ដើម្បីធានាថាអ្នកប្រើបញ្ចូលតែចំនួនគត់វិជ្ជមាន អាចកែប្រែកូដដូចខាងក្រោម៖
n = int(input("Enter a positive integer: "))
if n > 0:
total = 0
i = 1
while i <= n:
total = total + i
i = i + 1
print("The sum is:", total)
else:
print("Please enter a number greater than zero.")នៅទីនេះ លក្ខខណ្ឌ៖
if n > 0:ពិនិត្យថា n ធំជាងសូន្យដែរឬទេ។
n > 0 កម្មវិធីនឹងធ្វើការគណនា។n <= 0 កម្មវិធីនឹងបង្ហាញសារឱ្យអ្នកប្រើបញ្ចូលលេខត្រឹមត្រូវ។បន្ទាត់៖
total = total + iអាចសរសេរជាទម្រង់ខ្លីថា៖
total += iហើយបន្ទាត់៖
i = i + 1អាចសរសេរជា៖
i += 1ដូច្នេះ កូដអាចកាត់ឱ្យខ្លីបានដូចនេះ៖
n = int(input("Enter a positive integer: "))
total = 0
i = 1
while i <= n:
total += i
i += 1
print("The sum is:", total)កូដទាំងពីរកំណែផ្ដល់លទ្ធផលដូចគ្នា។
១. តើអញ្ញតិ n ប្រើសម្រាប់រក្សាទុកអ្វី?
២. ហេតុអ្វីបានជាត្រូវប្រើ int() ជាមួយ input()?
៣. ហេតុអ្វីបានជាកំណត់ total = 0 នៅដំបូង?
៤. ហេតុអ្វីបានជាកំណត់ i = 1?
៥. តើលក្ខខណ្ឌ i <= n មានន័យដូចម្ដេច?
៦. តើបន្ទាត់ total = total + i ធ្វើអ្វី?
៧. តើបន្ទាត់ i = i + 1 មានសារៈសំខាន់ដូចម្ដេច?
៨. តើមានអ្វីកើតឡើង ប្រសិនបើមិនបង្កើនតម្លៃរបស់ i?
៩. តើ print() មានតួនាទីអ្វី?
១០. ប្រសិនបើអ្នកប្រើបញ្ចូល 4 តើលទ្ធផលស្មើប៉ុន្មាន?
កែប្រែកម្មវិធីឱ្យគណនាផលបូកពីលេខ 1 ដល់ 20 ដោយមិនទទួលតម្លៃពីអ្នកប្រើ។
កែប្រែកម្មវិធីឱ្យគណនាផលបូកតែលេខគូពី 1 ដល់ n។
ឧទាហរណ៍ បើ n = 10៖
2 + 4 + 6 + 8 + 10 = 30កែប្រែកម្មវិធីឱ្យគណនាផលបូកតែលេខសេសពី 1 ដល់ n។
ឧទាហរណ៍ បើ n = 9៖
1 + 3 + 5 + 7 + 9 = 25កែប្រែកម្មវិធីឱ្យបង្ហាញលេខនីមួយៗ មុនពេលបង្ហាញផលបូកសរុប។
ឧទាហរណ៍៖
1
2
3
4
5
The sum is: 15កែប្រែកម្មវិធីឱ្យអ្នកប្រើបញ្ចូលលេខចាប់ផ្ដើម និងលេខបញ្ចប់។
ឧទាហរណ៍៖
Start number: 3
End number: 7កម្មវិធីត្រូវគណនា៖
3 + 4 + 5 + 6 + 7 = 25កម្មវិធីនេះបង្ហាញពីការប្រើប្រាស់មូលដ្ឋានសំខាន់ៗក្នុង Python រួមមាន អញ្ញតិ Variable មុខងារ input() មុខងារ int() ផ្នត់ធ្វើឡើងវិញ while លក្ខខណ្ឌប្រៀបធៀប និងមុខងារ print()។
អញ្ញតិ n រក្សាទុកលេខចុងក្រោយ អញ្ញតិ i ប្រើសម្រាប់រាប់លេខ និងអញ្ញតិ total ប្រើសម្រាប់ប្រមូលផលបូក។ តម្លៃរបស់អញ្ញតិទាំងនេះមានលក្ខណៈអថេរ ព្រោះវាអាចផ្លាស់ប្ដូរនៅពេលកម្មវិធីកំពុងដំណើរការ។
តាមរយៈការប្រើ while loop កម្មវិធីអាចគណនាផលបូកលេខជាច្រើនដោយមិនចាំបាច់សរសេរសេចក្ដីបញ្ជាបូកម្ដងហើយម្ដងទៀត។
មិនទាន់មានមតិយោបល់ — ក្លាយជាអ្នកដំបូង!