Widget Statis

Monday, April 18, 2016

មេរៀនទី១: អំពីភាសា C/C++

មេរៀនទី១អំពី​ភាសា C/C++
2
C C++
C
C++ ជា 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.  ទំរង់ទូទៅនៃភាសា C/C++
ឧទាហរណ៍
​​​#include<stdio.h>  ជា Library Function សំរាប់ភាសា C
#include<iostream> ជា Library Function សំរាប់ភាសា C++
using namespace std;
int x = 10;     ជាការប្រកាសអញ្ញាតិប្រភេទ Global Declarations
int y = 15;
int main(){
int a = 50; ជាការប្រកាសអញ្ញាតិប្រភេទ Local Declarations
int b = 80;
printf(“value of x = %d\n”,x);
cout<<“value of x =”<<x<<endl;
……….
     return 0;
}
4.Data Type 
គឺជា Standard Type ដែលត្រូវបានគេប្រើសំរាប់ សំណត់ដែន តំលៃរបស់អថេរ ប្ញ ចំនួនថេរនោះនៅពេល​ដែលយើងប្រកាស់ ដើម្បី ប្រើប្រាស់ ។​ Standard Type សំខាន់ៗនៅក្នុងភាសា C++ មានដូចជា

ប្រភេទ
ការប្រើប្រាស់
ទំហំ
ដែនកំណត់
char
តាងអោយតួអក្សរ1តួអក្សរ
1byte
(signed)-128 to 127
short int
តាងអោយចំនួនគត់
2byte
(signed) -32768 to 32767
(unsigned) 0 to 65535
int
តាងអោយចំនួនគត់
4byte
(signed)-2147483648 to 2147483647
(unsigned)            0       to 4294967295
long int
 តាងអោយចំនួនគត់
4byte
(signed)-2147483648 to 2147483647
(unsigned)           0        to 4294967295
bool
តាងអោយតំលៃពី គឺ
True/False
1byte
true  or  false
float តាងអោយចំនួសទស្សភាគ
4byte
+/-3.4e +/-38(~7 digits)
double តាងអោយចំនួសទស្សភាគ
8byte
+/-1.7e +/-308(~15 digits)
long double តាងអោយចំនួសទស្សភាគ
8byte
+/-1.7e +/-308(~15 digits)
wchar_t តាងអោយតួរអក្សរច្រើនតួ
2 or 4byte
1 wild charater

5.Variable
អថេរគឺជាទំហំដែលអាចប្រែប្រួលតំលៃ ​ អថេររបស់កម្មវិធី​គឺជាឈ្មោះនៃតំបន់​ Memory រក្សារទិន្នន័យ​។​បណ្តាលអថេរត្រូវបានប្រកាស់ដោយរបៀបដាក់ឈ្មោះអថេរនៅផ្នែក​ Variable Declarition ។
​ ​​   ឈ្មោះអថេរ / Identifiers(Variable Name) : អថេរដែលត្រូវបាន ប្រកាស់សំរាប់ប្រើប្រាស់ក្នុងភាសាសរ​សេរកម្មវិធី ។​ យើងអាចកំណត់ ឈ្មោះអោយអថេរ បានតាមសេចក្តីត្រូវការ​ហើយឈ្មោះដែលប្រកាស់​រួចត្រូវបានរក្សាទុកក្នុងMemory ដែលមានទំហំ អាស្រ័យទៅ តាមប្រភេទ ទិន្នន័យរបស់អថេរនោះ។
  Identifiers ឈ្មោះដែលប្រើសំរាប់តាងអោយអញ្ញាតិណាមួយ ហើយការតាងឈ្មោះនេះ​មាន​លក្ខខ័ណ្ឌដូចតទៅ
​​​​​​​​                   -A,B,C….a,b,c…ជាតួអក្សរអង់គ្លេស រឺ underscore ” _ ” នាំមុខជានិច្ច
​​​​​​​​​​​​​​​                   -ហាមដកឃ្លា
-1,2,3,4,…9 អាចមានតួលេខតែមិនអាចនៅខាងមុខគេទេ
​                   -ហាមប្រើឈ្មោះជាន់នឹង Keyword
-ហាមប្រើ Symbol as  & % + – / ^ . \ | ……
-អាចប្រើ underscore ” _ ” ចំនួសការដកឃ្លា
ឧទាហរណ៍          int score_st1;  ត្រឹមត្រូវ
char 1s;​​​​​​​​​​​​​​​​​​​        មិនត្រឹមត្រូវ
float love-ss;​​​  មិនត្រឹមត្រូវ
int ss ee;       មិនត្រឹមត្រូវ      
   Keyword គឺជាពាក្យគន្លឹះដែលគេប្រើប្រាស់ញឹកញាប់ក្នុងការសរសេរកូដ ហើយមានអត្ថន័យ នៃការ​ប្រើប្រាស់ខុសប្លែកពីគ្នា ម្យ៉ាងទៀត Keyword ដែលមាននៅក្នុងភាសា C / C++ សុទ្ធសឹងតែជាអក្សរតូច​ទាំងអស់​ ដូចជា asm , auto , bool ,break , case , catch , char , class , const , const_cast , continue , default , delete , do , double , dynamic_cast , else , enum , explicit , export , extern , false , float , for , friend , goto , reinterpret_cast , return , short , signed , sizeof , static , static_cast , struct , switch , template , this , throw , true , try , typedef , typeid , typename , union , unsigned , using , virtual , void , volatile , wchar_t , while …..
  Declare Variable :    DataType Name_Variable ;
ឧទាហរណ៍
 int score ;              // ការប្រកាសអថេរដោយមិនកំណត់តំលៃតំបូង
int score = 0;           // កំណត់តំលៃតំបូងរបស់អថេរ ជាតួលេខចំនួនគត់ int
char charater;
char charater = ‘A';     // កំណត់តួអក្សរ១តួតំបូង ដោយប្រើ ”
string name;
string name = “Jack”;    // កំណត់អក្សរតំបូង​ ដោយប្រើ “”
int score1,score2;       // ការប្រកាសអថេរលើសពីរក្នុងពេលតែមួយ
Variable Declaration គឺជាការប្រកាសអអថេរ
ការប្រកាសអថេរមួយត្រូវមាន DataType Identifier ដែលបព្ចាប់ដោយ ; ។
អថេរមាន 2 ប្រភេទធំៗ គឹ Global variable និង Local variable .
Global Variable : 
គឺជាអថេរដែលគេប្រកាសនៅក្រៅ Function សំរាប់អោយ Functions នានាយកទៅប្រើ ។
Local Variable :
គឺជាអថេរដែលគេប្រកាសនៅក្នុង Function សំរាប់អោយបានតែ Function
នោះយកទៅប្រើប៉ុណ្ណោះ ។
Initialization គឺជាការប្រកាសអថេរដោយផ្តល់តំលៃមួយទៅអោយអថេរដោយផ្ទាល់ នៅពេលគេប្រកាស់អថេរនោះ ។
ឧ.int x = 100;
6.Operator
Operator ក្នុងភាសា C / C++ គេបែងជាច្រើនផ្នែកដូចជា​ :
Arithmetic Operators  ពិជណិត
សញ្ញា
អត្តន័យ
ឧទាហរណ៍
+
បូក
c = a + b ;
-
ដក
d = e – d ;
*
គុណ
a = b * c ;
/
ចែក
a = b / c ;
%
សំណល់នៃការចែក
k = m % n ;
Compound Assignment :
សញ្ញា
ឧទាហរណ៍
អត្តន័យ
+=
 c += b;
c = c + b ;
-=
d -= e;
d = d -e ;
*=
a *= c;
a = a * c ;
/=
a /= c;
a = a / c ;
%=
k %= n;
k = k % n ;
Increase and decrease (++ , –)

ឧទាហរណ៍
អត្តន័យ
n++; ដំណើរការនូវតំលៃ n រួចហើយទើបបានបូក 1 បន្ថែមទៅលើតំលៃ n
++n; បូក 1 បន្ថែមទៅលើតំលៃ n ​រួចហើយទើបដំណើរការនូវតំលៃ n
n–; ដំណើរការនូវតំលៃ n រួចហើយទើបបានដក 1 ពីលើតំលៃ n
–n; ដក 1 ពីលើតំលៃ n​រួចហើយទើបដំណើរការនូវតំលៃ n
Relational and Equality Operators (==,!=,>,<,>=,<=)
ប្រើក្នុងលក្ខខ័ណ្ឌពិចារណា conditional
សញ្ញា
អត្ថន័យ
ឧទាហរណ៍
== ស្មើ if(a==5)..
!= មិនស្មើ if(a!=5)..
> ធំជាង if(a>5)..
< តូចជាង if(a<5)..
>= ធំជាងរឺស្មើ if(a>=5)..
<= តូចជាងរឺស្មើ if(a<=5)..
Logical Operators (!,&&,||)
a
b
a&&b
a||b
!a
True True True True False
True False False True False
False True False True True
False False False False True


ឧទាហរណ៍
!(5==5) // evaluates to false because the expression at its right (5==5) is true.
!(6<=4) // evaluates to true because (6<=4) is false.
!true // evaluates to false.
!false // evaluates to true.
Conditional Operator (?)
បើ​condition នេះ true នោះវានឹងមានតំលៃ result1 តែបើ false នោះវានឹងមានតំលៃ result2
Example
a = (7==5?4:3); // a = 3 cause 7==5 is false

Code
លទ្ធផល
//conditional operator#include <iostream>using namespace std; int main(){
int a,b,c;
a=2;
b=7;
c=(a>b)?a:b;
cout<<c;
return 0;
}
7
Comma Operator (,)
Example
a = ( b =​ 3 , b+2 );
ការតំណើរការនៃកម្មវិធីគឺកំណត់ b = 3 ហើយក៏ធ្វើការបូកបន្ថែម​2​ទៅលើ b បន្ទាប់មកទៀតបញ្ចូលតំលៃចុងក្រោយទៅក្នុង a លទ្ធផល​គឺ a = 5

7.Comment
Example
int number; // declare variable number as integer
char name; /* declare variable name
as charactor
*/
//………….​​​               ប្រើបានតែ១បន្ទាប់/*…………​​​       ប្រើបានច្រើនបន្ទាប់……………. ………*/

8.Input / Output
For C++
Key word Meaning Example
cin បញ្ចូលទិន្នន័យ cin>>n;
cout បង្ហាញទិន្នន័យ cout<<n;

For C
Key word Meaning Example
scanf បញ្ចូលទិន្នន័យ scanf(“%d”,n);
printf បង្ហាញទិន្នន័យ printf(“%d”,n);

មេរៀនទី៣: បញ្ចូល និង បញ្ចេញទិន្នន័យ

មេរៀនទី៣: បញ្ចូល និង បញ្ចេញទិន្នន័យ DATA Input & Output
I. អនុគមន៍   printf ( ) and putchar ( ) :
+  printf ( ) : ជា Function សំរាប់  Print ទិន្នន័យដែលនៅក្នុងសញ្ញា “ … ” មកលើ  Screen output ។ ពិនិត្យឧទាហរណ៍ខាងក្រោម ៖
# include < stdio.h >
# include < conio.h >
main ( )
{
int  n; float  x; char ch;
n = 5; x = 8.2; ch = ‘A’ ;
C C++
Note :  + %d ដែល % ជា Format code និង d ជា Conversion code  ។
+        បើចង់   print    Expression        (Variable    )    នោះយើងត្រូវកំណត់ Format អោយតំលៃនៃកន្សោមនោះ ។
តារាង Format Code :
  Format Code
អត្ថន័យ
%c Print បណ្ដាចំនួនជា characters short, int
%d Print បណ្ដាចំនួន int ,  short
%u Print បណ្ដាចំនួន គμានសឭាា,  unsigned int,
%ld Print បណ្ដាចំនួន long
%X, %x Print បណ្ដាចំនួនគត់ខាងក្រោមរាង hexa
%o Print បណ្ដាចំនួនគត់ខាងក្រោមរាង Octab ( គោល 8)
%f     %lf Print  float,   double
%s Print string
C C++
* បើចង់  print % ត្រូវសរសេរ
printf (“ 50 %%” );  Æ  50%
+ print សំលេង Beep :
printf (“ \a\a Enter Value :”);
+putchar ( c) : ជា Function សំរាប់ print character មួយមកលើ  screen  ។
ch = ‘a’;  putchar (ch); Æ a
+ puts : សំរាប់ Print string មកលើ screen, ហើយ Cursor និងចុះបន្ទាត់,
puts (“this is a character”) ;
II. Print Data into printer :
fprintf (stdprn, “ Print Data on printer!”); និង print ទិន្នន័យទៅក្នុង printer ។ stdprn :សំរាប់បញ្ជាកុំព្យូទ័រអោយ print ទៅ printer ។
III.   scanf( ) function :
ជា Function សំរាប់ Read data from keyboard
Ex1:  int n,p;
scanf (“%d%d”, &n, &p);
Ex2:  char c;
int n;
scanf (“%c%d”,&c,&n);
បើ ៖ Enter a25
Result
c = ‘a’ , n = 25

a^^25
c = ‘a’ , n = 25
តែបើ ៖ Ex3: char c;
int n;scanf (“ %d %c”, &n, &c);
Enter
Result
12^a Æ n = 12; c = ‘^’; (មិនមែន = ‘a’ ទេ )
Ex4: char c;
int n;
scanf (“ %d %c”, &n, &c);
Enter
Result
12^a Æ n = 12; c = ‘a’;
12^^a Æ n = 12; c = ‘a’;
* Macro     getchar( ); សំរាប់ Read character មួយពី Keyboard ។
Ex:     c = getchar ( );
Ex:    # include <stdio.h>
# include <conio.h>
main ( )
{ clrscr ();
int n,p;
printf (“ Enter n = ”); scanf (“ %d”, &n) ;
while (getchar ( )! = ‘\n’);
printf (“ thank you for your Enter Value %d \n”, n) ;
printf (“ Enter P =”); scanf (“ %d”, &p) ;
while (getchar ( ) ! = ‘\n’) ;
printf (“thank you for your Enter Value %d \n”, p) ;
getch();  }
Statement : while (getchar ( ) != ‘n\’); មានន័យថា ៖ Read character រហូតដល់  Enter ទើបឈប់
Note :        scanf (“%d”,&n);     Readln (n) ក្នុង Pascal ។
<=>
while (getchar( ) ! = ‘\n’);   (Read តំលៃហើយចុះបន្ទាត់តែម្ដង )
យើងអាចជំនួស while (getchar ( ) ! = ‘\n’); ដោយ gets (ss);
scanf (“%d”, &n);
gets (ss);
ដើម្បី chear stdin យើងប្រើ  Statemenut fflush(stdin);
* Control តើមាន character Read បញ្ចូល ឬអត់ ៖ kbhit ( ):
Function នេះនឹងត្រួតពិនិត្យមើល,មាន Read character ណាពី  Keyboard ឬអត់, ហើយដែល Character កំពុងស្ថិតនៅក្នុង memory   ។   kbhit ( ) សមមូល  និង  keypressed ក្នុង  Pascal   ។ វាផ្ទុកក្នុង  <conio.h>
Ex:
 Note :

# include <conio.h>
# include <stdio.h>
int main (void )
{ clrscr () ;
cprintf (“\r\npress any key to continue :”); while(!kbhit ( ) );    /* No action */ cprintf (“\r\n you have press a key ! \r\n”);
getch ( );
return (0);
}
-cprintf() :ជា  Function <=> printf, ក្នុង cprintf => អត់ស្គាល់  \n ជាសញ្ញាចុះដើមបន្ទាត់ទេ, ត្រូវប្រើ\r\n  ទើបស្គាល់ថា ចុះដើមបន្ទាត់ ។
* getch ( ) Function (សមមូលនឹង Readkey ក្នុង Pascal )
getche ( ) Function ប្រភេទ  Macro Read character នីមួយៗពី  keyboard ។     character
Read ពី keyboard ត្រូវបានសំដែងមកពី screen ។
ចំណែក Function getch ( ) ក៏ជាប្រភេទ  Macro Read character ពី keyboard ដែរ តែ ,Character
ដែល Read ពី keyboard នោះមិនសំដែងមកលើ screen ទេ  ។ ( សមមូល  និង Readkey ក្នុង Pascal )
។ ដូច្នេះយើងអនុវត្ដន៏ Function getch( ) ក្នុងកមμវិធី  Password   ។ ម្យ៉ាងទៀតយើងប្រើ   Functionនេះនៅ  ចុងនៃគ្រប់កមμវិធីទាំង អស់ដើម្បីទប់  screen output ។
+ Function getche( ) និង getch( ) ដូចគ្នាត្រង់ Read មួយ character ពី keyboard ដោយមិនចាំ
Enter, តែខុសគ្នាត្រង់ Function getche (   )និងសំដែង character ដែល  Read ពី keyboard មកលើ screen ។
+   Function getche( ) និង  getche( ) : Read ត្រង់ពី  keyboard   តែម្ដង,  ដោយមិនឆ្លងកាត់ stdin ទេ  ។
ដើម្បី Read password, សូមពិនិត្យ Example ខាងក្រោមដែលមានប្រើ Function get pass( ):
Ex:     Read password :
# include < stdio.h>
# include <conio.h>
int main (void)
{
char    *password; clrscr ();
password = getpass (“Enter password :”);
cprintf (“ password is : %s \r\n”, password);
getch( );
return (0);
}
* gets ( ) Function : ( សមមូល Readln(st) ក្នុង Pascal )
gets ( ) សំរាប់ Read string ពី keyboard រហូតដល់ Enter ទើបឈប់  ។ បន្ទាប់ពី  Read រួចវាថែម
សញ្ញា  បញ្ចប់ បន្ទាត់ (\0) នៅខាងចុង String ។
Ex:
# include < stdio.h>
# include <  conio.h>
main ( )
{  clrscr ():
char  name[80];
printf (“\n Enter your name :”);
gets (name);
printf (“\n your name is %s”, name );
getch ( );
return (0);
}

Note  :  Programmer  បើចង់ភ្ជាប់ការងារក្នុងការ  Readnumber  និង   String  គប្បីប្រើប្រាស់
ដំណាក់ ការ ខាងក្រោម  ៖
+ Read ចំនួនគត់ ៖ បន្ទាប់ពី  Enter;
gets (str );
i = atoi (str); /* a to int */
+ Read ចំនួនពិត ៖ បន្ទាប់ពីចុច Enter;
j = atof (str); /* a to float */
Total Function input / output Data ក្នុង language :
+ getchar ( )and putchar( ): (macro) Read និង write character មួយពី keyboard ។
+ gets ( ) and puts ( ): Read និង write string ( គិតទាំងសញ្ញា space ) ។
+ scanf ( ): Read តាម format Code ( %), តាម Conversion code (d)
+ printf ( ): write Data តាម format code, Conversion code ។
+ getche()  និង getch( ): Read character ត្រង់ពី Keyboard ដោយមិនចាំ Enter, មិនឆ្លងកាត់ stdin ។
* gotoxy (int x, int y );
នាំ Cursor ទៅទីតាំង x, y នៃ screen output ។ x = 1 ដល់ 80 , y = 1 ដល់ 25 ។
Ex:     # include < stdio.h>
# include <conio.h>
int main (void)
{
clrsrcr( )
gotoxy (35,12); cprintf (“Hello world !!!”);
getch ( );
return (0);
}
™         clrscr ( ); (clear screen )
ជា Function សំរាប់លុបសំអាត screen output, បន្ទាប់មកវានាំ Cursor ទៅទីតាំង (1, 1) ។
clreol ( ): (Clear end of line )
ជា Function លុបបណ្ដា character ពីចំនុច Current cursor ទៅចុងបន្ទាត់ ។
textcolor (n) និង textbackground (n): ដាក់ពណ៏ text និងពណ៏ Background
តារាង Colors :
Const
Value
BLACK
0
BLUE
1
GREEN
2
CYAN
3
RED
4
MAGENTA
5
BROWN
6
LIGHT GRAY
7
DARKGRAY
8
LIGHT BLUE
9
LIGHT GREEN
10
LIGHT CYAN
11
LIGHT RED
12
LIGHT MAGENTA
13
YELLOW
14
WHITE
15
BLINK
128
Note: ចំពោះ textbackground តំលៃ n គិតពី ( 0Æ 8 ) ។
Function lowvideo ( ) និង normvideo( ) : បញ្ជាពន្លឺ Text, lowvideo( ) ធ្វើអោយពន្លឺរបស់ text ខ្សោយៗទៅ normvideo( ) ធ្វើអោយពន្លឺរបស់ text ធមμតាឡើងវិញ  ។
Ex:     សរសេរពាក្យ WELCOME ( នោះអក្សរ W E មានពន្លឺ ភ្លឺ )
# include < stdio.h>
# include <conio.h>
main( );
{ clrscr () ;
highvideo( ); cprintf (“W”); lowvideo( );  cprintf (“ ELCOM”); highvideo( ); cprintf (“E”);
getch( );
return(0);
}
wherex និង wherey : បញ្ជាក់ប្រាប់ កូអរដោនេរបស់ Current cursor ។
Ex:     # include < stdio.h>
# include <conio.h>

int main (void)
{
clrscr ( );
gotoxy (10,10);
printf (“coordinate x :%d y :%d \n”, wherex, wherey);
getch( ); return(0);
}
 window (int x1, int y1, int x2, int y2 );
ជា Function បង្កើត text window ដែលមានកូអរដោនេ មុំកែងខាង លើផ្នែកខាងឆ្វេង ជាចំនុច (x1,y1) និង មុំកែងខាងក្រោមផ្នែកខាងស្ដាំ (x2, y2) ហើយ statement print data on screen និង print data មកលើ Text window ដែលទើបនឹងបង្កើតនេះ ។
Ex:     # include <stdio.h>
# include <conio.h>
int  main(void)
{
window (10, 10, 40, 11); textcolor (YELLOW);
textbackground (BLUE); clrscr ();
cprintf(“This is a test \n”);
getch( );
return(0);
}
លំហាត់អនុវត្ដន៍
 1.   ចូរសរសេរ Screen output នៃ program ខាងក្រោម ៖
# include <stdio.h>
# include <conio.h>
main ( )
{
int        n = 345;
int        p = 5;
float     x = 34.5678 ;
printf (“A :%d %f \n”, n,x ); printf (“B :%4d %10f \n”, n,x ); printf (“C :%2d %3f \n”, n,x );
printf (“D :%10.3f %10.3ef \n”, x,x );
printf (“E :%*d \n”, p,n ); printf (“F :%*.*f \n”, 12,5,x ); getch ( );
return (0);
}
2.   ចូរប្រាប់ពីតំលៃនៃ Variable ប្រភេទ int គឺ n និង p ក្រោយពីអនុវត្ដន៏ Statement ខាងក្រោមៈ
scanf (“%4d %2d”, &n, &p );  ជាមួយទិន្នន័យដែលវាយបញ្ចូលដូចខាងក្រោម ៖
(សញ្ញា ^ ជាសញ្ញាដកឃ្លា )
a)   12^ 45 b)   123456
c)   123456^7 d)   1^458
e)   ^^^4567^^891
3. ចូរសរសេរ screen output នៃកមμវិធីខាងក្រោម ៖
# include <stdio.h>
# include <conio.h>
main ( )
{
char firstname [ ]= “ Chan ” ; char lastname [ ] = “ Dara” ; float money = 5000 ;
clrscr ( ) ; gotoxy(10,10);
printf (“ %s %s, you will get $ %6.2f \n ”, firstname, lastname, money) ;
getch ( ) ;
return (0 ) ;
}
4. ចូរសរសេរ screen output នៃកមμវិធីខាងក្រោម ៖
# include <stdio.h>
# include <conio.h>
main ( )
{ int letter ;
/* print Value of code ASCII of characters */
letter = ‘e’ ;
printf (“Code ASCII of %c is %d \n” , letter , letter );
getch ( );
return (0);
}
5. ហេតុអ្វីគេនិយមប្រើ Function gets ( ) ជាង Function scanf ( )?
6. ចូររកកន្លែងខុសនៃ កមμវិធីខាងក្រោម ៖
main ( )
{
char str [ ] = {‘H’ , ‘e’ , ‘l’ , ‘l’ , ‘o’ };
puts (str);
getch ( );
return (0);

1 comment: