ភាសាស៊ី ឬ C (ភាសាកម្មវិធីស៊ី) ជាភាសាសម្រាប់សរសេរកម្មវិធីព័ត៌មានវិទ្យាដែលមានលទ្ធភាពអាចគ្រប់គ្រង និងដាក់ដំណើរការលើប្រព័ន្ធគណនូបករណ៍រួមទាំងប្រព័ន្ធអស្យាណូបានទៀតផង។ **ភាសា C ត្រូវបានបង្កើតឡើងដោយលោកដេនីស រីឈី (Dennis Ritchie) នៅចន្លោះឆ្នាំ១៩៦៩ និង ១៩៧៣ នៅបន្ទប់ពិសោធរបស់Bell Telephone ។ ភាសា C ដំបូងឡើយត្រូវបានបង្កើតឡើងដើម្បីបង្កើតប្រព័ន្ធប្រតិបត្តិការយូនិក (Unix)ហើយក៏ត្រូវបានប្រើប្រាស់ដើម្បីបង្កើតកម្មវិធីជាច្រើនដែលដំណើរការនៅលើប្រព័ន្ធប្រតិបត្តិការយូនិក រួមទាំងកម្មវិធីបម្លែងកូដ(Compiler) ផងដែរ។ ដូច្នេះហើយ ភាសា C ក៏ត្រូវបានគេទទួលស្គាល់ថាជាភាសាសម្រាប់បង្កើតប្រព័ន្ធប្រតិបត្តិការ (system programming language )។
ភាសា C បានបង្កើតឡើងដោយលោកដេនីស រីឈី (Dennis Ritchie) នៅចន្លោះឆ្នាំ ១៩៦៩ និង ១៩៧៣ នៅបន្ទប់ពិសោធរបស់Bell Telephone នឹងមានសន្ទុះខ្លាំងនៅឆ្នាំ ១៩៧២ នេះបើតាមសំដីរបស់លោកដេនីស រីឈី។ គេបានដាក់ឈ្មោះភាសានេះថាជា "ភាសា C" ព្រោះវាត្រូវបានបង្កើតឡើងដោយប្រើប្រាស់លក្ខណៈរបស់ភាសា B បង្កើតឡើងដោយលោក Ken Thompson។ ភាសា B គឺត្រូវបានបង្កើតឡើងដោយពឹងផ្អែកលើលក្ខណៈរបស់ភាសា BCPL ដែលបានបង្កើតឡើងដោយលោក ម៉ាធីន រីឆាត (Martin Richards)។ ដូច្នេះ ភាសា C ទទួលលក្ខណៈដោយប្រយោលអំពីភាសា BCPL តាមរយៈភាសា B។
ភាសា C ត្រូវបានបង្កើតដោយមានលក្ខណៈជិតស្និតនឹងការបង្កើតប្រព័ន្ធប្រតិបត្តិការយូនិក (Unix) ដែលតំបូងឡើយប្រព័ន្ធប្រតិបត្តិការយូនិក (Unix)នេះបានបង្កើតដោយកូដបណ្ដុំ(assembly) ប៉ុណ្ណោះ សម្រាប់ដាក់ប្រតិបត្តិការម៉ាស៊ីន PDP-7 ហើយដែលក្រោយមកក៏ត្រូវបានប្រើប្រាស់ដើម្បីដាក់ប្រតិបត្តិការម៉ាស៊ីន PDP-11។ នៅឆ្នាំ ១៩៧៣ ភាសា C បានបន្ថែមនូវរចនាសម្ព័ន្ធ(struct type)និងត្រូវបានយកទៅប្រើប្រាស់សម្រាប់សរសេរស្នូលរបស់ប្រព័ន្ធប្រតិបត្តិការយូនិក (Unix Kenal) ហើយដែលបានក្លាយជាភាសាសរសេរកម្មវិធីព័ត៌មានវិទ្យាទីមួយដែលត្រូវបានគេយកទៅប្រើប្រាស់សម្រាប់បង្កើតប្រព័ន្ធប្រតិបត្តិការជំនួសការសរសេរបែបកូដបណ្ដុំ (assembly)។
នៅឆ្នាំ ១៩៧៨ លោក ប្រ៊ីយ៉ាន ឃ័រនីញ៉ាន (Brian Kernighan) និង ដេនីស រីឆាត (Dennis Ritchie) បានបោះពុម្ពសៀវភៅ The C Programming Language លើកទីមួយ ដែលក្រោយមកបានគេហៅថា "K&R"។
នៅឆ្នាំ ១៩៨៣ វិទ្យាស្ថានបទដ្ឋានជាតិនៃសហរដ្ឋអាមេរិច American National Standards Institute (ANSI) បានបង្កើតបទដ្ឋានថ្មីសម្រាប់ភាសា C ហើយនៅឆ្នាំ ១៩៨៩ ក៏ត្រូវបានទទួលស្គាល់ជាបទដ្ឋាន ANSI X3.159-1989 "Programming Language C" ដែលត្រូវបានហៅជាទូទៅថា ANSI C ឫបទដ្ឋាន C, ឫ C89។
នៅឆ្នាំ១៩៩០ បទដ្ឋាន ANSI C ត្រូវបានទទួលស្គាល់ដោយសហព័ន្ធបទដ្ឋានអន្តរជាតិ ISO ហើយដែលត្រូវបានគេហៅថា "C89" ឫ "C90"។
ក្រោយមកបទដ្ឋាន"C89" ក៏ត្រូវបានកែប្រែនិងបញ្ចូលបន្ថែមលក្ខណៈថ្មី និងត្រូវបានទទួលស្គាល់ដោយប្រព័ន្ធបទដ្ឋានអន្តរជាតិ ISO (ISO/IEC 9899:1999)នៅឆ្នាំ ១៩៩៩ដែលត្រូវបានស្គាល់ថា C99 ។
ភាសា C មានលក្ខណៈជាលំដាប់នៃប្រតិបត្តិការ (Procedural) និងត្រូវបានបង្កើតឡើងអោយមានជាបទដ្ឋាន ដែលអាចដាក់អោយប្រតិបត្តិការនៅលើគ្រប់ប្រព័ន្ធប្រតិបត្តិការទាំងអស់ (Linux, Mac, Window)។ ភាសា C ត្រូវការប្រើប្រាស់កម្មវិធីបម្លែងកូដ (compiler)អោយទៅជាកូដម៉ាស៊ីនដែលអាចដាក់អោយប្រតិបត្តិការលើម៉ាស៊ីនបាន។ ដូច្នេះ ភាសានេះត្រូវបានចាត់ចូលក្នុងជំពូកភាសាកូដបម្លែង (compiler) ដែលខុសពីជំពូកភាសាកូដបកប្រែ (Interpreter)។
ភាសាC មានលក្ខណៈពិសេសៗដូចជា
បណ្ដុំឯកសារនៅក្នុងភាសា C អាចបែងចែកជាពីរផ្នែក គឺផ្នែកនៅក្នុងបណ្ដុំឯកសារ .h និង បណ្ដុំឯកសារ .c។ បណ្ដុំឯកសារ .h គឺប្រើប្រាស់ដើម្បីសរសេរគ្រោងរបស់កម្មវិធីដែលមានដូចជាការប្រកាសអញ្ញាត(variable) ការបង្កើត សម្ព័ន្ធទិន្នន័យ (struct type) និងឈ្មោះរបស់ប្រតិបត្តិការ (Function) ។ល។ និង ។ល។ ក្រៅពីនេះ ការប្រើប្រាស់បណ្ដុំឯកសារ .h នេះ អាចផ្ដល់លទ្ធភាពក្នុងការបង្កើតជាប្រតិបត្តិការ (Function) ដែលមានលក្ខណៈជាបណ្ណាល័យមានស្រាប់ ឫ ការបង្កើតបណ្ណាល័យថ្មីសំរាប់ប្រើប្រាស់ក្នុងការបង្កើតកម្មវិធីឯទៀត។ បណ្ដុំឯកសារ .c គឺប្រើប្រាស់សម្រាប់សរសេរបញ្ចូលកូដទាំងអស់។ ផ្នែកខាងលើនៃកូដដែលសរសេរនៅក្នុងឯកសារ .c គឺប្រើប្រាស់សម្រាប់ភ្ជាប់ទៅបណ្ដុំឯកសារ .h ដើម្បីប្រើប្រាស់នូវរាល់គម្រោងទាំងអស់ដែលបានធ្វើស្រាប់នៅក្នុងបណ្ណាល័យនោះ។ ក្នុងភាសា c មានប្រតិបត្តិការចំណាប់ផ្ដើមមួយឈ្មោះ main ដែលជាចំណុចចាប់ផ្ដើមនែប្រតិបត្តិការនៅពេលដែលកម្មវិធីត្រូវបានដាក់អោយដំណើរការ។
ឧទាហរណ៍:
កម្មវិធី Hello world
#include int main( ) { printf("Hello, World!"); /* បង្ហាញ Hello, World!*/ return 0; }
ក្នុងឧទាហរណ៍ខាងលើនេះ
#include
ប្រើប្រាស់ដើម្បីភ្ជាប់ទៅបណ្ណាល័យដែលមានឈ្មោះ stdio(Standard Input/Output) ដែលមានស្រាប់នៅលើគ្រប់កំុព្យួទ័រ បណ្ណាល័យនេះមានអនុគមន៏មួយចំនួនដែលទាក់ទងនឹងការបញ្ចញបញ្ចូលតម្លៃ ។
printf("Hello, World!");
ជាអនុគមន៏មួយនៃអនុគមន៏ជាច្រើនទៀតដែលមានស្រាប់នៅក្នុង បណ្ណាល័យ(Library) Stdio ហើយមានមុខងារបង្ហាញនូវ តួអក្សរ(string) ។
(១). ចូរបង្កើតកម្មវិធីនៃប្រមាណវិធីបូក ដក គុណ ចែកនៃទិន្នន័យចំនួនពិត 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(); }
Loop ត្រូវបានគេប្រើដើម្បីអនុវត្តនូវកិច្ចការដដែលៗតាមលក្ខខណ្ឌដែលគេបានកំនត់។
ទំរង់ទូទៅរបស់ for loop គឺ:
for (initial; condition; update)
for (តំលៃចាប់ផ្តើម; លក្ខខណ្ឌ; ការប្រែប្រួលតំលែ)
ឧទាហរណ៍ដូចជា:
for (i=1; i<5; i++)
មានន័យថាតំលៃចាប់ផ្តើមរបស់i គឺ់i=1ហើយi នឹងកើនតំលៃរហុតដល់4។
ដោយសារi++ វាកើនតំលៃម្តង1ៗ iមិនអាចស្មើ 5 បានទេ ព្រោះi<5។
ឧទាហរណ៍ :
#include #include void main(){ clrscr(); int i; for (i=1; i<5; i++) printf("%d ",i); getch(); }
លទ្ធផលដែលទទួបានគឺ
1 2 3 4
សរសេរកម្មវិធីបង្ហាញតំលៃy ដោយy=x * 2ដោយបង្ហាញចាប់ពី០ដល់8ដោយប្រើfor loop:
#include<stdio.h> #include void main() { clrscr(); int x,y; for(x=0; x<5; x++) //x++ មានន័យថាxបញ្ចេញតំលៃហើយទើបកើនតំលៃ printf("y= %d ",x*2); //យើងអាចដាក់រូបមន្ត(x*2)ដោយមិនចាំបាច់សរសេរstatement(x=x*2) getch(); //wait for input }
លទ្ធផលដែលទទួលបាន
y=0 y=2 y=4 y=6 y=8
សរសេរកម្មវិធីបញ្ចេញតំលៃដោយប្រើ while loop:
#include #include void main() { int count; int answer; count=1; while (count<=5) { answer=count*2; printf("%d*2 =%d;",count,answer); count=count+1; } getch(); }
លទ្ទផលដែលទទួលបានគឺ
1*2=2;2*2=4;3*2=6;4*2=8;5*2=10;
switch ត្រូវបានគេប្រើ ដើម្បីជាជម្រើសក្នុងការជ្រើសយកមធ្យោបាយណាមួយ។
ទំរង់ទូទៅរបស់ switch គឺ៖
switch (variable) { case const1: statement; break; case const2: statement; break; ... case constn: statement; break; default: statement; }
ឧទាហរណ៍ៈ កម្មវិធីដែលអាចឲ្យអ្នកវាយបញ្ចូលពិន្ទុ បន្ទាប់មកវានឹងបង្ហាញនិទ្ទេស:
#include #include void main() { clrscr(); float score; char grade; printf("Input your score:"); scanf("%f",&score); switch(score/10) { /*(score/10) យកពិន្ទុសរុបចែកនឹង១០ */ case 10: case 9: grade='A'; break; /* 90-100 បង្ហាញនិទ្ទេសA ដោយមិនចាំបាច់ដាក់លក្ខខណ្ឌ នៅក្នុង case 10 ឡើយ*/ case 8: grade='B'; break; /* 80-89.99 បង្ហាញនិទ្ទេសB */ case 7: grade='C'; break; /* 70-79.99 បង្ហាញនិទ្ទេសC */ case 6: grade='D'; break; /* 60-69.99 បង្ហាញនិទ្ទេសD */ case 5: grade='E'; break; /* 50-59.99 បង្ហាញនិទ្ទេសE */ default: grade='F'; } printf("Your score is %f\n",score); printf("Your grade is %c",grade); getch(); }
This article uses material from the Wikipedia ភាសាខ្មែរ article ភាសាស៊ី, which is released under the Creative Commons Attribution-ShareAlike 3.0 license ("CC BY-SA 3.0"); additional terms may apply (view authors). ខ្លឹមសារអត្ថបទប្រើប្រាស់បានក្រោមអាជ្ញាបណ្ឌCC BY-SA 4.0 លើកលែងតែមានបញ្ជាក់ផ្សេងពីនោះ។ Images, videos and audio are available under their respective licenses.
®Wikipedia is a registered trademark of the Wiki Foundation, Inc. Wiki ភាសាខ្មែរ (DUHOCTRUNGQUOC.VN) is an independent company and has no affiliation with Wiki Foundation.