ตวั ดาเนินการทางตรรกะ
(Logical Operator)
&& And และ
|| Or หรือ
! Not
ไม,่ ตรงกนั ข้าม
ตวั ดาเนนิ การเปรยี บเทยี บ
(Relational Operator)
< น้อยกวา่ Less than
<= น้อยกว่าหรือเทา่ กบั Less than or Equal
> มากกว่า Greater than
>= มากกวา่ หรือเทา่ กบั Greater than or Equal
== เท่ากบั , เท่ากนั Equal
!= ไม่เทา่ กบั , ไม่เทา่ กนั Not equal
ตวั ดาเนนิ การเพม่ิ ค่าและลดค่า
(Increment and Decrement
Operator)
++ เพม่ิ คา่ Increment
-- ลดค่า Decrement
ตวั ดาเนนิ การระดบั บติ
(Bit-wise Operator)
& And
| Or
^ Exclusive Or
~ Complement
>> Right Shift
<< Left Shift
ตวั ดาเนนิ การกาหนดค่า
(Assignment Operator)
+= |=
-= ^=
*= <<=
/= >>=
%=
&=
ลาดบั การทางานของตวั ดาเนินการ
1. ( )
2. !, ++, --
3. *, /, %
4. +, -
5. <, <=, >, >=
6. ==, !=
7. &&
8. ||
9. *=, /=, %=, +=, -=
ทิศทางการทางาน จากซ้ายไปขวา
นพิ จน์ (Expression)
หมายถึง การนาค่าคงที่ ตัวแปร และตัวดาเนินการมาประกอบกัน เพ่ือเขียนเป็นคาส่ังให้ ตั วแปล
ภาษาคอมพิวเตอร์เข้าใจ และสามารถทางานตามคาสง่ั ได้ผลลพั ธ์ตามต้องการ
สูตร นิพจน์
= 1 + 2 + 3 + ⋯ + = ( +1) k1 = n * (n + 1) / 2;
=1 2
1 = ( + )2 = 2 + 2 + 2 f1 = a * a + 2 * a * b + b * b;
c = a2 + b2 c = sqrt(a * a + b * b);
K = 1 a2 3 K=0.25 * a * a * sqrt(3);
4
Basic Function in C
Mode Text
– clrscr(); - ล้างหน้าจอในโหมดเทก็ ซ์
– clreol();- ลบข้อความจากตาแหนง่ เคอร์เซอร์ไปจนสดุ บรรทดั
– delline(); - ลบบรรทดั
– gotoxy(); - ย้ายตาแหน่งเคอร์เซอร์ไปยงั ตาแหน่งท่ีระบุ
– wherex(); - คืนคา่ ตาแหน่งคอลมั น์ท่ีเคอร์เซอร์ปรากฏ (1-
80)
– wherey(); - คืนคา่ ตาแหนง่ บรรทดั ท่ีเคอร์เซอร์ปรากฏ (1-
25)
Basic Function in C
Mode Text (ต่อ)
– cprintf(); - แสดงผลข้อความหรือคา่ ตวั แปรตามสีที่กาหนด
– printf(); - แสดงผลข้อความหรือคา่ ตวั แปร
– sprintf(); - แปลงข้อมลู ตวั เลขให้เป็นข้อความ
– puts(); - แสดงผลข้อความ
– putch(); - แสดงผลอกั ขระ
– getch(); - รับคา่ อกั ขระจากแปน้ พิมพ์โดยจะไม่แสดงอกั ขระท่ีปอ้ น
– getche(); - รับคา่ อกั ขระจากแปน้ พิมพ์โดยจะแสดงอกั ขระท่ีปอ้ น
– gets(); - รับคา่ ข้อความจากแปน้ พิมพ์มาเกบ็ ไว้ในตวั แปรสตริงที่ระบุ
– scanf(); - รับคา่ ข้อมลู จากแปน้ พิมพ์มาเก็บไว้ในตวั แปรท่ีระบุ
– window(); - กาหนดพืน้ ที่หน้าตา่ ง
Basic Function
Graphics Mode
– initgraph(); - เข้าสโู่ หมดกราฟิก
– closegraph(); - ออกจากโหมดกราฟิก
– cleardevice(); - ล้างหน้าจอในโหมดกราฟิก
– setcolor(); - กาหนดสี
– setfillstyle(); - กาหนดรูปแบบการระบาย
– settextstyle(); - กาหนดรูปแบบข้อความ
– arc(); - วาดเส้นโค้ง
– bar(); - วาดแทง่ สเี่ หลี่ยม
Basic Function
Graphics Mode (ต่อ)
– ellipse(); - วาดวงรี
– pieslice(); - วาดสว่ นซีกวงกลม
– line(); - วาดเส้นตรงจากจดุ หนงึ่ ไปยงั จดุ หนงึ่ ตามท่ีระบพุ ิกดั
– lineto(); - วาดเส้นตรงจากจดุ เดิมไปยงั อกี จดุ ท่ีระบพุ ิกดั
– linerel(); - วาดเส้นตรงจากจดุ เดิมไปยงั จดุ ท่ีอย่หู า่ งตามระยะหา่ งท่ีกาหนด
– moveto(); - ย้ายพิกดั ไปที่ใหมต่ ามที่ระบุ
– moverel(); - ย้ายพิกดั ไปท่ีใหม่หา่ งจากพิกดั เดิมตามระยะหา่ งท่ีกาหนด
– floodfill(); - ระบายสีท่ีตาแหน่งพิกดั ที่กาหนดไปจนจดุ สิน้ สดุ ตามสที รี่ ะบุ
– outtext(); - แสดงข้อความที่กาหนดในพิกดั ปัจจบุ นั
– outtextxy(); - แสดงข้อความที่กาหนดตามพิกดั ท่ีกาหนด
ฟังก์ชันเกย่ี วกบั การแสดงผลทางจอภาพ
การแสดงผลบนจอในโหมดข้อความ (Text Mode) โปรแกรม Turbo C มีขนาดจอ
มาตรฐาน 80 x 25 คอื มี 80 คอลมั น์ และ 25 บรรทดั
textmode(C80);
เป็นฟังก์ชนั เข้าสโู่ หมดเทก็ ซ์ (Text mode) หน้าตา่ งมาตรฐาน 80 x 25, 16 สี
clrscr();
เป็นฟังก์ชนั ใน TurboC ทาหน้าที่ล้างหน้าจอ (Clear screen) พร้อมนาเคอร์เซอร์ ไป
ยงั ตาแหน่งซ้ายบนบรรทดั แรกของจอ (คือตาแหน่ง 1,1) ซง่ึ ฟังก์ชนั นีม้ ีใช้ใน Turbo C เท่านนั้ หากใช้
กบั C ของคา่ ยอ่นื ให้ใช้คาสง่ั system("cls"); แทนได้
clreol();
เป็นฟังก์ชัน ลบข้อความตงั้ แต่ตาแหน่งท่ีเคอร์เซอร์ปรากฏอย่ไู ปจนสดุ บรรทดั นัน้ ถ้าเคอร์เซอร์อย่ทู ่ี
คอลมั น์แรก คาสง่ั นีก้ ็จะเป็นการลบข้อความในบรรทดั นนั้ ทงั้ บรรทดั
printf()
เป็นฟังก์ชนั มาตรฐานในภาษาซีท่ีใช้ในการแสดงผลลพั ธ์ออกทางจอภาพ ณ ตาแหน่งท่ีเคอร์เซอร์ปรากฏอยู่
รูปแบบ
printf("ข้อความ");
printf("control_format",exp1 [,exp2[,...expN]]);
Control_format อาจประกอบไปด้วย ข้อความ หรือ อกั ขระควบคมุ การแสดงผลลพั ธ์ หรือ รหสั
รูปแบบ อยภู่ ายในเครื่องหมายคาพดู " " แต่รวมความยาวทงั ้ หมดไมเ่ กิน 254 อกั ขระ
exp1, exp2, ... expN คือเป็นค่าข้อมลู หรือตวั แปร หรือนิพจน์ก็ได้
จานวนของ expression จะต้องสมั พนั ธ์กบั ชนิดและจานวนรหสั รูปแบบท่ีอยใู่ นเคร่ืองหมายคาพดู เชน่
printf("Hello");
printf("\n");
printf("Welcome to Thailand\n");
printf("\nValue A\t\tValue B\t\tSum\n");
printf("%3d\t\t%3d\t\t%3d\n",a,b,(a+b));
– \a Bell อกั ขระควบคมุ การแสดงผลลพั ธ์ (Escape
Control)
– \' Single quote
– \b Backspace – \" Double quote
– \f Form feed – \0 Null
– \n New line
– \r Carriage return
– \t Horizontal tab
– \\ back slash
รหสั รปู แบบขอ้ มูล (Format code)
หมายถึง รหสั รูปแบบข้อมลู เพ่อื กาหนดประเภทข้อมลู ที่กาหนด โดยต้องระบภุ ายในเครื่องหมาย " " (Double Quote)
– %c ใช้กบั ข้อมลู ประเภท char
– %d ใช้กบั ข้อมลู ประเภท int - เลขฐานสิบ
– %u ใช้กบั ข้อมลู ประเภท unsigned int
– %l ใช้กบั ข้อมลู ประเภท long
– %lu ใช้กบั ข้อมลู ประเภท unsigned long
– %e ใช้กบั ข้อมลู ประเภท float ในรูป e ยกกาลงั
– %f ใช้กบั ข้อมลู ประเภท float
– %lf ใช้กบั ข้อมลู ประเภท double
– %g ใช้กบั ข้อมลู ประเภท float
– %h ใช้กบั ข้อมลู ประเภท short int
– %o, %O ใช้กบั ข้อมลู ประเภท - เลขฐานแปด
– %0x,%0X ใช้กบั ข้อมลู ประเภท - เลขฐานสิบหก
ฟังกช์ นั เกย่ี วกบั การแสดงผลทางจอภาพ (ต่อ)
– putchar()
เป็นฟังก์ชนั มาตรฐานในภาษาซีที่ใช้ในการแสดงอกั ขระออกทางจอภาพ
รูปแบบ putchar(ch);
โดย ch เป็นตวั แปรชนิดอกั ขระ
– puts()
เป็นฟังก์ชนั มาตรฐานในภาษาซีที่ใช้ในการแสดงข้อความออกทางจอภาพ
รูปแบบ puts(str);
โดย str เป็นตวั แปรชนิดข้อความ หรือ สายอกั ขระ
– gotoxy( )
เป็นฟังก์ชนั ย้ายเคอร์เซอร์ไปตาแหนง่ x และ y
รูปแบบ gotoxy(x,y);
x มีคา่ อยู่ระหวา่ ง 1-80
y มีค่าอยู่ระหวา่ ง 1-25
window()
เป็นฟังก์ชนั กาหนดขนาดของหน้าตา่ งในโหมดเทก็ ซ์ ซงึ่ มีคา่ โดยปริยาย (Default) = 80 x
25 (80 คอลมั น์ 25 บรรทดั )
รูปแบบ
window(left, top, right, bottom);
left ขอบหน้าตา่ งด้านซ้าย มีค่าอย่รู ะหว่าง 1-80
right ขอบหน้าตา่ งด้านขวา มีค่าอย่รู ะหว่าง 1-80 แตต่ ้องมากกวา่ left
top ขอบหน้าตา่ งด้านบน มีค่าอยรู่ ะหว่าง 1-25 แตต่ ้องน้อยกว่า
bottom
bottom ขอบหน้าตา่ งด้านลา่ ง มคี า่ อย่รู ะหวา่ ง 1-25 แตต่ ้อง
มากกวา่ top
การกาหนดสตี วั อกั ษรและสพี ้นื และคาสง่ั แสดงผล
– textcolor(fc);
fc = คา่ สตี วั อกั ษร
สามารถกาหนดได้ 16 สี มีคา่ อยรู่ ะหวา่ ง 0-15
– textbackground(bc);
bc = คา่ สพี นื ้
สามารถกาหนดได้ 8 สี มีคา่ อยรู่ ะหวา่ ง 0-7
– cprintf()
เป็นฟังก์ชนั สาหรับพิมพ์ข้อความที่เป็นสี ใช้กบั Turbo C เทา่ นนั้
ตวั อย่าง โปรแกรมแสดงรหสั แอสก้ี (ASCII
Code)
// by Nuntchayathorn Chatrsuwun
#include <conio.h>
#include <stdio.h>
void main()
{
clrscr();
for (int i=32; i<=255; i++)
{
if (i == 128) getch();
printf(" %03d(%02X) %c",i,i,i);
}
getch();
}
ผลกำรรนั โปรแกรม
ฟังกช์ นั รบั ค่าขอ้ มูลทางแป้ นพมิ พ์
– scanf()
เป็นฟังก์ชนั ในการรับข้อมลู จากแป้นพิมพ์ (Keyboard) เข้าไปเก็บไว้ในตัวแปรท่ี
กาหนด โดยชนิดข้อมูลสามารถกาหนดได้ ทกุ ประเภท ดงั นนั้ ฟังก์ชนั นีจ้ ึงเป็นฟังก์ชนั ที่นิยมใช้กัน
มากในการรับข้อมลู เม่ือคาสง่ั นีท้ างาน จะปรากฏเคอร์เซอร์ (Cursor) กระพริบรอรับการปอ้ น
ข้อมลู ให้เราพิมพ์ข้อมลู ท่ีต้องการแล้วกดคีย์ Enter
รูปแบบ scanf("format", &var);
"format" : รหสั รูปแบบขอ้ มูล (Format code)
var : ตวั แปรทีจ่ ะทาหนา้ ทีเ่ ก็บคา่ ทีร่ ับเขา้ มาจากแปน้ พิมพ์
โดยช่ือตวั แปรจะต้องนาด้วยเครื่องหมาย & เสมอ
ยกเว้นถ้าเป็นตวั แปรชนิดข้อความ อาจจะไม่ต้องใสเ่ คร่ืองหมาย & กไ็ ด้
การรบั ค่าทางแป้ นพมิ พใ์ หก้ บั ตวั แปรเดยี ว
scanf("%d", &n);
เป็นการรับข้อมลู ตวั เลขจานวนเตม็ ฐานสิบจากแปน้ พิมพ์มาเก็บไว้ที่ตวั แปร n
scanf("%s", str); หรอื
scanf("%s",&str);
เป็นการรับข้อมลู ที่เป็นข้อความ มาเก็บไว้ที่ตวั แปร str
scanf("%c", &ch);
เป็นการรับข้อมลู อกั ขระจากแปน้ พิมพ์มาเก็บไว้ในตวั แปร ch
การรบั ขอ้ มูลชนดิ อกั ขระ
– แบบต้องกดคยี ์ Enter ทุกครัง้
getchar( )
เป็นฟังก์ชนั ท่ีใช้สาหรับรับข้อมูลประเภทตัวอักขระจากแป้นพิมพ์ โดยรับข้อมูลครัง้ ละ 1 ตวั อกั ขระ
เทา่ นนั้ ดงั นนั้ ตวั แปรท่ีมารับคา่ ก็จะต้องประกาศเป็นชนดิ char ด้วย เม่ือปอ้ นอกั ขระ 1 ตวั แล้ว ต้องกดคีย์ Enter
รูปแบบ var = getchar();
เชน่
char ch;
printf("Enter your charactor : ");
ch = getchar();
การรบั ขอ้ มูลชนดิ อกั ขระ
–แบบไม่ต้องกดคีย์ Enter ทุกครัง้
getch();
เป็นฟังก์ชนั สาหรับรับข้อมลู ชนิดอกั ขระจากแป้นพิมพ์ 1 อกั ขระ โดยไม่ต้องกด
คีย์ Enter จะไมแ่ สดงค่าอกั ขระ
getche();
เป็นฟังก์ชนั สาหรับรับข้อมลู ชนิดอกั ขระจากแป้นพิมพ์ 1 อกั ขระ โดยไม่ต้องกด
คีย์ Enter จะแสดงอกั ขระท่ีกด
การรบั ขอ้ มูลชนดิ ขอ้ ความ
– gets()
เป็นฟังก์ชนั ที่ใช้สาหรับรับข้อมลู ชนิดข้อความจากแปน้ พมิ พ์ และเมื่อปอ้ นข้อมลู ที่เป็น
ข้อความเสร็จแล้ว ให้กดคีย์ Enter
รูปแบบ gets(str);
str คือตวั แปรชนิดขอ้ ความไวส้ าหรับเก็บขอ้ มูลชนิดขอ้ ความทีป่ อ้ นจากแปน้ พิมพ์
เชน่
char str[30];
printf("Enter your name : ");
fflush(stdin); gets(str);
printf("Your name is %s\n",str);