24/6/58

week 4 : โปรแกรมภาษาคอมพิวเตอร์ (ภาษาซี)

โปรแกรมภาษาคอมพิวเตอร์ คือ ? 
โปรแกรมภาษาคอมพิวเตอร์คือ ภาษาที่ใช้ในการสื่อสารระหว่างมนุษย์กับเครื่องคอมพิวเตอร์ ภาษาโปรแกรมคอมพิวเตอร์สำคัญคือหากไม่มีภาษาโปรแกรมคอมพิวเตอร์ เครื่องคอมพิวเตอร์จะไม่สามารถทำงานได้ เนื่องจากขาดชุดคำสั่งในการทำงาน คอมพิวเตอร์จะสามารถทำงานได้จะต้องมีการเขียนโปรแกรมหรือซอร์ฟแวร์ เพื่อสั่งให้คอมพิวเตอร์ทำงานโปรแกรมต่าง ๆ ที่เขียนขึ้นมานั้น จะต้องเขียนไปตามกฎเกณฑ์ของภาษาที่คอมพิวเตอร์เข้าใจ เรียกว่า ภาษาคอมพิวเตอร์

ภาษาคอมพิวเตอร์สามารถแบ่งออกเป็นสองกลุ่มคือ ภาษาระดับสูง (high level) และภาษาระดับต่ำ (low level) ภาษาระดับสูงถูกออกแบบมาเพื่อให้ใช้งานง่ายและสะดวกสบายมากกว่าภาษาระดับต่ำ โปรแกรมที่เขียนถูกต้องตามกฎเกณฑ์และไวยากรณ์ของภาษาจะถูกแปล (compile) ไปเป็นภาษาระดับต่ำเพื่อให้คอมพิวเตอร์สามารถนำไปใช้งานหรือปฏิบัติตามคำสั่งได้ต่อไป ซอฟต์แวร์สมัยใหม่ส่วนมากเขียนด้วยภาษาระดับสูง แปลไปเป็นออบเจกต์โค้ด (object code) แล้วเปลี่ยนให้เป็นชุดคำสั่งในภาษาเครื่อง
-----------------------------------------------------------------------------
ภาษาซี

ภาษาซี เป็นการเขียนโปรแกรมพื้นฐาน สามารถประยุกต์ใช้กับงานต่างๆได้มากมาย ระบบปฏิบัติการคอมพิวเตอร์ ทางคณิตศาสตร์ โปรแกรมทางไฟฟ้า อิเล็กทรอนิกส์ ไมโครคอนโทรลเลอร์ เช่น โปรแกรม MATLAB (The MathWorks - MATLAB and Simulink for Technical Computing) ซึ่งเวลาใช้สามารถพิมพ์ชุดคำสั่งภาษาซีเพิ่มเข้าไปในโปรแกรมคำนวณทางคณิตศาสตร์ ประมวลผลทางสัญญาณไฟฟ้า ทางไฟฟ้าสื่อสารก็ได้ ทำให้ประสิทธิภาพของงานที่ทำดียิ่งขึ้นครับ และยังมีโปรแกรมอื่นๆ ที่มีภาษาซีประยุกต์ใช้กันอีกมากมาย ไม่สามารถนำมากล่าวได้หมด ถึงแม้ว่าภาษาซีอาจจะดูเก่าไปสำหรับคนอื่น แต่ผมว่าควรศึกษาภาษาซีที่เป็นรากฐานของภาษาอื่นๆเสียก่อน เพราะภาษา C++ จาวา (Java) ฯลฯ และ ระบบลีนุกซ์ เป็นระบบที่ถูกพัฒนามาจากระบบยูนิกซ์ซึ่งก็เป็นที่รู้กันทั่วไปว่า ภาษาคู่บารมีของระบบปฏิบัติการตระกูลยูนิกซ์มีการพัฒนามาจากภาษาซีเช่นกัน

ประวัติ ภาษาซี

ภาษาซีเป็นภาษาที่ถือว่าเป็นทั้งภาษาระดับสูงและระดับต่ำ ถูกพัฒนาโดยเดนนิส ริดชี (Dennis Ritche) แห่งห้องทดลองเบลล์ (Bell Laboratories) ที่เมอร์รีฮิล มลรัฐนิวเจอร์ซี่ โดยเดนนิสได้ใช้หลักการของภาษา บีซีพีแอล (BCPL : Basic Combine Programming Language) ซึ่งพัฒนาขึ้นโดยเคน ทอมสัน (Ken Tomson) การออกแบบและพัฒนาภาษาซีของเดนนิส ริดชี มีจุดมุ่งหมายให้เป็นภาษาสำหรับใช้เขียนโปรแกรมปฏิบัติการระบบยูนิกซ์ และได้ตั้งชื่อว่า ซี (C) เพราะเห็นว่า ซี (C) เป็นตัวอักษรต่อจากบี (B) ของภาษา BCPL ภาษาซีถือว่าเป็นภาษาระดับสูงและภาษาระดับต่ำ ทั้งนี้เพราะ ภาษาซีมีวิธีใช้ข้อมูลและมีโครงสร้างการควบคุมการทำงานของโปรแกรมเป็นอย่างเดียวกับภาษาของโปรแกรมระดับสูงอื่นๆ จึงถือว่าเป็นภาษาระดับสูง ในด้านที่ถือว่าภาษาซีเป็นภาษาระดับต่ำ เพราะภาษาซีมีวิธีการเข้าถึงในระดับต่ำที่สุดของฮาร์ดแวร์ ความสามารถทั้งสองด้านของภาษานี้เป็นสิ่งที่เกื้อหนุนซึ่งกันและกัน ความสามารถระดับต่ำทำให้ภาษาซีสามารถใช้เฉพาะเครื่องได้ และความสามารถระดับสูง ทำให้ภาษาซีเป็นอิสระจากฮาร์ดแวร์ ภาษาซีสามารถสร้างรหัสภาษาเครื่องซึ่งตรงกับชนิดของข้อมูลนั้นได้เอง ทำให้โปรแกรมที่เขียนด้วยภาษาซีที่เขียนบนเครื่องหนึ่ง สามารถนำไปใช้กับอีกเครื่องหนึ่งได้ ประกอบกับการใช้พอยน์เตอร์ในภาษาซี นับได้ว่าเป็นตัวอย่างที่ดีของการเป็นอิสระจากฮาร์ดแวร์

รูปแบบของการเขียนโปรแกรม
 ชนิดของข้อมูล  

ประกอบไปด้วย
1.    character (char) ใช้ 1 byte บน Dos มีค่า -128 ถึง127 นิยมใช้เก็บตัวอักษร 1 ตัวอักษร
2.    integer (int) ใช้ 2 byte มีค่า -32768 ถึง 32767 และยังมี long ซึ่งคล้าย integer แต่เก็บด้วย ช่วงตัวเลขที่ยาวกว่าจึงกินเนื้อที่ ถึง 4 byte
3.    float ใช้ 2 byte ใช้เก็บตัวเลขทศนิยม และยังมี double ซึ่งคล้าย float แต่เก็บด้วยช่วงตัวเลขที่ยาวกว่าจึงกินเนื้อที่ถึง 4 byte
4.    ในภาษา C จะไม่มีชนิดข้อมูลเป็น string แต่จะใช้สายของอักษร หรือ Array ของ Char แทนความจริงแล้ว ชนิดของข้อมูลยังสามารถจำแนกไปได้อีกมาก แต่ในที่นี้ขอแนะนำเพียงเท่านี้ก่อน ก็เพียงพอ

Derive Data Type - Array

- recore [structure]
                ที่กล่าวมาข้างต้นว่าถ้าพบข้อความ เช่น "This is a book" ในการโปรแกรมทั้งข้อความนี้เราเรียกว่า string และเนื่องจากในภาษา Cไม่มีตัวแปร String ทำให้เราต้องใช้ Array มาจัดการ นั่นคือเมื่อ C มองเห็น string จะจอง พื้นที่ในหน่วยความจำเป็น Array ของ Characterบางคนอาจจะสงสัยว่าการจองพื้นที่ในหน่วยความจำของ Array เป็นอย่างไร ทำไมต้องจอง ก็ขอบอกว่า เวลาที่เราประกาศตัวแปรชนิดใดก็ตามก็จะทำการไปหาเนื้อที่ในหน่วยความจำ ขนาดเท่าๆ กับ ชนิดข้อมูลที่เรากำหนดเอาไว้ ซึ่ง ถ้าเราประกาศตัวแปร 2 ตัว ไม่จำเป็นว่าตัวแปรสองตัวนี้จะถูกจองตรงเนื้อที่ที่มันติดกัน แต่ ถ้าเราจองเนื้อที่เป็นแบบ array นั่นหมายความถึงว่า ทุกๆ สมาชิกที่เป็นสมาชิกของ array จะถูกจองเนื้อที่ติดๆกันไป ตามขนาดความยาวของ array นั้น นั่นเอง ถ้าใครยังไม่เข้าใจก็เดี๋ยวจะมีการพูดถึง array อีกในตอนหลังตอนนี้ มาดูก่อนว่า ถ้าเราจะเก็บ string ที่มีข้อความว่า TOUCHAKORN จะต้องเก็บอย่างไร
T
O
U
C
H
A
K
O
R
N
NULL Character
 



การประกาศตัวแปร

ในภาษา C หากต้องการใช้ตัวแปร จะต้องทำการประกาศตัวแปรไว้ที่ส่วนบนก่อนที่จะถึงบรรทัดที่เป็นประโยคคำสั่ง การประกาศตัวแปรจะเป็นการบอก compiler ว่าตัวแปรของเรานั้นเป็นตัวแปรชนิดใด
Datatype
Keyword
character
integer
float
double
Char
int
float
double
รูปแบบของการประกาศคือ

Keyword list of variable ;

ตัวอย่างเช่น เราจะประกาศตัวแปรชื่อ chr1 และ chr2 เป็นตัวแปรชนิด Character เราจะใช้ว่า
char chr1 , chr2 ;

ข้อสังเกต เราจะเห็นได้ว่าหลังการประกาศตัวแปรจะมีเครื่องหมาย ; แสดงว่าการประกาศตัวแปรก็เป็น C Statement (คำสั่งเช่นกัน
ทดลองสังเกตตัวอย่างต่อไปนี้
                #include <stdio.h>          /* my second program */
                main()
                {              int First , Second , Sum;         /* variable declaration */
                                First = 10 ;
                                Second = 20 ;
                                Sum = First + Second ;
                                printf( " The sum of %d and %d is %d " , First , Second , Sum );
                }
                ดูโปรแกรมแล้วพบว่านี่คือโปรแกรมที่จะทำการบวกเลข 2 จำนวนคือ 10 และ 20 โดย การเก็บค่า 10 เอาไว้ในตัวแปรชื่อ First และเก็บค่า 20 ไว้ในตัวแปร Second จากนั้นก็ทำการบวกทั้งสองค่าโดยเก็บผลลัพธ์ที่ได้ไว้ในตัวแปรที่ชื่อว่า Sum จากนั้นทำการ แสดงค่าของทั้ง 3ตัวแปรออกมาทางจอภาพ
อธิบายโปรแกรมโดยละเอียด จะได้ว่า
- ที่บรรทัด int First , Second , Sum ; นั้นเราได้สั่งให้มีการประกาศตัวแปรชนิด integer 3 ตัวคือ First , Second และ Sum
บรรทัดถัดมา คือ First = 10 ; เป็นการกำหนดค่า จำนวนเต็ม 10 ให้กับตัวแปรที่เป็นจำนวนเต็ม (integer) ส่วนนี้สำคัญคือ เรากำหนดตัวแปรเป็น integer นั่นก็คือ ตัวแปรชนิดนี้จะเก็บเฉพาะค่าที่เป็นจำนวนเต็มเท่านั้น หากเราใส่ค่า 10.2 ให้กับตัวแปร ตัวแปรนั้นก็ยังคงเก็บเลขจำนวนเต็มอยู่เสมอ
บรรทัดถัดมา คือ Second = 20 ; ก็คือการกำหนดค่า 20 ให้กับตัวแปร Second
บรรทัดถัดมา คือ Sum = First + Second ; คือการนำค่าของ 2 ตัวแปรมาบอกกันและเก็บไว้ที่ตัวแปร Sum
บรรทัดต่อมาคือ printf( " The sum of %d and %d is %d " , First , Second , Sum ); จะอธิบายละเอียดในหัวข้อถัดไป



 ฟังค์ชัน printf()  มีรูปแบบดังนี้

printf ( " control string " , variable list );
โดย control string อาจจะเป็นตัวอักษร ข้อความ หรือ ตัวกำหนดชนิดข้อมูล (Specifier) ซึ่งใช้กำหนดชนิดข้อมูลที่จะพิมพ์ ตัวกำหนดข้อมูลที่ควรทราบมีดังนี้
ตัวกำหนดชนิดข้อมูล
ความหมาย
%c
%d
%f
%lf
%s
%%
แทนตัวอักษร
แทนเลขจำนวนเต็ม
แทนเลขทศนิยม ( float )
แทนเลขทศนิยม (double)
แทนสตริงก์
แทนเครื่องหมาย %

ส่วน variable list ก็คือ list ของตัวแปร จากตัวอย่าง
printf( " The sum of %d and %d is %d " , First , Second , Sum );
พบว่า เรามี ตัวกำหนดชนิดข้อมูลคือ %d ซึ่งแทนชนิดข้อมูลที่เราจะพิมพ์คือ integer ซึ่ง %d ตัวแรกจะใช้แทนค่าของ First ตัวที่สองจะใช้แทนค่าของ Second ตัวที่สามจะใช้แทนค่าของ Sum
จากโปรแกรมข้างต้นผล run ที่ออกมาจะปรากฎดังนี้
The sum of 10 and 20 is 30
นอกจากนี้เรายังพบว่าเรายังสามารถกำหนดลักษณะการพิมพ์ได้ดังต่อไปนี้
                #include <stdio.h>
                main()
                {              int a;
                                float b ;
                                a = 50 ;
                                b = 10.583 ;
                                printf ( " a = %d \n " , a ) ;
                                printf ( " b = %f \n " , b ) ;
                                printf ( " a = %05d \n " , a );
                                printf ( " b = %10.4f \n " , b );
                                printf ( " b = % -10.4f \n " , b );
                } 
พบว่า ผล run ที่ได้คือ
a = 50
b = 10.583000 พบว่าแสดงทศนิยม 6 หลัก เป็นปกติ
a = 00050 พบว่า a มีความยาว 5 ตำแหน่ง นับจากซ้าย
b = ___10.5830 พบว่า เราสั่งให้ %10.4 คือ การสั่งให้มีความยาวทั้งหมด 10 ตำแหน่ง รวมด้วยการมีทศนิยม 4 ตำแหน่ง
b = 10.5830 คล้ายกับบรรทัดก่อนหน้าแต่เราใส่เครื่องหมาย - เพื่อให้มันพิมพ์ชิดซ้าย


Input command

คำสั่งในการ input ที่ใช้ง่ายๆก็คือ คำสั่ง
                scanf(" ตัวกำหนดชนิดข้อมูล",&ตัวแปร);
ยกตัวอย่างเช่น ต้องการรับค่า จำนวนเต็ม มาใส่ไว้ในตัวแปรที่ชื่อ number จะสั่งดังนี้
                int number;
                scanf("%d",&number); สำคัญอย่าลืมเครื่องหมาย &
และหากรับตัวแปร 2 ตัว โดย รับค่า จำนวนเต็มไว้ในตัวแปรชื่อ num1 และ รับค่า จำนวนจริง ไว้ในตัวแปร num2 ทำได้โดย
                int num1,num2;
                scanf("%d %f",&num1,&num2);
หากต้องการรับข้อความ Touchakorn ซึ่งก็คือ 10 character ทำได้โดย
                char name[10];
                scanf("%c",name);
 สังเกตไหมครับว่าที่คำสั่ง scanf อันหลังนี้ตรงตัวแปร name ทำไมไม่มีเครื่องหมาย & ปรากฎอยู่ นั่นก็เป็นเพราะว่าเราได้ทำการกำหนดตัวแปร name ไว้เป็นตัวแปร array ชนิด character ดังนั้นการที่เราเรียกชื่อตัวแปรที่เป็น array นั่นก็หมายความว่าเราได้ทำการเรียก"ที่อยู่ของตัวแปรกลุ่มนั้นไว้แล้วจึงไม่จำเป็นต้องใส่เครื่องหมาย & แต่อย่างใด นั่นเป็นการแสดงให้เห็นว่า เมื่อเราเรียกคำสั่ง scanf ตัวคำสั่งนี้จะทำการยัดค่าที่ผู้ใช้ ใส่ให้เก็บไว้ในตัวแปรตามที่อยู่ที่ให้ไว้นั่นคือ
                scanf("%d",&number);
ก็เป็นการยัดค่าตัวแปร integer (รู้ได้จาก %d) ไว้ในที่อยู่(&)ของตัวแปรที่ชื่อ number
และเรายังรู้อีกว่าโดยปกติการกำหนดค่าให้กับตัวแปรที่เป็น array นั้นจำเป็นจะต้องมีการใส่ index ให้กับ ตัวแปรนั้นเสมอว่า จะเก็บไว้ในarray ช่องใด เช่นสมมติ ตัวแปรชนิด integer ชื่อ num[7] คือตัวแปรที่ชื่อ num ที่มีช่องสมาชิกย่อยทั้งหมด7ช่องด้วยกันโดย ตัวแปร num จะมีโครงสร้างดังนี้
num[0]
num[1]
num[2]
num[3]
num[4]
num[5]
num[6]
                และหากเราต้องการจะกำหนดค่าให้กับตัวแปร num ในแต่ละช่องสามารถทำได้โดย num[0]=10; หรือ num[1]=20; เป็นต้น นั่นคือการเขียนชื่อตัวแปรแล้วตามด้วย index ของตัวแปรนั้นว่าต้องการจะกำหนดค่า ของเราไว้ในช่องใดของ array num นั้น และที่เราต้องรู้อีกอย่างก็คือ หากเราเรียกชื่อตัวแปร array เฉยๆ โดยไม่ได้ทำการใส่ index ให้กับตัวแปรนั้นเช่นเราเรียก num นั่นจะกลายเป็นการชี้ไปยังที่อยู่ของตัวแปรnum ที่อยู่ใน หน่วยความจำของเครื่อง ตอนนี้อยากให้มองหน่วยความจำ เป็นช่องๆที่เรียงติดกันยาวมาก และเดิมทีการที่เราประกาศตัวแปร ก็คือการที่ตัวชี้ชี้ลงไปยังช่องๆในหน่วยความจำนั้นอย่างสุ่มคือ เราก็ไม่รู้ว่าเมื่อเราประกาศตัวแปรแล้วมันจะไปชี้ที่ใดของหน่วยความจำมันจะทำการจองจำนวนช่องตามชนิดของตัวแปร เช่นถ้าประกาศตัวแปรชนิด integer มันอาจจะจองสัก 2 ช่องที่ติดกัน ถ้าประกาศตัวแปร double มันอาจจะจองสัก 4 ช่องติดกันเป็นต้น และหากเราจองตัวแปรชนิด array ที่เป็น integer ตามข้างต้น มันก็จะจองทั้งหมด 7 ช่องติดกัน โดยแต่ละช่องก็จะมีคุณสมบัติเป็นช่องของ integer ซึ่งอาจจะจอง2ช่อง ใน num[0] จนถึง num[6]
               

 หากเรียกชื่อตัวแปรที่เป็น array เฉยๆ โดยไม่ใส่ index ให้มันมันก็จะทำการชี้ไปที่ที่อยู่ของตัวแปรนั้นนั่นเอง จากนั้นจึงเป็นเหตุผลว่าทำไมคำสั่ง scanf ที่รับตัวแปรที่เป็น array ของ character เราจึงไม่ต้องใส่เครื่องหมาย อยากจะบอกแค่นี้แหละ แต่ตอนนี้ก็ต้องถือว่าเรามีความรู้เรื่อง array กันบ้างแล้วไม่มากก็น้อย ขอย้ำว่าเป็นเฉพาะตอนรับ array ของ character(หรือในความหมายคือการรับ string นั่นแหละ เนื่องจากในภาษาซีไม่มีตัวแปรชนิด string จึงจำเป็นต้องใช้ตัวแปรที่เป็น array ของ character มาแทน ) เท่านั้นนะ ที่ไม่ต้องใส่ & หน้าตัวแปรในคำสั่ง scanf อย่าเข้าใจผิดหากเป็นตัวแปรชนิดอื่นก็ทำไปตามกฎ


คำสั่ง for loop

                for(ตัวนับ= i;เงื่อนไขที่จะให้ยังทำงานอยู่ใน loop; การเพิ่มหรือการลดตัวนับ)
                {
                                statement ;
                }
                ก่อนอื่นต้องขออธิบายก่อนว่านี่คือโครงสร้างของ for loop โดยขอให้สังเกตบรรทัดแรกตรงที่มีคำสั่ง for แล้วให้ดูในวงเล็บ ปรากฏว่าตามรูปแบบมาตรฐานนั้น ในส่วนของวงเล็บหลังคำว่า for จะประกอบไปด้วย 3 ส่วน ส่วนแรกก็คือ การกำหนดค่าเริ่มต้นให้กับตัวนับ อาจจะงงว่าตัวนับที่พูดถึงคืออะไร ใน for loop นั้น จำเป็นจะต้องมีตัวนับอยู่ด้วยเสมอ ซึ่งตัวนับนี้ จะเป็นตัวบอกเราว่า loop ของเรานั้นทำการวนซ้ำมาเป็นรอบที่เท่าไรแล้ว และในส่วนแรกนี้เราจำเป็นจะต้องมีการกำหนด ค่าเริ่มต้นให้กับตัวนับก่อน ในส่วนที่สอง เงื่อนไขที่จะให้ยังทำงานอยู่ใน loop นี้ โดยส่วนใหญ่จะเป็นการกำหนดว่าเมื่อตัวนับมีการวนซ้ำ ถึงจำนวนรอบเท่านั้นเท่านี้ก็จะให้หลุดจาก loop ในส่วนที่สาม การเพิ่มหรือการลดตัวนับ ตรงนี้สำคัญ ซึ่งจะเป็นส่วนที่ทำให้ ตัวนับของเรามีการเพิ่มค่าหรือลดค่า ในแต่ละรอบของการวนซ้ำเช่นอาจเพิ่มทีละหนึ่ง หรือ เพิ่มทีละ3 เป็นต้นหรืออาจจะลดทีละ 1 หรือลดทีละ 3 ก็แล้วแต่โปรแกรมจะกำหนด หลังจากวงเล็บที่อยู่หลัง for ก็จะมีเครื่องหมาย ปีกกาเพื่อให้เข้าสู่ส่วนของคำสั่ง ที่จะต้องทำหลังจากบรรทัด for ก็มาถึง statement ซึ่งจะเป็นส่วนที่ให้เราเขียนคำสั่งว่า ในแต่ละรอบนั้น เราจะให้โปรแกรมทำงานอะไร ซึ่งก็อาจมีได้หลายคำสั่ง บรรทัดสุดท้ายก็คือ ปีกกาปิดเพื่อจบโครงสร้าง for loop

ข้อดีของภาษาซี ดังนี้

  - เป็นภาษาคอมพิวเตอร์ที่มีการพัฒนาขึ้นใช้งานเพื่อเป็นภาษามาตรฐานที่ไม่ขึ้นกับโปรแกรมจัดระบบงานและไม่ขึ้นกับฮาร์ดแวร์
  - เป็นภาษาคอมพิวเตอร์ที่อาศัยหลักการที่เรียกว่า "โปรแกรมโครงสร้าง" จึงเป็นภาษาที่เหมาะกับการพัฒนาโปรแกรมระบบ
  - เป็นคอมไพเลอร์ที่มีประสิทธิภาพสูง ให้รหัสออบเจ็กต์สั้น ทำงานได้รวดเร็ว เหมาะกับงานที่ต้องการ     ความรวดเร็วเป็นสำคัญ
  - มีความคล่องตัวคล้ายภาษาแอสแซมบลี ภาษาซีสามารถเขียนแทนภาษาแอสแซมบลีได้ดี ค้นหาที่ผิดหรือ แก้โปรแกรมได้ง่าย ภาษาซีจึงเป็นภาษาระดับสูงที่ทำงานเหมือนภาษาระดับต่ำ
  - มีความคล่องตัวที่จะประยุกต์เข้ากับงานต่างๆ ได้เป็นอย่างดี การพัฒนาโปรแกรม เช่น เวิร์ดโพรเซสซิ่ง สเปรดชีต ดาตาเบส ฯลฯ มักใช้ภาษาซีเป็นภาษาสำหรับการพัฒนา
  - เป็นภาษาที่มีอยู่บนเกือบทุกโปรแกรมจัดระบบงาน มีในเครื่องไมโครคอมพิวเตอร์ตั้งแต่ 8 บิต ไปจนถึง 32 บิต เครื่องมินิคอมพิวเตอร์ และเมนเฟรม
  - เป็นภาษาที่รวมข้อดีเด่นในเรื่องการพัฒนา จนทำให้ป็นภาษาที่มีผู้สนใจมากมายที่จะเรียนรู้หลักการของภาษา  และวิธีการเขียนโปรแกรม ตลอดจนการพัฒนางานบนภาษานี้

ข้อเสียของภาษาซี

 - เป็นภาษาที่เรียนรู้ยาก
 - การตรวจสอบโปรแกรมทำได้ยาก
 - ไม่เหมาะกับการเขียนโปรแกรมที่เกี่ยวข้องกับการออกรายงานที่มีรูปแบบซับซ้อนมากๆ

ขอขอบคุณข้อมูล จาก 

ที่มา : https://sites.google.com/site/bbmm2553/prawati-khwam-pen-ma-khxng-phasa-si


คลิปการเขียนภาษาซี เบื้องต้น 



และสามารถศึกษาการเขียนภาษาซีผ่านทางยูทูป ได้จาก คลิ๊ก
ที่มา : www.youtube.com



17/6/58

Week 3 : Social Network กับนักเรียนและสังคมไทย

Social network กับนักเรียนและสังคมไทย

            เชื่อว่า ในปัจจุบัน ทุกคนคงให้ความสำคัญกับ Social Network โดยเฉพาะอย่างยิ่งในกลุ่มของวัยรุ่นไทย เพราะ โลกของโซเชียล ทำให้คนไกลกลายเป็นคนใกล้ตัวมากขึ้น ทำให้สามารถติดต่อสื่อสารกันได้ง่ายขึ้น สามารถค้นคว้าข้อมูลได้ง่ายขึ้น แต่โซเชียลเน็ตเวิคนั้นก็มีทั้งผลดีและผลเสีย ดังนั้น วันนี้จีงขออธิบายเกี่ยวกับ โซเชียลเน็ตเวิคกับนักเรียนและสังคมไทย
            เครือข่ายสังคมออนไลน์ (Social Network) หมายถึงกลุ่มคนที่รวมกันเป็นสังคม มีการทำกิจกรรมร่วมกันบน อินเทอร์เน็ต ในรูปแบบของเว็บไซต์มีการแผ่ขยายออกไปเรื่อย ๆ เป็นรูปแบบของการสื่อสารข้อมูล ผ่านอินเทอร์เน็ต ทำให้เครือข่ายคอมพิวเตอร์หรืออินเทอร์เน็ตเป็นสังคมขึ้นมา การสร้างชุมชนใหม่บนอินเทอร์เน็ตเป็นเครื่องมือสำคัญในการติดต่อสื่อสาร สามารถทำกิจกรรมต่างๆ ทั้งเพื่อ การศึกษา ธุรกิจและความบันเทิง
ทุกวันนี้มีคนใช้ชีวิต อยู่กับสังคมออนไลน์มากขึ้น ทุกวัน และมีการใช้ Social Media ที่ผู้ใช้เป็นผู้สื่อสาร  หรือเขียนเล่า เนื้อหา เรื่องราว ประสบการณ์ บทความ รูปภาพ และวิดีโอ ที่ผู้ใช้ เขียนขึ้นเอง หรือพบเจอจากสื่ออื่นๆ แล้วนำมาแบ่งปัน ให้กับผู้อื่นที่อยู่ในเครือข่ายของตน ผ่านทางเว็บไซต์ Social Network ที่ให้บริการบนออนไลน์ ปัจจุบันการสื่อสารแบบนี้ ทำผ่านทาง Internet และโทรศัพท์มือถือ เชน กระดานความคิดเห็น เว็บบล็อก วิกิ (wiki) Podcast รูปภาพและวิดีโอ โดยมีเทคโนโลยีที่รองรับเนื้อหา (content) เหล่านี้ ได้แก่ เว็บบล็อกเว็บไซต์ที่แชร์รูปภาพ แชร์เพลง แชร์วิดีโอ เว็บบอร์ด อีเมล์ IM (Instant Massage) เครื่องมือที่ให้บริการ เช่น Voice over IP ส่วนเว็บไซต์ที่ให้บริการ Social Network ได้แก่ Google Group Facebook MySpace หรือ Youtube เป็นต้น
     

ประโยชน์ของ Social Network
Social Network มีจุดเด่นหลัก คือ ช่วยเรื่องการสื่อสารให้มีประสิทธิภาพ สื่อสารได้ในวงกว้าง ได้หลายรูปแบบ เช่น ข้อความ รูปภาพ วิดีโอ ในเชิงการใช้งานทั่วไปแล้ว สามารถสื่อสารกับคนที่มีความชื่นชอบในเรื่องเดียวกัน แลกเปลี่ยนความคิดเห็น หรือรวมตัวกันทำกิจกรรมที่มีประโยชน์ นอกจากนี้ยังเป็นแหล่งพบป่ะเพื่อน ที่ไม่เคยเจอกันนานแล้ว หรือเพื่อนที่อยู่ไกลกันได้อีกด้วย และด้วยความที่ Social Network เข้าถึงกลุ่มเป้าหมายได้รวดเร็วและเป็นช่องทางการสื่อสารได้ตลอดเวลา ด้วยเหตุนี้จึงมีการนำมาใช้ทางด้านธุรกิจ โปรโมทตนเอง โปรโมทสินค้า องค์กร หรือบริษัท รวมถึงใช้เป็นช่องทางสร้างความสัมพันธ์กับลูกค้า สร้างกิจกรรม หรือพูดคุยตอบข้อซักถามถึงสินค้าและบริการ ทำให้เรามีอีกช่องทางในการสื่อสารกับลูกค้าได้

ข้อเสียของ Social Network
              ·        เว็บไซต์ให้บริการบางแห่งอาจจะเปิดเผยข้อมูลส่วนตัวมากเกินไป หากผู้ใช้บริการไม่ระมัดระวังในการกรอกข้อมูล อาจถูกผู้ไม่หวังดีนำมาใช้ในทางเสียหาย หรือละเมิดสิทธิส่วนบุคคลได้
         ·         Social Network เป็นสังคมออนไลน์ที่กว้าง หากผู้ใช้รู้เท่าไม่ถึงการณ์หรือขาดวิจารณญาณ อาจโดนหลอกลวงผ่านอินเทอร์เน็ต หรือการนัดเจอกันเพื่อจุดประสงค์ร้าย ตามที่เป็นข่าวตามหน้าหนังสือพิมพ์
         ·         เป็นช่องทางในการถูกละเมิดลิขสิทธิ์ ขโมยผลงาน หรือถูกแอบอ้าง เพราะ Social Network Service เป็นสื่อในการเผยแพร่ผลงาน รูปภาพต่างๆ ของเราให้บุคคลอื่นได้ดูและแสดงความคิดเห็น
         ·         ข้อมูลที่ต้องกรอกเพื่อสมัครสมาชิกและแสดงบนเว็บไซต์ในรูปแบบ Social Network ยากแก่การตรวจสอบว่าจริงหรือไม่ ดังนั้นอาจเกิดปัญหาเกี่ยวกับเว็บไซต์ที่กำหนดอายุการสมัครสมาชิก หรือการถูกหลอกโดยบุคคลที่ไม่มีตัวตนได้
         ·         ผู้ใช้ที่เล่น social  network และอยู่กับหน้าจอคอมพิวเตอร์เป็นเวลานานอาจสายตาเสียได้หรือบางคนอาจตาบอดได้      
         ·         ถ้าผู้ใช้หมกมุ่นอยู่กับ social  network มากเกินไปอาจทำให้เสียการเรียนหรือผลการเรียนตกต่ำลงได้
         ·         จะทำให้เสียเวลาถ้าผู้ใช้ใช้อย่างไร้ประโยชน์




                        http://www.muslimvoicetv.com/ncontent/region.php?nid=7943#ixzz3dKJr8CiN
                                      http://crnfe2013.blogspot.com/2013/05/12-social-network.html
                                                        http://www.ictlaw.dusit.ac.th/doc/02.pdf