การกำหนดค่าให้กับตัวแปรมีกี่วิธีอะไรบ้าง

สัญลักษณ์ที่นิยมใช้สำหรับกำหนดค่าให้กับตัวแปร คือ <– (ลูกศรที่หันหัวไปทางซ้าย) ใช้เพื่อนำค่าทางขวาลูกศร ไปกำหนดค่าให้ตัวแปรที่อยู่ทางซ้ายลูกศร เช่น

r <– input(“กรุณากรอกข้อมูล”) # รับข้อมูลจากคีย์บอร์ด นำมาเก็บในตัวแปร r
PI <– 3.14 # กำหนดค่า 3.14 นำมาเก็บในตัวแปร PI
result <– 5 + 8 # คำนวณค่า 5 + 8 แล้วนำผลลัพท์ที่ได้มาเก็บในตัวแปร result
result2 <– 2 x r x PI # คำนวณค่า 2 คูณ ค่าในตัวแปร r และค่าในตัวแปร PI แล้วนำผลลัพท์ที่ได้มาเก็บในตัวแปร result2


การตั้งชื่อตัวแปร

    ชื่อตัวแปร ใช้เป็นตัวแทนของการเรียกข้อมูล ดังนั้น ชื่อตัวแปรต้องสื่อความหมายว่าข้อมูลนั่นๆคืออะไร

ข้อมูลที่ต้องการเก็บชื่อตัวแปรรหัสประจำตัวidชื่อnameนามสกุลsnameอายุage

หลักการตั้งตัวแปร

ในการเขียนโปรแกรม การกำหนดชื่อตัวแปรจะมีหลักเกณฑ์แตกต่างกันไป ตามแต่ละภาษาที่ใช้เขียนแต่ส่วนใหญ่ มีหลักเกณฑ์คล้ายกันคือ
1.ชื่อตัวแปรต้องขึ้นต้นด้วยตัวอักษรภาษาอังกฤษ A-Z หรือ a-z หรือเครื่องหมาย _ (Underscore)
2.ชื่อตัวแปรสามารถตามด้วยตัวเลข หรือตัวอักษรภาษาอังกฤษ ก็ได้
3.ห้ามเว้นวรรค หรือเครื่องหมายแปลกๆ เช่น ! @ # $ %
4.ห้ามตั้งชื่อด้วยคำสงวน เช่น if ,else , for , do, while


ตัวอย่าง คำนวณพื้นที่สี่เหลี่ยม

การกำหนดค่าให้กับตัวแปรมีกี่วิธีอะไรบ้าง

สรุป

สัญลักษณ์ที่นิยมใช้สำหรับกำหนดค่าให้กับตัวแปร คือ <– (ลูกศรที่หันหัวไปทางซ้าย)

การกำหนดค่าให้กับตัวแปรสามารถทำได้ 3 วิธี คือ
1. การรับค่าจากภายนอก
2. การกำหนดค่าจากค่าคงที่หรือตัวแปรอื่นๆ
3. การกำหนดค่าจากการคำนวณ

ชื่อตัวแปร ใช้เป็นตัวแทนของการเรียกข้อมูล ดังนั้น ชื่อตัวแปรต้องสื่อความหมายว่าข้อมูลนั่นๆ

อ้างอิง

หนังสือเรียนรายวิชาพื้นฐานวิทยาศาสตร์เทคโนโลยี (วิทยาการคำนวณ) ชั้น ม.1 – สสวท.

สำหรับคนที่ชอบบทความนี้ อย่าลืมกด share หรือ กด like ที่ช่อง Fackbook: https://www.facebook.com/KidsCodeOnlineTH/ เพื่อเป็นกำลังใจให้กับทีมงานด้วยนะครับ

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

                การกำหนดตัวแปรคงที่(Constant)ตัวแปรคงที่หรือคอนสแตนต์ (Constant) หมายถึง ตัวแปรที่เก็บค่าคงที่ที่ไม่สามารถเปลี่ยนแปลงได้ การกำหนดคอนสแตนต์ มีจุดประสงค์เพื่อป้องกันมิให้มีการเปลี่ยนแปลงค่าของตัวแปรนั้นในขณะทำงาน รูปแบบการกำหนดค่าคอนสแตนต์ ใช้คำ ว่า const นำ หน้าประเภทข้อมูลและชื่อคอนสแตนต์ ดังนี้

ในบทนี้ คุณจะได้เรียนรู้การใช้งานคำสั่ง for loop สำหรับควบคุมให้โปรแกรมทำงานซ้ำๆ จากเงื่อนไขที่กำหนดในภาษา C นี่เป็นเนื้อหาในบทนี้

  • คำสั่ง for loop
  • การสร้างแม่สูตรคูณด้วยคำสั่ง for loop
  • การใช้งานคำสั่ง for loop กับอาเรย์
  • การหาค่าน้อยที่สุดและมากที่สุด
  • การใช้คำสั่ง for loop ซ้อนกัน
  • การจัดเรียงตัวเลขในอาเรย์

คำสั่ง for loop

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

for (initial; condition; update) {
    // statements
}

ในการใช้งาน เราเริ่มต้นด้วยการเขียนคำสั่ง

#include <stdio.h>

int main()
{
    for (int i = 1, j = 10; i < j; i++, j--) {
        printf("i = %d, j= %d\n", i, j);
    }
    return 0;
}
3 ตามด้วยวงเล็บ
#include <stdio.h>

int main()
{
    for (int i = 1, j = 10; i < j; i++, j--) {
        printf("i = %d, j= %d\n", i, j);
    }
    return 0;
}
4 ที่เป็นส่วนสำหรับกำหนดคุณลักษณะการทำงานของคำสั่ง for loop ซึ่งประกอบไปด้วยสามส่วนคือ

  • initial: เป็นส่วนที่ใช้กำหนดค่าเริ่มต้นให้กับลูปเพื่อทำงาน ทำงานครั้งแรกก่อนลูปเริ่มทำงาน
  • condition: เป็นการกำหนดเงื่อนไขเพื่อให้ลูปทำงาน ซึ่งมันจะถูกตรวจสอบการลูปทำงานในแต่ละรอบ
  • update: เป็นส่วนสำหรับอัพเดทค่าในตัวแปรและอื่นๆ ทำงานเมื่อลูปจบการทำงานในแต่ละรอบ

โดยทั้่งสามส่วนจะคั่นด้วยคอมมา (

#include <stdio.h>

int main()
{
    for (int i = 1, j = 10; i < j; i++, j--) {
        printf("i = %d, j= %d\n", i, j);
    }
    return 0;
}
5) และเป็นทางเลือก คุณสามารถละเว้นบางส่วนได้หากต้องการ แต่เครื่องหมายคอมมาจะยังคงต้องมีเสมอ และในบล็อค
#include <stdio.h>

int main()
{
    for (int i = 1, j = 10; i < j; i++, j--) {
        printf("i = %d, j= %d\n", i, j);
    }
    return 0;
}
6 ของคำสั่ง for เป็นส่วนสำหรับกำหนดคำสั่งที่ต้องการให้ทำงานในขณะที่เงื่อนไขเป็นจริง

สำหรับตัวอย่างแรกในการใช้งานคำสั่ง for loop ในภาษา C เราจะมาเขียนโปรแกรมเพื่อนับและแสดงตัวเลขจาก 1-10 ออกทางหน้าจอ นี่เป็นตัวอย่าง

for_example.c

#include <stdio.h>

int main()
{
    for (int i = 1; i <= 10; i++) {
        printf("%d\n", i);
    }
    return 0;
}

นี่เป็นผลลัพธ์การทำงานของโปรแกรม

1
2
3
4
5
6
7
8
9
10

นี่เป็นโปรแกรมพื้นฐานอย่างง่ายสำหรับแสดงตัวอย่างการทำงานของลูปในภาษา C เราได้ใช้คำสั่ง for loop สำหรับนับและแสดงตัวเลขจาก 1-10 ออกทางหน้าจอ และนี่เป็นวิธีการทำงานของโปรแกรมนี้

  • initial: ก่อนลูปเริ่มต้นทำงาน เราได้ประกาศตัวแปร
    #include <stdio.h>
    
    int main()
    {
        for (int i = 1, j = 10; i < j; i++, j--) {
            printf("i = %d, j= %d\n", i, j);
        }
        return 0;
    }
    
    7 และกำหนดค่าเป็น
    #include <stdio.h>
    
    int main()
    {
        for (int i = 1, j = 10; i < j; i++, j--) {
            printf("i = %d, j= %d\n", i, j);
        }
        return 0;
    }
    
    8 นี่เป็นค่าเริ่มต้นสำหรับลูปนี้เพื่อทำงาน
  • condition: เงื่อนไขของลูปคือ
    #include <stdio.h>
    
    int main()
    {
        for (int i = 1, j = 10; i < j; i++, j--) {
            printf("i = %d, j= %d\n", i, j);
        }
        return 0;
    }
    
    9 ซึ่งหมายความว่าโปรแกรมจะทำงานในลูปในขณะที่ค่าในตัวแปรน้อยกว่าหรือเท่ากับ
    i = 1, j= 10
    i = 2, j= 9
    i = 3, j= 8
    i = 4, j= 7
    i = 5, j= 6
    
    0
  • update: เมื่อจบการทำงานของลูปในแต่ละรอบ เราได้เพิ่มค่าในตัวแปร
    #include <stdio.h>
    
    int main()
    {
        for (int i = 1, j = 10; i < j; i++, j--) {
            printf("i = %d, j= %d\n", i, j);
        }
        return 0;
    }
    
    7 ขึ้นไปหนึ่งด้วยคำสั่ง
    i = 1, j= 10
    i = 2, j= 9
    i = 3, j= 8
    i = 4, j= 7
    i = 5, j= 6
    
    2 สำหรับการทำงานในลูปรอบถัดไป

และนี่เป็นวิธีการทำงานพื้นฐานของคำสั่ง for loop ถ้าหากคุณสังเกตจะเห็นว่าในการใช้งานคำสั่ง for loop เราสามารถกำหนดค่าเริ่ม เงื่อนไขและการอัพเดทไว้เพียงที่เดียว นั่นคือที่ส่วนหัวของคำสั่ง ซึ่งจะแตกต่างจากคำสั่ง while loop ซึ่งจะต้องกำหนดส่วนต่างๆ แยกกัน

ในทางทฤษฎีแล้ว ทั้งคำสั่ง for loop และ while loop นั้นสามารถใช้ทดแทนกันได้ แต่การใช้งานคำสั่ง for loop ในบางกรณีจะทำให้การเขียนโปรแกรมง่ายและสะดวกกว่า

มาดูตัวอย่างต่อไปสำหรับการใช้งานคำสั่ง for loop ในตัวอย่างนี้เป็นการใช้คำสั่ง for loop สำหรับแสดงตัวเลขแบบเพิ่มและลดไปพร้อมกัน เพื่อแสดงการกำหนดคุณลักษณะอีกรูปแบบของการใช้งานลูป นี่เป็นตัวอย่าง

for_example2.c

#include <stdio.h>

int main()
{
    for (int i = 1, j = 10; i < j; i++, j--) {
        printf("i = %d, j= %d\n", i, j);
    }
    return 0;
}

นี่เป็นผลลัพธ์การทำงานของโปรแกรม

i = 1, j= 10
i = 2, j= 9
i = 3, j= 8
i = 4, j= 7
i = 5, j= 6

ในการใช้งานคำสั่ง for loop สำหรับการกำหนดค่าเริ่มต้นให้กับลูปเพื่อทำงาน เราสามารถประกาศมากกว่าหนึ่งตัวแปรได้เหมือนกับที่คุณเห็นในตัวอย่าง

int i = 1, j = 10

เราได้ประกาศตัวแปร

#include <stdio.h>

int main()
{
    for (int i = 1, j = 10; i < j; i++, j--) {
        printf("i = %d, j= %d\n", i, j);
    }
    return 0;
}
7 และ
i = 1, j= 10
i = 2, j= 9
i = 3, j= 8
i = 4, j= 7
i = 5, j= 6
4 เพื่อเก็บค่าเริ่มต้นสำหรับลูปเพื่อทำงานเป็น
#include <stdio.h>

int main()
{
    for (int i = 1, j = 10; i < j; i++, j--) {
        printf("i = %d, j= %d\n", i, j);
    }
    return 0;
}
8 และ
i = 1, j= 10
i = 2, j= 9
i = 3, j= 8
i = 4, j= 7
i = 5, j= 6
0 ตามลำดับ โดยคั่นการประกาศแต่ละตัวแปรด้วยเครื่องหมายคอมมา (
i = 1, j= 10
i = 2, j= 9
i = 3, j= 8
i = 4, j= 7
i = 5, j= 6
7) นั่นหมายความคุณสามารถประกาศกี่ตัวแปรก็ได้เท่าที่ต้องการ

i++, j--

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

#include <stdio.h>

int main()
{
    for (int i = 1, j = 10; i < j; i++, j--) {
        printf("i = %d, j= %d\n", i, j);
    }
    return 0;
}
7 ขึ้นหนึ่งและลดค่าในตัวแปร
i = 1, j= 10
i = 2, j= 9
i = 3, j= 8
i = 4, j= 7
i = 5, j= 6
4 ลงหนึ่ง

นั่นหมายความว่าเมื่อค่าของตัวแปรทั้งสองเพิ่มและลดมาจนถึงตรงกลาง จะทำให้เงื่อนไข

int i = 1, j = 10
0 ไม่เป็นจริงและลูปจบการทำงาน

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

นี่เป็นตัวอย่างของโปรแกรมนับตัวเลขถอยหลังจาก 10 ไปยัง 0 โดยการใช้งานคำสั่ง for loop ในภาษา C มันเหมือนกับนาฬิกานับถอยหลังที่เราใช้กัน

for_example3.c

#include <stdio.h>

int main()
{
    int i = 10;
    for (; i >= 0;) {
        printf("%d\n", i);
        i--;
    }
    printf("Count down ended\n");
    return 0;
}

นี่เป็นผลลัพธ์การทำงานของโปรแกรม

10
9
8
7
6
5
4
3
2
1
0
Count down ended

ในการใช้งานคำสั่ง for loop เราสามารถละเว้นการกำหนดค่าเริ่มต้นในพารามิเตอร์ของคำสั่งได้ โดยการประกาศมันไว้ก่อนคำสั่งเหมือนกับที่คุณเห็นในตัวอย่าง และเช่นเดียวกันสำหรับการอัพเดทค่า เราสามารถทำมันภายในลูปได้

for (; i >= 0;) {

ในตัวอย่างนี้ เราได้ประกาศตัวแปร

#include <stdio.h>

int main()
{
    for (int i = 1, j = 10; i < j; i++, j--) {
        printf("i = %d, j= %d\n", i, j);
    }
    return 0;
}
7 ที่นอกลูป และอัพเดทค่าในตัวแปรที่คำสั่งสุดท้ายหลังจากที่การทำงานทุกคำสั่งในลูปเสร็จสิ้น สังเกตว่าเรายังคงต้องใส่เครื่องหมายเซมิโคลอน (
#include <stdio.h>

int main()
{
    for (int i = 1, j = 10; i < j; i++, j--) {
        printf("i = %d, j= %d\n", i, j);
    }
    return 0;
}
5) เพื่อละเว้นส่วนที่หายไปเอาไว้เสมอ

นอกจากนี้ ในการกำหนดค่าเริ่มต้นเราไม่จำเป็นต้องเป็นการประกาศตัวแปรใหม่เสมอไป คุณสามารถใช้มันเพียงแค่กำหนดค่าให้กับตัวแปรที่มีอยู่แล้วได้ ยกตัวอย่างเช่น

#include <stdio.h>

int main()
{
    for (int i = 1; i <= 10; i++) {
        printf("%d\n", i);
    }
    return 0;
}
0

นี่จะเกิดขึ้นในกรณีที่เราประกาศตัวแปรไว้ที่ไหนสักแห่งก่อนลูป และต้องการใช้ตัวแปรดังกล่าวสำหรับเป็นตัวนับให้กับลูปเพื่อทำงาน

เมื่อคุณประกาศตัวแปรด้วยคำสั่ง for loop ตัวแปรจะมีขอบเขตการใช้งานแค่เพียงในลูปเท่านั้น นี่เป็นรูปแบบการทำงานปกติสำหรับขอบเขตของตัวแปรในภาษา C ยกตัวอย่างเช่น

#include <stdio.h>

int main()
{
    for (int i = 1; i <= 10; i++) {
        printf("%d\n", i);
    }
    return 0;
}
1

ตัวแปร

#include <stdio.h>

int main()
{
    for (int i = 1, j = 10; i < j; i++, j--) {
        printf("i = %d, j= %d\n", i, j);
    }
    return 0;
}
7 จะสามารถใช้งานได้แค่เพียงในลูป คุณทราบเกี่ยวกับเรื่องนี้และนี่เป็นเพียงการทบทวนความจำ เหมือนกับการประกาศตัวแปรในคำสั่ง if หรือในฟังก์ชัน เราสามารถใช้มันได้เพียงแค่ในบล็อคหรือขอบเขตที่มันถูกประกาศ

การสร้างแม่สูตรคูณด้วยคำสั่ง for loop

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

multiplication_table.c

#include <stdio.h>

int main()
{
    for (int i = 1; i <= 10; i++) {
        printf("%d\n", i);
    }
    return 0;
}
2

นี่เป็นผลลัพธ์การทำงานของโปรแกรมเมื่อเรากรอกแม่สูตรคูณเป็น 5 คุณสามารถกรอกตัวเลขของแม่สูตรคุณที่ต้องการดูได้

#include <stdio.h>

int main()
{
    for (int i = 1; i <= 10; i++) {
        printf("%d\n", i);
    }
    return 0;
}
3

ในการใช้งานคำสั่ง for loop เราสามารถสร้างแม่สูตรคูณได้แบบง่ายๆ โดยการนำฐานของแม่สูตรวนคูณกับตัวเลขจาก 1-12 คุณสามารถเปลี่ยนแปลงจำนวนของแถวที่ต้องการแสดงได้ เช่น เปลี่ยนเงื่อนไขเป็น

int i = 1, j = 10
4 เพื่อแสดงผลคูณจาก 1-25 โดยที่ไม่ต้องเขียนอะไรเพิ่มเลย

มาดูกันต่อว่าเราสามารถใช้คำสั่ง for loop เพื่อทำอะไรได้อีกบ้าง

การใช้งานคำสั่ง for loop กับอาเรย์

เนื่องจากอาเรย์นั้นเก็บข้อมูลต่อเนื่องกันแบบเป็นลำดับด้วย Index การใช้งานคำสั่ง for loop ร่วมกับอาเรย์ทำให้เราสามารถวนเข้าถึงตำแหน่งของอาเรย์ทั้งหมดได้อย่างง่ายดาย ไม่ว่าจะสำหรับอ่านและเขียนค่าในอาเรย์ เพื่อทำเช่นนี้ เพียงแค่ใช้คำสั่ง for loop สร้าง Index เพื่อวนเข้าถึงค่าในอาเรย์

ในตัวอย่างนี้่ เราจะใช้คำสั่ง for loop สำหรับวนอ่านค่าในอาเรย์และแสดงค่าทั้งหมดในอาเรย์ออกทางหน้าจอ

reading_array.js

#include <stdio.h>

int main()
{
    for (int i = 1; i <= 10; i++) {
        printf("%d\n", i);
    }
    return 0;
}
4

นี่เป็นผลลัพธ์การทำงานของโปรแกรม

#include <stdio.h>

int main()
{
    for (int i = 1; i <= 10; i++) {
        printf("%d\n", i);
    }
    return 0;
}
5

ในตัวอย่าง เป็นการใช้งานคำสั่ง for loop เพื่อวนอ่านค่าในอาเรย์โดยเริ่มต้นจากตำแหน่งแรกไปยังตำแหน่งสุดท้าย และทำย้อนกลับ

#include <stdio.h>

int main()
{
    for (int i = 1; i <= 10; i++) {
        printf("%d\n", i);
    }
    return 0;
}
6

เราได้ประกาศตัวแปรอาเรย์

int i = 1, j = 10
5 ที่เก็บตัวเลขจำนวนเต็มจำนวน 5 ตัว จากนั้นคำนวณหาจำนวนสมาชิกทั้งหมดในอาเรย์ จากขนาดของอาเรย์หารด้วยขนาดประเภทข้อมูลของมัน และเก็บไว้ในตัวแปร
int i = 1, j = 10
6 โดยค่าที่คำนวณได้ในกรณีนี้ก็คือ 5 นั่นเอง

#include <stdio.h>

int main()
{
    for (int i = 1; i <= 10; i++) {
        printf("%d\n", i);
    }
    return 0;
}
7

จากนั้นเป็นการใช้คำสั่ง for loop เพื่อวนอ่านค่าในอาเรย์ และเนื่องจาก Index ของอาเรย์นั้นเริ่มต้นจาก

int i = 1, j = 10
7 เราจึงต้องกำหนดค่าเริ่มต้นของตัวแปร
#include <stdio.h>

int main()
{
    for (int i = 1, j = 10; i < j; i++, j--) {
        printf("i = %d, j= %d\n", i, j);
    }
    return 0;
}
7 เป็น
int i = 1, j = 10
7 เพื่อทำให้ลูปวนตัวเลขจาก 0 - 4 จากเงื่อนไข
i++, j--
0 ซึ่งเป็น Index ทั้งหมดของอาเรย์ จากนั้นเข้าถึงค่าในอาเรย์ด้วย
i++, j--
1

#include <stdio.h>

int main()
{
    for (int i = 1; i <= 10; i++) {
        printf("%d\n", i);
    }
    return 0;
}
8

ส่วนลูปที่สองนั้นมีการทำงานที่คล้ายกันแต่จะวนจากสมาชิกตัวสุดท้ายในอาเรย์มายังตัวแรกแทน โดยการวนของตัวเลขในตัวแปร

#include <stdio.h>

int main()
{
    for (int i = 1, j = 10; i < j; i++, j--) {
        printf("i = %d, j= %d\n", i, j);
    }
    return 0;
}
7 จะเป็น 4 - 0 สำหรับการสร้างตัวนับเพื่อทำเป็น Index ที่จะวนตามเงื่อนไขที่กำหนดให้กับลูป
i++, j--
3

การหาค่าน้อยที่สุดและมากที่สุด

ในตัวอย่างก่อนหน้าเป็นการใช้งานคำสั่ง for loop เพื่อการอ่านค่าจากอาเรย์ ในตัวอย่างนี้ มาทำอย่างอื่นที่ท้าทายมากขึ้นกับอาเรย์ มาเขียนโปรแกรมหาค่าที่น้อยที่สุดและมากที่สุดจากในอาเรย์ โดยตัวเลขในอาเรย์จะรับค่ามาจากคีย์บอร์ด และนี่เป็นโค้ดของโปรแกรมหาค่าที่น้อยที่สุดและมากที่สุดในภาษา C

finding_min_max.c

#include <stdio.h>

int main()
{
    for (int i = 1; i <= 10; i++) {
        printf("%d\n", i);
    }
    return 0;
}
9

นี่เป็นผลลัพธ์การทำงานของโปรแกรม

1
2
3
4
5
6
7
8
9
10
0

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

1
2
3
4
5
6
7
8
9
10
1

ในตอนเริ่มต้น เราได้ประกาศตัวแปร

i++, j--
4 และรับเอาค่านี้มาจากทางคีย์บอร์ด ซึ่งนี่จะใช้เป็นตัวกำหนดเพื่อรับค่าตัวเลขหลังจากนั้นอีก
i++, j--
4 ค่ามาเก็บไว้ในอาเรย์

1
2
3
4
5
6
7
8
9
10
2

เมื่อได้รับค่าสำหรับตัวแปร

i++, j--
4 เรานำมันมาประกาศอาเรย์สำหรับเก็บสมาชิกที่เป็นตัวเลขจำนวนที่มีขนาด
i++, j--
4 ตัว นี่จะให้เราสามารถควบคุมจำนวนของชุดข้อมูลที่ต้องการนำมาคำนวณในโปรแกรมได้อย่างยืดหยุ่นขึ้นกับเซ็ตของข้อมูลที่มี

1
2
3
4
5
6
7
8
9
10
3

จากนั้นใช้คำสั่ง for loop ในการวนรับค่าเพื่อนำมาเก็บไว้ในอาเรย์ ในการวนนั้นจะใช้ตัวแปร

#include <stdio.h>

int main()
{
    for (int i = 1, j = 10; i < j; i++, j--) {
        printf("i = %d, j= %d\n", i, j);
    }
    return 0;
}
7 ในการสร้าง Index ของอาเรย์จาก
int i = 1, j = 10
7 ถึง
#include <stdio.h>

int main()
{
    int i = 10;
    for (; i >= 0;) {
        printf("%d\n", i);
        i--;
    }
    printf("Count down ended\n");
    return 0;
}
0 เราสามารถเข้าถึงที่อยู่ของสมาชิกในอาเรย์ได้จาก
#include <stdio.h>

int main()
{
    int i = 10;
    for (; i >= 0;) {
        printf("%d\n", i);
        i--;
    }
    printf("Count down ended\n");
    return 0;
}
1 สำหรับใช้ในการเก็บข้อมูล

1
2
3
4
5
6
7
8
9
10
4

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

1
2
3
4
5
6
7
8
9
10
5

สุดท้ายเป็นการค้นหาค่าที่น้อยและมากที่สุดในอาเรย์ เราได้ประกาศตัวแปร

#include <stdio.h>

int main()
{
    int i = 10;
    for (; i >= 0;) {
        printf("%d\n", i);
        i--;
    }
    printf("Count down ended\n");
    return 0;
}
2 และ
#include <stdio.h>

int main()
{
    int i = 10;
    for (; i >= 0;) {
        printf("%d\n", i);
        i--;
    }
    printf("Count down ended\n");
    return 0;
}
3 สำหรับเก็บค่าทั้งสอง โดยกำหนดค่าเริ่มต้นเป็นตัวเลขที่ตำแหน่งแรกของอาเรย์ นี่หมายความว่าอาเรย์จะต้องมีสมาชิกอย่างน้อยหนึ่งตัวเสมอสำหรับโปรแกรมเพื่อทำงาน ซึ่งนี่ฟังดูมีเหตุผลเนื่องจากเราไม่จำเป็นต้องทำอะไรกับอาเรย์ที่ว่างเปล่า

1
2
3
4
5
6
7
8
9
10
6

จากนั้นเป็นการวนรอบสมาชิกทั้งหมดในอาเรย์เช่นเดิม แต่ในครั้งนี้่เป็นการค้นหาค่าที่น้อยและมากที่สุดแทน ในแต่ละรอบของการทำงานของลูป เรานำตัวเลขมาเปรียบเทียบกับค่าในตัวแปร

#include <stdio.h>

int main()
{
    int i = 10;
    for (; i >= 0;) {
        printf("%d\n", i);
        i--;
    }
    printf("Count down ended\n");
    return 0;
}
2 และถ้าหากมันน้อยกว่า เราอัพเดทค่าที่น้อยที่สุดเป็นค่านี้แทน

ในการหาค่าที่มากที่สุดในอาเรย์ก็เช่นเดียวกัน แต่เป็นเปรียบเทียบว่าค่าในอาเรย์มากว่าตัวแปร

#include <stdio.h>

int main()
{
    int i = 10;
    for (; i >= 0;) {
        printf("%d\n", i);
        i--;
    }
    printf("Count down ended\n");
    return 0;
}
3 หรือไม่แทน และในตอนท้าย เราจะได้ค่าที่น้อยและมากที่สุดเก็บในตัวแปรทั้งสอง และแสดงมันออกทางหน้าจอ

การใช้คำสั่ง for loop ซ้อนกัน

เช่นเดียวกับคำสั่งควบคุมประเภทอื่นๆ คุณสามารถใช้คำสั่ง for loop เพื่อใช้สร้างลูปแบบซ้อนกันได้ นี่เหมาะสำหรับงานที่ต้องการทำ

#include <stdio.h>

int main()
{
    int i = 10;
    for (; i >= 0;) {
        printf("%d\n", i);
        i--;
    }
    printf("Count down ended\n");
    return 0;
}
6 รอบและในแต่ละรอบก็ต้องการทำอีก
#include <stdio.h>

int main()
{
    int i = 10;
    for (; i >= 0;) {
        printf("%d\n", i);
        i--;
    }
    printf("Count down ended\n");
    return 0;
}
7 รอบ นี่ส่งผลให้การวนเกิดขึ้นทั้งหมด
#include <stdio.h>

int main()
{
    int i = 10;
    for (; i >= 0;) {
        printf("%d\n", i);
        i--;
    }
    printf("Count down ended\n");
    return 0;
}
8 รอบ ซึ่งสามารถพบได้กับการทำงานในรูปแบบของตารางหรืออาเรย์สองมิติ

สำหรับตัวอย่างการซ้อนกันของคำสั่ง for loop ในภาษา C เราจะใช้มันสร้างตารางสูตรคูณจากแม่ 1-12 ที่แสดงในรูปแบบของตาราง นี่เป็นตัวอย่างของโปรแกรม

square_multiplication_table.c

1
2
3
4
5
6
7
8
9
10
7

นี่เป็นผลลัพธ์การทำงานของโปรแกรม

1
2
3
4
5
6
7
8
9
10
8

นี่เป็นตารางสูตรคูณแบบตารางทีี่สร้างโดยการใช้คำสั่ง for loop โดยลูปด้านนอกใช้สำหรับสร้างแต่แถวและลูปด้านในใช้สร้างแต่ละหลัก ซึ่งผลลัพธ์ตัวเลขในตารางนั้นเป็นผลที่ได้จากการคูณกันของตัวแปร

#include <stdio.h>

int main()
{
    for (int i = 1, j = 10; i < j; i++, j--) {
        printf("i = %d, j= %d\n", i, j);
    }
    return 0;
}
7 และ
i = 1, j= 10
i = 2, j= 9
i = 3, j= 8
i = 4, j= 7
i = 5, j= 6
4 ซึ่งเป็นตัวนับของลูป จากนิพจน์
10
9
8
7
6
5
4
3
2
1
0
Count down ended
1

การจัดเรียงตัวเลขในอาเรย์

สำหรับตัวอย่างสุดท้ายในบทนี้จะเป็นการจัดเรียงตัวเลขในอาเรย์จากน้อยไปมาก ซึ่งในการเรียงตัวเลขในอาเรย์แน่นอนว่าวิธีที่ง่ายที่สุดจะต้องใช้งานคำสั่ง for loop ซ้อนกัน เราจะแสดงการเรียงตัวเลขในอาเรย์ด้วยอัลกอริทึม Bubble sorting ในภาษา C นี่เป็นตัวอย่างของโปรแกรม

bubble_sorting.c

1
2
3
4
5
6
7
8
9
10
9

นี่เป็นผลลัพธ์การทำงานของโปรแกรม

#include <stdio.h>

int main()
{
    for (int i = 1, j = 10; i < j; i++, j--) {
        printf("i = %d, j= %d\n", i, j);
    }
    return 0;
}
0

ในตัวอย่างนี้ เป็นการเรียงตัวเลขในอาเรย์จากน้อยไปมากโดยการใช้งานคำสั่ง for loop แบบซ้อนกัน วิธีการเรียงข้อมูลในอาเรย์ในรูปแบบนี้คือการทำงานของอัลกอริทึม Bubble sort ซึ่งเป็นอัลกอริทึมพื้นฐานของการเรียงข้อมูลที่เรียบง่ายที่สุด

#include <stdio.h>

int main()
{
    for (int i = 1, j = 10; i < j; i++, j--) {
        printf("i = %d, j= %d\n", i, j);
    }
    return 0;
}
1

การทำงานของอัลกอริทึม Bubble sort นั้นจะทำการเปรียบเทียบค่าที่อยู่ติดกัน ถ้าหากพบว่าตัวเลขทางด้านซ้าย

10
9
8
7
6
5
4
3
2
1
0
Count down ended
2 มากกว่าทางด้านขวา
10
9
8
7
6
5
4
3
2
1
0
Count down ended
3 จะทำการสลับตำแหน่งของมันไปทางขวา เนื่องการเรียงจากน้อยไปมาก ตัวเลขที่มากกว่าควรอยู่ทางด้านขวาของตัวเลขที่น้อยกว่า

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

ในตัวอย่างของเราเป็นการเรียงจากน้อยไปมาก และเพื่อเรียงตัวเลขจากมากไปน้อย คุณเพียงแค่เปลี่ยนเงื่อนไขสำหรับคำสั่ง if เป็นการสลับตัวเลขที่น้อยกว่าไปทางขวาแทน ยกตัวอย่างเช่น

#include <stdio.h>

int main()
{
    for (int i = 1, j = 10; i < j; i++, j--) {
        printf("i = %d, j= %d\n", i, j);
    }
    return 0;
}
2

เมื่อใช้เงื่อนไขนี้ โปรแกรมจะทำการเรียงตัวเลขจากมากไปน้อยแทน

ในบทนี้ คุณได้เรียนรู้การใช้งานคำสัง for loop ในภาษา C สำหรับควบคุมให้โปรแกรมทำงานซ้ำจากเงื่อนไขที่กำหนด เราได้พูดถึงการใช้งานคำสั่งในรูปแบบพื้นฐาน การใช้งานกับอาเรย์ และการใช้ลูปที่ซ้อนกัน และตัวอย่างการเขียนโปรแกรมในรูปแบบต่างๆ กับคำสั่ง for loop

การกำหนดที่อยู่ของตัวแปรในหน่วยความจำมีกี่แบบอะไรบ้าง

การกำหนดตัวแปร ทำได้ 2 แบบ คือ กำหนดไว้ นอกกลุ่มคำสั่ง หรือฟังก์ชัน เรียกตัวแปรนี้ว่า Global Variable กำหนดไว้นอกฟังก์ชัน ใช้งานได้ทั้งโปรแกรม มีค่าเริ่มต้นเป็น 0 ( กรณีไม่ได้กำหนดค่าเริ่มต้น )

การกําหนดตัวแปร (Variable) คืออะไร

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

Variable ใดที่มีค่าเพียง 2 ค่าเท่านั้น

4.5.1 ตัวแปรทวิภาค(Dichotomous Variable) เป็นตัวแปรที่มีค่าแตกต่างกันเพียง สองค่า อาทิเพศชาย-หญิง การปฏิบัติ-ไม่ปฏิบัติเท็จ-จริง เป็นต้น

ชนิดข้อมูลตัวแปร มีชนิดใดบ้าง

ตัวแปร หมายถึง ชื่อเรียกแทนพื้นที่เก็บข้อมูลในหน่วยความจำ มีชนิดของข้อมูลหรือแบบของตัวแปรคือ char, int, long, float, double, unsigned int, unsigned long int.