The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.
Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by kruthida28, 2019-07-30 03:41:48

หน่วยที่ 6

หน่วยที่ 6

ตวั ดาเนินการทางตรรกะ

(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 O|=perator)

-= ^=
*= <<=
/= >>=
%=

&=

ลาดับการทางานของตวั ดาเนินการ

1. ( )
2. !, ++, --
3. *, /, %
4. +, -
5. <, <=, >, >=
6. ==, !=
7. &&
8. ||
9. *=, /=, %=, +=, -=
ทิศทางการทางาน จากซา้ ยไปขวา

นิพจน์หมายถึง การนาค่าคงที่ ตวั แปร และต(วั Eดาเนxินpกาrรมeาปsระsกiอoบกnนั )เพอื่ เขียนเป็นคาสงั่ ใหต้ วั แปล

ภาษาคอมพิวเตอร์เขา้ ใจ และสามารถทางานตามคาสงั่ ไดผ้ ลลพั ธ์ตามตอ้ งการ

สูตร นิพจน์

 = 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)
• textcolor(); - กาหนดสีตวั อกั ษร (0-15)

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));

อักขระควบคุมการแสดงผลลัพธ์ (Escape

• \a Bell Cont•r\o\l)back slash

• \b Backspace • \' Single quote

• \f Form feed • \" Double quote

• \n New line • \0 Null

• \r Carriage return

• \t Horizontal tab

รหสั รูปแบบข้อมูล (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 ใชก้ บั ขอ้ มูลประเภท - เลขฐานสิบหก

• %s ใชก้ บั ขอ้ มูลประเภท ขอ้ ความ (String)

• putchฟarัง()ก์ชันเก่ยี วกับการแสดงผลทางจอภาพ (ต่อ)

เป็นฟังกช์ นั มาตรฐานในภาษาซีที่ใชใ้ นการแสดงอกั ขระออกทางจอภาพ
รูปแบบ 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);


Click to View FlipBook Version