Flow Chart ภาษา c

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

ตารางแสดงสัญญษลักษณ์ Flow Chart

สัญญาลักษณ์รูปภาพ
ความหมาย
ภาษา c จุดเริ่มต้น(start) หรือ จุดสิ้นสุด (stop)
ภาษา c รับข้อมูล(input) หรือ แสดงผลข้อมูล(output)
ภาษา c รับข้อมูลนำเข้าจากคีย์บอร์ด(in put from keyboard)
e5 การคำนวน
ภาษา c การตัดสินใจ(decision)หรือ การเปรียบเทียบ(compare)
ภาษา c แสดงผลออกทางเครื่องพิมพ์(printer)
ภาษา c การทำงานย่อย(supprogram)
e8
จุดเชื่อมต่อ
ภาษา c
ทิศทาง(flow)
ตารางนี้เป็นการแสดง สัญญาลักษณ์ Flowchart เพียงบ้างส่วนเท่านั้น เพราะเป็นส่วนที่ใช้งานบ่อยๆมาก ซึ่งสัญญาลักษณ์รูปภาพของ flowchart ยังมีอีกมาก แต่จะยังไม่กล่าวถึงเพราะนี้ยังอยู่ในการใช้งานเบื่องต้นอยู่ และเพื่อให้ผู้อ่านบทความนี้เข้าใจในการเขียนอัลกอริทึมแบบ Flowchart มากขึ้น ผมจะขอลองสมมุติ ตัวอย่างโจทย์เพื่อแสดง เป็นตัวอย่างเพื่อใช้เป็นแนวทางต่อไปนะครับ
ตัวอย่างที่1 : จงเขียน Flowchart โปรแกรมรับค่ารัศมี 1 ค่าหลังจากนั้นให้คำนวนหาพื้นที่ส่วนที่แรงเงาดังรูป ภาษา c
วิเคราะห์ปัญหา :
1.ปัญหาคือ : จากรูปที่กำหนดมาให้ เราต้องรูปสูตร พ.ท. วงกลม กับ พ.ท สื่เหลียมจตุรัส สูตร พ.ท.วงกลม คือ πr^2 โดยที่ π=3.14 สูตร พ.ท. สี่เหลียม จตุรัส ด้าน คณ ด้าน จากโจทย์เข้าให้เรารับค่ารัศมี 1 ค่า เพราะฉนั้นเราจะได้ เส้นผ่าศูยน์กลางวงกลม = ความยาวของด้านสี่เหลียมจตุรัส 1 ด้าน เราจะได้ 2r เป็นด้านของสี่เหลียม และหา พ.ท. ในส่วนที่แรงเงา
2.ตัวแปรที่ใช้ : r ใช้เก็บค่ารัศมี Area_Circle เก็บค่า พ.ท วงกลม Area_Square เก็บค่า พ.ท. สี่เหลียมจตุรัส Area_Shade ใช้เก็บค่า พ.ท. ที่แรงเงา
3.ข้อมูลนำเข้า: ค่าของ radius
4.ผลลัพธ์ คือ คำนวนหาค่าของ พ.ท. ที่แรงเงา ได้จาก การเอา พ.ท. สี่เหลียมจตุรัส มาลบกับ พ.ท.วงกลม Area_Square=2r*2r Area_Circle=3.14*(r*r) Area_Shade= Area_Square - Area_Circle
ขั้นตอนการทำงาน
ภาษา c1.รับค่า r เข้ามาในโปรแกรม
2.คำนวนหาค่า พ.ท. สี่เหลียมจตุรัส(Area_Square)จาก สูตร Area_Square = 2r*2r
 3.คำนวนหนค่า พ.ท. วงกลม(Area_Circle) จากสูตร Area_Circle = 3.14*(r*r)
 4.คำนวนหาค่า พ.ท.ส่วนที่แรงเงา (Area_Shade) จากสูตร Area_Shade = Area_Square - Area_Circle
ตัวอย่างที่2 : จงเขียน Flowchart โปรแกรมเพื่อรับค่า x และ y โดยที่ผู้ใช้ป้อนค่า x และ y และให้คอมพิวเตอร์ทำการเปรียบเทียบโดย ถ้าได้ค่า x มากกว่า y ให้บอกว่าค่า x มากกว่า y แต่ถ้าค่า x น้อยกว่า y ให้บอกว่า ค่า x น้อยกว่า y
วิเคราะห์ปัญหา :
1.ปัญหาคือ : นำค่า x และ ค่า y ที่รับเข้ามาในโปรแกรมมาเปรียบเทียบกัน
2.ตัวแปรที่ใช้ : x ใช้เก็บค่า x และ y เก็บค่าของ y
3.ข้อมูลนำเข้า : ค่าของ x และ y
4.ผลลัพธ์ : ให้โปรแกรมแสดงคำว่า x more than y หรือ x less than y
ขั้นตอนการทำงาน
1.รับข้อมูล มาไว้ที่ตัวแปร x และ y
2.นำข้อมูลที่รับเข้ามาเปรียบเทียบกัน โดย สมการ x>y จริงหรือไม่ ถ้าจริง ให้แสดง x more than y แต่ถ้าไม่ ให้แสดง x more than y เราจะเขียน Flowchart ได้ดังนี้
ภาษา c

ตัวอย่างที่ 3 : ผมขอยกเอาโจทย์ตัวอย่างข้อที่1มาดัดแปลงหน่อยนะครับ เป็น จงเขียน Flowchart โปรแกรมรับค่ารัศมี 1 ค่าหลังจากนั้นให้คำนวนหาพื้นที่ส่วนที่แรงเงาดังรูป โดยที่ให้แยกส่วนของการรับค่าขอมูล ออกจากส่วนการคำนวนหา พ.ท. ส่วนต่างๆ (แนะนำ :ให้เขียน Flowchart แยกเป็นการทำงานของโปรแกรมย่อยที่เรียกว่า Subprogram ) ภาษา c
 วิเคราะห์ปัญหา :
1.ปัญหาคือ : จากรูปที่กำหนดมาให้ เราต้องรูปสูตร พ.ท. วงกลม กับ พ.ท สื่เหลียมจตุรัส สูตร พ.ท.วงกลม คือ πr^2 โดยที่ π=3.14 สูตร พ.ท. สี่เหลียม จตุรัส ด้าน คณ ด้าน จากโจทย์เข้าให้เรารับค่ารัศมี 1 ค่า เพราะฉนั้นเราจะได้ เส้นผ่าศูยน์กลางวงกลม = ความยาวของด้านสี่เหลียมจตุรัส 1 ด้าน เราจะได้ 2r เป็นด้านของสี่เหลียม และ หา พ.ท. ส่วนที่แรงเงา แต่เราจะต้องแยกส่วนที่เป็นการคำนวนออก จากส่วนที่รับค่า
2.ตัวแปรที่ใช้ : r ใช้เก็บค่ารัศมี Area_Circle เก็บค่า พ.ท วงกลม Area_Square เก็บค่า พ.ท. สี่เหลียมจตุรัส Area_Shade ใช้เก็บค่า พ.ท. ที่แรงเงา
3.ข้อมูลนำเข้า: ค่าของ radius
4.ผลลัพธ์ คือ คำนวนหาค่าของ พ.ท. ที่แรงเงา ได้จาก การเอา พ.ท. สี่เหลียมจตุรัส มาลบกับ พ.ท.วงกลม Area_Square=2r*2r Area_Circle=3.14*(r*r) Area_Shade= Area_Square - Area_Circle
ขั้นตอนการทำงาน
1.รับค่า r เข้ามาในโปรแกรม
2.เรียกใช้โปรแกรมย่อยขึ้นมาทำงาน
3.โปรแกรมย่อยทำการ คำนวนหาค่า พ.ท. สี่เหลียมจตุรัส(Area_Square)จาก สูตร Area_Square = 2r*2r
4.โปรแกรมย่อยทำการ คำนวนหนค่า พ.ท. วงกลม(Area_Circle) จากสูตร Area_Circle = 3.14*(r*r)
5.โปรแกรมย่อยทำการ คำนวนหาค่า พ.ท.ส่วนที่แรงเงา (Area_Shade) จากสูตร Area_Shade = Area_Square - Area_Circle
6.กลับเข้าสู้โปรแกรมหลักอีกครั้งโดยโปรแกรมหลักจะแสดงผลลัพธ์ที่โปรแกรมย่อยได้ประมวลไว้
เราจะได้ Flow chart ดังนี้
ภาษา c
โจทย์ไปลองหัดทำนะครับไม่เข้าใจก็สอบถามโดยต้องได้ที่
facebook ulike fanpage
1.จงเขียน Flow chart แสดงขั้นตอนการทำงานของโปรแกรมตัดเกรด โดยเมื่อป้อนคะแนนสอบแล้ว โปรแกรมจะสามารถบอกได้ว่าได้เกรดอะไร โดยมีเกณฑ์ในการตัดเกรดดั้งนี้
คะแนน ได้
เกรด
90-100  
A
80-89  
B
70-79  
C
60-69  
D
ต่ำกว่า60  
F
 
2.จงเขียน Flow chart แสดงการหาผลบวกเลข คี่ที่มีค่าอยู่ในช่วง 1 ถึง 100 แค่สองตัวอย่างนะครับ หวังว่าทุกคนที่อ่านบทความนี้จะลองทำดู เพื่อจะได้เข้าใจยิ่งขึ้น

4 ความคิดเห็น:

  1. #include
    void swap (char *a,char*b)
    {
    char num;
    num= *a;
    *a = *b;
    *b = num;
    }
    void permute(char *x,int i,int n)
    {
    int j;
    if(i==n)
    printf("%s\n",x);
    else
    {
    for (j = i; j <= n; j++)
    {
    swap((x+i), (x+j));
    permute(x, i+1, n);
    swap((x+i), (x+j));

    }
    }
    }
    int main()
    {
    char a[3];
    printf("Enter input:");
    gets(a);
    printf("Permutation\n");
    permute(a, 0, 2);
    getchar();
    return 0;
    }
    ช่วยเขียนโฟลชร์าตไห้หน่อยคาบ

    ตอบลบ
    คำตอบ
    1. ไม่ระบุชื่อ20 กันยายน 2557 เวลา 06:10

      ได้ยังครับเกียวผมเขียนให้

      ลบ
  2. #include
    int main()
    {
    int a,b,c;
    a=11;
    b=22;
    c=33;
    printf("a = %d\tb = %d\tc=%d\n",a,b,c);
    if (c<b)
    {
    printf("c < b is True.\n");
    }
    else if (b<a){printf("b < c is True.\n");
    }
    else
    {
    printf("c < b and b < a are False.\n");
    }
    getchar();
    return 1;
    }

    ช่วยเขียนflowchartให้หน่อยค่ะ

    ตอบลบ