วันพุธที่ 15 กรกฎาคม พ.ศ. 2552

คำสั่งภาษาซี 5 คำสั่ง

ฟังก์ชันรับข้อมูล scanf()
ความหมายเป็นฟังก์ชันที่รับค่าจากอุปกรณ์นำเข้ามาตรฐาน และนำค่าที่ได้เก็บไว้ในตัวแปรในโปรแกรม ฟังก์ชันรับข้อมูลโดยกำหนดรูปแบบ ฟังก์ชันรับข้อมูลโดยกำหนดรูปแบบนั้นได้แก่ ฟังก์ชัน scanf() ฟังก์ชัน scanf() เป็นฟังก์ชันที่รับข้อมูลจากแป้นพิมพ์เข้ามาเก็บไว้ในตัวแปร โดยตัวแปรเหล่านี้ต้องเป็นพอยน์เตอร์ที่ชี้ไปยังข้อมูล ที่มีชนิดสอดคล้องกับรูปแบบการรับข้อมูลที่ได้กำหนดไว้ในฟังก์ชัน scanf() การรับข้อมูลของฟังก์ชัน scanf () นี้เป็นการอ่านจากอินพุตบัฟเฟอร์ (Input buffer) ซึ่งต้องเคาะปุ่ม Enter เพื่อบอกการสิ้นสุดของข้อมูล และค่าที่ส่งกลับมายังฟังก์ชัน scanf () จะมีค่าเท่ากับจำนวนข้อมูลที่ฟังก์ชันนี้รับได้ การรับข้อมูลจะต้องใช้เครื่องหมาย & นำหน้าตัวแปร ยกเว้นตัวแปรที่เป็นตำแหน่งที่อยู่ เช่น ตัวแปรสตริง หรือตัวแปรชุด ฟังก์ชัน scanf () นี้ถูกนิยามในแฟ้ม stdio.h มีรูปแบบดังนี้รูปแบบคำสั่ง
รูปแบบ scanf (control,argument-list) ;
argument-list
หมายถึง ตำแหน่งที่อยู่ของตัวแปรที่จะรับค่าจากแป้นพิมพ์ ถ้ามีมากกว่า 1 ค่าจะต้องแยกด้วยเครื่องหมายคอมม่า ( , )
control
หมายถึง รูปแบบที่ใช้ในการรับข้อมูล ซึ่งจะต้องเขียนภายใต้เครื่องหมายคำพูด (" ") และมีรูปแบบชนิดข้อมูลที่รับ โดยใช้สัญลักษณ์ดังตารางที่5.2 และแต่ละสัญลักษณ์จะต้องมีเครื่องหมาย % นำหน้า
รูปแบบการพิมพ์
เครื่องหมาย
ความหมาย
%d
พิมพ์ด้วยตัวเลขฐานสิบ
%f
พิมพ์ตัวเลขมีจุดทศนิยม
%c
พิมพ์ด้วยตัวอักษรตัวเดียว
%s
พิมพ์ด้วยข้อความ
%u
พิมพ์ด้วยตัวเลขไม่คิดเครื่องหมาย
ตัวอย่างคำสั่งscanf ("LKS isLumpang %s School",name);อธิบายตัวอย่างคำสั่งคำสั่ง scanf จะรับค่าจากแป้นพิมพ์ โดยค่าที่ได้จะเก็บไว้ในตัวแปร nameสังเกตว่าจะไม่มีผลลัพธ์ปรากฏบนจอภาพ เนื่องจากฟังก์ชัน scanf เป็นเพียงเก็บค่าไว้ในตัวแปรเท่านั้นและจะนำตัวแปร name ไปใช้งานอย่างไรนั้น ขึ้นอยู่กับนักเขียนโปรแกรมอีกที 1

2.ฟังก์ชัน scanf()
ฟังก์ชัน scanf() มีรูปแบบดังนี้
scanf(“format code”, &var);
เมื่อโปรแกรมทำงานถึงฟังก์ชันนี้จะหยุดเพื่อให้ป้อนข้อมูล โดยข้อมูลที่ป้อนจะแสดงบนจอภาพ เมื่อป้อนข้อมูลเสร็จกด Enter ข้อมูลทั้งหมดจะเก็บในตัวแปร var ชนิดของข้อมูลที่กำหนดให้กับตัวแปร var จะถูกกำหนดโดยตัวกำหนดชนิดข้อมูลซึ่งระบุในส่วนของ format code ตัวกำหนดชนิดข้อมูลของฟังก์ชัน scanf() จะเหมือนกับของฟังก์ชัน printf() ซึ่งได้กล่าวมาแล้ว ฟังก์ชัน scanf() จะทำให้เคอร์เซอร์ขึ้นบรรทัดใหม่หลังจากกด Enter
โมดิฟายเออร์ซึ่งได้กล่าวมาแล้ว สามารถนำมาใช้กับฟังก์ชัน scanf() ได้ในลักษณะเดียวกัน
ตัวอย่าง โปรแกรมที่ 1
#include”stdio.h”
main()
{
int num;
float x;
double y;
printf(“ Enter integer number “);
scanf(“%d”,&num);
printf(“ Enter floating point number “);
scanf(“%f”,&x);
scanf(“%f”,&x);
printf(“ Enter double precision floating point number “);
scanf(“%lf”,&y);
printf(“\n”);
printf(“ Integer number %d\n”,num);
printf(“ Floating point number %10.4f\n,x);
printf(“ Double precision floating point number %10.4f\n”,y);
}

3.ฟังก์ชัน getchar()
ฟังก์ชัน getchar() ใช้สำหรับป้อนตัวอักษรผ่านทางแป้นพิมพ์โดยจะรับตัวอักษรเพียง 1 ตัวเท่านั้น และแสดงตัวอักษรบนจอภาพ
ch = getchar();
เมื่อโปรแกรมทำงานถึงคำสั่งนี้จะหยุดเพื่อให้ป้อนตัวอักษร 1 ตัว หลังจากนั้นกด Enter ตัวอักษรที่ป้อนจะถูกเก็บไว้ในตัวแปร ch ซึ่งเป็นชนิดตัวอักษรและเคอร์เซอร์จะขึ้นบรรทัดใหม่ ฟังก์ชัน getchar() กำหนดในไฟล์ stdio.h เช่นเดียวกับฟังก์ชัน scanf()
ตัวอย่าง โปรแกรมที่ 9
#include”stdio.h”
main()
{
char ch;
printf(“ Type one character “);
ch = getchar();
printf(“ The character you typed is %c\n”,ch);
}

4.ฟังก์ชัน getche() และ getch()
ฟังก์ชัน getche() และ getch() มีรูปแบบดังนี้
ch = getche();
ch = getch();
ฟังก์ชัน getche() จะรับตัวอักษร 1 ตัวที่ป้อนทางแป้นพิมพ์ และจะแสดงตัวอักษรบนจอภาพ เมื่อป้อนข้อมูลเสร็จไม่ต้องกด Enter และเคอร์เซอร์จะไม่ขึ้นบรรทัดใหม่
ฟังก์ชัน getch() จะคล้ายกับฟังก์ชัน getche() ต่างกันตรงที่จะไม่แสดงตัวอักษรขณะป้อนข้อมูล
ฟังก์ชัน getche() และ getch() กำหนดในไฟล์ conio.h ดังนั้นจะต้องระบไฟล์ดังกล่าวในโปรแกรม
ตัวอย่าง โปรแกรมที่ 11
#include”stdio.h”
#include”conio.h”
main()
{
char ch;
printf(“ Type one character “);
ch = getche();
printf(“\n”);
printf(“ The character you typed is “);
putchar(ch);
}

5. ฟังก์ชัน gets
ฟังก์ชัน gets() ใช้สำหรับข้อมูลชนิดสตริงก์หรือข้อความซึ่งป้อนทางแป้นพิมพ์โดยมีรูปแบบดังนี้
gets(str);
เมื่อโปรแกรมทำงานถึงคำสั่งนี้จะหยุดเพื่อให้ป้อนข้อความ เมื่อป้อนเสร็จแล้วกด Enter ข้อความทั้งหมดจะถูกเก็บไว้ในอาร์เรย์สตริงก์ str โดย carriage return ( จากการกด Enter) จะแทนด้วยสตริงก์ศูนย์ดังได้กล่าว ฟังก์ชัน gets() จะทำให้เคอร์เซอร์ขึ้นบรรทัดใหม่หลังจากกด Enter และกำหนดในไฟล์ stdio.h
ตัวอย่าง โปรแกรมที่ 13
#include”stdio.h”
main()
{
char message[50];
printf(“ Enter a message(less than 49 characters)\n”);
gets(message);
printf(“ The message you entered is %s\n”,message);
}

วันพุธที่ 8 กรกฎาคม พ.ศ. 2552

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

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

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