วันจันทร์ที่ 13 สิงหาคม พ.ศ. 2555

Code ตัวอย่างโปรแกรม และหน้าตาโปรแกรมภาษาซี

Code ตัวอย่างโปรแกรม และหน้าตาโปรแกรมภาษาซี

ตัวอย่างที่ 1 แสดงตัวอย่างโปรแกรมภาษาซีเบื้องต้น
#include <stdio.h>
void main( ) {
/* Display message to standard output */
printf(“My first program.”);

ตัวอย่างที่ 2 แสดงตัวอย่างโปรแกรมภาษาซีเบื้องต้น
#include <stdio.h> void main( ) { /* Display message to standard output */ printf
(“My first program.”); }

ตัวอย่างที่ 3 แสดงตัวอย่างโปรแกรมภาษาซีเบื้องต้น
#include
<stdio.h>
void
main
()
{
/* Display message
to standard
output */
printf
(
My first program.”
)
;
}

ตัวอย่างที่ 4 แสดงตัวอย่างการใช้ค่าของตัวแปรชนิด char
#include <stdio.h>
void main( ) {
int no;
char ch;
ch = ‘J’;
printf(“char : %c, dec : %d, oct : %o, hex : %x”, ch, ch, ch, ch);
no = ch;
printf(“\nno : %d, ch : %c”, no, ch);
no = 68;
ch = no;
printf(“\nno : %d, ch : %c”, no, ch);
}
ผลการทำงานของโปรแกรม
char : J, dec : 74, oct : 112, hex : 4a
no : 74, ch : J
no : 68, ch : D

ตัวอย่างที่ 5 แสดงตัวอย่างการรับข้อมูลเพื่อนำมาแสดงผล
#include <stdio.h>
void main( ) {
char name[100];
printf("What is your name ?\n");
scanf("%s", name);
printf("Very glad to know you, ");
printf("%s.",name);
}
ผลลัพธ์ของการทำงาน
What is your name ?
Willy
Very glad to know you, Willy.

ตัวอย่างที่ 6 แสดงการกำหนดค่าจำนวนจริงให้กับตัวแปรจำนวนเต็ม
#include <stdio.h>
void main( ) {
int x;
x = 14.8328;
printf(“x value is %d”, x);
}
ผลการทำงานของโปรแกรม
x value is 14

ตัวอย่างที่ 7 โปรแกรมหาผลรวมของเลขจำนวนเต็ม 2 จำนวนที่รับข้อมูลจากผู้ใช้
#include <stdio.h>
void main( ) {
int x, y, z;
printf(“Enter X value : “);
scanf(“%d”, &x);
printf(“Enter Y value : “);
scanf(“%d”, &y);
z = x + y;
printf(“Summary of X and Y is %d”, z);
}
ผลการทำงานของโปรแกรม
Enter X value : 15
Enter Y value : 20
Summary of X and Y is 35

ตัวอย่างที่ 8 แสดงการใช้ตัวดำเนินการเพิ่มค่า
#include <stdio.h>
void main( ) {
int y, count;
count = 1;
y = count++;
printf(“y = %d, count = %d”, y, count);
count = 1;
y = ++count;
printf(“\ny = %d, count = %d”, y, count);
}
ผลการทำงานของโปรแกรม
y = 1, count = 2
y = 2, count = 2

ตัวอย่างที่ 9 แสดงการใช้ตัวดำเนินการเปลี่ยนชนิดข้อมูล
#include <stdio.h>
void main( ) {
int x;
x = 2.5 * 2;
printf(“x value is %d”, x);
x = (int)2.5 * 2;
printf(“\nx value is %d”, x);
x = (int)(2.5 * 2);
printf(“\nx value is %d”, x);
}
ผลการทำงานของโปรแกรม
x value is 5
x value is 4
x value is 5

ตัวอย่างที่ 10 แสดงของการเปรียบเทียบด้วยตัวกาํเนินการความสัมพันธ์
#include <stdio.h>
void main( ) {
int x, y
printf(“Enter X : “);
scanf(“%d”, &x);
printf(“Enter Y : “);
scanf(“%d”, &y);
printf(“X > Y is %d”, x>y);
}

ผลการทำงานของโปรแกรม
Enter X : 32
Enter Y : 24
X > Y is 1


โปรแกรมแบบวนซ้ำ (คำสั่งประเภท For , while,do while)

โปรแกรมแบบวนซ้ำ (คำสั่งประเภท For , while,do while)


คำสั่งวนลูป
ความหมายของลูป(loop)ลูป(loop)ในที่นี้มีความหมายว่า การวนซ้ำซึ่งการวนซ้ำในทางภาษาคอมพิวเตอร์ คือ การทำคำสั่งหรือชุดคำสั่งนั้นซ้ำกันหลายๆครั้งดังแสดงในรูปที่ 7-1

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

ลูปทั้งสองแบบนั้นจะต่างกันตรงที่จำนวนการทำคำสั่งหรือชุดคำสั่งนั้นจะไม่เท่ากัน คือเมื่อดูจากรูปที่ 7-2 จะเห็นได้ว่าลูปแบบ pretest นั้นโอกาสการทำคำสั่งหรือชุดคำสั่งที่น้อยที่สุดจะเท่ากับ 0 คือ เมื่อทำการตรวจสอบเงื่อนไขครั้งแรกแล้วเป็นเท็จก็จะออกจากลูป แต่ลูปแบบ post-test นั้นโอกาสที่น้อยที่สุดจะเท่ากับ 0 คือ เมื่อเข้าจะทำคำสั่งหรือชุดคำสั่งก่อน 1 ครั้งและเมื่อตรวจสอบเงื่อนไขครั้งแรกแล้วจะเป็นเท็จ ก็จะออกจากลูป
การกำหนดและปรับปรุง
ในการใช้ลูป จะมีการกระทำที่สำคัญอยู่ 2 อย่าง ที่จะขาดไม่ได้เลยซึ่งถ้าขาดไปจะทำให้ลูปนั้นไม่ทำงาน หรือลูปทำงานแบบไม่มีวันจบ
1.การกำหนดค่า ก่อนที่เริ่มใช้ลูปจะต้องมีการกำหนดค่าที่นะใช้เป็นตัวควบคุมลูปก่อนซึ่งตัวควบคุมนี้จะทำหน้าที่ในการตรวจอบว่าลูปนั้นได้ทำงานจนจบ ดังแสดงในรูปที่ 7-3
2.การปรับปรุง หลังจากที่ทำคำสั่งหรือชุดคำสั่งไปแล้วไม่มีการปับปรุงค่าของตัวควบคุมลูปก็จะทำให้ลูปนั้นกลายเป็นลูปไม่มีวันจบได้เพราะฉะนั้นจะต้องทำการปรับปรุงค่าของตัวควบคุมลูปทุกครั้งเพื่อจะได้นำค่าของตัวควบคุมไปตรวจสอบกับเงื่อนไขเพื่อจบการทำงานของลูป

รูปที่7-3 แสดงการกำหนดค่าและการปรับปรุง

คำสั่ง While จะใช้เงื่อนไขเป็นตัวควบคุมลูป ซึ่งลูป while นี้จะเป็นลูปแบบ pretest loop ซึ่งจะทำการตรวจสอบเงื่อนไขก่อนที่จะเข้าไปทำคำสั่งในลูป ผังการทำงานและชุดคำสั่งเบื้องต้นของ while ได้แสดงในรูปที่ 7-5



คำสั่ง For นั้นจะเป็นลูปแบบ pretest loop ที่ใช้นิพจน์ 3 นิพจน์ นิพจน์แรกเป็นการกำหนดค่า นิพจน์ที่ 2 เป็นเงื่อนไขในการตรวจสอบตัวควบคุมลูป และส่วนที่ 3 เป็นการปรับปรุงค่าของตัวควบคุมลูป ดังรูปที่ 7-7 แสดงผังการทำงานของคำสั่ง for

คำสั่ง do…while ว่าลูปแบบนี้จะมีคำสั่งก่อนทีจะไปทำการตรวจสอบตัวควบคุมลูป ซึ่งผังการทำงานและชุดคำสั่งเบื้องต้น
ซึ่งในตัวของคำสั่ง do….while นั้นจะมีคำสั่งได้เพียงคำสั่งเดียว ซึ่งถ้าต้องการเขียนเป็นชุดคำสั่งจะต้องเขียนชุดคำสั่งแบบ Compound Statement

การเลือกทำงานตามเงื่อนไข (คำสั่ง IF ELSE SWITCH)


การเลือกทำงานตามเงื่อนไข (คำสั่ง IF ELSE SWITCH)


1.คำสั่ง 2 ทางเลือก
คำสั่ง 2 ทางเลือกเป็นพื้นฐานของคำสั่งเงื่อนไขในภาษาคอมพิวเตอร์นั้น คำสั่งประเภทนี้จะต้องมีเงื่อนไขการตัดสินใจ เพื่อใช้หาคำตอบว่าจะไปทางไหน ถ้าเงื่อนไขเป็นจริงก็จะไปทำคำสั่งทางหนึ่ง แต่ถ้าเงื่อนไขเป็นเท็จก็จะไปทำคำสั่งอีกทางหนึ่ง ผังการทำงานของคำสั่ง 2 ทางเลือก
If…else คำสั่ง if…else นี้ จะต้องใช้เงื่อนไขเพื่อใช้เลือกว่าจะทำคำสั่งไหน ตามรูปที่ 6-4 แสดง ผังการทำงานของคำ สั่ง if…else ถ้าเงื่อนไขเป็นจริงก็จะไปทำคำสั่งที่ 1 แต่เงื่อนไขเป็นเท็จก็จะไปทำคำสั่งที่ 2 ซึ่งไม่มีโอกาสที่จะทำทั้งสองคำสั่งได้เลย
2. If
If คำสั่ง if ก็คือ คำสั่ง if…else แต่ที่ไม่มี else เพราะคำสั่งทางเป็นเท็จไม่มี หรือจากรูปที่ 6-4 ไม่มีคำสั่งที่ 2 นั่งเอง ซึ่งก็คือจะต้องเป็นจริงเท่านั้นจึงจะทำคำสั่งได้ จากรูปที่ 6-7แสดงให้ เห็นการเปลี่ยนจากคำสั่ง if…else เป็นคำสั่ง if



    3.คำสั่งหลายทางเลือก
      นอกจากคำสั่ง 2 ทางเลือกแล้ว ภาษา C ยังมีคำสั่งหลายทางเลือกให้ใช้ด้วยเพื่อความสะดวกรวดเร็วในการเขียนและการทำความเข้าใจ เพราะไม่ต้องมานั่งเขียนโปรแกรมที่ยาว
      Switch
      Switch เป็นคำสั่งที่แปลงมาจากคำสั่ง Nested if คำสั่งนี้จะมีตัวแปรหนึ่งตัวที่ใช้หาว่าจะไปทำที่คำสั่งไหนหรือ case ไหน ซึ่งในรูปที่ 6-11 แสดงผังการทำงานคำสั่ง switch ผู้ใช้สามารถสร้าง case ให้มีจำนวนตามต้องการได้ และชุดคำสั่งของคำสั่ง switch นั้นได้แสดงในรูปที่ 6-12
      

ประเภทของข้อมูลภาษาซี


ประเภทของข้อมูลภาษาซี



ชนิดของข้อมูล (data type) ในการเขียนโปรแกรมหนึ่งๆ จะมีข้อมูลต่างๆ เข้ามาเกี่ยวข้องเช่น
การนับจำนวนรอบ (loop) ของการทำงานโดยใช้ข้อมูลชนิดจำนวนเต็ม หรือการแสดงข้อความ
โดยใช้ข้อมูลชนิดตัวอักษร จะเห็นว่าข้อมูลต่างๆ ถูกแบ่งออกเป็นหลายชนิดตามจุดประสงค์ของการใช้งาน
นอกจากนี้ข้อมูลแต่ละชนิด ยังใช้เนื้อที่หน่วยความจำ (memory) ไม่เท่ากันจึงมีการแบ่งชนิดของข้อมูล
ดังแสดงในตารางด้านล่าง

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

การประกาศตัวแปร (variable declaration) คือการจองเนื้อที่ในหน่วยความจำสำหรับเก็บค่าบางอย่าง
พร้อมทั้งกำหนดชื่อเรียกแทนหน่วยความจำในตำแหน่งนั้นเพื่อให้ผู้เขียนโปรแกรมมีความสะดวกในการเข้าถึง
ค่าที่เก็บอยู่ในหน่วยความจำดังกล่าว

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

type variable-name;
โดย
type คือชนิดของตัวแปร (ตามตารางด้านล่าง)
variable-name คือชื่อของตัวแปร (ควรตั้งชื่อให้มีความหมายสอดคล้องกับการใช้งานและจำง่าย)

ตัวอย่างการประกาศตัวแปรแบบต่างๆ
int num; /*ประกาศตัวแปรชนิิดจำนวนเต็ม ชื่อ num*/
float x;
char grade, sex; /*ประกาศตัวแปรชนิิดอักขระ ชื่อ grade และ sex (ประกาศพร้อมกันในบรรทัดเดียว)*/
float temp = 123.45; /*ประกาศตัวแปรชนิดเลขทศนิยมพร้อมกำหนดค่า 123.45*/
char c = "A", t = "B"; /*ประกาศตัวแปรชนิดอักขระสองตัว พร้อมกำหนดค่าให้แต่ละตัว*/
int oct = 0555; /*ประกาศตัวแปรชนิดจำนวนเต็มชื่อ num พร้อมกำหนดค่าคือ 555 (เป็นเลขฐานแปดเพราะมี 0 นำหน้า)*/
int hex = 0x88; /*ประกาศตัวแปรชนิดจำนวนเต็มชื่อ hex พร้อมกำหนดค่าคือ 88 (เป็นเลขฐาน 16 เพราะมี 0x นำหน้า)*/
ข้อควรระวัง!!
  • ชื่อตัวแปรจะต้องขึ้นต้นด้วยตัวอักษรหรือเครื่องหมาย "_" เท่านั้น
  • ภายในชื่อตัวแปรให้ใช้ตัวอักษร, ตัวเลข 0-9 หรือเครื่องหมาย "_"
  • ห้ามมีช่องว่างในชื่อตัวแปร
  • อักษรตัวพิมพ์เล็ก-ใหญ่ มีความแตกต่างกัน (case sensitive) เช่น Name, NAME และ name
    ถือเป็นชื่อที่แตกต่างกัน
  • ห้ามซ้ำกับชื่อตัวแปรสงวน (reserved word)
ตัวแปรชนิดข้อความ (string)
ถ้าเราต้องการเก็บข้อความ "C programming language" ไว้ในตัวแปร จะทำได้อย่างไร?

ที่ผ่านมาเราทราบว่าเราสามารถเก็บข้อมูลชนิดตัวอักขระไว้ในตัวแปรชนิด char ได้ แต่ตัวแปรชนิด char นั้น
สามารถเก็บตัวอักขระได้เพียงตัวเดียวเท่านั้น ไม่สามารถเก็บทั้งข้อความได้ แล้วเราจะแก้ปัญหาได้อย่างไร?

หากพิจาณาให้ดี ข้อความดังกล่าวประกอบด้วยตัวอักขระ (ตัวอักษร+สัญลักษณ์) หลายๆ ตัวเรียงต่อกันเป็นสาย
ซึ่งเป็นลักษณะของตัวแปรแบบ array (จะได้กล่าวภายหลัง)

การประกาศตัวแปรแบบ array เพื่อเก็บข้อมูลดังกล่าวสามารถทำได้ดังนี้
type variable-name[size];
โดย
size คือขนาดของข้อความ+1 โดยขนาดที่เพิ่มขึ้นเพราะต้องเก็บอักขระสุดท้ายของข้อความเป็นอักขระ
\0 หรือ NULL เพื่อบอกว่าสิ้นสุดข้อความแล้ว
ตัวอย่างการประกาศตัวแปรแบบ array เพื่อเก็บข้อความ "C programming language" (22 ตัวอักษร)
ทำได้หลายวิธีดังนี้
char[23] text = "C programming language";
/*กำหนดขนาดเพิ่มขึ้น 1 ตัว สำหรับเก็บค่า \0 หรือ NULL ในตำแหน่งสุดท้าย*/

char[23] text = {'C',' ','p','r','o','g','r','a','m','m','i','n','g',' ','l','a','n','g','u','a','g','e','\0'};
/*กำหนดขนาดเพิ่มขึ้น 1 ตัว สำหรับเก็บค่า \0 หรือ NULL ในตำแหน่งสุดท้าย*/

char[] text = "C programming language";
/*ถ้าไม่กำหนดขนาดของ array แล้ว ตัวแปรภาษาซีจะกำหนดให้โดยมีขนาดเท่ากับขนาดข้อความ+1*/
นอกจากนี้เรายังสามารถแก้ไขตัวอักษรที่เก็บอยู่ใน array ได้โดยการอ้างอิงตำแหน่งเช่น
text[0] = 'A'; /*แก้ตัวอักษรตัวแรก (เริ่มนับจาก 0) จะได้ผลลัพธ์คือ A programming language*/
text[2] = ' '; /*ผลลัพธ์คือ A rogramming language (ใส่ช่องว่างแทนตัว p)*/

โครงสร้างของภาษาซี

โครงสร้างของภาษาซี


 ภาษา C เป็นภาษาคอมพิวเตอร์ที่ถูกค้นคิดขึ้นโดย Denis Ritchie ในปี ค.ศ. 1970
โดยใช้ระบบปฏิบัติการของยูนิกซ์ (UNIX) นับจากนั้นมาก็ได้รับความนิยมเพิ่มขั้นจนถึงปัจจุบัน ภาษา C สามารถติดต่อในระดับฮาร์ดแวร์ได้ดีกว่าภาษาระดับสูงอื่น ๆ ไม่ว่าจะเป็นภาษาเบสิกฟอร์แทน ขณะเดียวกันก็มีคุณสมบัติของภาษาระดับสูงอยู่ด้วย ด้วยเหตุผลดังกล่าวจึงจัดได้ว่าภาษา C เป็นภาษาระดับกลาง (Middle –lever language)
ภาษา C เป็นภาษาคอมพิวเตอร์ชนิดคอมไพล์ (compiled Language) ซึ่งมีคอมไพลเลอร์ (Compiler) ทำหน้าที่ในการคอมไพล์ (Compile) หรือแปลงคำสั่งทั้งหมดในโปรแกรมให้เป็นภาษาเครื่อง (Machine Language) เพื่อให้เครื่องคอมพิวเตอร์นำคำสั่งเหล่านั้นไปทำงานต่อไป
โครงสร้างของภาษา C
เฮดเดอร์ไฟล์ (Header Files)
เป็นส่วนที่เก็บไลบรารี่มาตรฐานของภาษา C ซึ่งจะถูกดึงเข้ามารวมกับโปรแกรมในขณะที่กำลังทำการคอมไพล์ โดยใช้คำสั่ง
#include<ชื่อเฮดเดอร์ไฟล์> หรือ
#include “ชื่อเฮดเดอร์ไฟล์”
เฮดเดอร์ไฟล์นี้จะมีส่วนขยายเป็น .h เสมอ และเฮดเดอร์ไฟล์เป็นส่วนที่จำเป็นต้องมีอย่างน้อย 1 เฮดเดอร์ไฟล์ ก็คือ เฮดเดอร์ไฟล์ stdio.h ซึ่งจะเป็นที่เก็บไลบรารี่มาตรฐานที่จัดการเกี่ยวกับอินพุตและเอาท์พุต
ส่วนตัวแปรแบบ Global (Global Variables)
เป็นส่วนที่ใช้ประกาศตัวแปรหรือค่าต่าง ๆ ที่ให้ใช้ได้ทั้งโปรแกรม ซึ่งใช้ได้ทั้งโปรแกรม ซึ่งในส่วนไม่จำเป็นต้องมีก็ได้
ฟังก์ชัน (Functions)
เป็นส่วนที่เก็บคำสั่งต่าง ๆ ไว้ ซึ่งในภาษา C จะบังคับให้มีฟังก์ชันอย่างน้อย 1 ฟังก์ชั่นนั่นคือ ฟังก์ชั่น Main() และในโปรแกรม 1 โปรแกรมสามารถมีฟังก์ชันได้มากกว่า 1 ฟังก์ชั่น
ส่วนตัวแปรแบบ Local (Local Variables)
เป็นส่วนที่ใช้สำหรับประกาศตัวแปรที่จะใช้ในเฉพาะฟังก์ชันของตนเอง ฟังก์ชั่นอื่นไม่สามารถเข้าถึงหรือใช้ได้ ซึ่งจะต้องทำการประกาศตัวแปรก่อนการใช้งานเสมอ และจะต้องประกาศไว้ในส่วนนี้เท่านั้น
ตัวแปรโปรแกรม (Statements)
เป็นส่วนที่อยู่ถัดลงมาจากส่วนตัวแปรภายใน ซึ่งประกอบไปด้วยคำสั่งต่าง ๆ ของภาษา C และคำสั่งต่าง ๆ จะใช้เครื่องหมาย ; เพื่อเป็นการบอกให้รู้ว่าจบคำสั่งหนึ่ง ๆ แล้ว ส่วนใหญ่ คำสั่งต่าง ๆ ของภาษา C เขียนด้วยตัวพิมพ์เล็ก เนื่องจากภาษา C จะแยกความแตกต่างชองตัวพิมพ์เล็กและพิมพ์ใหญ่หรือ Case Sensitive นั่นเอง ยกตัวอย่างใช้ Test, test หรือจะถือว่าเป็นตัวแปรคนละตัวกัน นอกจากนี้ภาษา C ยังไม่สนใจกับการขึ้นบรรทัดใหม่ เพราะฉะนั้นผู้ใช้สามารถพิมพ์คำสั่งหลายคำสั่งในบรรทัดเดียวกันได้ โดยไม่เครื่องหมาย ; เป็นตัวจบคำสั่ง
ค่าส่งกลับ (Return Value)
คือ ค่าที่ส่งกลับเมื่อฟังก์ชันนั้นๆทำงานเสร็จ ซึ่งเรื่องนี้ผู้เขียนจะยกไปกล่าวในเรื่องฟังก์ชั่นอย่างละเอียดอีกทีหนึ่ง
หมายเหตุ (Comment) / Remark
ส่วนที่ไม่ต้องประมวลผลมักใช้ในการอธิบายการทำงานของโปรแกรม ซึ่งจะใช้เครื่องหมาย /*และ */ ปิดหัวและปิดท้ายของข้อความที่ต้องการ

/* นี้คือ Comment */
/* ถ้ามี 2บรรทัด
ในทำแบบนี้ */
/*
ถ้ามีหลายบรรทัด
ก็สามารถทำแบบนี้
ได้เช่นกัน
*/


โปรแกรมที่ 2 – 1

การตั้งชื่อ
การตั้งชื่อ (Identifier) ให้กับตัวแปร ฟังก์ชันหรืออื่น ๆ มีกฎเกณฑ์ในการตั้งชื่อ ดังนี้
1. ตัวแรกของชื่อจะต้องขึ้นต้องด้วยตัวอักษรหรือเครื่องหมาย _ เท่านั้น
2. ตัวอักษรตั้งแต่ตัวที่ 2 สามารถเป็นตัวเลข หรือเครื่องหมาย_ก็ได้
3. จะต้องไม่มีการเว้นวรรคภายในชื่อ แต่สามารถใช้เครื่อง_คั่นได้
4. สามารถตั้งชื่อได้ยาไม่จำกัด แต่จะใช้ตัวอักษรแค่ 31 ตัวแรกในการอ้างอิง
5. ชื่อที่ตั้งด้วยตัวอักษรพิมพ์ใหญ่และพิมพ์เล็ก จะถือว่าเป็นคนละตัวกัน
6. ห้ามตั้งชื่อซ้ำกับคำสงวนของภาษา C
ชนิดข้อมูล
ในการเขียนโปรแกรมภาษา C นั้น ผู้ใช้จะต้องกำหนดชนิดให้กับตัวแปรนั้นก่อนที่จะนำไปใช้งาน โดยผู้ใช้จะต้องรู้ว่าในภาษา C นั้นมีชนิดข้อมูลอะไรบ้าง เพื่อจะเลือกใช้ได้อย่างถูก
ต้องและเหมาะสม ในภาษา C จะมี 4 ชนิดข้อมูลมาตรฐาน ดังนี้
ชนิดข้อมูลแบบไม่มีค่า หรือ Void Type (Void)
ข้อมูลชนิดนี้ จะไม่มีค่าและจะไม่ใช้ในการกำหนดชนิดตัวแปร แต่ส่วนใหญ่จะใช้เกี่ยวกับฟังก์ชั่น ซึ่งจะขอยกไปอธิบายในเรื่องฟังก์ชั่น
ชนิดข้อมูลมูลแบบจำนวนเต็ม หรือ Integer Type (int)
เป็นชนิดข้อมูลที่เป็นตัวเลขจำนวนเต็ม ไม่มีทศนิยม ซึ่งภาษา C จะแบ่งข้อมูลชนิดนี้ออกได้เป็น 3 ระดับ คือ short int , int และ long int ซึ่งแต่ละระดับนั้นจะมีขอบเขตการใช้งานที่แตกต่างกัน
ชนิดข้อมูลแบบอักษร หรือ Character Type (char)
ข้อมูลชนิดนี้ก็คือ ตัวอักษรตั้งแต่ A-Z เลข 0-9 และสัญลักษณ์ต่าง ๆ ตามมาตรฐาน ACSII (American Standard Code Information Interchange) ซึ่งเมื่อกำหนดให้กับตัวแปรแล้วตัวแปรนั้นจะรับค่าได้เพียง 1 ตัวอักษรเท่านั้น และสามารถรับข้อมูลจำนวนเต็มตั้งแต่ถึง 127 จะใช้ขนาดหน่วยความจำ 1ไบต์หรือ 8 บิต
ชนิดข้อมูลแบบทศนิยม หรือ Floating Point Type (flat)
เป็นข้อมูลชนิดตัวเลขที่มีจุดทศนิยม ซึ่งสามารถแบ่งออกเป็น 3 ระดับ คือ float, double และ long double แต่ละระดับนั้นจะมีขอบเขตที่แตกต่างกันในการใช้งาน ดังแสดงในตารางที่ 2-2
ตัวแปร
ตัวแปร คือ ชื่อที่ใช้อ้างถึงตำแหน่งต่าง ๆ ในหน่วยความจำ ซึ่งใช้เก็บข้อมูลต่าง ๆ ด้วยขนาดตามชนิดข้อมูล
การประกาศตัวแปร
การประกาศตัวแปรในภาษา C นั้นสามรถทำได้ 2 ลักษณะ คือ การประกาศตัวแปรแบบเอกภาพ หรือการประกาศตัวแปรแบบ Global คือ ตัวแปรที่จะสามารถเรียกใช้ได้ทั้งโปรแกรม และแบบที่สองการประกาศตัวแปรแบบภายใน หรือการประกาศตัวแปรแบบ Local ซึ่งตัวแปรแระเภทนี้จะใช้ได้ในเฉพาะฟังก์ชั่นของตัวเองเท่านั้น
#include<stdio.h>
#include<conio.h>
int total; /*การประกาศตัวแปรแบบ Global */
main()
{
int price, money; /*การประกาศตัวแปรแบบ Local*/

}


การกำหนดค่าให้กับตัวแปร
การกำหนดค่าให้กับตัวแปรนั้น จะสามารถกำหนดได้ตั้งแต่ตอนที่ประกาศตัวแปรเลยหรือจะกำหนดให้ภายในโปรแกรมก็ได้ ซึ่งการกำหนดค่าจะใช้เครื่องหมาย = กั้นตรงกลาง
int total = 0;
ถ้ามีตัวแปรข้อมูลชนิดเดียวกัน ก็สามารถทำแบบนี้ได้
int total =0,sum
หรือ
int total =0,sum=0;
ถ้าเป็นการกำหนดภายในโปรแกรม ซึ่งตัวแปรนั้นได้ประกาศไว้แล้วสามารถทำแบบนี้
total = 50;
หรือ
total = total+sum
หรือกำหนดค่าจาการพิมพ์ข้อมูลเข้าทางคีย์บอร์ด
scanf(“%d”,&total);
โปรแกรมที่ 2-2


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

โปรแกรมที่ 2-3

ชนิดข้อมูลแบบค่าคงที่ (Constants)
ชนิดข้อมูลประเภทนี้ ชื่อก็บอกอยู่ว่าเป็นชนิดข้อมูลแบบค่าคงที่ ซึ่งก็คือข้อมูลตัวแปรประเภทที่เป็น Constants ผู้ใช้จะไม่สามารถเปลี่ยนแปลงค่าของตัวแปรตัวนั้น ในขณะที่โปรแกรมทำงานอยู่
รูปแบบ
Const[ชนิดข้อมูล][ตัวแปร]=[ค่าหรือ นิพจน์]
โปรแกรมที่ 2-4
nstant นั้นสามารถแบ่งออกได้ ดังนี้
Integer Constants เป็นค่าคงที่ชนิดข้อมูลแบบตัวเลขจำนวนเต็มไม่มีจุดทศนิยม
const int a = 5;
Floating-Point Constants เป็นค่าคงที่ชนิดข้อมูลแบบตัวเลขที่มีจุดทศนิยม
const float b = 5.6394;
Character Constants เป็นค่าคงที่ชนิดตัวอักษร ซึ่งจะต้องอยู่ภายในเครื่องหมาย ‘’เท่านั้น
const char b = ‘t’;
String Constants เป็นค่าคงที่เป็นข้อความ ซึ่งจะต้องอยู่ภายใต้เครื่องหมาย “”เท่านั้น
“”
“h”
“Hello world\n”
“HOW ARE YOU”
“Good Morning!”

โปรแกรมที่ 2-5

Statements
statements ในภาษา c คือ คำสั่งต่าง ไ ที่ประกอบขึ้นจนเป็นตัวโปรแกรม ซึ่งในภาษา c นั้นได้แบ่งออกเป็น 6 แบบ คือ Expression Statement และ Compound Statement ณ.ที่นี้จะมีด้วยกัน 2 แบบ
Expression Statement หรือเรียกอีกอย่างหนึ่งว่า Single Statement ซึ่ง Statement แบบนั้นจะต้องมีเครื่องหมาย; หลังจาก statement เมื่อภาษา C พบเครื่องหมาย ; จะทำให้มันรู้ว่าจบชุดคำสั่งแล้ว แล้วจึงข้ามไปทำ Statement ชุดต่อไป
a = 2;
หรือ
printf(“x contains %d, y contains %d\n”,x,y);
Compound Statement คือ ชุดคำสั่งที่มีคำสั่งต่าง ๆ รวมอยู่ด้านใน Block ซึ่งจะใช้เครื่องหมาย {เป็นการเปิดชุดคำสั่ง และใช้} เป็นตัวปิดชุดคำสั่ง ตัวอย่างที่เห็นได้ชัดเจนสำหรับ Statement แบบนี้ คือ ตัวฟังก์ชั่น Main โดยทั่ว ๆ ไปในภาษา C Compound Statement จะเป็นตัวฟังชั่น
ผังงาน
ผังงาน (Flowchart) มีไว้เพื่อให้ผู้ใช้ออกแบบขั้นตอนการทำงนของโปรแกรมก่อนที่จะลงมือเขียนโปรแกรม ซึ่งจะช่วยให้ผู้ใช้เขียนโปรแกรมได้ง่ายขึ้นและไม่สับสนซึ่งผังงานที่นิยมใช้มีมาตรฐานมากมายหลายแบบ โดยมีสัญลักษณ์ของผังงานดังนี้
1.
Terminator สัญลักษณ์แทนจุดเริ่มต้นและจุดสิ้นสุด
2. Process สัญลักษณ์กระบวนการต่าง ๆ เช่น การประกาศตัวแปร การบวก เป็นต้น
3 Decision สัญลักษณ์เงื่อนไข
4 Data สัญลักษณ์ติดต่อกับผู้ใช้โดยการรับข้อมูลหรือแสดงข้อมูล
5 Manual Input สัญลักษณ์การรับข้อมูลจากผู้ใช
6 Display สัญลักษณ์การแสดงผลออกทางจอภาพ
7 Predefined Process สัญลักษณ์ระบุการทำงานย่อยหรือฟังก์ชั่นย่อย
8 Connect สัญลักษณ์จุดเชื่อม
9 Arrow สัญลักษณ์เส้นทางการดำเนินงาน

โดยการออกแบบผังงาน จะมี 3 แบบ ดังนี้
1. แบบเรียงลำดับ จะเป็นลักษณะการทำงานที่เรียงกันไปเรื่อย ๆ โดยไม่มีการวนซ้ำ ดังรูป



2. แบบทางเลือก จะเป็นลักษณะการทำงานที่มีทางเลือก ซึ่งจะพบในเรื่องคำสั่งเงื่อนไข เช่น คำสั่ง if…else ดังรูป


NO
Yes


3. แบบการทำงานซ้ำ จะเป็นลักษณะการทำงานที่วนการทำงานแบบเดิม จนครบตามจำนวนที่ต้องการ ซึ้งจะพบในเรื่องคำสั่ง วนลูป เช่น คำสั่ง do….while ดังรูป




วันอังคารที่ 7 สิงหาคม พ.ศ. 2555

การคำนวณผลการเรียน

#include <stdio.h>
main(){
 int score;
printf("Input score=");
scanf("%d",&score);
if(score>=0&&score<=100)
 { if(score>=80)
printf("grade A",score);
else if(score>=70&&score<=79)
printf("grade B",score);
else if(score>=60&&score<=69)
printf("grade C",score);
else if(score>=50&&score<=59)
printf("grade D",score);
else if(score<50)
printf("grade 0\nSo Noob",score);

}
else
printf("Return Input Score",score);
getch();
}




วันจันทร์ที่ 30 กรกฎาคม พ.ศ. 2555

ขั้นตอนการพัฒนาโปรแกรม

ขั้นตอนการพัฒนาโปรแกรมประกอบด้วย
  1. การวิเคราะห์ปัญหา
  2. การออกแบบโปรแกรม
  3. การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์
  4. การทดสอบและแก้ไขโปรแกรม
  5. การทำเอกสารประกอบโปรแกรม
  6. การบำรุงรักษาโปรแกรม

การวิเคราะห์ปัญหา

การวิเคราะห์ปัญหา ประกอบด้วยขั้นตอนต่างๆ ดังนี้
  1. กำหนดวัตถุประสงค์ของงาน เพื่อพิจารณาว่าโปรแกรมต้องทำการประมวลผลอะไรบ้าง
  2. พิจารณาข้อมูลนำเข้า เพื่อให้ทราบว่าจะต้องนำข้อมูลอะไรเข้าคอมพิวเตอร์ ข้อมูลมีคุณสมบัติเป็นอย่างไร ตลอดจนถึงลักษณะและรูปแบบของข้อมูลที่จะนำเข้า
  3. พิจารณาการประมวลผล เพื่อให้ทราบว่าโปรแกรมมีขั้นตอนการประมวลผลอย่างไรและมีเงื่อนไปการประมวลผลอะไรบ้าง
  4. พิจารณาข้อสนเทศนำออก เพื่อให้ทราบว่ามีข้อสนเทศอะไรที่จะแสดง ตลอดจนรูปแบบและสื่อที่จะใช้ในการแสดงผล

การออกแบบโปรแกรม

การออกแบบขั้นตอนการทำงานของโปรแกรมเป็นขั้นตอนที่ใช้เป็นแนวทางในการลงรหัสโปรแกรม ผู้ออกแบบขั้นตอนการทำงานของโปรแกรมอาจใช้เครื่องมือต่างๆ ช่วยในการออกแบบ อาทิเช่น คำสั่งลำลอง (Pseudocode) หรือ ผังงาน (Flow chart) การออกแบบโปรแกรมนั้นไม่ต้องพะวงกับรูปแบบคำสั่งภาษาคอมพิวเตอร์ แต่ให้มุ่งความสนใจไปที่ลำดับขั้นตอนในการประมวลผลของโปรแกรมเท่านั้น

การเขียนโปรแกรมด้วยภาษาคอมพิวเตอร์

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

การทดสอบและแก้ไขโปรแกรม

การทดสอบโปรแกรมเป็นการนำโปรแกรมที่ลงรหัสแล้วเข้าคอมพิวเตอร์ เพื่อตรวจสอบรูปแบบกฎเกณฑ์ของภาษา และผลการทำงานของโปรแกรมนั้น ถ้าพบว่ายังไม่ถูกก็แก้ไขให้ถูกต้องต่อไป ขั้นตอนการทดสอบและแก้ไขโปรแกรม อาจแบ่งได้เป็น 3 ขั้น
  1. สร้างแฟ้มเก็บโปรแกรมซึ่งส่วนใหญ่นิยมนำโปรแกรมเข้าผ่านทางแป้นพิมพ์โดยใช้โปรแกรมประมวลคำ
  2. ใช้ตัวแปลภาษาคอมพิวเตอร์แปลโปรแกรมที่สร้างขึ้นเป็นภาษาเครื่อง โดยระหว่างการแปลจะมีการตรวจสอบความถูกต้องของรูปแบบและกฎเกณฑ์ในการใช้ภาษา ถ้าคำสั่งใดมีรูปแบบไม่ถูกต้องก็จะแสดงข้อผิดพลาดออกมาเพื่อให้ผู้เขียนนำไปแก้ไขต่อไป ถ้าไม่มีข้อผิดพลาด เราจะได้โปรแกรมภาษาเครื่องที่สามารถให้คอมพิวเตอร์ประมวลผลได้
  3. ตรวจสอบความถูกต้องของการประมวลผลของโปรแกรม โปรแกรมที่ถูกต้องตามรูปแบบและกฎเกณฑ์ของภาษา แต่อาจให้ผลลัพธ์ของการประมวลผลไม่ถูกต้องก็ได้ ดังนั้นผู้เขียนโปรแกรมจำเป็นต้องตรวจสอบว่าโปรแกรมประมวลผลถูกต้องตามต้องการหรือไม่ วิธีการหนึ่งก็คือ สมมติข้อมูลตัวแทนจากข้อมูลจริงนำไปให้โปรแกรมประมวลผลแล้วตรวจสอบผลลัพธ์ว่าถูกต้องหรือไม่ ถ้าพบว่าไม่ถูกต้องก็ต้องดำเนินการแก้ไขโปรแกรมต่อไป การสมมติข้อมูลตัวแทนเพื่อการทดสอบเป็นสิ่งที่มีความสำคัญเป็นอย่างมาก ลักษณะของข้อมูลตัวแทนที่ดีควรจะสมมติทั้งข้อมูลที่ถูกต้องและข้อมูลที่ผิดพลาด เพื่อทดสอบว่าโปรแกรมที่พัฒนาขึ้นสามารถครอบคลุมการปฏิบัติงานในเงื่อนไขต่างๆ ได้ครบถ้วน นอกจากนี้อาจตรวจสอบการทำงานของโปรแกรมด้วยการสมมติตัวเองเป็นคอมพิวเตอร์ทีจะประมวลผล แล้วทำตามคำสั่งทีละคำสั่งของโปรแกรมนั้นๆ วิธีการนี้อาจทำได้ยากถ้าโปรแกรมมีขนาดใหญ่ หรือมีการประมวลผลที่ซับซ้อน

การทำเอกสารประกอบโปรแกรม

การทำเอกสารประกอบโปรแกรมเป็นงานที่สำคัญของการพัฒนาโปรแกรม เอกสารประกอบโปรแกรมช่วยให้ผู้ใช้โปรแกรมเข้าใจวัตถุประสงค์ ข้อมูลที่จะต้องใช้กับโปรแกรม ตลอดจนผลลัพธ์ที่จะได้จากโปรแกรม การทำโปรแกรมทุกโปรแกรมจึงควรต้องทำเอกสารกำกับ เพื่อใช้สำหรับการอ้างอิงเมื่อจะใช้งานโปรแกรมและเมื่อต้องการแก้ไขปรับปรุงโปรแกรม เอกสารประกอบโปรแกรมที่จัดทำ ควรประกอบด้วยหัวข้อต่อไปนี้
  1. วัตถุประสงค์
  2. ประเภทและชนิดของคอมพิวเตอร์และอุปกรณ์ที่ใช้ในโปรแกรม
  3. วิธีการใช้โปรแกรม
  4. แนวคิดเกี่ยวกับการออกแบบโปรแกรม
  5. รายละเอียดโปรแกรม
  6. ข้อมูลตัวแทนที่ใช้ทดสอบ
  7. ผลลัพธ์ของการทดสอบ

การบำรุงรักษาโปรแกรม

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

ตัวอย่างการเขียนรหัสเทียมและผังงาน

ตัวอย่าง Pseudo code

ชื่อ (Name)

มักขึ้นต้นด้วยคำว่า procedure ตามด้วยชื่อของขั้นตอนวิธี และลำดับและชนิดของตัวแปรที่ใช้รับข้อมูลนำเข้า เช่น
Procedure FindMax(a1, a2, …, an : integers)

คำสั่งกำหนดงาน (Assignment Statements)

ใช้เครื่องหมาย := (หรือบางครั้งใช้ ¬) สำหรับกำหนดค่าจากนิพจน์ทางขวาให้แก่ตัวแปรทางด้านซ้าย
เช่น
Variable := expression
b := 5
a := n + 10
d := sqrt(4)
z ¬ จำนวนที่มากที่สุดในลำดับ L
a ¬ สลับค่าของตัวแปร a กับ b

กลุ่มของคำสั่ง (Blocks of Statements)

คำสั่งอาจมีการรวมกลุ่มเพื่อให้ง่ายต่อการเข้าใจโดยขึ้นต้นกลุ่ม(Block) ด้วยคำว่า begin และสิ้นสุดด้วยคำว่า end ทั้งนี้แต่ละบรรทัดของคำสั่งจะมีการย่อหน้าที่เท่ากันด้วย
เช่น
begin
b:=i
n:=sqrt(b)
q:=b/n
end
ข้อบันทึกหรือคำอธิบาย
บันทึกในเครื่องหมาย {} เพื่อช่วยเตือนความจำหรืออธิบายขั้นตอนที่อาจเข้าใจยาก
เช่น
n := floor(x)
{floor function floor(1.5) = 1 and floor(-1.5) = -2}

คำสั่งควบคุม (control Statements)

แบ่งได้เป็น 2 ชนิด คือ
1. คำสั่งเงื่อนไข การทำงานเริ่มจากเงื่อนไขจะถูกตรวจสอบก่อน ถ้าเป็นจริงแล้วคำสั่ง(หรือกลุ่มของคำสั่ง) ที่กำหนดไว้จะถูกปฏิบัติต่อไป โดยอาจมีทางเลือกด้วยว่าถ้าเงื่อนไขไม่เป็นจริง จะปฏิบัติคำสั่ง(หรือกลุ่มของคำสั่ง) อื่นแทน คำสั่งเงื่อนไขมีรูปแบบคือ
IF(เงื่อนไข)then
คำสั่ง(หรือกลุ่มของคำสั่ง)ที่ต้องปฏิบัติเมื่อเงื่อนไขเป็นจริง
หรือ
IF(เงื่อนไข)then
คำสั่ง(หรือกลุ่มของคำสั่ง)ที่ต้องปฏิบัติเมื่อเงื่อนไขเป็นจริง
else
คำสั่ง(หรือกลุ่มของคำสั่ง)ที่ต้องปฏิบัติเมื่อเงื่อนไขไม่เป็นจริง
เงื่อนไขคือนิพจน์ที่เมื่อถูกตรวจสอบหรือคำนวณแล้วจะมีค่าความจริงเป็นจริงหรือเท็จเท่านั้น
เช่น
If (n<0) then
n := -n
ans := sqrt (n)
หรือ
If (a < b) then
smaller := a
else
smaller := b
บางครั้งเงื่อนไขที่ต้องการตรวจสอบอาจมีมากกว่าหนึ่งเงื่อนไข คำสั่งเงื่อนไขสามารถเขียนได้เป็นระบบ
เช่น
If (n > 80) then
Point := 4
Else If (n > 70) then
Point := 3
Else If (n > 60) then
Point := 2
Else If (n > 50) then
Point := 1
Else
Point := 0
2. คำสั่งทำซ้ำ แบ่งได้เป็น 2 แบบ คือ
a. คำสั่งทำซ้ำตามดัชนี(for loop) เริ่มต้นด้วยการกำหนดค่าของดัชนีให้มีค่าเท่ากับ ค่าเริ่มต้น แล้วจึงปฏิบัติคำสั่ง(หรือกลุ่มของคำสั่ง)จนสิ้นสุด จากนั้นค่าของดัชนีจะถูกเพิ่มขึ้นอีกครั้งละ 1 สลับกับการปฏิบัติคำสั่ง(หรือกลุ่มของคำสั่ง) 1 ครั้ง
คำสั่งทำซ้ำตามดัชนีจะสิ้นสุดก็ต่อเมื่อตัวแปรที่เป็นดัชนีมีค่ามากกว่าค่าสุดท้าย
คำสั่งทำซ้ำตามดัชนีมีรูปแบบคือ
For ตัวแปรที่เป็นดัชนี := ค่าเริ่มต้น to ค่าสุดท้าย do
คำสั่ง(หรือกลุ่มของคำสั่ง)ที่ต้องปฏิบัติ
เช่น
Power := n
For i:= 1 to 5 do
Power := power*n
หรือ
Sum := 0
For j := 1 to 10 do
Sum := sum + j
b. คำสั่งทำซ้ำในขณะที่เงื่อนไขเป็นจริง (While loop) - เริ่มต้นด้วยการตรวจสอบเงื่อนไขก่อนถ้าเป็นจริง คำสั่ง(หรือกลุ่มของคำสั่ง)ที่กำหนดไว้จะถูกปฏิบัติต่อไปจนสุด จากนั้นเงื่อนไขจะถูกตรวจสอบอีก ถ้าเป็นจริงแล้ว คำสั่ง(หรือกลุ่มของคำสั่ง)ที่กำหนดไว้จะถูกปฏิบัติต่อไปจนสิ้นสุดอีกครั้งหนึ่ง
คำสั่งทำซ้ำในขณะที่เงื่อนไขเป็นจริงนี้ จะสิ้นสุดก็ต่อเมื่อตรวจสอบเงื่อนไขแล้วพบว่าไม่จริง
คำสั่งทำซ้ำในขณะที่เงื่อนไขเป็นจริงมีรูปแบบคือ
While(เงื่อนไข)do
คำสั่ง(หรือกลุ่มของคำสั่ง)ที่ต้องปฏิบัติ
เช่น
N := 10000
While (n>1) do
Begin
N := n/10
end
ตัวอย่าง Flowchart

เขียนโปรแกรมรับตัวเลขจากแป้นพิมพ์ เพื่อให้แสดงว่าตัวเลขเป็นเลขคู่หรือคี่
ผังงาน