
งานที่5 เป็นการรับค่าตัวเลขใดๆของผู้ใช้ผ่านทางคีย์บอร์ดจำนวนกี่ค่าก็ได้ จนกว่าผู้ใช้จะพอใจโดยเมื่อได้จำนวนตัวเลขที่พอใจแล้วผู้ใช้สามารถจะหยุดป้อนตัวเลขได้โดยใช้คำสั่งตัวเลข -999 โปรแกรมก็จะหยุดรับตัวเลขทันทีและจะทำงานประมวลผลโดยแสดงค่า sum,avg,max,min ให้ผู้ใช้ได้เห็นทันทีอีกด้วย ขั้นแรกของการเขียนโปรแกรมนี้นั้นสามารถทำให้เข้าใจได้ง่ายๆด้วยการใช้ flow chert ทำให้เห็นภาพในการเขียนโปรแกรมได้ชัดเจนดังนี้


จะเห็นได้ว่าเราจะใช้ตัว count ในการนับรอบโดยเริ่มต้นของ Flow chert นั้นค่า count ก็จะเป็น 0 เพราะยังไม่มีการนับรอบใดๆ และเราก็จะกำหนดให้ x เป็นพระเอกของเรื่องโดย x นั้นจะเป็นตัวเลขที่รับเข้ามาทางคีย์บอร์ดโดยผู้ใช้ซึ่งจาก Flow chert นี้ก็จะเห็นได้ว่าถ้าค่า x นั้นไม่ใช่ -999 แล้วล่ะก็ มันก็จะทำงานในขั้นต่อๆไปของ Flow chert ทันที แต่ถ้าใช่มันก็จะไม่ทำงานใน Flow chert ข้างล่างต่อ แต่จะไปทำใน avg แทนซึ่งค่าที่ได้ออกมาก็คือ 0 อยู่ดีเพราะ avg นั้นก็จะมี sum เป็น 0 และ count ก็เป็น 0 ด้วย โดยใน Flow chert นี้การใส่ค่าในครั้งแรก เจ้า count ก็จะเริ่มจาก 0 เพราะยังไม่มีการนับรอบใดๆ ดังนั้น ค่า x (ซึ่งเป็นตัวเลขใดๆ)ก็จะเป็นค่า max และค่า min ไปโดยปริยายเพราะมันไม่มีค่าใดเปรียบเทียบ และก่อนที่จะไปหาค่า sum นั้นcount ก็จะมีการเพิ่มค่าก่อนทันทีเพื่อเป็นการนับรอบและค่า sum ที่ตอนแรกเป็น 0 นั้นก็จะถูกบวกค่า x เข้าไปและเก็บค่าอีกทีที่บวกแล้วนั่นเอง
อะแน่ะ! เริ่มทำหน้างงๆๆ ไม่ต้องตกใจจ้า...เพราะมันยังไม่จบเรายังมีความงงเพิ่มให้คุณอีกมากมายอ่ะ ดูต่อนะ จากนั้นเราก็จะรับค่า x อีกครั้งเพื่อลดความซ้ำซ้อนของการทำงานให้มันไม่ต้องไปเริ่มใหม่ตั้งแต่แรกคราวนี้ x ที่ใส่เข้ามามันก็จะเป็นรอบที่ 2 แล้วใช่มั้ยเพราะว่า เมื่อกี๊เนี่ยเจ้า count เนี่ยมันถูกใช้ให้นับรอบการรับค่า x เข้ามา ไปแล้ว 1 ครั้งน่ะ ( งั้นเราสมมติให้มันเป็น " x2 " นะ ) คราวนี้ x2 มันก็เลยถูกใช้ให้ไปเปรียบเทียบเทียบกับ x เดิมที่มีอยู่ใน max กับ min ไงซึ่งการเปรียบเทียบเนี่ยก็มีอยู่ว่า ถ้าเจ้า x2 เนี่ยมันมันมากกว่าค่า x ที่อยู่ใน max ตัวมันก็จะมีสิทธิ์อยู่ใน max แทนที่เจ้า x เดิมแต่ถ้ามันน้อยกว่า มันก็จะถูกนำไปเก็บใน min แทนน่ะเอง แต่ถ้าตอนแรกเลยมันถูกเปรียบเทียบแล้วปรากฎว่ามันน้อยกว่า max มันก็จะถูกเอาไปเปรียบเทียบต่อ นั่นก็คือมันจะถูกเอาไปเปรียบเทียบกับค่า x ที่อยู่ใน min ซึ่งถ้าตัวมันมีค่าน้อยว่า x เดิมตัวมันก็จะมีสิทธิ์อยู่ใน min แทนนั่นเอง และก็เหมือนเดิมก่อนที่จะไปหาค่า sum เจ้า count ก็จะถูกเพิ่มรอบเข้าไปอีกหนึ่งจากนั้น sum มันก็จะบวกค่า x เข้าไปอีกครั้งซึ่งค่า sum ก็จะเพิ่มขึ้นจากเดิมที่มีอยู่นั่นเอง (จากการเก็บค่าครั้งทีแล้วไง)
นั่นแหละการวนลูปมันก็จะเป็นเช่นนี้ไปเรื่อยๆนะเจ้าคะพี่น้องโดยเมื่อผู้ใช้เมื่อยมือขี้เกียจกดเลขแล้ว และใส่ -999 เข้ามา มันก็จะออกไปทำ avg ทันที ซึ่งค่าเฉลี่ยมันก็คือการนำเอาผลบวกตัวเลขทั้งหมด (sum) หารด้วยจำนวนตัวเลขที่ใส่เข้ามาทั้งหมดนั่นเอง ก็คือ(count) ใช่มั้ยล่ะ ....อ่ะนะคราวนี้ก็จะได้ค่าเฉลี่ยสมใจแล้วนะจ๊ะ
กว่าจะจบ Flow chert ก็เกือบมือหักและคราวนี้มาดูตัวโปรแกรมกันนะจ๊ะคราวนี้อธิบายอยู่ในตัวโปรแกรมเลยทีเดียวหวังว่าคงเข้าใจกันน้า @-@


