สิ่งที่คุณต้องรู้เพื่อทำงานให้สำเร็จ การแก้ปัญหา OGE โดยละเอียดในวิทยาการคอมพิวเตอร์ ตารางวันที่แสดงข้อมูลเกี่ยวกับตัวเลข
การประมวลผลข้อมูล:
- อัลกอริทึม คุณสมบัติของอัลกอริทึม วิธีการเขียนอัลกอริทึม ผังงาน ความรู้เบื้องต้นเกี่ยวกับการเขียนโปรแกรม
- การออกแบบอัลกอริทึม
เหล่านี้เป็นหัวข้อที่สร้างงานทดสอบหมายเลข 10 ของการสอบสถานะหลัก (OGE) ในสาขาวิทยาการคอมพิวเตอร์
10 (B) (ส่วนที่ 1 ระดับสูง - งานเกี่ยวข้องกับผู้สอบในการกำหนดและบันทึกคำตอบอย่างอิสระในรูปแบบของลำดับสัญลักษณ์ เวลาที่สำเร็จ - 6 นาที คะแนนสูงสุดสำหรับการทำงานให้สำเร็จ - 1) ข้อกำหนดสำหรับระดับการฝึกอบรมซึ่งจะมีการทดสอบความเชี่ยวชาญในระหว่างการสอบเมื่อตอบงานนี้: ประเมินพารามิเตอร์ตัวเลขของวัตถุและกระบวนการข้อมูลความสามารถในการดำเนินการ อัลกอริธึมแบบ Round-Robinประมวลผลอาร์เรย์ของตัวเลขในภาษาการเขียนโปรแกรมภาษาใดภาษาหนึ่ง
สิ่งที่คุณต้องรู้เพื่อทำงานให้สำเร็จ:
- อาร์เรย์- นี่คือชุด (คอลเลกชันที่มีชื่อ) ขององค์ประกอบประเภทเดียวกันเรียงตามดัชนีที่กำหนดตำแหน่งขององค์ประกอบในอาร์เรย์
- ก่อนที่จะใช้ในโปรแกรมต้องอธิบายอาร์เรย์ก่อนเช่น ต้องระบุชื่อจำนวนองค์ประกอบอาร์เรย์และประเภท
var<имя_массива>:อาร์เรย์[<мин_знач_индекса>. . <макс_знач_индекса> ] ของ<тип_элементов>;
ตัวอย่างเช่น: บันทึก
var A: อาร์เรย์ของจำนวนเต็ม;
หมายความว่าได้รับอาร์เรย์ชื่อ A ซึ่งประกอบด้วยองค์ประกอบจำนวนเต็ม 10 รายการ
- คุณสามารถเติมอาร์เรย์ได้โดยป้อนค่าของแต่ละองค์ประกอบจากแป้นพิมพ์หรือกำหนดค่าบางอย่างให้กับองค์ประกอบ:
- หากต้องการอ้างถึงองค์ประกอบอาร์เรย์ ให้ใช้วงเล็บเหลี่ยม สัญลักษณ์ AI]หมายถึงองค์ประกอบของอาร์เรย์ A ที่มีตัวเลข (ดัชนี) i;
- เมทริกซ์ (อาร์เรย์สองมิติ) เป็นตารางสี่เหลี่ยมขององค์ประกอบประเภทเดียวกัน
- หากเมทริกซ์ชื่อ A ดังนั้นค่าผกผัน A จะหมายถึงองค์ประกอบที่จุดตัดของแถว i และคอลัมน์ k
ตัวอย่างการแก้ปัญหา:
ตาราง Dat เก็บข้อมูลจำนวนนักเรียนในชั้นเรียน (Dat - จำนวนนักเรียนในชั้นประถมศึกษาปีที่ 1, Dat - ในชั้นที่สอง ฯลฯ ) กำหนดหมายเลขที่จะพิมพ์ตามผลของโปรแกรมต่อไปนี้ ข้อความโปรแกรมมีให้ในภาษาการเขียนโปรแกรมสามภาษา
ภาษาอัลกอริทึม | ขั้นพื้นฐาน | ปาสคาล |
แอลจี |
DIM Dat(11) เป็นจำนวนเต็ม |
Var k, m: จำนวนเต็ม; Dat: อาร์เรย์ของจำนวนเต็ม; เริ่มต้น Dat := 20; วันที่ := 25; วันที่ := 19; วันที่ := 25; วันที่ := 26; วันที่ := 22; วันที่ := 24; วันที่ := 28; วันที่ := 26; วันที่ := 21; Dat > 22 จากนั้นให้เริ่มต้น m:= m + 1 end; writeln(m) สิ้นสุด |
วิธีแก้ปัญหา (1 วิธี):
- มาดูโปรแกรมกันทีละขั้นตอนกัน ขั้นแรก ตัวแปรที่จะใช้จะถูกประกาศ (ตัวแปร k และ m) เช่นเดียวกับอาร์เรย์ Dat ที่มี 11 องค์ประกอบ (องค์ประกอบจะมีหมายเลขตั้งแต่ 1 ถึง 11)
ความสนใจ: ในอาร์เรย์ Dat ซึ่งอธิบายไว้ใน ภาษาพื้นฐานจะมี 12 องค์ประกอบเนื่องจากการนับเลขไม่ได้เริ่มต้นจากองค์ประกอบแรก แต่จากศูนย์
- ต่อไปมาเติมอาร์เรย์ ตัวอย่างเช่น องค์ประกอบอาร์เรย์ที่มีดัชนี 1 ถูกกำหนดให้เป็นค่า 20 องค์ประกอบที่มีดัชนี 2 ถูกกำหนดให้เป็น 25 เป็นต้น ด้วยเหตุนี้ อาร์เรย์ผลลัพธ์จึงสามารถแสดงได้ดังนี้:
อาร์เรย์ Dat
ดัชนี |
|||||||||||
ความหมาย |
- ตัวแปร m ได้รับการกำหนดให้เป็น 0 หลังจากนั้น การวนซ้ำด้วยพารามิเตอร์ k จะเริ่มต้นขึ้น โดยที่ k เปลี่ยนจาก 1 เป็น 11 ในขั้นตอนที่ 1
ในเนื้อความของลูป มีการตรวจสอบเงื่อนไข:
- ค่าขององค์ประกอบอาร์เรย์ที่ดัชนี k จะถูกเปรียบเทียบกับหมายเลข 22 หากองค์ประกอบอาร์เรย์มากกว่า 22 ตัวแปร m จะเพิ่มขึ้น 1 มิฉะนั้นจะไม่มีอะไรเกิดขึ้น
- ที่ส่วนท้ายสุดของโปรแกรม ค่าของตัวแปร m จะแสดงบนหน้าจอ
- เรามาพิจารณาว่าจะเกิดอะไรขึ้นหลังจากการรันโปรแกรม ค่าของตัวแปร m มีการเปลี่ยนแปลงในลักษณะวนซ้ำ ก่อนการวนซ้ำ ค่าของมันคือศูนย์ ต่อไป โปรแกรมจะวนซ้ำองค์ประกอบทั้งหมดของอาเรย์และเปรียบเทียบกับหมายเลข 22 และถ้าองค์ประกอบอาเรย์มากกว่า 22 ตัวแปร m จะเพิ่มขึ้น 1 ดังนั้น เราจำเป็นต้องนับองค์ประกอบทั้งหมดของ อาร์เรย์ที่มากกว่า 22 - จำนวนจะเท่ากับค่าของตัวแปร m มีองค์ประกอบดังกล่าวอยู่ 7 องค์ประกอบ - เป็นองค์ประกอบที่มีดัชนี 2, 4, 5, 7, 8, 9 และ 11
ความสนใจ: องค์ประกอบหมายเลข 6 ซึ่งเท่ากับ 22 แต่เนื่องจาก... เนื่องจากการเปรียบเทียบของเราเข้มงวด (เครื่องหมาย ">") เราจึงไม่นำมาพิจารณา
คำตอบ: 7
สารละลาย (2 ทาง — เลื่อนด้วยตนเอง):
ลองจินตนาการถึงอาเรย์ผลลัพธ์:
อาร์เรย์ Dat
ดัชนี |
|||||||||||
ความหมาย |
เค | ข้อมูล[k](สำหรับ BASIC Dat(k)) | การตรวจสอบสภาพข้อมูล[k] > 22(สำหรับ BASIC Dat(k) > 22) | ม |
0 | |||
1 | 20 | เลขที่ | |
2 | 25 | ใช่ | 1 |
3 | 19 | เลขที่ | |
4 | 25 | ใช่ | 2 |
5 | 26 | ใช่ | 3 |
6 | 22 | เลขที่ | |
7 | 24 | ใช่ | 4 |
ตาราง Dat นำเสนอข้อมูลเกี่ยวกับจำนวนคะแนนโหวตของนักแสดงเพลงพื้นบ้าน 10 คน (Dat - จำนวนคะแนนโหวตของนักแสดงคนแรก; Dat - สำหรับเพลงที่สอง ฯลฯ ) กำหนดหมายเลขที่จะพิมพ์ตามผลของโปรแกรมต่อไปนี้ ข้อความโปรแกรมมีให้ในภาษาการเขียนโปรแกรมสามภาษา ภาษาอัลกอริทึม BASIC Pascal alg nach celtab Dat integer k, m Dat := 16 Dat := 20 Dat := 20 Dat := 41 Dat := 14 Dat := 21 Dat := 28 Dat := 12 Dat := 15 Dat : = 35 m:= 0 nc สำหรับ k จาก 1 ถึง 10 ถ้า Dat[k]gt;m แล้ว m:= Dat[k] kc เอาต์พุตทั้งหมด m con DIM Dat(10) AS INTEGER DIM k,m AS INTEGER Dat(1 ) = 16: Dat(2) = 20 Dat(3) = 20: Dat(4) = 41 Dat(5) = 14: Dat(6) = 21 Dat(7) = 28: Dat(8) = 12 Dat(8) = 12 (9) = 15:Dat(10) = 35 m = 0 FOR k = 1 ถึง 10 IF Dat(k)gt;m แล้ว m = Dat(k) ENDIF NEXT k PRINT m Var k, m: จำนวนเต็ม; Dat: อาร์เรย์ของจำนวนเต็ม; วันที่เริ่มต้น := 16; วันที่ := 20; วันที่ := 20; วันที่ := 41; วันที่ := 14; วันที่ := 21; วันที่ := 28; วันที่ := 12; วันที่ := 15; วันที่ := 35; ม:= 0; สำหรับ k:= 1 ถึง 10 do if Dat[k]gt;m ให้เริ่ม m:= Dat[k] end; เขียน(m); จบ.
คำถามที่คล้ายกัน
- เติมในช่องว่าง. ช่วยฉันด้วย:)
- ฮีโร่ผู้ปลดปล่อยโพรมีธีอุส
- เขียนปัญหา แก้ไขปัญหา และจดบันทึกวิธีแก้ปัญหา
- เพื่อนๆ ช่วยด้วย: (lg(x+√3)+lg(x-√3)=0
- โปรดช่วยฉันตัดสินใจด้วย คำนวณพื้นที่ของรูปสามเหลี่ยมหากน้อยกว่าพื้นที่สี่เหลี่ยมจัตุรัส 9 เท่าโดยมีความยาวด้าน 12 ซม.
- แก้สมการ (8 5/27 - x) - 2 25/27 = 1 25/27
- ชาวนาที่ถูกขายชื่ออะไร?
- เด็กหญิงเริ่มให้อาหารลูกแมว เธอนำข้าวโอ๊ตมาเขาก็หันหน้าหนีจากถ้วย เมื่อได้รับหัวไชเท้าแล้ว ก็หันออกไปจากชาม ฉันเอาเบคอนมาชิ้นหนึ่ง ลูกแมวบอกว่ายังไม่เพียงพอ ค้นหาคำในข้อความที่มีการสะกดว่า "สระหนัก...
ฉันนำเสนอวิธีแก้ปัญหาสำหรับงานที่ 10 ของ OGE-2016 ในสาขาวิทยาการคอมพิวเตอร์จากโครงการเวอร์ชันสาธิต เมื่อเทียบกับเดโมปี 2015 ภารกิจที่ 10 ไม่มีการเปลี่ยนแปลง นี่คืองานเกี่ยวกับความสามารถในการดำเนินการอัลกอริทึมแบบวนรอบสำหรับการประมวลผลอาร์เรย์ของตัวเลขที่เขียนด้วยภาษาอัลกอริทึม (อัลกอริทึม คุณสมบัติของอัลกอริทึม วิธีการเขียนอัลกอริทึม ผังงาน การเขียนโปรแกรมเบื้องต้น โครงสร้างอัลกอริทึม) นี่เป็นงานที่มีระดับความซับซ้อนเพิ่มขึ้น คำตอบคือจำนวนเต็มที่ต้องเขียนในช่องคำตอบ
ภาพหน้าจอของภารกิจที่ 10
ออกกำลังกาย:
ตาราง Dat นำเสนอข้อมูลเกี่ยวกับจำนวนคะแนนโหวตของนักแสดงเพลงพื้นบ้าน 10 คน (Dat - จำนวนคะแนนโหวตของนักแสดงคนแรก; Dat - สำหรับเพลงที่สอง ฯลฯ ) กำหนดหมายเลขที่จะพิมพ์ตามผลของโปรแกรมต่อไปนี้ ข้อความโปรแกรมมีให้ในภาษาการเขียนโปรแกรมสามภาษา
ตัวอย่างในภาษาปาสคาล
Var k, m: จำนวนเต็ม;
Dat: อาร์เรย์ของจำนวนเต็ม;
เริ่ม
วันที่ := 16; วันที่ := 20;
วันที่ := 20; วันที่ := 41;
วันที่ := 14; วันที่ := 21;
วันที่ := 28; วันที่ := 12;
วันที่ := 15; วันที่ := 35;
ม:= 0;
สำหรับ k:= 1 ถึง 10 ทำ
ถ้า Dat[k]>m แล้ว
เริ่ม
ม:=ข้อมูล[k]
จบ;
เขียน(m);
จบ.
โปรแกรมนี้สร้างอาร์เรย์จำนวน 10 หมายเลข ในการวนซ้ำตั้งแต่ 1 ถึง 10 รวมค่าขององค์ประกอบอาร์เรย์จะถูกเปรียบเทียบกับค่าของตัวแปร m หากปรากฎว่าค่าขององค์ประกอบอาร์เรย์นั้นมากกว่าค่าของตัวแปร m อย่างเคร่งครัด ดังนั้นตัวแปร m จะถูกกำหนดค่าขององค์ประกอบอาร์เรย์ (เริ่มแรก ก่อนการวนซ้ำ ค่าของตัวแปร m จะเท่ากับ 0)
เพื่อถอดความเราได้รับสิ่งต่อไปนี้ สำหรับนักแสดงเพลงพื้นบ้านแต่ละคนตั้งแต่ 1 ถึง 10 รวมจำนวนคะแนนจะถูกเปรียบเทียบกับค่า m หากจำนวนโหวตมากกว่า m แสดงว่าตัวแปร m จะถูกกำหนดค่าเท่ากับจำนวนโหวต จากการดำเนินการตามรอบ เราได้ตัวเลข m ซึ่งแสดงจำนวนคะแนนโหวตที่ใหญ่ที่สุดที่มอบให้กับผู้เข้าร่วมคนใดคนหนึ่ง กล่าวคือ ม.=41.
อาร์เรย์ในความเข้าใจของเราคือตารางธรรมดา ค่าในตารางต้องเป็นประเภทเดียวกัน: จำนวนเต็มหรือจำนวนจริง หรือสตริง หรือค่าบูลีน ตามกฎแล้วหลักสูตรของโรงเรียนจะพิจารณาปัญหาเกี่ยวกับตารางจำนวนเต็ม องค์ประกอบตารางอยู่ใกล้ๆ ในหน่วยความจำ และสามารถเข้าถึงได้ผ่านหมายเลขซีเรียล (ดัชนี) ในตาราง
1 | 2 | 3 | 4 | 5 |
55 | 36 | 134 | 75 | 100 |
ให้ A เป็นตารางที่มีองค์ประกอบ 5 ตัว จากนั้น A = 55, A = 36, A = 134, A = 75, A = 100
ในการทำงานกับตารางใน Idol คุณต้องจัดสรรหน่วยความจำเพื่อจัดเก็บ:
Alg nach celtab A
สามารถกรอกตารางด้วยตนเอง:
ก := 55 ก := 36 ก := 134 ก := 75 ก := 100
หากมีองค์ประกอบหลายรายการ ควรใช้การวนซ้ำ ( ตัวแปรวนซ้ำ ฉันจะต้องประกาศตอนเริ่มต้นโปรแกรม):
nc สำหรับฉันตั้งแต่ 1 ถึง 5 อินพุต A[i] ซีซี
หากคุณต้องการเปลี่ยนค่าขององค์ประกอบตารางทั้งหมด (เช่นเพิ่มขึ้น 2 เท่า) ควรใช้การวนซ้ำอีกครั้ง:
NC สำหรับ i ตั้งแต่ 1 ถึง 5 A[i] := A[i]*2 kc
นอกจากนี้เรายังดำเนินการส่งออกค่าองค์ประกอบตารางทั้งหมดในลูป:
nc สำหรับฉันตั้งแต่ 1 ถึง 5 พิน A[i],ns ซีซี
ค้นหาค่าขององค์ประกอบสูงสุดและจำนวนในตาราง
หมายเหตุ: งานค้นหาองค์ประกอบขั้นต่ำจะแตกต่างกันเฉพาะในเครื่องหมายเปรียบเทียบเท่านั้น
งานแบ่งออกเป็นหลายขั้นตอน:
1. สำหรับค่าสูงสุดเริ่มต้น ให้ใช้องค์ประกอบแรกสุดในตารางโดยจดจำหมายเลขของมัน
ไอแมกซ์:= 1
2. เราจะตรวจสอบองค์ประกอบอื่นๆ ทั้งหมด (ตั้งแต่อันดับที่ 2 ถึงสุดท้าย): หากองค์ประกอบปัจจุบันที่ถูกตรวจสอบมากกว่าค่าสูงสุด เราจะจำหมายเลขขององค์ประกอบปัจจุบันใน imax
Nts สำหรับ i จาก 2 ถึง 5 ถ้า A[i] > A แล้ว imax:= i ทั้งหมด kts
3. การใช้จำนวนที่พบขององค์ประกอบสูงสุด เราจะแสดงค่าสูงสุดเอง:
พิน เอ
นี่คือข้อความทั้งหมดของโปรแกรม:
Alg SearchMax เริ่มต้น celtab A int imax, i nc สำหรับ i จาก 1 ถึง 5 อินพุต A[i] kts imax:= 1 nts สำหรับ i จาก 2 ถึง 5 ถ้า A[i] > A แล้ว imax:= i ทั้งหมด kts เอาต์พุต A kts
การหาผลรวม และมูลค่าเฉลี่ยองค์ประกอบตารางทั้งหมด
ก่อนอื่นคุณต้องตั้งค่าเริ่มต้นของจำนวนเงิน:
จากนั้นในวงเราจะเพิ่มค่าขององค์ประกอบเข้ากับผลรวม:
nc สำหรับฉัน ตั้งแต่ 1 ถึง 5 วินาที:= s + A[i] ซีซีเราค้นหาค่าเฉลี่ยขององค์ประกอบตารางทั้งหมดเป็นอัตราส่วนของผลรวมต่อจำนวนองค์ประกอบ:
ซีร:= ส/5
นี่คือข้อความทั้งหมดของโปรแกรม:
Alg SumAvg เริ่มต้น celtab ทั้งหมด i, s sr | จำนวนเฉลี่ยจะเป็นจำนวนจริง nc สำหรับ i ตั้งแต่ 1 ถึง 5 อินพุต A[i] kc s:= 0 nc สำหรับ i ตั้งแต่ 1 ถึง 5 s:= s + A[i] kc sr:= s/5 เอาต์พุต “ผลรวมของ องค์ประกอบทั้งหมด: ",s,ns เอาต์พุต "ค่าเฉลี่ยขององค์ประกอบทั้งหมด:",sr kts
ตัวอย่างการแก้ปัญหา
ตัวอย่างที่ 1
ตาราง Dat นำเสนอข้อมูลเกี่ยวกับจำนวนคะแนนโหวตของนักแสดงเพลงพื้นบ้าน 10 คน (Dat - จำนวนคะแนนโหวตของนักแสดงคนแรก Dat - สำหรับผู้ที่สอง ฯลฯ) กำหนดหมายเลขที่จะพิมพ์ตามผลของโปรแกรมต่อไปนี้
Alg เริ่มต้น celtab Dat int k, m Dat := 16 Dat := 20 Dat := 20 Dat := 41 Dat := 14 Dat := 21 Dat := 28 Dat := 12 Dat := 15 Dat := 35 m: = 0 nc สำหรับ k จาก 1 ถึง 10 ถ้า Dat[k]>m แล้ว m:= Dat[k] kc ทั้งหมดเอาต์พุต m สิ้นสุด
ในช่วงเริ่มต้นของรายการ จำนวนคะแนนเสียงของนักแสดงจะถูกบันทึกไว้ในช่องของตาราง
พิจารณาส่วนของโปรแกรมต่อไปนี้:
M:= 0 nc สำหรับ k จาก 1 ถึง 10 ถ้า Dat[k]>m แล้ว m:= Dat[k] kc ทั้งหมด
จะเห็นได้ว่าในลูปแต่ละองค์ประกอบจะถูกเปรียบเทียบกับตัวแปร m ซึ่งก่อนที่ลูปจะเท่ากับศูนย์ หากองค์ประกอบปัจจุบันที่กำลังตรวจสอบมากกว่า m ค่าขององค์ประกอบปัจจุบันจะถูกเขียนลงในตัวแปร m หลังจากดำเนินการวนซ้ำแล้ว ตัวแปร m จะเก็บค่าขององค์ประกอบที่ใหญ่ที่สุด
กล่าวอีกนัยหนึ่ง โปรแกรมค้นหาค่าสูงสุดจากเซลล์ตารางทั้งหมด ค่าองค์ประกอบนี้คือ Dat = 41
คำตอบ: 41
ตัวอย่างที่ 2:
Alg เริ่มต้น celtab Dat int k, m Dat := 7; วันที่ := 9 วันที่ := 10; วันที่ := 5 วันที่ := 6; วันที่ := 7 วันที่ := 9; วันที่ := 8 วันที่ := 6; Dat:= 9 m:= 0 nc สำหรับ k จาก 1 ถึง 10 ถ้า Dat[k]< 7 то m:= m + 1 все кц вывод m кон
ที่จุดเริ่มต้นของโปรแกรม ตารางที่ประกอบด้วยจำนวนงานที่เสร็จสมบูรณ์จะถูกกรอก
หลังจากนี้ จะมีการแนะนำตัวแปร มที่มีค่าเป็นศูนย์
ในลักษณะวนซ้ำ ถึงมีการตรวจสอบตั้งแต่ 1 ถึง 10: หากระบุจำนวนงานที่เสร็จสมบูรณ์สำหรับนักเรียนแล้ว ถึงน้อยกว่า 7 แสดงว่ายังมีนักเรียนดังกล่าวอีก 1 คน (m:= m +1)
กล่าวอีกนัยหนึ่ง โปรแกรมจะนับจำนวนนักเรียนที่ทำสำเร็จน้อยกว่า 7 งาน
เรามีนักเรียนสามคน: Dat, Dat, Dat
คำตอบ: 3
ตัวอย่างที่ 3:
ตาราง Dat จัดเก็บข้อมูลเกี่ยวกับจำนวนงานที่นักเรียนทำเสร็จแล้ว (งาน Dat ทำเสร็จโดยนักเรียนคนแรก, Dat ทำในวินาที ฯลฯ) กำหนดหมายเลขที่จะพิมพ์ตามผลของโปรแกรมต่อไปนี้
Alg เริ่มต้น celtab Dat int k, m Dat := 20; วันที่ := 25 วันที่ := 19; วันที่ := 25 วันที่ := 26; วันที่ := 22 วันที่ := 24; วันที่ := 28 วันที่ := 26; Dat := 21 Dat := 27 m:= 0 nc สำหรับ k จาก 1 ถึง 11 ถ้า k > 9 แล้ว m:= m + Dat[k] ทั้งหมด kc เอาต์พุต m end
ภายในวงสำหรับหมายเลของค์ประกอบ ถึงมีการตรวจสอบตั้งแต่ 1 ถึง 11 (สำหรับนักเรียนทุกคน) หากจำนวนองค์ประกอบ (นักเรียน) มากกว่า 9 ให้ไปที่ตัวแปร มเพิ่มจำนวนงานของนักเรียนที่เสร็จสมบูรณ์แล้ว
จะเห็นได้ว่ามีเพียงนักเรียนหมายเลข 10 (Dat) และนักเรียนหมายเลข 11 (Dat) เท่านั้นที่ผ่านเงื่อนไข ดังนั้นตัวแปร มจะเก็บผลรวมของจำนวนงานที่ทำเสร็จแล้วของนักเรียนเหล่านี้ 0+21+27=48
คำตอบ: 48
ตัวอย่างที่ 4:
ตาราง Dat จัดเก็บข้อมูลเกี่ยวกับจำนวนงานที่นักเรียนทำเสร็จแล้ว (งาน Dat ทำเสร็จโดยนักเรียนคนแรก, Dat ทำในวินาที ฯลฯ) กำหนดหมายเลขที่จะพิมพ์ตามผลของโปรแกรมต่อไปนี้
Alg เริ่มต้น celtab Dat int k, m, n Dat := 7; วันที่ := 9 วันที่ := 10; วันที่ := 5 วันที่ := 6; วันที่ := 7 วันที่ := 5; วันที่ := 8 วันที่ := 6; วันที่ := 9 ม.:= 10; n:= 0 nc สำหรับ k จาก 1 ถึง 10 ถ้า Dat[k]<= m то m:= Dat[k] n:= k все кц вывод n кон
ค่าองค์ประกอบไม่เกิน 10
เส้น nts สำหรับ k จาก 1 ถึง 10 หมายความว่าองค์ประกอบทั้งหมดของอาร์เรย์ถูกวนซ้ำ (เรามี 10 รายการ)
เงื่อนไข ถ้า ข้อมูล[k]<= m จะเป็นจริงเมื่อค่าขององค์ประกอบปัจจุบันน้อยกว่าหรือเท่ากับ ม. หากเงื่อนไขนี้เป็นจริง ให้เข้าสู่ตัวแปร มค่าขององค์ประกอบปัจจุบันจะถูกเขียนและตัวแปร n- หมายเลขของเขา
ประเด็นของปัญหาคือการหา ตัวเลของค์ประกอบขั้นต่ำ! (โปรแกรมจะพิมพ์ค่าไว้ท้ายสุด n).
เนื่องจากเงื่อนไขไม่เข้มงวด ข้อมูล[k]<= m, то будет найден ล่าสุดองค์ประกอบขั้นต่ำและหมายเลข (Dat)
หากเงื่อนไขเข้มงวด เงื่อนไขแรกในบรรดาค่าต่ำสุดที่เหมือนกัน (Dat)