10. หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี
10
ตัวอย่าง
. . .
y = x + a ++;
. . .
ขั้นตอนการประมวลผล
1. y = x + a
2. a = a + 1
. . .
y = x + ++ a;
. . .
ขั้นตอนการประมวลผล
1. a = a + 1
2. y = x + a
. . .
y += x ;
. . .
ขั้นตอนการประมวลผล
y = y + x
. . .
y += x ++ ;
. . .
ขั้นตอนการประมวลผล
1. y = y + x
2. x = x + 1
. . .
y -= 9 ;
. . .
ขั้นตอนการประมวลผล
y = y - 9
. . .
y *= 7 * x++ ;
. . .
ขั้นตอนการประมวลผล
1. y = y * 7 * x
2. x = x + 1
. . .
y /= x ;
. . .
ขั้นตอนการประมวลผล
y = y / x
. . .
y %= x ;
. . .
ขั้นตอนการประมวลผล
y = y % x
ตารางที่ 3-5 : แสดงตัวอย่างตัวดําเนินการของ C
12. หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี
12
ตัวดําเนินการเปรียบเทียบ (Relational operators)
หมายถึง เครื่องหมายที่ใช้ในการเปรียบเทียบและตัดสินใจ ผลการเปรียบเทียบจะให้ค่า
เป็น 1 และ เท็จจะให้ค่าเป็น 0 เครื่องหมายที่ใช้มีดังตารางที่ 3-8
เครื่องหมาย ความหมาย ตัวอย่าง
> มากกว่า A > B (A มากกว่า B)
>= มากกว่าหรือเท่ากับ A >= B (A มากกว่าหรือเท่ากับ B)
< น้อยกว่า A < B (A น้อยกว่า B)
<= น้อยกว่าหรือเท่ากับ A <= B (A น้อยกว่าหรือเท่ากับ B)
== เท่ากับ A == B (A เท่ากับ B)
!= ไม่เท่ากับ A != B (A ไม่เท่ากับ B)
ตารางที่ 3-8 : แสดงตัวดําเนินการเปรียบเทียบ
เครื่องหมายตรรกะ (logical operators)
เครื่องหมายตรรกะมีจุดประสงค์ใช้ในการเปรียบเทียบเพื่อตัดสินใจซึ่งผลที่ได้จากการ
เปรียบเทียบจะได้ผลลัพธ์ 2 อย่าง คือ ถ้าได้ผลลัพธ์เป็นจริงจะมีค่าเป็น 1 และถ้าได้ผลลัพธ์เป็นเท็จ
จะมีค่า 0 เป็นเครื่องหมายตรรกะที่ใช้ในภาษา C มีดังนี้
คําสั่ง && (AND) เป็นการนําเงื่อนไข 2 เงื่อนไขมาเปรียบเทียบกันซึ่งผลลัพธ์ที่ได้จะเป็น
ดังนี้
X Y X && Y
0 0 0
0 1 0
1 0 0
1 1 1
คําสั่ง | | (OR) เป็นการนําเงื่อนไข 2 เงื่อนไขมาเปรียบเทียบกันซึ่งผลลัพธ์ที่ได้จะเป็น
ดังนี้
X Y X | | Y
0 0 0
0 1 1
1 0 1
1 1 1
23. หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 23
3. แบบ if – else – if ที่มีสเตตเมนต์เดียว และหลายสเตตเมนต์มีรูปแบบดังนี
รูปแบบ if (condition) // if – else - if ที่มีสเตตเมนต์เดียว
statement - 1;
else if (condition)
statement - 2;
…
else
statement - n;
-- หรือ --
if (condition) // if – else - if หลายสเตตเมนต์
{ statement - 1;
…
}
else if (condition)
{ statement - 2;
…
}
…
else
{ statement - n;
…
}
24. หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 24
ตัวอย่างโปรแกรม การใช้คําสั่งเลือกทําแบบ if
#include <stdio.h>
#include <ctype.h>
void main()
{
char any_char;
printf("Please type a lowercase letter:");
scanf("%c",&any_char);
if(any_char < 'a')
printf("Sorry, I can not capitalize that.n");
else
printf("Thank you. In uppercase : %c.",toupper (any_char));
}
#include <stdio.h>
#include <ctype.h>
void main()
{
char any_char ;
printf("Please type a lowercase letter:");
scanf("%c",&any_char);
if(any_char< 'a')
printf("Sorry,I can not capitalize that./n");
else if (any_char>'z')
printf("Sory, I can not capitalize that./n");
else
printf("Thank you. In uppercase: %c n", toupper (any_char));
}
25. หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 25
#include <stdio.h> // for printf()
#include <conio.h> // for getche()
void main(void)
{
int x, y;
clrscr();
printf("n"); // new line
for (y=1; y<24; y++) // step down the screen
{
for (x=1; x<24; x++) // step across the screen
if ( x == y ) // NW-SE diagonal?
printf("xDB"); // print solid color
else
if ( x == 24 - y ) // SW-NE diagonal?
printf("xDB"); // print solid color
else
printf("xB0"); // print gray
printf("n"); // next line
delay(200);
}
getche();
}
ตัวอย่างโปรแกรม การใช้คําสั่งเลือกทําแบบ if ที่มา :: พ.อ.เจนวิทย์ เหลืองอร่ามและปิยวิทย์ เหลืองอร่าม ,
การเขียนโปรแกรม สําหรับ Application ด้วย C/C++, ธรรมสาร จํากัด, 2543
26. หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 26
คําสั่ง switch ใช้เพื่อเลือกทําคําสั่งใดคําสั่งหนึ่งตามต้องการ โดยมีทางเลือกให้ทําคําสั่ง
หลาย ๆ ทาง ค่าตัวแปรจะทําหน้าที่ควบคุมคําสั่ง switch คําสั่ง switch และคําสั่ง if – else – if
เป็นคําสั่งเลือกทํา เช่นเดียวกัน แต่ต่างกันที่รูปแบบเงื่อนไข ต่อไปนีเป็นรูปแบบของการเลือกทํา
แบบ switch
การเลือกทําแบบ switch มีวิธีเลือกทําโดยการเปรียบเทียบค่าของ switch แวเรียเบิล กับ
ค่าของคอนสแตนต์ในแต่ละ case ถ้ามีค่าเท่ากันสเตตเมนต์ของ case นันจะทํางาน และถ้าค่าของ
switch แวเรียเบิลไม่เท่ากับค่าของคอนสแตนต์ใน case ใด ๆ เลย สเตตเมนต์ของ default จะ
ทํางาน
การเลือกทําแบบ switch
รูปแบบ switch ( แวเรียเบิลชนิด int หรือ char )
{
case คอนสแตนต์ชนิด int หรือ char :
สเตตเมนต์;
สเตตเมนต์;
break;
case คอนสแตนต์ชนิด int หรือ char :
สเตตเมนต์;
สเตตเมนต์;
break;
default :
สเตตเมนต์;
สเตตเมนต์;
}
27. หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 27
ตัวอย่างโปรแกรม การใช้คําสั่งเลือกทําแบบ switch
#include <stdio.h>
void main()
{
int ch; clrscr();
printf(" Menu n");
printf("===================n");
printf(" 1 :Create Data n");
printf(" 2 :Display Data n");
printf(" 3 :Append Data n");
printf(" 4 :Edit Data n");
printf(" 5 :Quit n");
printf("===================n");
printf("Please select <1, 2, 3, 4, 5 > ==> "); scanf("%d", & ch);
switch (ch)
{ case 1: printf("You take choice 1:Create Data n");
break;
case 2: printf("You take chaoice 2:Display Datan");
break;
case 3: printf("You take choice 3:Append Data n");
break;
case 4: printf("You take choice 4: Edit Data n");
break;
case 5: printf("You take choice 5:Quitn");
break;
default: printf("You take choice the other:default");
}
}
ข้อสังเกต
แวเรียเบิลและคอนสแตนต์ที่ใช้สําหรับเปรียบเทียบในการเลือกทําแบบ switch
จะต้องมีชนิดเป็น int และ char เท่านัน
28. หลักการแก้ปัญหาและการโปรแกรม [ง 40102] สาขาวิชาคอมพิวเตอร์ และเทคโนโลยี 28
#include <stdio.h> // for printf()
void main(void)
{
float Fnum1=1.0, Fnum2=1.0;
char op;
clrscr();
while ( !(Fnum1==0.0 && Fnum2==0.0) )
{ printf("nnEnter number, operator, numbern");
scanf("%f %c %f", &Fnum1, &op, &Fnum2);
switch ( op )
{ case '+' : printf(" = %f", Fnum1 + Fnum2);
break;
case '-' : printf(" = %f", Fnum1 - Fnum2);
break;
case '*' :
case 'x' : printf(" = %f", Fnum1 * Fnum2);
break;
case '/' :
case '': printf(" = %f", Fnum1 / Fnum2);
break;
default : printf("Unknown operator");
} // end switch
} // end while
} // end main()
ตัวอย่างโปรแกรม การใช้คําสั่งเลือกทําแบบ switch :: พ.อ.เจนวิทย์ เหลืองอร่ามและปิยวิทย์ เหลืองอร่าม ,
การเขียนโปรแกรม สําหรับ Application ด้วย C/C++, ธรรมสาร จํากัด, 2543
เ