วันจันทร์ที่ 20 สิงหาคม พ.ศ. 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

โครงสร้างของภาษา C

โครงสร้างของภาษา C
ภาษา C เป็นภาษาคอมพิวเตอร์ที่ถูกค้นคิดขึ้นโดย Denis Ritchie ในปี ค.ศ. 1970
โดยใช้ระบบปฏิบัติการของยูนิกซ์ (UNIX) นับจากนั้นมาก็ได้รับความนิยมเพิ่มขั้นจนถึงปัจจุบัน ภาษา C สามารถติดต่อในระดับฮาร์ดแวร์ได้ดีกว่าภาษาระดับสูงอื่น ๆ ไม่ว่าจะเป็นภาษาเบสิกฟอร์แทน ขณะเดียวกันก็มีคุณสมบัติของภาษาระดับสูงอยู่ด้วย ด้วยเหตุผลดังกล่าวจึงจัดได้ว่าภาษา C เป็นภาษาระดับกลาง (Middle –lever language)
ภาษา C เป็นภาษาคอมพิวเตอร์ชนิดคอมไพล์ (compiled Language) ซึ่งมีคอมไพลเลอร์ (Compiler) ทำหน้าที่ในการคอมไพล์ (Compile) หรือแปลงคำสั่งทั้งหมดในโปรแกรมให้เป็นภาษาเครื่อง (Machine Language) เพื่อให้เครื่องคอมพิวเตอร์นำคำสั่งเหล่านั้นไปทำงานต่อไป

โครงสร้างของภาษา C
ทุกโปรแกรมของภาษา C มีโครงสร้างเป็นลักษณะดังรูป

Int main (void)
{
เฮดเดอร์ไฟล์ (Header Files)
เป็นส่วนที่เก็บไลบรารี่มาตรฐานของภาษา C ซึ่งจะถูกดึงเข้ามารวมกับโปรแกรมในขณะที่กำลังทำการคอมไพล์ โดยใช้คำสั่ง
#include<ชื่อเฮดเดอร์ไฟล์> หรือ
#include “ชื่อเฮดเดอร์ไฟล์”
ตัวอย่าง
#include<stdio.h>
เฮดเดอร์ไฟล์นี้จะมีส่วนขยายเป็น .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)
เป็นส่วนที่ใช้สำหรับแสดงข้อความเพื่ออธิบายสิ่งที่ต้องการในโปรแกรม ซึ่งจะใช้เครื่องหมาย /*และ */ ปิดหัวและปิดท้ายของข้อความที่ต้องการ

ประเภทของข้อมูล

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

1. สารสนเทศที่ดีต้องมีความความถูกต้อง (Accurate) และไม่มีความผิดพลาด

2. ผู้ที่มีสิทธิใช้สารสนเทศสามารถเข้าถึง (Accessible) สารสนเทศได้ง่าย ในรูปแบบ และเวลาที่เหมาะสม ตาม

ความต้องการของผู้ใช้

3. สารสนเทศต้องมีความชัดเจน (Clarity) ไม่คลุมเครือ

4. สารสนเทศที่ดีต้องมีความสมบูรณ์ (Complete) บรรจุไปด้วยข้อเท็จจริงที่มีสำคัญครบถ้วน

5. สารสนเทศต้องมีความกะทัดรัด (Conciseness) หรือรัดกุม เหมาะสมกับผู้ใช้

6. กระบวนการผลิตสารสนเทศต้องมีความประหยัด (Economical) ผู้ที่มีหน้าที่ตัดสินใจมักจะต้องสร้างดุลยภาพ

ระหว่างคุณค่าของสารสนเทศกับราคาที่ใช้ในการผลิต

7. ต้องมีความยึดหยุ่น (Flexible) สามารถในไปใช้ในหลาย ๆ เป้าหมาย หรือวัตถุประสงค์

8. สารสนเทศที่ดีต้องมีรูปแบบการนำเสนอ (Presentation) ที่เหมาะสมกับผู้ใช้ หรือผู้ที่เกี่ยวข้อง

9. สารสนเทศที่ดีต้องตรงกับความต้องการ (Relevant/Precision) ของผู้ที่ทำการตัดสินใจ

10. สารสนเทศที่ดีต้องมีความน่าเชื่อถือ (Reliable) เช่น เป็นสารสนเทศที่ได้มาจากกรรมวิธีรวบรวมที่น่าเชื่อ ถือ หรือแหล่ง (Source) ที่น่าเชื่อถือ เป็นต้น

11. สารสนเทศที่ดีควรมีความปลอดภัย (Secure) ในการเข้าถึงของผู้ไม่มีสิทธิใช้สารสนเทศ

12. สารสนเทศที่ดีควรง่าย (Simple) ไม่สลับซับซ้อน มีรายละเอียดที่เหมาะสม (ไม่มากเกินความจำเป็น)

13. สารสนเทศที่ดีต้องมีความแตกต่าง หรือประหลาด (Surprise) จากข้อมูลชนิดอื่น ๆ

14. สารสนเทศที่ดีต้องทันเวลา (Just in Time : JIT) หรือทันต่อความต้องการ (Timely) ของผู้ใช้ หรือสามารถส่ง

ถึงผู้รับได้ในเวลาที่ผู้ใช้ต้องการ

15. สารสนเทศที่ดีต้องเป็นปัจจุบัน (Up to Date) หรือมีความทันสมัย ใหม่อยู่เสมอ มิเช่นนั้นจะไม่ทันต่อการ

เปลี่ยนแปลงที่ดำเนินไปอย่างรวดเร็ว

16. สารสนเทศที่ดีต้องสามารถพิสูจน์ได้ (Verifiable) หรือตรวจสอบจากหลาย ๆ แหล่ง ได้ว่ามีความถูกต้อง

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

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

การพัฒนาโปรแกรมภาษา C มีขั้นตอนดังนี้
1) เขียนโปรแกรมต้นฉบับ (source program) ด้วยภาษา C
ใช้โปรแกรม Turbo C/ C++ เพื่อเขียนโปรแกรมต้นฉบับด้วยภาษา C จากนั้นบันทึกโปรแกรมพร้อมกับตั้งชื่อแฟ้มไว้ แฟ้มที่ได้จะมีนามสกุล *.c หรือ *.cpp เช่น simple.c หรือ simple.cpp เป็นต้น นอกจากนี้ยังสามารถใช้โปรแกรม Turbo C/C++ เขียนโปรแกรมภาษา C++ ได้อีกด้วย
2) แปลโปรแกรมภาษา C ไปเป็นโปรแกรมภาษาเครื่อง (object program)
ใช้คำสั่ง compile เพื่อแปลโปรแกรมภาษา C ไปเป็นโปรแกรมภาษาเครื่อง แฟ้มที่ได้จะมีนามสกุล *.obj ซึ่งในขั้นตอนนี้โปรแกรมต้นฉบับอาจเกิดความผิดพลาดทางไวยกรณ์ภาษา (syntax error) ขึ้นได้ จึงต้องย้อนกลับไปแก้ไขโปรแกรมต้นฉบับในข้อ 1. ให้ถูกต้องเสียก่อน
3) เชื่อมโยง (link) โปรแกรมภาษาเครื่องเข้ากับ library function ของภาษา C จะได้เป็น execute program โดยใช้คำสั่ง link แฟ้มที่ได้จะมีนามสกุล *.exe
4) สั่งให้ execute program แสดงผลลัพธ์ออกมา โดยใช้คำสั่ง run
ในขั้นตอนนี้ผู้เขียนโปรแกรม ควรตรวจสอบผลลัพธ์ที่ได้จากโปรแกรมว่าตรงกับความต้องการของเราหรือไม่ ถ้าผลลัพธ์ที่ได้ไม่ตรงกับความต้องการให้กลับไปแก้ไขโปรแกรมต้นฉบับในข้อ 1. เสร็จแล้วทำขั้นตอน ข้อ 2. ถึง ข้อ 4. ซ้ำอีก ทำซ้ำเช่นนี้จนกว่าจะได้ผลลัพธ์ที่ต้องการ
หมายเหตุ ในทางปฏิบัติ การ compile/ link/ run ในโปรแกรม Turbo C/C++ สามารถทำให้พร้อมกันทั้ง 3 ขั้นตอน คือใช้คำสั่ง Ctrl + F9 (กดปุ่ม Ctrl และปุ่ม F9 พร้อมกัน)
โดยสรุปเราสามารถเขียนผังงานแสดงขั้นตอนการพัฒนาโปรแกรมภาษา C ได้ดังนี้

การเขียนผังงาน ( Flowchart )

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

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

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



 สัญลักษณ์ในการเขียนผังงาน



 

รหัสเทียม (Psuedocode)

รหัสเทียม (Psuedocode)

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

ชื่อ (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

อัลกอริทึม คือ...

ขั้นตอนวิธี หรือ อัลกอริทึม (อังกฤษ: algorithm) หมายถึงกระบวนการแก้ปัญหาที่สามารถเข้าใจได้ มีลำดับหรือวิธีการในการแก้ไขปัญหาใดปัญหาหนึ่งอย่างเป็นขั้นเป็นตอนและชัดเจน เมื่อนำเข้าอะไร แล้วจะต้องได้ผลลัพธ์เช่นไร ซึ่งแตกต่างจากการแก้ปัญหาแบบสามัญสำนึก หรือฮิวริสติก (heuristic)
โดยทั่วไป ขั้นตอนวิธี จะประกอบด้วย วิธีการเป็นขั้นๆ และมีส่วนที่ต้องทำแบบวนซ้ำ (iterate) หรือ เวียนเกิด (recursive) โดยใช้ตรรกะ (logic) และ/หรือ ในการเปรียบเทียบ (comparison) ในขั้นตอนต่างๆ จนกระทั่งเสร็จสิ้นการทำงาน
ในการทำงานอย่างเดียวกัน เราอาจจะเลือกขั้นตอนวิธีที่ต่างกันเพื่อแก้ปัญหาได้ โดยที่ผลลัพธ์ที่ได้ในขั้นสุดท้ายจะออกมาเหมือนกันหรือไม่ก็ได้ และจะมีความแตกต่าง ที่จำนวนและชุดคำสั่งที่ใช้ต่างกันซึ่งส่งผลให้ เวลา (time) , และขนาดหน่วยความจำ (space) ที่ต้องการต่างกัน หรือเรียกได้อีกอย่างว่ามีความซับซ้อน (complexity) ต่างกัน
การนำขั้นตอนวิธีไปใช้ ไม่จำกัดเฉพาะการเขียนโปรแกรมคอมพิวเตอร์ แต่สามารถใช้กับปัญหาอื่น ๆ ได้เช่น การออกแบบวงจรไฟฟ้า, การทำงานเครื่องจักรกล, หรือแม้กระทั่งปัญหาในธรรมชาติ เช่น วิธีของสมองมนุษย์ในการคิดเลข หรือวิธีการขนอาหารของแมลง
หนึ่งในขั้นตอนวิธีอย่างง่าย คือ ขั้นตอนวิธีที่ใช้หาจำนวนที่มีค่ามากที่สุดในรายการ (ซึ่งไม่ได้เรียงลำดับไว้) ในการแก้ปัญหานี้ เราจะต้องดูจำนวนทุกจำนวนในรายการ ซึ่งมีขั้นตอนวิธีดังนี้
  1. ดูแต่ละจำนวนในรายการ ถ้ามันมีค่ามากกว่า จำนวนที่มีค่ามากที่สุดที่เราเคยพบจดค่ามันไว้
  2. จำนวนที่เราจดไว้ตัวสุดท้าย จะเป็นจำนวนที่มีค่ามากที่สุด
และนี่คือรหัสเทียมสำหรับขั้นตอนวิธีนี้
Algorithm LargestNumber   Output: จำนวนเต็มที่มีค่ามากที่สุดในรายการ.
  Input: รายการจำนวนเต็ม.
  largest ← -∞
  for each item in รายการ, do
    if the item > largest, then
      largest ← the item
  return largest
หมายเหตุ
  • "←" หมายถึงการกำหนดค่า (assignment) ให้ตัวแปร เช่น "largest ← the item" หมายความว่า ให้ largest มีค่าเป็น item
  • "return" เป็นการจบขั้นตอนวิธี และส่งค่าของตัวแปรที่ตามหลัง ออกไปยังขั้นตอนวิธีก่อนหน้าที่เรียกใช้