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 |
អថេរគឺជាទំហំដែលអាចប្រែប្រួលតំលៃ អថេររបស់កម្មវិធីគឺជាឈ្មោះនៃតំបន់ 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 ;
|
សញ្ញា
|
ឧទាហរណ៍
|
អត្តន័យ
|
+=
|
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 ;
|
ឧទាហរណ៍
|
អត្តន័យ
|
n++; | ដំណើរការនូវតំលៃ n រួចហើយទើបបានបូក 1 បន្ថែមទៅលើតំលៃ n |
++n; | បូក 1 បន្ថែមទៅលើតំលៃ n រួចហើយទើបដំណើរការនូវតំលៃ n |
n–; | ដំណើរការនូវតំលៃ n រួចហើយទើបបានដក 1 ពីលើតំលៃ n |
–n; | ដក 1 ពីលើតំលៃ nរួចហើយទើបដំណើរការនូវតំលៃ n |
ប្រើក្នុងលក្ខខ័ណ្ឌពិចារណា conditional
សញ្ញា
|
អត្ថន័យ
|
ឧទាហរណ៍
|
== | ស្មើ | if(a==5).. |
!= | មិនស្មើ | if(a!=5).. |
> | ធំជាង | if(a>5).. |
< | តូចជាង | if(a<5).. |
>= | ធំជាងរឺស្មើ | if(a>=5).. |
<= | តូចជាងរឺស្មើ | if(a<=5).. |
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. |
បើ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 |
Example
|
a = ( b = 3 , b+2 ); |
Example
|
int number; // declare variable number as integer char name; /* declare variable name as charactor */ |
//…………. ប្រើបានតែ១បន្ទាប់/*………… ប្រើបានច្រើនបន្ទាប់……………. ………*/ |
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’ ;
Note : + %d ដែល % ជា Format code និង d ជា Conversion code ។
+ បើចង់ print Expression (Variable ) នោះយើងត្រូវកំណត់ Format អោយតំលៃនៃកន្សោមនោះ ។
តារាង Format 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 |
* បើចង់ 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”) ;
fprintf (stdprn, “ Print Data on printer!”); និង print
ទិន្នន័យទៅក្នុង printer ។ stdprn :សំរាប់បញ្ជាកុំព្យូទ័រអោយ print ទៅ
printer ។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 :
III. scanf( ) function :
ជា Function សំរាប់ Read data from keyboardEx1: 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’ ទេ ) |
int n;
scanf (“ %d %c”, &n, &c);
Enter | Result | |
12^a | Æ | n = 12; c = ‘a’; |
12^^a | Æ | n = 12; c = ‘a’; |
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’) ;
getch(); }
Statement : while (getchar ( ) != ‘n\’); មានន័យថា ៖ Read character រហូតដល់ Enter ទើបឈប់
Note : scanf (“%d”,&n); Readln (n) ក្នុង Pascal ។
យើងអាចជំនួស 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>
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 ទើបស្គាល់ថា
ចុះដើមបន្ទាត់ ។# 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);
}
* 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 ។getche ( ) Function ប្រភេទ Macro Read character នីមួយៗពី keyboard ។ character
Read ពី keyboard ត្រូវបានសំដែងមកពី screen ។
ចំណែក Function getch ( ) ក៏ជាប្រភេទ Macro Read character ពី keyboard ដែរ តែ ,Character
ដែល Read ពី keyboard នោះមិនសំដែងមកលើ screen ទេ ។ ( សមមូល និង Readkey ក្នុង Pascal )
+ 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);
}
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 :ដំណាក់ ការ ខាងក្រោម ៖
+ 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
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
|
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);
}
int main(void)
{
window (10, 10, 40, 11); textcolor (YELLOW);
textbackground (BLUE); clrscr ();
cprintf(“This is a test \n”);
getch( );
return(0);
}
{
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 ( ) ;
}
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);
Nice
ReplyDelete