หน้าเว็บ

Wednesday, June 1, 2011

การใช้ Array

นี่ก็จะเป็นแค่ตัวอย่างการใช้อาร์เรย์แบบ 1 มิติ และ 2 มิติ นะคะ

1) Array

C-Program 07 : ใส่ตัวเลข 3 ค่า เพื่อนำไปเก็บใน array ขนาด 1x3
คำสั่งที่ใช้ : array, for


#include <stdio.h>

int main()
{
    int i, sc[3];
    for(i=0; i<3; i++){
        printf("Enter number : ");
        scanf("%d",&sc[i]);
    }
    for(i=0; i<3; i++){
        printf("Display[%d] : %d\n",i,sc[i]);
    }
    getch();
    return 0;
}


2) Array 2 มิติ

C-Program 08 : ใส่ตัวเลข 6 ค่า เพื่อนำไปเก็บใน array ขนาด 2x3
คำสั่งที่ใช้ : array, for


#include <stdio.h>

int main()
{
    int i, j, sc[2][3];
    for(i=0; i<2; i++){      /* Row */
        for(j=0; j<3; j++){  /* Column */
            printf("Enter number [%d][%d] : ",i,j);
            scanf("%d",&sc[i][j]);
        }
    }
    printf("\n");
    for(i=0; i<2; i++){      /* Row */
        for(j=0; j<3; j++){  /* Column */
            printf("Display [%d][%d] : %d \n",i,j,sc[i][j]);
        }
    }
    getch();
    return 0;
}

Condition และ Loop

แต่ละอันจะแค่ยกตัวอย่างนะคะ

1) If-Else Condition

C-Program 01 : เปรียบเทียบความยาวของ String ไม่เกิน 15 อักษร ว่ายาวกว่า สั้นกว่า หรือเท่ากัน
คำสั่งที่ใช้ : if-else, string, strlen(str) 

#include <stdio.h>
#include <string.h>

int main()
{
    printf("Hello world!\n\n");

    char str1[15], str2[15];
    int n1, n2;

    printf("Enter String 1: ");
    scanf("%s",&str1);
    printf("Enter String 2: ");
    scanf("%s",&str2);

    n1 = strlen(str1);
    n2 = strlen(str2);

    if(n1>n2)
        printf("String 1 have more length than String 2.");
    else
        printf("String 1 have less than or equal length to String 2.");

    getch();
    return 0;
}

2) If-Else if Condition

C-Program 02 : โปรแกรมแสดงว่าอายุคุณ อยู่ในช่วงวัยใด
คำสั่งที่ใช้ : if-else if และ &&

#include <stdio.h>
main()
{
    int age;
    printf("Enter your age: ");
    scanf("%d",&age);

    if(age>1 && age<=5)
        printf("Baby");
    else if(age>5 && age<=10)
        printf("Child");
    else if(age>10 && age<=25)
        printf("Teenage");
    else
        printf("Adult");
    getch();
}

3) Switch-Case Condition

C-Program 03 : ใส่เครื่องหมายดำเนินการลงไป ตรวจสอบว่า เป็น operation ประเภทใด
คำสั่งที่ใช้ : switch, char

#include <stdio.h>
int main()
{
    char opr;
    printf("Enter Operator : ");
    scanf("%c",&opr);

    switch(opr)
    {
        case '+':{
            printf("Addition");
            break;
        }
        case '-':{
            printf("Subtrsction");
            break;
        }
        case '*':{
            printf("Multiplication");
            break;
        }
        case '/':{
            printf("Division");
            break;
        }
        default:
            printf("Not found operator");
    }
    getch();
    return 0;
}

4) For Loop

C-Program 04 : ตัวอย่างการจำนวนครั้งในการวนลูป for และการเขียนเพื่อรับค่า
คำสั่งที่ใช้ : for

#include <stdio.h>
int main()
{
    int i, j, k, num;
    for(i=0; i<3; i++){
        printf("Happy\n");
    }
    printf("\n");
    for(j=1; j<=3; j++){
        printf("Lucky\n");
    }
    printf("\n");
    for(k=0; k<3; k++){
        printf("Enter number : ");
        scanf("%d",&num);
    }
    getch();
    return 0;
}


5) While Loop

C-Program 05 : นับจำนวนสตริงที่ใส่เข้าไปแล้ว แล้วพิมพ์ OK ตามจำนวนสตริง
คำสั่งที่ใช้ : while, strlen, string

#include <stdio.h>
#include <string.h>

int main()
{
    char str[40];
    int n1;

    printf("Enter number of string : ");
    scanf("%s",&str);
    n1 = strlen(str); /* นับความยาวสตริง จำนวนตัวอักษร */
    printf("This string is %d characters\n",n1);

    int n2=0;
    while(n2<n1){
        printf("\nOK");
        n2++;
    }
    getch();
    return 0;
}

6) Do-While Loop

C-Program 06 : ถ้ากดตัวอักษรที่ไม่ใช่ y จะพิมพ์คำว่า Hello มาเรื่อยๆ จนกระกด y แล้วจะพิมพ์คำว่า World เท่ากับจำนวนครั้งที่พิมพ์ Hello
คำสั่งที่ใช้ : do-while, getche

#include <stdio.h>

int main()
{
    int p=0;
    char ch;
    printf("Press y to exit Hello\n");
    do{
        printf("\nHello\n");
        ch = getche();
        /* getche เป็นคำสั่งในการรับข้อมูล 1 อักขระ  แสดงผลทางจอโ ดยไม่ต้องกด Enter */
        /* getch  เหมือน getche แต่่จะไม่ปรากฎอักขระให้เห็นในการป้อนอักขระ */
        p++;
    }while(ch!='y');
    /* ถ้าเงื่อนไขเป็นจริง จะวนทำคาสั่งต่อไป ถ้าเป็นเท็จ จะออกจากลูปทันที */
    /* ถ้า ch ไม่เท่ากับ y ทำต่อ ถ้าเป็น y จะออกจากลูปทันที */

    printf("\n\n");

    int n=0;
    do{
        printf("World\n");
        n++;
    }while(n<p);
    return 0;
}

Tuesday, May 31, 2011

Variables, Operators, และการแสดงผล

1) ชนิดของตัวแปร

ชนิดของตัวแปร
(variable  types)
จำนวน  bytes  ที่ใช้
พิสัยในการเก็บข้อมูล
(range)
char
1
-128  to  127
int
2
-32,768  to  32,767
short
2
-32,768  to  32,767
long
4
-2,147,483,648  to  2,147,483,647
unsigned  char
1
0  to  255
unsigned  int
2
0  to  65,535
unsigned short
2
0  to  65,535
unsigned long
4
0  to  4,294,967,295
enum
2
0  to  65,535
float
4
1.2E-38  to  3.4E+38
double
8
2.2E-308  to  1.8E+308


2) ตัวดำเนินการ (Operators)
  1. ตัวดำเนินการคณิตศาสตร์  (mathematical operators)
  2. ตัวดำเนินการความสัมพันธ์  (relational  operators)
  3. ตัวดำเนินการเชิงตรรกะ  (logical  operators)
  4. ตัวดำเนินการเพิ่มค่าและลดค่า (increment and decrement operators)
  5. ตัวดำเนินการบิตไวส์  (bitwise operators)
  6. ตัวดำเนินการกำหนดค่า  (compound  assignment operators)
  7. ตัวดำเนินการแบบเงื่อนไข  (conditional operators)
ตัวดำเนินการคณิตศาสตร์
สัญลักษณ์  (symbol)
ตัวดำเนินการ  (operators)
ตัวอย่าง
+
บวก  (addition)
a+b
-
ลบ  (subtraction)
a-b
*
คูณ  (multiplication)
a*b
/
หาร  (division)
a/b
%
หารเอาเศษ  (remainder)
a%b

ตัวดำเนินการความสัมพันธ์ 
สัญลักษณ์  (symbol)
ตัวดำเนินการ  (operators)
ตัวอย่าง
น้อยกว่า  (less  than)
A<b
มากกว่า  (greater  than)
a>b
<=
น้อยกว่าหรือเท่ากับ
(less  than  or  equal)
A<=b
>=
มากกว่าหรือเท่ากับ
(greater  than  or  equal)
a>=b
==
เท่ากับ  (equal)
A==b
!=
ไม่เท่ากับ  (not  equal)
a!=b

ตัวดำเนินการความตรรกะ 
สัญลักษณ์  (symbol)
ตัวดำเนินการ  (operators)
ตัวอย่าง
&&
และ (AND)
A<b && c>d
||
หรือ (OR)
a<b || c>d
!
ไม่ (NOT)
!(a<b)

ตัวดำเนินการเพิ่มค่าและลดค่า
สัญลักษณ์  (symbol)
ตัวดำเนินการ  (operators)
ตัวอย่าง
++
เพิ่มค่า  (increment)
a++  หรือ   ++a
--
ลดค่า  (decrement)
a-- หรือ   --a

ตัวดำเนินการบิตไวส์
สัญลักษณ์  (symbol)
ตัวดำเนินการ  (operators)
ตัวอย่าง
&
AND
a&b
|
inclusive OR
a|b
^
exclusive OR
a^b
~
Complement
~a
>> 
right shift
a>>2
<< 
left shift
a<<3

ตัวดำเนินการกำหนดค่า
สัญลักษณ์  (symbol)
ตัวดำเนินการ  (operators)
ตัวอย่าง
=
Assignment
a=b
+=
Addition
a+=b  หมายถึง  (a=a+b)
-=
Subtraction
a-=b  หมายถึง  (a=a-b)
*=
Multiplication
a*=b  หมายถึง  (a=a*b)
/=
Division
a/=b  หมายถึง  (a=a/b)
%=
Remainder
a%=b  หมายถึง  (a=a%b)
&=
bitwise  AND
a&=b  หมายถึง  (a=a&b)
|=
bitwise  Inclusive  OR
a|=b  หมายถึง  (a=a|b)
^=
bitwise  exclusive  OR
a^=b  หมายถึง  (a=a^b)
<<=
right  shift
a<<2  หมายถึง  (a=a<<2)
>>=
left  shift
a>>3  หมายถึง  (a=a>>3)

ตัวดำเนินการแบบเงื่อนไข
สัญลักษณ์  (symbol)
ตัวดำเนินการ  (operators)
ตัวอย่าง
Result = (expression) ?
Value1 : vaule2 ;
Conditional  Operators
Max = (a>b) ? a: b;


3) ลำดับการทำงานของ Operators

ลำดับที่
ตัวดำเนินการ  
(Operator)
ลักษณะการทำงาน (Associativity)
1
( )  [ ]  .  ->
Left  to  right
2
-     ~   !   *   &
Light  to  left
3
++  - -
Right  to  left
4
*   /   %
Left  to  right
5
+   -
Left  to  right
6
<<   >>
Left  to  right
7
<  >   < =   >=
Left  to  right
8
= =     !=
Left  to  right
9
& (bitwise  AND)
Left  to  right
10
^ (bitwise   exclu  OR)
Left  to  right
11
|  (bitwise  inclu  OR)
Left  to  right
12
&&
Left  to  right
13
||
Left  to  right
14
?:
Left  to  right
15
=  +=  -=  /=  %=
Right  to  left
16
<<=  >>=
Right  to  left


4) รูปแบบ printf() และ scanf()
printf("Enter the number : ");
scanf ("%d",&num);

 5) รหัสควบคุมรูปแบบการแสดงผลค่าตัวแปรออกทางหน้าจอ

รหัสควบคุมรูปแบบ
การนำไปใช้งาน
%d
แสดงผลค่าของตัวแปรชนิดจำนวนเต็ม
%u
แสดงผลค่าของตัวแปรชนิดจำนวนเต็มบวก
%f
แสดงผลค่าของตัวแปรชนิดจำนวนทศนิยม
%c
แสดงผลอักขระ 1 ตัว
%s
แสดงผลข้อความ หรืออักขระมากกว่า 1 ตัว

6) อักขระควบคุมการแสดงผล

อักขระควบคุมการแสดงผล
ความหมาย
\n
ขึ้นบรรทัดใหม่
\t
เว้นช่องว่างเป็นระยะ 1 แท็บ (6 ตัวอักษร)
\r
กำหนดให้เคอร์เซอร์ไปอยู่ต้นบรรทัด
\f
เว้นช่องว่างเป็นระยะ 1 หน้าจอ
\b
ลบอักขระสุดท้ายออก 1 ตัว