I. សេចក្ដីផ្ដើម
មេរៀននេះណែនាំអោយអ្នកស្វែងយល់អំពី Data Structures និង Algorithms និងអំពីតួនាទី
ហើយទំនាក់ទំនងរបស់វានៅក្នុងកម្មវិធីនិង ការស្វែងយល់អំពី Structures Language ដែលបាន
យកមកប្រើសំរាប់អនុវត្តន៏លើ Structures របស់ Algorithms ។
សំរាប់ចំណោទបញ្ហាដែលត្រូវដោះស្រាយជាមូលដ្ឋាន Machine ចាំបាច់ត្រូវស្វែងយល់អំពី
Data Structures និង Algorithms ជាមុនសិនពីព្រោះ Data Structures និង Algorithms ជាមូលដ្ឋាន
របស់ Programming ។ យើងមាន Structures ដែលបានបង្កើតឡើងដោយលេាក Nicklaus Wirth
បានសរសេរ Data Structure + Algorithms = Program មានន័យថា :
ចំណោទបញ្ហា -> រកដំណោះស្រាយ និងរបៀបដោះស្រាយ -> សរសេរកម្មវិធី
- Program : គឺជាសំនុំមួយសំរាប់ផ្ទុករាល់គំនិតយោបល់របស់អ្នកសរសេរកម្មវិធីទៅតាមប្រពន្ធ័
កំណត់របស់ម៉ាសុីនដែលក្រោយពីអនុវត្តន៏ទៅតាមដំណើរការ Process របស់ម៉ាសីុនយើងនឹង
ទទួលបានលទ្ធផលដែលយើងចង់បាន។
- Data Structures : គឺជាការរៀបចំ Data របស់អ្នកសរសេរ Program ទៅតាម Code របស់ម៉ាសីុន
និង រាល់ Data ដែលយើងអោយរួចទាញយកមកប្រើប្រាស់វិញក្នុងគោលបំណងអ្វីមួយ។
និយាយអោយខ្លី
data structures : គឺជាការបញ្ចូល និង បញ្ចេញ ទិន្នន័យ ( Input & Output )ទៅតាម
Code របស់ម៉ាសីុន
Input = បញ្ចូលទិន្នន័យ
Output = បញ្ចេញទិន្នន័យ
- Algorithms : គឺជាជំហាននៃការដោះស្រាយបញ្ហាទៅតាមដំណាក់កាលៗ ជា Flowchart និង
ម្យ៉ាងទៀត Algorithms គឺជាខ្សែរ Statement ដ៏ច្បាស់សាស់ដែលក្រោយពីការកំនត់ជាក់លាក់រហូត
យើងទទួលបានលទ្ធផលដែលយើងចង់បាន។ យើងមាន Structures ទូទៅសំរាប់ស្វែងយល់បញ្ហា
Algorithms បន្ថែមទៀតដែលត្រូវបានបង្កើតឡើងដោយលោក Kowalski ដែលជាអ្នកបង្កើតកម្មវីធី
Logic ត្រូវបានសរសេរ :
Algorithms = Logic + Control
- Logic : គឺជាចំណេះដឹងមូលដ្ឋានប្រើសំរាប់កំនត់អត្ថន័យអោយ Algorithms ផ្នែក Logic ជាអ្នក
ដឹង Algorithms ត្រូវធ្វើ។
និយាយអោយខ្លី : Logic : គឺជាការដោះស្រាយតាមបែបគណិតវិទ្យា ហើយការដោះស្រាយ
នោះអាចយកទៅប្រើក្នុងការសរសេរ Code បាន។
- Control : គឺជាវិធីសាស្រ្តដោះស្រាយលើផ្នែក Logic វាអោយដឹងថា Algorithms ត្រូវធ្វើ
ដូចម្ដេច។
និយាយអោយខ្លី : Control : គឺជាការដោះស្រាយតាមបែបសំរាយព្យល់ជាអក្សរ
ហើយការដោះស្រាយនោះមិនអាចយកទៅប្រើក្នុង
ការសរសេរ Code បានទេ។
ឧទាហរណ៏ : ចូលលើកឡើងអំពីលក្ខណរបស់ Logic និង Control របស់ចំណោទ n ! ។
យើងបាន
Logic : របស់បញ្ហា n! =1 * 2 * 3 * ... n
Control : គុណបង្រួមបណ្ដាលលេខពី 1 ដល់ n ដាក់ក្នុងអថេរណាមួយ
II. បញ្ហាទំនាក់ទំនងមួយចំនួនរបស់ Data Structures
- Data Structure សំដែងការ Process នៅក្នុង Memory អោយឈ្មោះថា Storage Structures- Predefine Data Structure គឺជា Structure ដែលមានស្រាប់នៅក្នុងភាសាកម្មវិធីដូចជា
Array structure ។
III. តួនាទីនិងទំនាក់ទំនងគ្នារវាង Data Structures និង Algorithms
នៅពេលដោះស្រាយជាមួយ Machine ជាដំបូងយើងត្រូវគិតដល់បញ្ហា Data Structures និង Algorithms របស់បញ្ហានោះ ។
Algorithms មានតួនាទីធ្វើការ Process របស់បញ្ហា រីឯ Data Structures មានតួនាទីធ្វើការ
Process ដោយជាមួយ Machine ដើម្បីនាំដល់លទ្ធផលរបស់ចំណោទបញ្ហា ។
ទំនាក់ទំនងគ្នារវាង Data Structures និង Algorithms គឺមានទំនាក់ទំនងគ្នាយ៉ាងស្និតជាមួយ
គ្នា មានន័យថាពេលយើងនិយាយដល់បញ្ហា Data ត្រូវថា Data នោះបានជិះឥទ្ធិពលលើ
Algorithms ណាមួយហើយនៅពេលគិតដល់បញ្ហា Algorithms ត្រូវដឹងថា Algorithms នោះបាន
ជិះឥទ្ធិពលលើ Data ណាមួយដើម្បីនាំដល់លទ្ធផលចង់បាន។
IV. ភាសាសំរាប់ Algorithms
- Assignment Statement
V = E ; ដែល ( V = variable , E = Expression )
អថេរ E ជាអ្នកផ្ដល់តំលៃអោយអថេរ V
ឧទាហរណ៏ : X = Y , X = 20 , X = Y + 10 ;
- Data type : គឺជាប្រភេទ Data ប្រើសំរាប់ប្រកាស់ប្រាប់ពីលក្ខណះអថេរ។( ការប្រកាស់អញ្ញាត្តិ )
Simple data type : int, float, char, long, double
ចប់មេរៀនទី ២