การควบคุมการทำงานด้วยภาษา C อาจารย์สมเกียรติ ช่อเหมือน สาขาวิชาวิศวกรรมซอฟต์แวร์ คณะวิทยาศาสตร์และเทคโนโลยี (tko@webmail.npru.ac.th)
เนื้อหาที่สนใจ การควบคุม (Control) การควบคุมการทำงานแบบอัตโนมัติ การควบคุมการทำงานของโปรแกรม การควบคุมการไหลในภาษา C การกำหนดลำดับขั้นตอน (Flow) การจัดลำดับการประมวลผล ทางเลือกและตัวแปรควบคุม ตัดสินใจจากเงื่อนไข แบบหลายทางเลือก การตัดสินใจซ้อนกัน การตัดสินใจหลายเงื่อนไข การทำซ้ำ for(), while(), do…while() http://1.bp.blogspot.com/-tw1caa8lBus/Vphe8RV3rwI/AAAAAAAAAKM/wAhp-ds7iQM/s1600/8.png
การควบคุม (Control) การควบคุม (Control) หมายถึง ขั้นตอน กระบวนการ หรือกลไกซึ่งกำหนดขึ้นเพื่อให้มั่นใจว่า กิจกรรมนั้นจะดำเนินการได้อย่างถูกต้อง เหมาะสม การเขียนโปรแกรมเป็นการกำหนดขั้นตอนและกระบวนการไว้ล่วงหน้า
การควบคุมการทำงานแบบอัตโนมัติ ลำดับการทํางานที่แน่นอน (Sequence Control) การทํางานตามลําดับต่อเนื่อง การทำงานหลายๆ อย่างพร้อมกันในจังหวะเดียวกัน การทํางานแบบวนรอบ การทำงานแบบโปรแกรม คือ การทํางานที่ระบบสามารถทำงานได้ มากกว่าหนึ่งวิธี หรือ หลายรูปแบบ โดยผู้ควบคุมสามารถเลือกโปรแกรมการทํางานได้ (Selection Control) หรือ มีการกำหนดเงื่อนไขได้เอง (Dynamic control) การใช้ตัวควบคุม (Variable) เพื่อให้เกิดการเปลี่ยนแปลง http://utcc2.utcc.ac.th/engineer/learning/chalermchon_vis/download/automation/Automation05.pdf
การควบคุมการทำงานของโปรแกรม การเริ่มต้น-จบการทำงาน การควบคุมขั้นตอนการทำงาน ความต่อเนื่องในการทำงาน การควบคุมการทำงานแบบไม่รู้จบ การควบคุมทิศทาง การเข้า-ออก การควบคุมการทำซ้ำ การควบคุมการหยุด พัก กระโดดข้าม http://www.tnt.co.th/en/news/127-3-things-you-can-do-to-improve-your-working
การควบคุมการไหลในภาษา C การลำดับ (Sequence) ตัวดำเนินการ ทางเลือกและการตัดสินใจ (Decision & Selection) Switch case If else วนลูป การทำซ้ำ (Loop) For While Do while
การกำหนดลำดับขั้นตอน (Flow) การจัดวางแต่ละคำสั่งก่อนหลัง การจัดกลุ่มของคำสั่ง การจัดวางชุดคำสั่ง http://www.scimath.org/matharticle/4732-2015-03-31-08-59-30 http://www.bogotobogo.com/cplusplus/binarytree.php
#include <stdio.h> #include <conio.h> #include <math.h> void main(){ float sum; //การคำนวณ float x1=16/4; sum= pow(x1,3); printf("(16/4)^3=%.2f",sum); getch(); } http://www.scimath.org/matharticle/4732-2015-03-31-08-59-30
การจัดลำดับการประมวลผล void main(){ float x=0.0f; //x=7+7/7+7*7-7; x=50 //x=(7+7)/7+7*7-7; x=44 //x=7+(7/7)+7*7-7; x=50 //x=7+7/(7+7)*7-7; x=0 //x=7+7/7+(7*7)-7; x=50 //x=7+7/7+7*(7-7); x=8 printf(“x= %.2f",x); getch(); }
ทางเลือกและตัวแปรควบคุม ? http://www.athtek.com/code-to-flowchart.html
ทางเลือกและตัวแปรควบคุม #include <stdio.h> #include <conio.h> void main(){ char ans; //ส่วนตัวเลือก printf("------------------------\n"); printf(" no1. x=7+7/7+7*7-7\n"); printf("\ta. x=0\n"); printf("\tb. x=8\n"); printf("\tc. x=50\n"); printf("\td. x=56\n"); printf(" Ans a-d: "); scanf("%c",&ans); printf("\n------------------------\n"); //ส่วนตัวแปรควบคุม switch(ans){ case 'a': printf("\ta. x=0 False\n"); break; case 'b': printf("\tb. x=8 False\n"); break; case 'c': printf("\tc. x=50 True\n"); break; case 'd': printf("\td. x=56 False\n"); break; default: printf("\tYou Error"); } printf("\n------------------\n"); getch();
C - Decision Making //ตัดสินใจจากเงื่อนไข แบบ 2 ทางเลือก #include <stdio.h> #include <conio.h> void main(){ //ตัดสินใจจากเงื่อนไข แบบทางเลือกเดียว if(true){ printf("\t true"); } getch(); #include <stdio.h> #include <conio.h> void main(){ //ตัดสินใจจากเงื่อนไข แบบ 2 ทางเลือก if(true){ printf("\t true"); } else printf("\t false"); getch();
ตัดสินใจจากเงื่อนไข แบบหลายทางเลือก #include <stdio.h> #include <conio.h> void main(){ //ตัดสินใจจากเงื่อนไข แบบหลายทางเลือก if(true) printf("\t true"); else if(true) printf("\t false->true"); else printf("\t false->false"); getch(); }
การตัดสินใจซ้อนกัน #include <stdio.h> #include <conio.h> void main(){ //ตัดสินใจซ้อนกันตามเงื่อนไข แบบหลายทางเลือก if(true){ if(true) printf("\t ture->true"); else printf("\t ture->false"); } printf("\t false"); getch();
การตัดสินใจหลายเงื่อนไข #include <stdio.h> #include <conio.h> void main(){ //ตัดสินใจจากหลายเงื่อนไข แบบ 2 ทางเลือก if(true || true && false){ printf("\t true"); } else printf("\t false"); getch();
C – For Loops #include <stdio.h> #include <conio.h> void main(){ for(int i=0;i<=10;i++){ printf("\n"); for(int j=0;j<=i;j++){ printf("*"); } getch();
C – while Loops #include <stdio.h> #include <conio.h> void main(){ int i=1; while(i<=10){ printf("\t%d",i); i++; } getch();
C – do..while Loops #include <stdio.h> #include <conio.h> void main(){ int i=1; do { printf("\t%d",i); i+=2; }while(i<=10); getch(); }
หยุดและข้ามการดำเนินการ #include <stdio.h> #include <conio.h> void main(){ int i=1; do { printf("\t%d",i); i+=2; break; //หยุดการทำงาน }while(i<=10); getch(); } #include <stdio.h> #include <conio.h> void main(){ int i=1; do { printf("\t%d",i); continue; //ข้ามการทำงาน i+=2; }while(i<=10); getch(); }
สรุป การควบคุมด้วยคำสั่งและการดำเนินการที่จัดเก็บในไลบรารีของภาษา C การควบคุมลำดับการทำงานที่แน่นอน (Sequence Control) การควบคุมการทำงานแบบอัตโนมัติ (Dynamic control) ใช้การตัดสินใจ โดยพิจารณาจากตัวเลือกและเงื่อนไขผ่านตัวควบคุม การควบคุมการไหลในภาษา C มี 3 รูปแบบ การลำดับ (Sequence) ทางเลือกและการตัดสินใจ (Decision & Selection) วนลูป การทำซ้ำ (Loop)