flow chart เป็นอัลกอริทึมรูปแบบสัญญาลักษณ์ ที่ได้รับความนิยมมากที่สุด และนิยมใช้มากที่สุดในโลกเลยก็ว่าได้ สำหรับนักออกแบบ โปรแกรมเพื่อจะสื่อสารบอกต่อให้กับโปรแกรมเมอร์ได้เขียนโปรแกรมได้ตรงตามความต้องการของผู้ออกแบบโปรแกรม โดย รูปแบบของ flow chart รูปแต่ละรูปจะมีความหมายเฉพาะตัว ใช้ลูกศรกำหนดทิศทางการทำงานในแต่ละขั้นตอน
ตารางแสดงสัญญษลักษณ์ Flow Chart
ตัวอย่างที่1 : จงเขียน Flowchart โปรแกรมรับค่ารัศมี 1 ค่าหลังจากนั้นให้คำนวนหาพื้นที่ส่วนที่แรงเงาดังรูป
วิเคราะห์ปัญหา :
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
ขั้นตอนการทำงาน
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 ได้ดังนี้
ตัวอย่างที่ 3 : ผมขอยกเอาโจทย์ตัวอย่างข้อที่1มาดัดแปลงหน่อยนะครับ เป็น จงเขียน Flowchart โปรแกรมรับค่ารัศมี 1 ค่าหลังจากนั้นให้คำนวนหาพื้นที่ส่วนที่แรงเงาดังรูป โดยที่ให้แยกส่วนของการรับค่าขอมูล ออกจากส่วนการคำนวนหา พ.ท. ส่วนต่างๆ (แนะนำ :ให้เขียน Flowchart แยกเป็นการทำงานของโปรแกรมย่อยที่เรียกว่า Subprogram )
วิเคราะห์ปัญหา :
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 ดังนี้
โจทย์ไปลองหัดทำนะครับไม่เข้าใจก็สอบถามโดยต้องได้ที่
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 แค่สองตัวอย่างนะครับ หวังว่าทุกคนที่อ่านบทความนี้จะลองทำดู เพื่อจะได้เข้าใจยิ่งขึ้น
#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;
}
ช่วยเขียนโฟลชร์าตไห้หน่อยคาบ
ได้ยังครับเกียวผมเขียนให้
ลบขอบคุณครับ
ตอบลบ#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ให้หน่อยค่ะ
Sub BowlingScore_4()
ตอบลบDim frame As Integer
Dim roll1 As Variant, roll2 As Variant, roll3 As Variant
Dim score(1 To 10) As Integer
Dim totalScore As Integer
Dim ws As Worksheet
Set ws = Worksheets.Add
ws.Name = "Bowling Score_4"
ws.Cells(1, 1).Value = "Frame"
ws.Cells(1, 2).Value = "Roll 1"
ws.Cells(1, 3).Value = "Roll 2"
ws.Cells(1, 4).Value = "Roll 3 (Frame 10 only)"
ws.Cells(1, 5).Value = "Frame Score"
ws.Cells(1, 6).Value = "Total Score"
For frame = 1 To 10
roll1 = Application.InputBox("Enter score for Roll 1 in Frame " & frame & " (X for Strike)", Type:=2)
If roll1 = "X" Or roll1 = "x" Then
roll1 = 10
roll2 = 0
If frame = 10 Then
roll2 = Application.InputBox("Enter score for Roll 2 in Frame " & frame, Type:=2)
If roll2 = "X" Or roll2 = "x" Then roll2 = 10
roll3 = Application.InputBox("Enter score for Roll 3 in Frame 10", Type:=2)
If roll3 = "X" Or roll3 = "x" Then roll3 = 10
Else
roll3 = 0
End If
Else
roll1 = CInt(roll1)
roll2 = Application.InputBox("Enter score for Roll 2 in Frame " & frame & " (/ for Spare)", Type:=2)
If roll2 = "/" Then
roll2 = 10 - roll1
ElseIf roll2 = "X" Or roll2 = "x" Then
roll2 = 10
Else
roll2 = CInt(roll2)
End If
If frame = 10 And (roll1 + roll2 >= 10) Then
roll3 = Application.InputBox("Enter score for Roll 3 in Frame 10", Type:=2)
If roll3 = "X" Or roll3 = "x" Then
roll3 = 10
Else
roll3 = CInt(roll3)
End If
Else
roll3 = 0
End If
End If
If frame < 10 Then
If roll1 = 10 Then
nextRoll1 = Application.InputBox("Enter score for Roll 1 in Frame " & (frame + 1), Type:=2)
If nextRoll1 = "X" Or nextRoll1 = "x" Then nextRoll1 = 10
nextRoll2 = Application.InputBox("Enter score for Roll 2 in Frame " & (frame + 1), Type:=2)
If nextRoll2 = "X" Or nextRoll2 = "x" Then nextRoll2 = 10
If nextRoll2 = "/" Then nextRoll2 = 10 - nextRoll1
score(frame) = 10 + CInt(nextRoll1) + CInt(nextRoll2)
ElseIf roll1 + roll2 = 10 Then
nextRoll1 = Application.InputBox("Enter score for Roll 1 in Frame " & (frame + 1), Type:=2)
If nextRoll1 = "X" Or nextRoll1 = "x" Then nextRoll1 = 10
score(frame) = 10 + CInt(nextRoll1)
Else
score(frame) = roll1 + roll2
End If
Else
score(frame) = roll1 + roll2 + roll3
End If
totalScore = totalScore + score(frame)
ws.Cells(frame + 1, 1).Value = frame
ws.Cells(frame + 1, 2).Value = IIf(roll1 = 10, "X", roll1)
ws.Cells(frame + 1, 3).Value = IIf(roll1 <> 10 And roll1 + roll2 = 10, "/", roll2)
ws.Cells(frame + 1, 4).Value = IIf(frame = 10 And roll3 = 10, "X", roll3)
ws.Cells(frame + 1, 5).Value = score(frame)
ws.Cells(frame + 1, 6).Value = totalScore
Next frame
End Sub
เขียนเป็นโฟล์วชาร์ตยังไงหรอคะ