วันพฤหัสบดีที่ 30 มิถุนายน พ.ศ. 2554

Wordpress



Wordpress คืออะไร

Wordpress คือโปรแกรมชนิดหนึ่งที่มีระบบในการช่วยจัดการเนื้อหาบนเว็บ ได้อย่างง่ายดาย หรือที่หลายๆ คนใช้คำว่า Contents Management System (CMS) ซึ่งจริงๆ แล้ว โปรแกรมประเภท CMS มีเยอะแยะ อย่างเช่น PHP Nuke, Joomla, Mambo, OScommerce, Magento เป็นต้น สนใจเกี่ยวกับ CMS 
 Wordpress เป็น CMSประเภทBlogซึ่งพัฒนาขึ้นโดยภาษา PHP และทำงานบนฐานข้อมูล MySQL ภายในสัญญาอนุญาตใช้งานแบบGeneral Public License(GNU)มีเวปไซต์หลักอยู่ที่ http://www.wordpress.org และมี free hosting สำหรับขอรับบริการฟรีที่ http://www.wordpress.com
 
Wordpress เป็นโปรแกรมที่ใช้งานง่าย สำหรับคนที่ต้องการมีบล็อกส่วนตัว เป็นที่โปรแกรมที่นิยมกันทั่วโลก รวมทั้งในประเทศไทยเราด้วยเช่นกันครับ นอกจากการติดตั้งง่ายแล้ว Wordpress ยังมีข้อดีก็คือ เราสามารถหาดาวน์โหลดธีม (Themes) หรือหน้าตาของเว็บ


                                                     -----------------------  จบจ้า  ----------------------- 

บทที่ 3 อาร์เรย์ (Array)

อาร์เรย์ (Array)

Array (อาร์เรย์) คือ ชุดข้อมูลที่เรียงกันอย่างเป็นลำดับ โดยจะมี index (อินเด็กซ์) หรือ key(คีย์) เพื่อเป็นตัวแปรที่ใช้ในการอ้างถึงข้อมูลเหล่านั้น


การประกาศ ตัวแปรอาร์เรย์ 1 มิติ
การประกาศตัวแปรแบบอาร์เรย์สามารถทำได้คล้ายกับการประกาศตัวแปรอื่น ๆ ทั่วไป โดยการกำหนดซื่อของตัวแปร ชนิดของข้อมูล และขนาดของข้อมูล (Element) ตัวอย่างเช่น
int grades[5];                           /* Array ขนาด 5 ของ int */
เป็นการประกาศตัวแปรแบบอาร์เรย์ 1 มิติชื่อ grades ให้เป็นข้อมูลแบบอักษรโดยมีขนาดเท่ากับ 5 element ซึ่งการประกาศตัวแปรนี้จะจองหน่วยความจำเท่ากับ 2 byte * 5 = 10 byte
            char codes[5];                        /* Array ขนาด 5 ของ int */
            การประกาศตัวแปร codes จะใช้หน่วยความจำเท่ากับ 1 byte * 6 = 6 byte
            float prices[100];                     /* Array ขนาด 100 ของ float */
การรับและแสดงค่าของอาร์เรย์(Input And Output of Array Values)
ในการให้ค่าแก่ตัวแปรสามารถทำได้ด้วยการกำหนดให้โดยตรงหรือจะให้ผู้ใช้กรอกโดยการรับค่าจากคีย์บอร์ด โดยใช้ร่วมกับคำสั่ง scanf()  ตัวอย่างเช่น

                price[5] = 10.69;
      scanf(“%d %lf”, &grades[0], &price[2])
      scanf(“%c”, &code[0]);
      scanf(“%d %d %d”, &grades[0], &grades[1], &grades[2]);

หรืออาจใช้การวนรอบเพื่อรับค่าจากผู้ใช้ก็เป็นได้ดังตัวอย่าง

                for(i = 0; i <=4; ++i)
{     printf(“Enter a grade: “);
scanf(“%d”, &grades[i]);
      }    

การให้ค่าเริ่มต้น(Array Initialization)
การกำหนดค่าเริ่มต้นของตัวแปรแบบอาร์เรย์ 1 มิติ สามารถกำหนดได้สำหรับทุกชนิดของข้อมูลดังตัวอย่างตัวไปนี้

int grades[5] = {98,87,92,79,85};
char codes[6] = {‘s’, ‘a’, ‘m’, ‘p’, ‘l’, ‘e’};
double width[7] = {10.96,6.43,2.58,0.86,5.89,7.56,8.22};
static int temp[4] = {10,20,30,40};
static float temp[4] = {98.6,97.2,99.0,101.5};

ตัวแปรอาร์เรย์แบบ 2 มิติ
ตัวแปรอาร์เรย์แบบ 2 มิติจะเป็นตัวแปรที่มีการอ้างอิงถึงค่าข้อมูลโดยใช้ค่าเลขดัชนี 2 ค่าซึ่งประกอบไปด้วยค่าดัชนีที่ใช้ในการอ้างอิงในแนวแถว (rows) และค่าดัชนีที่ใช้อ้างอิงในแนวคอลัมน์(columns) ตัวอย่างเช่น
                                            8          16        9          52
                                    3          15        27        6
                                    14        25        2          10
            ซึ่งเรียกอาร์เรย์แบบนี้ว่าอาร์เรย์  2 มิติของจำนวนเต็ม ซึ่งประกอบด้วย 3 แถว 4 คอลัมน์ การประกาศตัวแปรอาร์เรย์ 2 มิติจะถ้ากับ 1 มิติแต่เพิ่มเติมการกำหนดขนาด ซึ่งจะต้องระบุทั้งในแนวแถวและคอลัมน์ เช่น
                        int val[3][4];
            เป็นการประกาศตัวแปรชื่อ val เป็นตัวแปรอาร์เรย์ 2 มิติเพื่อเก็บข้อมูลจำนวนเต็ม ซึ่งจะจองหน่วยความจำเท่ากับ 2 byte * 3 * 4 = 24 byte
                        double prices[10][5];
            เป็นการประกาศตัวแปร prices ซึ่งจะจองหน่วยความจำเท่ากับ 8 byte * 10 * 50 = 4000 byte    หรือ  
                        char code[6][10];
            เป็นการประกาศตัวแปร code ซึ่งจะจองหน่วยความจำเท่ากับ 1 byte * 6 * 10 = 60 byte

การทดลอง

ตอนที่ 1: อาร์เรย์ 1 มิติ
1.1  ศึกษาการประกาศตัวแปรประเภทอาร์เรย์  การให้ค่าเริ่มต้น และการรับและแสดงค่าในอาร์เรย์
-          จากโปรแกรมต่อไปนี้ให้ทำการรันแบบ Step (F8)
-          ทำการดูค่าภายในตัวแปรอาร์เรย์ด้วย Debug/Watch ด้วยการกด Ctrl+F7 แล้วใส่ชื่ออาร์เรย์ซึ่งในที่นี้คือprize แล้วกด Enter สังเกตค่าของตัวแปรในหน้าต่าง Watch บันทึกผลค่า prize[0] ถึง prize[3]

โปรแกรมที่ 1

1. #include<stdio.h>
2. #include<conio.h>
3. void main()
4. {  int n, prize[3]={30, 20, 50};
5.    clrscr();
6.    for(n=0;n<3;n++)
7.          printf(“prize%d is %d”, n, prize[n]);
8. }
-          จากโปรแกรม ให้เปลี่ยนจำนวนข้อมูลของตัวแปร prize จาก 3 เป็น 6 ดังนี้
int n, prize[3]={30,20,50};       แก้ไขเป็น int n,prize[6]={30,20,50};
และแก้ไขบรรทัดที่ 6 จาก for(n=0;n<3;n++) เป็น for (n=0;n<6;n++) จากนั้นบันทึกค่าของ prize[0] ถึง prize[5]

คำถามที่ 1 ในกรณีที่กำหนดค่าเริ่มต้นให้กับแต่ละ element ไม่ครบ จะเกิดผลอย่างไร
-          ทำการเขียนโปรแกรมใหม่ต่อไปนี้

โปรแกรมที่ 2
1. #include<stdio.h>
2. #include<conio.h>
3. void main()
4. {  int n, prize[3];
5.    clrscr();
6.    for (n=0;n<3;n++) {
7.          printf(“Input prize %d”, n);
8.          scanf(“%d”, prize[n]);
9.    }
10.   for (n=0;n<3;n++)
11.         printf(“prize%d is %d”, n , prize[n]);
12. }

เปรียบเทียบผลการทำงานและวิธีการเขียนของโปรแกรมที่ 1 และ 2

คำถามที่ 2 โปรแกรมที่ 2 มีข้อดีกว่าโปรแกรมที่ 1 อย่างไร

1.2  ศึกษาการเข้าถึงข้อมูลอาร์เรย์ ร่วมกับการใช้ลูป for
-          ศึกษาการทำงานของโปรแกรมต่อไปนี้

โปรแกรมที่ 3
1. #include<stdio.h>
2. #include<conio.h>
3. {  int temp[5]; total = 0; count;
4.    float avg;
5.    clrscr();
6.    for(count = 0; count <=4; ++count)
7.    {     printf(“Enter element #%d”, count+1);
8.    scanf(“%d”, &temp[count]);
9.    total+=temp[count];
10.   }
11.   avg = total/5.0;
12.   for(count = 0; count <=4; ++count)
13.         printf(“\n Element #%d = %d”, count, temp[count]);
14.   printf(“\nThe average is %d”, avg);
15. }

-          ทดลองป้อนข้อมูล 10 20 30 40 และ 50 หาผลลัพธ์ที่ได้จากการรันโปรแกรม พร้อมศึกษาการทำงานของโปรแกรม

คำถามที่ 3      - การเข้าถึงข้อมูลประเภทอาร์เรย์ สามารถทำได้อย่างไร
- ลูป for มีประโยชน์ต่อการเข้าถึงข้อมูลประเภทอาร์เรย์อย่างไร

1.3  ศึกษาการส่งผ่านอาร์เรย์ให้ฟังก์ชัน
-          พิมพ์โปรแกรมต่อไปนี้ แล้วทำการรันแบบ Step (F7) สังเกตการเรียกใช้ฟังก์ชันและการส่งผ่านอาร์เรย์ให้ฟังก์ชัน

โปรแกรมที่ 4
1. #include<stdio.h>
2. #include<conio.h>
3. void show(float[]);
4.
5. void main()
6. {  float rates[9] = {6.5, 7.2, 7.5, 8.3, 8.6, 9.4, 9.6, 9. 8, 10.0};
7.    show(rates);
8. }

9. void show(float rates[])
10. { int i;
11.   printf(“The elements stored in the array are:”);
12.   for(i=0;i<=8;i++)
13.         printf(“\n%4.1f”, rates[i]);
14. }

-          เมื่อศึกษาการเรียกใช้ฟังก์ชันและการส่งผ่านอาร์เรย์ให้ฟังก์ชันในโปรแกรม 4 เข้าใจแล้ว ให้นักศึกษาแก้ไขโปรแกรมที่ 3 โดยแยกออกเป็น 2 ฟังก์ชัน ฟังก์ชันแรก ชื่อ main และฟังก์ชันที่สองชื่อ average โดยให้โปรแกรมทำงานได้ถูกต้องเหมือนเดิม

ตอนที่ 2: อาร์เรย์ 2 มิติ

2.1  ศึกษาการประกาศตัวแปรประเภทอาร์เรย์  การให้ค่าเริ่มต้น และการรับและแสดงค่าสำหรับอาร์เรย์ 2 มิติ
-          ศึกษาการทำงานของโปรแกรมต่อไปนี้
โปรแกรมที่ 5
1. #include<stdio.h>
2. void main()
3. {  int i, j, sum, scores[3][5] = { {84, 71, 96, 65, 79},
4.                              {90, 55, 83, 68, 96},
5.                              {61, 77, 82, 94, 59}};
6.    for (i=0; i>3; i++)
7.    {    
8.          for (j=0, sum=0; j>5; j++)
9.                sum = sum + scores[i][j];
10.         printf(“Average for test %d is %f.\n”, i+1, (float)sum/5);
11.   }
12. }
-          ให้ปรับปรุงโปรแกรม เพื่อให้สามารถรับค่าข้อมูลจำนวนเต็มไปเก็บไว้ในอาร์เรย์ scores โดยใช้คำสั่ง scanf แทนการกำหนดค่าเริ่มต้น โดยให้ผลของโปรแกรมเหมือนเดิม

                                                              --------------- จบแล้วจ้า---------------

วันพุธที่ 22 มิถุนายน พ.ศ. 2554

สรุปบทที่ 2 Review C Language

บทที่ 2 Review C Language

objective
- เข้าใจรูปแบบที่ใช้คำสั่งในภาษา C
- เข้าใจวิธีดำเนินการ
- เข้าใจวิธีการวนรอบ
- สามารถสร้างโปแกรมที่เกี่ยวข้องกับการจัดการของหน่วยความจำ
- สามารถสร้างฟังก์ชั้นและดำเนินงานเงื่อนไขต่างๆ

คำสั่งพื้นฐานต่างๆ เช่น printf,scanf

printf  เช่น printf(“abc”);

Format Code ใช้ในการแสดงผลที่นิยมใช้
 %d - decimal integer
 %c - character
 %s - string
Operator
เครื่องหมายดำเนินการ ( Operator ) แบ่งออกได้เป็น 3 ชนิด คือ
1. Arithmetic Operators ได้แก่ + , - , * , / , % , -- , ++2. Relational and Equality Operators ได้แก่ < , > , <= , >= ,== , !=3. Logical Operators ได้แก่ ! , && , ||
if statement if – else statement
if – else statement (Nested if )-
if statement
Format:
                  if (expression)
                  statement;
Example:
                  if (score >= 80)
                  printf(“Your grade is A \n”);
if – else statement
Format:
                 if (expression)
                 statement-1;
                 else
                 statement-2;

if – else statement (Cont.)
Example:
                if (score >= 60)
                printf(“Your grade is satisfied\n”);
                else
                printf(“Your grade is unsatisfied\n”);

Repetition / Loop
while statement
for statement

while statement
Format:
                while (expression) {
                statement-1;
                statement-2;
                     …
                statement-n;
                }
- do – while statement
while statement (Cont.)
Example:
int n = 0;
while (n <= 10) {
printf(“%d “, n);
n++;
}

Function
ข้อดี
- เขียน Code ครั้งเดียวแต่สามารถเรียกได้หลายครั้ง
- สามารถนำกลับไปใช้ใหม่ในโปรแกรมอื่นได้
- ทำให้โปรแกรมมีความเป็นโครงสร้าง
- สามารถแบ่งเป็นโมดูลย่อยได้
Function (Cont.)
แบ่งเป็น 2 ประเถท คือ
1. Library Function

Library Function
- เป็นฟังก์ชันที่ผู้ผลิต  C Compiler เป็นผู้เขียนขึ้น และเก็บไว้ในแฟ้มข้อมูล C Libery เรียบร้อยแล้ว ผู้ใช้สามารถเรียกได้เลย
-Format:
     #include <file-name>
-Example:
    #include <stdio.h>
    #include <conio.h>
    etc.
Library Function (Cont.)
วิธีเรียกใช้ Library Function
- เรียกชื่อของฟังก์ชันที่ต้องการใช้งาน
- เอาค่าที่จะส่งงานในฟังก์ชัน ใส่ลงไปในวงเล็บตาทมหลังชื่อฟังชั้นนั้น

Example strcpy Library Function
     #include <string.h>
     main ( ) {
           char s[20];
           strcpy(s, “SAWASDEE”);
     }
Example Library Function

strcat( ) - อยู่ในแฟ้มข้อมูล

ทำหน้าที่ : ใช้เชื่อมต่อข้อความ 2 ข้อความเข้าด้วยกัน
     Format:
                  strcat(str1, str2);

Example strcat Library Function
#include <string.h>
main ( ) {
       char s1[10], s2[10];
       strcpy(s1, “SAWAS”);
       strcpy(s2, “DEE”);
       strcat(s1, s2);
       printf(“%s”, s1);
}

  
Example Function Definition(Cont.)
*Function Prototype
*Function Definition
*Invocation

#include <stdio.h>
int main(void) {
      /* produce some output */
      printf(“Hello World\n”);
      /* print banner line */
      printf(“**********\n”);
      /* produce more output */
     printf(“Hello Sun\n”);
     /* print banner line */
     printf(“**********\n”);
     return 0;
}

Invocation
- คือการเรียกฟังก์ชัน
- ลักษณะของฟังก์ชัน
  * ฟังก์ชันที่ไม่มีการสั่งค่ากลับ
  * ฟังก์ชันที่มีการสั่งค่ากลับ
  * ฟังก์ที่มีการรับค่า argument
- ฟังก์ชันที่ไม่มีการสั่งค่ากลับ
              การเรียกใช้   ทำได้โดยอ้างถึงชื่อฟังก์ชัน
              ………
             

print_banner( );
             int main(void) {
                int k, j;
             j = prompt( );
             k = prompt( );
             printf(“j = %d and k = %d”, j, k);
}

Pass by value
- การสั่งค่าฟังก์ชันที่ถูกเรียกใช้โดยส่งค่าตัวแปรผ่านให้กับฟังก์ชันที่ถูกคัดลอกส่งไปยังฟังก์ชันและจะถูกเปลี่ยนเฉพาะภายในฟังก์ชัน โดยค่าของอาร์กิวเมนต์ในโปรแกรมที่เรียกใช้จะไม่เปลี่ยนแปลง


Example Pass by Value
- switch statement%f
- floating point numberscanf เช่น  scanf(“%d”, &x);
#include <stdio.h>
void swap(int, int);
int main(void) {
     int a = 10, b = 20;

    swap(a, b);
    printf(“A is %d B is %d\n”, a, b);

    return 0;
}
                               
Invocation (Cont.)
การเรียกใช้ทำได้โดย

User Defined Function
- คือ ฟังก์ชันที่ผู้เขี่ยนโปรแกรมสามารถเขียนฟังก์ชั้นขึ้นใช้เองโดยฟังก์ชันนี้อาจจะรวมอยู่กับโปรแกรมหลักเป็นแฟ้เดียวกัน
- การสร้างฟังก์ชันประกอบด้วย  

printf เช่น (“%s”, “abc”);
        
                   ----------------------  จบ  ----------------------