710130 08 c control

Page 1

การควบคุมการทางานด้วยภาษา 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/Auto mation05.pdf


การควบคุมการทางานของโปรแกรม • • • • •

การเริ่มต้น-จบการทางาน การควบคุมขั้นตอนการทางาน ความต่อเนื่องในการทางาน การควบคุมการทางานแบบไม่รจู้ บ การควบคุมทิศทาง การเข้า-ออก การควบคุมการทาซ้า – การควบคุมการหยุด พัก กระโดดข้าม

http://www.tnt.co.th/en/news/127-3-things-you-can-do-to-improve-your-working


การควบคุมการไหลในภาษา C • การควบคุมการไหลในภาษา C มี 3 รูปแบบ – การลาดับ (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>

http://www.scimath.org/matharticle/4732-2015-03-31-08-59-30

void main(){ float sum; //การคานวณ float x1=16/4; sum= pow(x1,3); printf("(16/4)^3=%.2f",sum); getch(); }


การจัดลาดับการประมวลผล 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>

//ส่วนตัวแปรควบคุม

switch(ans){ case 'a': printf("\ta. x=0 False\n"); void main(){ break; char ans; case 'b': printf("\tb. x=8 False\n"); //ส่วนตัวเลือก break; printf("------------------------\n"); case 'c': printf("\tc. x=50 True\n"); printf(" no1. x=7+7/7+7*7-7\n"); break; printf("\ta. x=0\n"); case 'd': printf("\td. x=56 False\n"); printf("\tb. x=8\n"); break; printf("\tc. x=50\n"); default: printf("\tYou Error"); printf("\td. x=56\n"); } printf(" Ans a-d: "); printf("\n------------------\n"); scanf("%c",&ans); getch(); printf("\n------------------------\n"); }


C - Decision Making #include <stdio.h> #include <conio.h>

#include <stdio.h> #include <conio.h>

void main(){

void main(){

//ตัดสินใจจากเงื่อนไข แบบทางเลือกเดียว if(true){ printf("\t true"); } getch(); }

//ตัดสินใจจากเงื่อนไข แบบ 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"); } else 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>

#include <stdio.h> #include <conio.h>

void main(){ int i=1; do { printf("\t%d",i); i+=2; break; //หยุดการทางาน }while(i<=10); getch(); }

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)


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.