យល់ដឹងពីភាសាស៊ី (C or C++)




ភាសាស៊ី រឺ C (ភាសាកម្មវិធីស៊ី) ជា​ភាសា​សម្រាប់​សរសេរ​កម្មវិធី​ព័ត៌មាន​វិទ្យា​ដែល​មាន​លទ្ធភាព​អាច​គ្រប់​គ្រង​ និង​ដាក់​ដំណើរ​ការ​លើ​​ប្រព័ន្ធ​គណនូបករណ៍​រួម​ទាំង​ប្រព័ន្ធ​អស្យាណូ​បាន​ទៀត​ផង។ **ភាសា C ត្រូវ​បាន​បង្កើត​ឡើង​ដោយ​លោក​ដេនីស រីឈី (Dennis Ritchie) នៅ​ចន្លោះ​ឆ្នាំ​១៩៦៩ និង ១៩៧៣ នៅ​បន្ទប់​ពិសោធ​របស់​Bell Telephone ។ ភាសា C ដំបូង​ឡើយ​ត្រូវ​បាន​បង្កើត​ឡើង​ដើម្បី​បង្កើត​ប្រព័ន្ធ​ប្រតិបត្តិ​ការ​យូនិក (Unix)ហើយ​ក៏​ត្រូវ​បាន​ប្រើ​ប្រាស់​ដើម្បី​បង្កើត​កម្មវិធី​ជា​ច្រើន​ដែល​ដំណើរ​ការ​នៅ​លើ​ប្រព័ន្ធ​ប្រតិបត្តិ​ការ​យូនិក រួម​ទាំង​កម្ម​វិធី​បម្លែង​កូដ​(Compiler) ផង​ដែរ។ ដូច្នេះ​ហើយ ភាសា C ក៏​ត្រូវ​បាន​គេ​ទទួល​ស្គាល់​ថា​ជា​ភាសា​សម្រាប់​បង្កើត​ប្រព័ន្ធ​ប្រតិបត្តិ​ការ (system programming language ) ។
1.  ប្រវត្តិសង្ខេប -1960​ គេបានបង្កើតភាសាសរសេរកម្មវិធីមួយឈ្មោះ ALGOL​ដែលជាមូលដ្ឋានគ្រឹះនៃរចនាសម្ព័ន្ធរបស់​កម្មវិធី​។-
-1967​ លោក Martin Rechards បានបង្កើតភាសាសរសេរកម្មវិធី CPL បន្ទាប់មកលោក Martin Rechart បានបង្កើតភាសាមួយទៀតឈ្មោះ BCPL ដែលជា Version ថ្មីរបស់ CPL
-1970​ លោក​ Ken Tomson ជាបុគ្គលិកម្នាក់នៅមន្ទីរពិសោធន៍ Bell បានរកវិធីវឌ្ឍន៍ពីភាសា BCPL មក​បង្កើតភាសា B ដែលជា Version ថ្មីរបស់ BCPL ដែលមានលក្ខណះច្បាស់លាស់ដើម្បីប្រើប្រាស់ក្នុង System Programming
-1972 មានបុគ្គលិករួមការងារម្នាក់របស់លោក Ken Tomson ឈ្មោះ​ Dennis Ritchie បានយកការងារជាក់​ស្តែងជាច្រើនក្នុងការវិវឌ្ឍន៍ភាសា BCPL ទៅ B មកបង្កើតភាសាមួយ ដែលយើងបានស្គាល់មកដល់​បច្ចុន្បន្ន គឺភាសា C
-1983 វិទ្យាស្ថាន ANSI បានបង្កើតគណះកម្មាធិការមួយ ដើម្បីកំណត់ភាសា C អោយមានលក្ខណះស្តង់ដា រួចកំណត់ឈ្មោះថា ANSI C
C / C++  ជាភាសាសរសេរកម្មវិធីមួយ ដែលមានភាពល្បីល្បាញដូចដែលយើងបានដឹង ក៏ព្រោះតែ​ប្រពន្ធ័ដំណើរការ UNIX គឺបង្កើតឡើងដោយភាសា Assembly ហើយស្ទើរតែទាំងអស់ត្រូវបានសរសេរ​ឡើងដោយភាសា C / C++ ។​ ក្នុងអំឡុងចុងទសវត្ស 1970 នៅប្រទេសជឿនលឿនមួយចំនួន ភាសា​ C / C++ ត្រូវបានគេផ្សព្វផ្សាយនិងបញ្ចូោក្នុងកម្មវិធីសិក្សានៅតាមអនុវិទ្យាល័យ វិទ្យាល័យ និង មហាវិទ្យាល័យ ព្រោះវាជាភាសាមួយដែលនៅកៀក UNIX និងមាន C Compiler ដែលអាចអោយយើង Compile កូដដែលយើងបានសរសេរ ។


​​​​2.  ការបង្កើតកម្មវិធីនៃភាសា C/C++
      *Editing
               ក្នុងដំណាក់កាលនេះគឺជាការបង្កើត Source Code របស់ C/C++ និងការដាក់ឈ្មោះអោយ Source Code ដែលបានសរសេររួច ។​ ជាទូទៅឈ្មោះរបស់ Source Code ដែលបានដាក់ឈ្មោះអោយ
មានលក្ខណះសំគាល់ ( xxxxxxx.c ) សំរាប់ C និង ( xxxxxx.cpp )​ សំរាប់ C++ ។
​​​​​​​               ក្នុងការសរសេរតំរូវអោយមានកម្មសរសេរកូដដូចជា Turbo C++/C , Code Block , Dev C++ .....
      *Compiling
               ក្នុងដំណាក់កាលនេះ Compiling បំលែង Source Code ទៅជា Machine Code ដែលកុំព្យូទ័រអាច​យល់បាន ព្រមទាំងស្វែងរក រួចបង្ហាញនូវភាព Error (ប្រសិនបើមាន) ។ ប្រសិបបើគ្មានភាព Error កើត​មានទេ នោះវានឹងបង្កើតបាន Object Code ដែលត្រូវផ្ទុកក្នុង File មួយផ្សេងទៀតគឺ Object File ដែលមានសំគាល់ ( xxxxxx.obj )
      *Linking
               ក្នុងដំណាក់កាលនេះ Linker បានផ្សំបញ្ចូលទៅ Object Code ជាមួយនិង​ Module Code ដែល​អានមកពី Program Library (ផ្នែកគាំទ្ររបស់ CPL) រួចបង្កើតជា Execut_able File ដែលមានលក្ខណះ​សំគាល់ ( xxxxxx.exe ) ។ ម្យ៉ាងវិញទៀត Linker ក៏អាចស្វែងរក និង បង្ហាញនូវភាព Error ផងដែរ​ ។
      *Execution
               ក្នុងដំណាក់កាលនេះ គឺជាដំណាក់កាលចុងក្រោយ នៃការដំណើរការកម្មវិធី ដែលដំណាក់កាលទាំងបីខាងលើ ដំណើរកាលបានដោយជោគជ័យ ។ ក៏ប៉ុន្តែក្នុងដំណាក់កាលនេះ ក៏មានភាព Error កើតមានផងដែរ ប្រសិនបើមានការខុសពីលក្ខខ័ណ្ឌកំណត់ណាមួយ ដូចជាការអោយតំលៃខុងពីលក្ខខ័ណ្ឌរបស់វា នេះគេហៅថា Logic Error ។

3. លំហាត់ឧទាហរណ៍

(១). ចូរបង្កើតកម្មវិធីនៃប្រមាណវិធីបូក ដក គុណ ចែកនៃទិន្នន័យចំនួនពិត a និង b :
#include void main (void) { double a, b; /* តាង a និង b ជាអញ្ញតិនៃអថេរចំនួនពិត*/ printf("input the value of a and b"); scanf("%lf %lf",&a, &b); /*បញ្ជូលតំលៃ a និង b*/ printf("Addition = %lf\n",a+b); /*ធ្វើប្រមាណវិធីបូករវាង a និង b*/ printf("subtraction = %lf\n",a-b); /*ធ្វើប្រមាណវិធីដករវាង a និង b*/ printf("multiplication = %lf\n",a*b); /*ធ្វើប្រមាណវិធីគុណរវាង a និង b*/ printf("Division = %lf\n",a/b); /*ធ្វើប្រមាណវិធីចែករវាង a និង b*/ }
(២) សរសេរកូដដើម្បីរកមធ្យភាគពិន្ទុ សិស្សដែលរៀន៤មុខវិជ្ជា​បង្ហាញលទ្ធផលជាប់​ រឺធ្លាក់​
#include #include #include void main() { float a,b,c,d,average;/*ប្រកាសអថេរតាង​ a,b,c,d ជាប្រភេទមុខវិជ្ជានិមួយៗ និង​ average ជាមធ្យមភាគពិន្ទុ*/ printf("please input a:\n b:\n c:\n d:\n"); scanf("%f%f%f%f",&a,&b,&c,&d); average=a+b+c+d/4; if (average>=50) { printf("you are passed exam!!"); printf("your score is %.2f:",average); } else { printf("you are failed exam!!"); printf("your score is %.2f:",average); } getch();/*សំរាប់ទប់screen មិនអោយ​back មកវិញ*/ }
(៣) សរសេរកម្មវិធីដោះស្រាយសមីការដឺក្រទី២​ មានមួយអញ្ញាត:
#include #include #include void main(){ float a,b,c,delta,x1,x2; printf("Please input value of a: "); scanf("%f",&a); printf("Please input value of b: "); scanf("%f",&b); printf("please input value of c: "); scanf("%f",&c); delta =(b*b)-(4*a*c); if (delta>0) { x1=-b-sqrt(delta)/2*a; //sqrt()ជាអនុគមន៍រឹសការេ x2=-b+sqrt(delta)/2*a; printf("result of x1 :%f\n",x1); printf("result of x2 : %f\n",x2); } else if (delta==o){ x1=-b/2*a; printf("result of x1=x2=%f",x1); } else { printf("no answer"); } getch(); }

Comments