สิ่งที่คุณต้องรู้เพื่อทำงานให้สำเร็จ การแก้ปัญหา 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 - ในชั้นที่สอง ฯลฯ ) กำหนดหมายเลขที่จะพิมพ์ตามผลของโปรแกรมต่อไปนี้ ข้อความโปรแกรมมีให้ในภาษาการเขียนโปรแกรมสามภาษา

ภาษาอัลกอริทึม ขั้นพื้นฐาน ปาสคาล

แอลจี
จุดเริ่มต้น
celtab Dat
จำนวนเต็ม k, m
วันที่ := 20; วันที่ := 25
วันที่ := 19; วันที่ := 25
วันที่ := 26; วันที่ := 22
วันที่ := 24; วันที่ := 28
วันที่ := 26; วันที่ := 21
วันที่ := 27
ม:= 0
nc สำหรับ k ตั้งแต่ 1 ถึง 11
ถ้า Dat[k] > 22 แล้ว
ม:= ม. + 1
ทั้งหมด
นอต
เอาท์พุต ม
แย้ง

DIM Dat(11) เป็นจำนวนเต็ม
ดิม ก,มเป็นจำนวนเต็ม
ดาท(1) = 20: ดาท(2) = 25
ดาท(3) = 19: ดาท(4) = 25
Dat(5) = 26: Dat(6) = 22
ดาท(7) = 24: ดาท(8) = 28
ดาท(9) = 26: ดาท(10) = 21
ดาท(11) = 27
ม. = 0
สำหรับ k = 1 ถึง 11
ถ้า Dat(k) > 22 แล้ว
ม = ม + 1
สิ้นสุด ถ้า
ถัดไปเค
พิมพ์ ม

Var k, m: จำนวนเต็ม; Dat: อาร์เรย์ของจำนวนเต็ม; เริ่มต้น Dat := 20; วันที่ := 25; วันที่ := 19; วันที่ := 25; วันที่ := 26; วันที่ := 22; วันที่ := 24; วันที่ := 28; วันที่ := 26; วันที่ := 21; Dat > 22 จากนั้นให้เริ่มต้น m:= m + 1 end; writeln(m) สิ้นสุด

วิธีแก้ปัญหา (1 วิธี):

  1. มาดูโปรแกรมกันทีละขั้นตอนกัน ขั้นแรก ตัวแปรที่จะใช้จะถูกประกาศ (ตัวแปร k และ m) เช่นเดียวกับอาร์เรย์ Dat ที่มี 11 องค์ประกอบ (องค์ประกอบจะมีหมายเลขตั้งแต่ 1 ถึง 11)

ความสนใจ: ในอาร์เรย์ Dat ซึ่งอธิบายไว้ใน ภาษาพื้นฐานจะมี 12 องค์ประกอบเนื่องจากการนับเลขไม่ได้เริ่มต้นจากองค์ประกอบแรก แต่จากศูนย์

  1. ต่อไปมาเติมอาร์เรย์ ตัวอย่างเช่น องค์ประกอบอาร์เรย์ที่มีดัชนี 1 ถูกกำหนดให้เป็นค่า 20 องค์ประกอบที่มีดัชนี 2 ถูกกำหนดให้เป็น 25 เป็นต้น ด้วยเหตุนี้ อาร์เรย์ผลลัพธ์จึงสามารถแสดงได้ดังนี้:

อาร์เรย์ Dat

ดัชนี

ความหมาย

  1. ตัวแปร m ได้รับการกำหนดให้เป็น 0 หลังจากนั้น การวนซ้ำด้วยพารามิเตอร์ k จะเริ่มต้นขึ้น โดยที่ k เปลี่ยนจาก 1 เป็น 11 ในขั้นตอนที่ 1

ในเนื้อความของลูป มีการตรวจสอบเงื่อนไข:

  1. ค่าขององค์ประกอบอาร์เรย์ที่ดัชนี k จะถูกเปรียบเทียบกับหมายเลข 22 หากองค์ประกอบอาร์เรย์มากกว่า 22 ตัวแปร m จะเพิ่มขึ้น 1 มิฉะนั้นจะไม่มีอะไรเกิดขึ้น
  2. ที่ส่วนท้ายสุดของโปรแกรม ค่าของตัวแปร m จะแสดงบนหน้าจอ
  3. เรามาพิจารณาว่าจะเกิดอะไรขึ้นหลังจากการรันโปรแกรม ค่าของตัวแปร m มีการเปลี่ยนแปลงในลักษณะวนซ้ำ ก่อนการวนซ้ำ ค่าของมันคือศูนย์ ต่อไป โปรแกรมจะวนซ้ำองค์ประกอบทั้งหมดของอาเรย์และเปรียบเทียบกับหมายเลข 22 และถ้าองค์ประกอบอาเรย์มากกว่า 22 ตัวแปร m จะเพิ่มขึ้น 1 ดังนั้น เราจำเป็นต้องนับองค์ประกอบทั้งหมดของ อาร์เรย์ที่มากกว่า 22 - จำนวนจะเท่ากับค่าของตัวแปร m มีองค์ประกอบดังกล่าวอยู่ 7 องค์ประกอบ - เป็นองค์ประกอบที่มีดัชนี 2, 4, 5, 7, 8, 9 และ 11

ความสนใจ: องค์ประกอบหมายเลข 6 ซึ่งเท่ากับ 22 แต่เนื่องจาก... เนื่องจากการเปรียบเทียบของเราเข้มงวด (เครื่องหมาย ">") เราจึงไม่นำมาพิจารณา

คำตอบ: 7

สารละลาย (2 ทาง เลื่อนด้วยตนเอง):

ลองจินตนาการถึงอาเรย์ผลลัพธ์:
อาร์เรย์ Dat

ดัชนี

ความหมาย

สถาบันการวัดการสอนของรัฐบาลกลาง / เวอร์ชันสาธิต, ข้อมูลจำเพาะ, ตัวประมวลผลของ OGE 2015 - 2019 // วิทยาการคอมพิวเตอร์และ ICT - (http://fipi.ru)

  • Dracheva E. R. , Grishina I. A. การเตรียม GIA ในสาขาวิทยาการคอมพิวเตอร์ / E. R. Dracheva, I. A. Grishina // ส่วน B - (http://giainformatika.ru/)
  • เค ข้อมูล[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)