วันอาทิตย์ที่ 18 มกราคม พ.ศ. 2558

นิพจน์

นิพจน์ (Expressions)
ในภาษาซี นิพจน์หมายถึง สิ่งที่ประมวลผลแล้วสามารถให้เป็นค่าตัวเลขได้ ซึ่งแต่ละนิพจน์จะมีระดับความยากง่ายในการประมวลผลที่แตกต่างกัน 
นิพจน์ที่มีระดับการประมวลผลแบบง่ายที่สุด จะประกอบด้วย ตัวแปรตัวเดียว
หรือ ค่าคงที่ นิพจน์ที่มีลักษณะเป็นค่าคงที่ เช่น  100 ,  ‘g’
นิพจน์ แบ่งออกเป็น 2 แบบ ได้แก่
1.นิพจน์ที่เป็นค่าคงที่ ที่เป็นสัญลักษณ์ เช่น
- #define VAT 7
- #define PI 3.14159
- const int a = 35;
- const char ch = ‘m’;
โดยที่ VAT,PI,a,ch เป็นค่าคงที่

2.นิพจน์ที่มีลักษณะเป็นตัวแปร เช่น
- int count;
- float amount;
- char ch;
โดยที่ count,amount,ch เป็นค่าคงที่

วันอาทิตย์ที่ 11 มกราคม พ.ศ. 2558

การรับค่าข้อมูล

การรับค่า


คำสั่งรับข้อมูลจากคีย์บอร์ด
          การทำงานของโปรแกรมส่วนใหญ่มักจะเป้นการเชื่อมโยงกับผู้ใช้แบบ  2  ทิศทาง  คือ  ทั้งภาคของการแสดงผลการทำงานออกทางหน้าจอ  และภาคของการรับข้อมูลจากผู้ใช้เข้ามาทางคีย์บอร์ด  เพื่อร่วมในการประมวลผลของโปรแกรม 
คำสั่ง  scanf()
          ในภาษา การรับข้อมูลจากคีย์บอร์ดสามารถทำได้โดยการเรียกใช้ฟังก์ชัน  scanf()  ซึ่งเป็นฟังก์ชันมาตรฐานสำหรับรับข้อมูลจากคีย์บอร์ด  โดยสามารถรับข้อมูลได้ทุกประเภท  ไม่ว่าจะเป็นจำนวนเต็ม  ทศนิยม  อักขระ หรือข้อความ 
รูปแบบคำสั่ง  scanf()
scanf("format",&variable);
format
     การใช้รหัสควบคุมรูปแบบ  เพื่อกำหนดชนิดของข้อมูลที่จะรับเข้ามาจากคีย์บอร์ด โดยรหัสควบคุมรูปแบบใช้ชุดเดียวกับคำสั่ง printf()
variable
     ตัวแปรที่จะใช้เก็บค่าข้อมูลที่รับเข้ามาจากคีย์บอร์ด  โดยชนิดของตัวแปรจะต้องตรงกับรหัสควบคุมรูปแบบที่กำหนดไว้  นอกจากนี้หน้าชื่อของตัวแปรจะต้องนำหน้าด้วยเครื่องหมาย  &  ยกเว้นตัวแปรสตริง  สำหรับเก็บข้อความเท่านั้นที่ไม่ต้องนำหน้าด้วยเครื่องหมาย &

ตัวอย่างการใช้งานคำสั่ง  scanf()  เพื่อรับข้อมูลจากคีย์บอร์ด
int speed;
สร้างตัวแปรชนิด int สำหรับเก็บค่าตัวเลขจำนวนเต็ม
printf("Enter wind speef : ");
แสดงข้อความให้กรอกค่าความเร็วลมเป็นจำนวนเต็ม
scanf("%d",&speed);
รับค่าความเร็วลมเข้ามาเก็บไว้ในตัวแปร speed


char answer;
สร้างตัวแปรชนิด  char สำหรับเก็บอักขระ
printf("Enter Figure (Y : N)  : ")
แสดงข้อความให้ป้อนอักขระ หรือ N
scanf("%c",&answer
รับอักขระเข้ามาเก็บไว้ในตัวแปร  answer



char name[10];
สร้างตัวแปรสตริงสำหรับเก็บข้อความ
printf("Enter your name = ");
แสดงข้อความให้ป้อนชื่อ
scanf("%s",name
รับชื่อเข้ามาเก็บไว้ในตัวแปร name สังเกตจะไม่ใส่เครื่องหมาย & ตัวแปรชนิดข้อความ

การแสดงผลข้อมูล

การแสดงผล

การแสดงผลออกทางหน้าจอ
          การทำงานพื้นฐานที่สึดหรือเรียกได้ว่าเป็นส่วนหนึ่งในการทำงานของทุกโปรแกรมคือ  การแสดงผลข้อมูลออกทางจอภาพ  โดยในภาษา นั้น  การแสดงผลข้อมูลออกทางจอสามารถทำได้ดังนี้
คำสั่ง printf
          คำสั่ง printf  ถือได้ว่าเป็นคำสั่งพื้นฐานที่สุดในการแสดงผลข้อมูลทุกชนิดออกทางหน้าจอไม่ว่าจะเป็นจำนวนเต็ม int ทศนิยม float ข้อความ string  หรืออักขระ  นอกจากนี้คำสั่งยังมีความยืดหยุ่นสูง  โดยเราสามารถกำหนดหรือจัดรูปแบบการแสดงผลให้มีระเบียบหรือเหมาะสมตามความต้องการได้อีกด้วย 
รูปแบบคำสั่ง prinft
printf ("format",variable);
format
     ข้อมูลที่ต้องการแสดงผลออกทางหน้าจอ  โดยข้อมูลนี้ต้องเขียนไว้ในเครื่องหมาย "  " ข้อมูลที่สามารถแสดงผลได้มีอยู่ 2 ประเภท คือ  ข้อความธรรมดา  และค่าที่เก็บไว้ในตัวแปร  ซึ่งถ้าเป็นค่าที่เก็บไว้ในตัวแปรต้องใส่รหัสควบคุมรูปแบบให้ตรงกับชนิดของข้อมูลที่เก็บไว้ในตัวแปรนั้นด้วย
variable
     ตัวแปรหรือนิพจน์ที่ต้องการนำค่าไปแสดงผลให้ตรงกับรหัสควบคุมรูปแบบที่กำหนดไว้

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

ตัวอย่างการใช้คำสั่ง printf  แสดงผลข้อความธรรมดาออกทางหน้าจอ ดังนี้
printf("Hello Program C");
แสดงข้อความ Hello Program C ออกทางขอภาพ
printf("Lampang kunlayanee school");
แสดงข้อความ Lampang kunlayanee school ออกทางจอภาพ
printf("Lampang Thailand");
แสดงข้อความ Lampang Thailand  ออกทางจอภาพ


#include
#include
void main()
{
   clrscr();
   prinft('Lampang Kunlayanee School\n");
   printf("Program C\n");
getch();
}
ผลลัพธ์โปรแกรม
Lampang Kunlayanee School
Program C
          ส่วนตัวอย่างการใช้คำสั่ง  printf  แสดงผลจากค่าของตัวแปรหรือนิพจน์ การคำนวณออกทางหน้าจอ  แสดงได้ดังนี้  โดยกำหนดให้
ตัวแปร  x  เก็บจำนวนเต็ม  45
printf("total value = %d",x);   แสดงข้อความ total value = 45 ออกทางจอภาพ

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

printf("Hello ... \n");
แสดงข้อความ Hello ...  แล้วขึ้นบรรทัดใหม่
printf("Hello...\nLampang\n");
แสดงข้อความ Hello ...แล้วขึ้นบรรทัดใหม่พร้อมกับแสดงข้อความLampang จากนั้นขึ้นบรรทัดใหม่อีกครั้ง
printf("Num1 = %d\tNum2 = %f\n",x,z);
แสดงข้อความ Num1 = 45  ตามด้วยการเว้นช่องว่าง 1 แท็บแล้วต่อด้วยข้อความ Num2 = 20.153

ตัวคงที่

ตัวคงที่ (Constant)


ตัวคงที่มีลักษณะคล้ายตัวแปร แตกต่างจากตัวแปรตรงที่ ค่าที่เก็บในตัวคงที่จะคงเดิมไม่มีวันเปลี่ยนแปลงจนกระทั่งจบโปรแกรม แต่ค่าที่เก็บตัวแปรสามารถเปลี่ยนแปลงได้ตลอดเวลา 

การประกาศตัวคงที่
การประกาศตัวคงที่ทำได้ 2 วิธี ดังนี้

1. ใช้คำหลัก const ตามรูปแบบดังนี้
const  ชนิดข้อมูล  ชื่อตัวแปร ค่าที่เก็บในตัวแปร;   
เช่น -const  int  count  = 120;
-const float vat = 0.07;
-const float pi = 3.14159;

2. ใช้ตัวประมวลผลก่อน ตามรูปแบบดังนี้
#define  ชื่อตัวคงที่  ค่าคงที่
เช่น -#define COUNT 120
-#define VAT 7

-#define PI 3.1459


ตัวแปรในภาษาซี

ตัวแปรในภาษาซี


     ตัวแปร (Variable) คือ การจองพื้นที่ในหน่วยความจำของคอมพิวเตอร์สำหรับเก็บข้อมูลที่ต้องใช้ในการทำงานของโปรแกรม โดยมีการตั้งชื่อเรียกหน่วยความจำในตำแหน่งนั้นด้วย เพื่อความสะดวกในการเรียกใช้ข้อมูล ถ้าจะใช้ข้อมูลใดก็ให้เรียกผ่านชื่อของตัวแปรที่เก็บเอาไว้
ชนิดของข้อมูล
       ภาษาซีเป็นอีกภาษาหนึ่งที่มีชนิดของข้อมูลให้ใช้งานหลายอย่างด้วยกัน  ซึ่งชนิดของข้อมูลแต่ละอย่างมีขนาดเนื้อที่ที่ใช้ในหน่วยความจำที่แตกต่างกัน  และเนื่องจากการที่มีขนาดที่แตกต่างกันไป  ดังนั้นในการเลือกใช้งานประเภทข้อมูลก็ควรจะคำนึงถึงความจำเป็นในการใช้งานด้วย  สำหรับประเภทของข้อมูลมีดังนี้คือ
1.  ข้อมูลชนิดตัวอักษร (Character) คือข้อมูลที่เป็นรหัสแทนตัวอักษรหรือค่าจำนวนเต็มได้แก่ ตัวอักษร ตัวเลข และกลุ่มตัวอักขระพิเศษใช้พื้นที่ในการเก็บข้อมูล 1 ไบต์
2. ข้อมูลชนิดจำนวนเต็ม (Integer)  คือข้อมูลที่เป็นเลขจำนวนเต็ม  ได้แก่ จำนวนเต็มบวก จำนวนเต็มลบ ศูนย์ ใช้พื้นที่ในการเก็บ 2 ไบต์
3. ข้อมูลชนิดจำนวนเต็มที่มีขนาด 2 เท่า (Long Integer) คือข้อมูลที่มีเลขเป็นจำนวนเต็ม  ใช้พื้นที่  4 ไบต์
4. ข้อมูลชนิดเลขทศนิยม (Float) คือข้อมูลที่เป็นเลขทศนิยม ขนาด 4 ไบต์
5. ข้อมูลชนิดเลขทศนิยมอย่างละเอียด (Double) คือข้อมูลที่เป็นเลขทศนิยม ใช้พื้นที่ในการเก็บ 8 ไบต์
ชนิด
ขนาดความกว้าง
ช่วงของค่า
การใช้งาน
Char
8 บิต
ASCII character (-128 ถึง 127)
เก็บข้อมูลชนิดอักขระ
Unsignedchar
8 บิต
0-255
เก็บข้อมูลอักขระแบบไม่คิดเครื่องหมาย
Int
16 บิต
-32768 ถึง 32767
เก็บข้อมูลชนิดจำนวนเต็ม
long
32 บิต
-2147483648 ถึง 2147483649
เก็บข้อมูลชนิดจำนวนเต็มแบบยาว
Float
32 บิต
3.4E-38 ถึง 3.4E+38 หรือ ทศนิยม 6
เก็บข้อมูลชนิดเลขทศนิยม
Double
64 บิต
1.7E-308 ถึง 1.7E+308 หรือ ทศนิยม 12
เก็บข้อมูลชนิดเลขทศนิยม
Unsigned int
16 บิต
0 ถึง 65535
เก็บข้อมูลชนิดจำนวนเต็ม ไม่คิดเครื่องหมาย
Unsigned long
32 บิต
0 ถึง 4294967296
เก็บข้อมูลชนิดจำนวนเต็มแบบยาว ไม่คิดเครื่องหมาย

รูปแบบในการประกาศตัวแปรในภาษา C
     การสร้าวตัวแปรขึ้นมาใช้งานจะเรียกว่า  การประกาศตัวแปร (Variable Declaration) โดยเขียนคำสั่งให้ถูกต้องตามแบบการประกาศตัวแปร แสดงดังนี้
type name;
type :  ชนิดของตัวแปร
name : ชื่อของตัวแปร  ซึ่งต้องตั้งให้ถูกต้องตามหลักของภาษา C
     การเขียนคำสั่งเพื่อประกาศตัวแปร  ส่วนใหญ่แล้วจะเขียนไว้ในส่วนหัวของโปรแกรมก่อนฟังก์ชัน main ซึ่งการเขียนไว้ในตำแหน่งดังกล่าว  จะทำให้ตัวแปรเหล่านั้นสามารถเรียกใช้จากที่ใดก็ได้ในโปรแกรม  ดังตัวอย่าง

#include <stdio.h>

int num;
สร้างตัวแปรชื่อ num เพื่อเก็บข้อมูลชนิดจำนวนเต็ม
float y;
สร้างตัวแปรชื่อ y เพื่อเก็บข้อมูลชนิดเลขทศนิยม
char n;
สร้างตัวแปรชื่อ n เพื่อเก็บข้อมูลชนิดตัวอักขระ
void main()

{

     printf("Enter number : ")

     scanf("%d",&num);

     printf("Enter name : ");

     scanf("%f",&n);

     printf("Thank you");

}


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

1.
ต้องขึ้นต้นด้วยตัวอักษร A-Z หรือ a-z หรือเครื่องหมาย _(Underscore) เท่านั้น
2.
ภายในชื่อตัวแปรสามารถใช้ตัวอักษร A-Z หรือ a-z หรือตัวเลข0-9 หรือเครื่องหมาย _
3.
ภายในชื่อห้ามเว้นชื่องว่าง หรือใช้สัญลักษณ์นอกเหนือจากข้อ 2
4.
ตัวอักษรเลขหรือใหญ่มีความหมายแตกต่างกัน
5.
ห้ามตั้งชื่อซ้ำกับคำสงวน (Reserved Word) ดังนี้

auto
default
float
register
struct
volatile
break
do
far
return
switch
while
case
double
goto
short
typedef
char
else
if
signed
union
const
enum
int
sizeof
unsigned
continue
extern
long
static
void



ตัวแปรสำหรับข้อความ
     ในภาษา C ไม่มีการกำหนดชนิดของตัวแปรสำหรับข้อความโดยตรง แต่จะใช้การกำหนดชนิดของตัวแปรอักขระ (char) ร่วมกับการกำหนดขนาดแทน และจะเรียกตัวแปรสำหรับเก้บข้อความว่า ตัวแปรสตริง (string) รูปแบบการประกาศตัวแปรสตริงแสดงได้ดังนี้
char name[n] = "str";
name
ชื่อของตัวแปร
n
ขนาดของข้อความ หรือจำนวนอักขระในข้อความ
str
ข้อความเริ่มต้นที่จะกำหนดให้กับตัวแปรซึ่งต้องเขียนไว้ภายในเครื่องหมาย "  "

ตัวอย่างการประกาศตัวแปรสำหรับเก็บข้อความ  แสดงได้ดังนี้

char name[5] = "kwan" ;
สร้างตัวแปร name สำหรับเก็บ ข้อความ kwan ซึ่งมี  4 ตัวอักษร ดังนั้น name ต้องมีขนาด 5
char year[5] = "2549";
สร้างตัวแปร year สำหรับเก็บ ข้อความ 2549 ซึ่งมี  4 ตัวอักษร ดังนั้น year ต้องมีขนาด 5
char product_id[4] = "A01";
สร้างตัวแปร product_id สำหรับเก็บ ข้อความ A01 ซึ่งมี  3 ตัวอักษร ดังนั้น product_id ต้องมีขนาด 4