លំហាត់អនុវត្តន៍
1- ចូរសរសេកម្មវិធីដើម្បីបង្ហាញនៅលើអេក្រង់នូវឃ្លាខាងក្រោមៈ
Hello BBU
I Love BBU
2- ចូរសរសេកម្មវិធីដើម្បីដោះស្រាយសមីការ bx+c=0
à ការសរសេដោយពុំចាំបាច់វិភាគទៅលើលក្ខខ័ណ្ឌ
3- ចូរសរសេកម្មវិធីដើម្បីគណនា ឬសការ៉េនៃចំនួនគត់មួយ
ឧទាហរណ៍ x=a2 , បើបញ្ចូលតំលៃ a=3 នោះ x=9
ដំណោះស្រាយ
1.code
#include<stdio.h>
#include<conio.h>
void main()
{clrscr();
printf(“Hello BBU”) ;
printf(“I Love BBU”); getch();
}
2.code #include<stdio.h>
#include<conio.h>
void main()
{clrscr();
int b,c;
float x;
printf(“Input b:”);scanf(“%d”,&b);
printf(“Input c:”);scanf(“%d”,&c);
x=-c/b;
printf(“x=%f”,x);
getch();
}
3.code
#include<stdio.h>
#include<conio.h>
void main()
{clrscr();
int a;
float x;
printf(“Input a:”);scanf(“%d”,&a);
x=a*a;
printf(“x=%f”,x);
getch();
}
មេរៀនទី២
កន្សោម(Expression)
2.1. ប្រភេទទិន្នន័យ
2.1.1. និយមន័យ
ទិន្នន័យ(Data) គឺជាបណ្តាពត៌មានដែលមានពិតដូចជា អត្ថបទតំលៃលេខ សំលេង និង រូបភាព សម្ដែងក្រោមទម្រង់មួយដែលកុំព្យូទ័រអាចធ្វើការប្រាស្រ័យទាក់ទង ឬ អនុវត្ថ
ការងារណាមួយសំដែងក្រោមទំរង់មួយដែល ជាមួយវាបាន។
2.1.2. ប្រភេទទិន្នន័យ(Data Type)
ប្រភេទទិន្នន័យត្រូវបានគេអោយនិយមន័យដោយពីរចំនុចខាងក្រោមគឺៈ
+ ជាប្រភេទ និង ដែនកំណត់តំលៃ ដែលក្រោយពេលអថេរមួយបានប្រកាសជាមួយប្រភេទ
នៃទិន្នន័យនោះរួច វាអាចទទូលតំលៃនោះបាន
+ ក្នុងប្រភេទទិន្នន័យនិមួយៗអាចមានកំណត់ប្រមាណវិធីមួយចំនួនជាក់លាក់
ប្រភេទិន្នន័យក្នុងភាសា C
Data Type
+ Scalar Type(long, Short,integer,char,float)
+ Structure Type(array,struct,union,FILE
+ Pointer Type
ប្រភេទទិន្នន័យ
|
ពាក្យគន្លឹះ
|
ចំនួន Byte
|
ដែនតំលៃ
|
Character
|
Char
|
1
|
-128 --> 127
|
Integer
|
Int
|
2
|
-32768 --> 32767
|
Short Integer
|
Short
|
2
|
-32768 --> 32767
|
Long integer
|
Long
|
4
|
-2147483648 --> 2147483647
|
Unsigned character
|
Unsigned char
|
1
|
0 --> 255
|
Unsigned integer
|
Unsigned int
|
2
|
0 --> 65535
|
Unsigned short integer
|
Unsigned short
|
2
|
0 --> 65535
|
Unsigned long integer
|
Unsigned long
|
4
|
0 --> 4294967295
|
ការដាក់តំលៃអោយអថេរចំនួនគត់
- ការភ្ជាប់តំលៃចាប់ផ្តើម
ឧទាហរណ៍ៈ យើងចង់ភ្ជាប់តំលៃ 10 ទៅអោយអថេរ x
int x;
x=10;
Or
int x=10;
- ការភ្ជាប់តំលៃតាមការបញ្ចូល
int x;
printf(“Enter
value x=“);
scanf(“%d”,&x);
2.1.3. ចំនួនពិត(Real)
ក្នុងភាសា C ប្រភេទចំនួនពិតត្រូវបានគេបែងចែកជា៣ផ្សេងៗគឺFloat,
double, long double
ប្រភេទទិន្នន័យ
|
ពាក្យគន្លឹះ
|
ចំនួន Byte
|
ដែនកំណត់
|
Single-precision
Float point
|
Float
|
4
|
3.4E-38 --> 3.4E+38
|
Double-precision
Float point
|
Double
|
8
|
1.7E-308 --> 1.7E+308
|
Long
double-precision float point
|
Long double
|
10
|
3.4E-4932 --> 1.1E+4932
|
របៀបសរសេរតំលៃនៃចំនួនពិតក្នុងភាសា C
4.4 ត្រឹមត្រូវ 5 ខុស 5. ត្រឹមត្រូវ .5 ត្រឹមត្រូវ
5.0 ត្រឹមត្រូវ 4,4
ខុស -4.4 ត្រឹមត្រូវ 4E-2 ត្រឹមត្រូវ
ការដាក់អថេរអោយចំនួនពិត
- ការភ្ជាប់តំលៃចាប់ផ្តើម
ឧទាហរណ៍ៈ យើងចង់ភ្ជាប់តំលៃ 2x10-5 ទៅអោយ អថេរ x
float x;
x=2E-5;
or
float x=2E-5;
- ការភ្ជាប់តំលៃតាមការបញ្ចូល
float x;
printf(“Enter
value x=“);
scanf(“%f”,&x);
2.1.4. ទិន្នន័យប្រភេទ Char(Character)
នៅក្នុងភាសា C ដើម្បីសរសេរចំនួនថេរនៃ Character យើងត្រូវសរសេរនៅក្នុងចន្លោះសញ្ញា ‘ ’
( single quote)
ឧទាហរណ៍ៈ ‘a’ , ‘0’ , ‘ 2’ , ‘A’ ,…
Character និមួយៗសុទ្ធតែត្រូវបានគេកំណត់តំលៃរបស់នៅក្នុងតារាង ASCII
ដើម្បីងាយស្រួល
ក្នុងការរក្សាទុក និង អនុវត្តន៍ប្រមាណវិធីលើវា។
ASCII :
American Standard Code for Information Interchange)
Constance
character នៅក្នុង តារាង ASCII
Constance
character
|
ASCII
|
មុខងារ
|
\a
|
7
|
បញ្ចេញសំលេងជួង(BELL)
|
\b
|
8
|
Back Space
|
\t
|
9
|
Tab
|
\n
|
10
|
New line
|
សញ្ញាពិសេស
របៀបសរសេ
|
Character
|
\ ‘
|
‘
|
\ “
|
“
|
\\
|
\
|
\0
|
Null
|
ការដាក់អថេរអោយប្រភេទ Char
ការភ្ជាប់តំលៃចាប់ផ្តើម
char
x;
x=‘3’;
or
char x=‘3’;
-ការភ្ជាប់តំលៃតាមការបញ្ចូល
char x;
printf(“Enter value x=“);
scanf(“%c”,&x);
ឧទាហរណ៍ :ចូរពិនិត្យមើលកូដនៃកម្មវិធីខាងក្រោមៈ
#include<stdio.h>
#include<conio.h>
void main()
{
char
a,b,z;
int
zz;
printf(“Enter
value a=“); scanf(“%c”,&a);
flushall();
printf(“Enter
value b=“); scanf(“%c”,&b);
z=a+b;
zz=a+b;
printf(“Value
sum in char=%c \n”,z);
printf(“Values
sum in Int=%d “,zz);
getch();
}
2.1.5. ទិន្នន័យប្រភេទ String
- នៅក្នុងភាសា C String គឺជាស៊េរីនៃ character ដែលត្រូវបានគេសរសេរនៅក្នុងចន្លោះ
សញ្ញា “ ”( double quote)
ឧទាហរណ៍ៈ “BBU”, “Cambodia” ,…
-ធាតុនិមួយៗរបស់ String
ត្រូវបានតំរៀបជាប់ៗគ្នានៅក្នុង Memory ហើយផ្នែកខាងចុង
បំផុតនៃធាតុរបស់វាផ្ទុក character Null ឬ ‘\0’
2.1.6. ទិន្នន័យប្រភេទ Boolean
ទិន្នន័យប្រភេទ Boolean
គឺសំដៅទៅលើតែតំលៃ២ប៉ុណ្នោះ គឺ១ និង ០ ដែលជាតំលៃ
តក្កតំណាងអោយលទ្ធផលសំណើរមួយពិត
(True) ឬ មិនពិត(False)
ឧទាហរណ៍
សំណើរ ១០ > ២០ នោះលទ្ធផល គឺ មិនពិត ឬ
០
១០< ២០ នោះលទ្ធផល គឺ ពិត ឬ ១
2.2. ចំនួនថេរ និង អថេរ(Constance & Variable)
2.2.1. ចំនួនថេរ(Constance)
ចំនួនថេរគឺជាចំនួនដែលមានតំលៃមិនប្រែប្រួលក្នុងពេលដំណើរ ការនៃកម្មវិធី។
ការប្រកាសចំនួនថេរត្រូវមានពាក្យ
const នៅពីខាងមុខ
const ប្រភេទទិន្នន័យ
ឈ្មោះចំនួនថេរ =
តំលៃនៃចំនួនថេរ
ឧទាហរណ៍ៈ
const int a=10;
const float b=5.5;
const char ch=‘A’;
2.2.2. អថេរ
តើអ្វីទៅជាអថេរ?
គឺជាឈ្មោះដែលត្រូវបានគេតាងសម្រាប់រក្សាទុកទិន្នន័យប្រភេទណាមួយនៅក្នុង
Memory កុំព្យួទ័រ។
ការប្រកាសអថេរ:
ប្រភេទទិន្នន័យ
អថេរ១, អថេរ២,…, អថេរ n
ឧទាហរណ៍ៈ
int x,y; float
a; char ch;
2.3. ប្រមាណវិធី
2.3.1. បណ្តាសញ្ញាប្រើក្នុងប្រមាណវិធីនពន្ត
សញ្ញា
|
អត្ថន័យ
|
ឧទាហរណ៍
|
+
|
បូក
|
a+b
|
-
|
ដក
|
a-b
|
*
|
គុណ
|
a*b
|
/
|
ចែក
|
a/b
|
%
|
ចែកយកសំណល់
|
a%b
|
ឧទាហរណ៍ៈ
10/3=3
10%3=1
2.3. ប្រមាណវិធី
2.3.២. ប្រមាណវិធីធៀប
សញ្ញា
|
អត្ថន័យ
|
ឧទាហរណ៍
|
>
|
ធំជាង
|
a>b
|
>=
|
ធំជាង ឬ ស្មើ
|
a>=b
|
<
|
តូចជាង
|
a<b
|
<=
|
តូចជាង ឬ ស្មើ
|
a<=b
|
==
|
ស្មើ
|
a==b
|
!=
|
មិនស្មើ ឬ ខុសគ្នា
|
a!=b
|
2.3. ប្រមាណវិធី
2.3.3. ប្រមាណវិធីតក្ក
សញ្ញា
|
អត្ថន័យ
|
ឧទាហរណ៍
|
!
|
បដិសេធ(Not)
|
!a
|
&&
|
ប្រមាណវិធី and
|
a&&b
|
||
|
ប្រមាណវិធី or
|
a||b
|
2.3.5. ការបង្កើន និង
បន្ថយតំលៃអថេរ
នៅក្នុងភាសា
Cគេប្រើ ++ ប្រើសំរាប់បូកតំលៃ ១ បន្ថែមទៅលើ
Operand ចំនែកឯ -- វិញគឺសំរាប់ដកតំលៃ ១ ចេញពី
Operand ដែលជាប់វានោះ។
ឧៈ យើងមានអថេរ
n ដែល n=5
è
ក្រោយប្រមាណវិធី ++នោះ n នឹងទទូលតំលៃ 6
è
ក្រោយប្រមាណវិធី --នោះ n នឹងទទូលតំលៃ 4
ការី ++ និង -- អាចឈរនៅខាងមុខ Operand ឬ ខាងក្រោយ
Operand
ប៉ុន្តែលទ្ធផលដែលទទូលបានមានភាពខុសគ្នា។
ឧៈ ++n n++ --n n—
+ភាពខុសគ្នារវាង ++n និង n++
++n ប្រៀបដូចទៅនឹង n=n+1
ឧៈ យើងមាន
x=10;
បើ y=++x; è នោះ y=11
បើ y=x++ è នោះ y=10
Ex:
int x=5,y=5;
int a,b;
a=x++;
b=++y;
printf(“Value a=%d”,a);
printf(“value b=%d”,b);
2.3.6. កន្សោមលក្ខខណ្ឌ
នៅក្នុងភាសា
C
កន្សោមលក្ខខណ្ឌត្រូវបានគេកំណត់ទំរង់ដូចខាងក្រោមៈ
e1?e2:e3 ដែល e1, e2 និង e3គឺជាកន្សោមផ្សេងៗគ្នា
ប្រសិនបើ e1 ពិតនោះលទ្ធផលទទូលបានស្មើនិងតំលៃ e2 ប៉ុន្តែបើផ្ទុយមកវិញនោះ
គឺស្មើនិងតំលៃ
e3
ឧៈ យើងមានកន្សោម
x=(a>b)?a:b ចូរពិនិត្យ
យើងនឹងទទូលបានតំលៃ x=a ប្រសិនបើ a>b
តែបើផ្ទុយមកវិញ នោះ យើងនឹងបាន x=b
Ex:
សរសេកម្មវិធីដើម្បីរកអតិបរមានៃ២ចំនួន
a , b
#include<stdio.h>
#include<conio.h>
void main()
{
int
a,b,max;
printf(“Enter value a=“);
scanf(“%d”,&a);
printf(“Enter value b=“);
scanf(“%d”,&b);
max=(a>b)?a:b;
printf(“Max=%d”,max);
getch();
}
មេរៀនទី៣: បញ្ចូល និង បញ្ចេញទិន្នន័យ
3.1. អនុគមន៍ printf(), Puts() និង putchar()
Printf(): ជាអនុគមន៍សំរាប់ បង្ហាញទិន្នន័យដែលនៅក្នុងសញ្ញា
“….” មកលើអេក្រង់
ឧទាហរណ៍ៈ
Ex:
#include<stdio.h>
#include<conio.h>
void main()
{
int x=9;
float y=8.4;
char c=‘a’;
printf(“Show value:
%d , %f %c”, x,y,c);
getch();
}
កូដកំណត់ទំរង់កូដ
Format code
|
Format code
|
%c
|
print character
|
%d, %i
|
Print ចំនួនគត់
|
%u
|
Print បណ្តាចំនួនគ្មានសញ្ញាunsigned int
|
%ld
|
Print បណ្តាចំនួន long
|
%X , %x
|
Print បណ្តាចំនួនក្រោមទំរង់ Hexa
|
%o
|
Print បណ្តាចំនួនក្រោមទំរង់ octal
|
%f , %1f
|
Print បណ្តាចំនួន float, double
|
%s
|
Print បណ្តាចំនួនក្រោមទំរង់ជា string
|
Putchar(): ជាអនុគមន៍ប្រើសម្រាប់បង្ហាញ 1 character មកលើអេក្រង់
Puts(): ជាអនុគមន៍ប្រើសម្រាប់បង្ហាញ string មកលើអេក្រង់
Ex:
#include<stdio.h>
#include<conio.h>
void main()
{
char c;
c=‘a’;
putchar(c);
getch();
}
Ex:
#include<stdio.h>
#include<conio.h>
void main()
{
puts(“I love
BBU”);
getch();
}
3.2. អនុគមន៍ Scanf(),gets() និង Getchar()
-Scanf(): ជាអនុគមន៍ប្រើសម្រាប់អានតំលៃដែល user បញ្ចូលពី
Keyboard
int x,y;
char c;
printf(“enter value
x, y,c “)
scanf(“%d%d%c”,&x,&y,&c)
-Getchar() ជាអនុគមន៍ប្រើសម្រាប់អានមួយ
character ពី Keyboard
char ch;
ch=getchar( );
putchar(ch);
-Gets() ជាអនុគមន៍ប្រើសម្រាប់ចាប់យកទិន្នន័យជា string
char *s;
printf(“Enter string:”);
gets(s);
puts(s);
3.3. Textcolor() និង gotoxy()
ឈ្មោះរបស់ពណ៌
|
តំលៃ
|
BLACK
|
0
|
BLUE
|
1
|
GREEN
|
2
|
CRAN
|
3
|
RED
|
4
|
MAGENTA
|
5
|
BROWN
|
6
|
LIGHT GRAY
|
7
|
LIGHT GREEN
|
10
|
LIGHT BLUE
|
9
|
YELLOW
|
14
|
WHITE
|
15
|
-ដើម្បីព្រីនពណ៌របស់អក្សរយើងត្រូវប្រើ cprintf(“…”)
-ការដាក់ពណ៌ត្រូវប្រើ textcolor(ឈ្មោះរបស់ពណ៌ ឬ តំលៃ)
ឧទាហរណ៍ៈ textcolor(RED);
-gotoxy(x,y) ប្រើសម្រាប់កំណត់ទីតាំងត្រូវបង្ហាញលទ្ធផល
Ex:
#include<stdio.h>
#include<conio.h>
void main()
{
textcolor(GREEN);
gotoxy(20,10);
cprintf(“Welcome to
my Test”);
textcolor(BLUE);
gotoxy(20,12);
cprintf(“Just a
Test”);
getch();
}