Pages

មេរៀនទី ២ ( Data Structures និង ​ Algorithms )

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

ចប់មេរៀនទី ២