ตัวอย่างการแก้ปัญหาอาร์เรย์สองมิติ ปัญหาสำหรับการแก้ปัญหาอิสระ กำหนดอาร์เรย์สองมิติของจำนวนจริง กำหนดอาร์เรย์สองมิติ

รับอาร์เรย์ 5x5 สองมิติ จัดระเบียบอินพุตขององค์ประกอบและเอาต์พุตผลลัพธ์ในรูปแบบของหน้าต่าง หลังจากหยุดชั่วคราว ให้เปลี่ยนสีของหน้าต่างที่จัดเก็บองค์ประกอบที่ระบุตามเงื่อนไข

ตัวเลือกงาน:

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11. ค้นหาผลคูณขององค์ประกอบที่อยู่เหนือเส้นทแยงมุมหลัก แทนที่องค์ประกอบคี่ทั้งหมดด้วยหมายเลขที่พบ

12. ค้นหาผลรวมขององค์ประกอบที่อยู่ในตำแหน่งคี่ (ผลรวมของดัชนี (i+j) สำหรับ X ij เป็นเลขคี่) แทนที่องค์ประกอบเชิงลบทั้งหมดด้วยหมายเลขที่พบ

13. ค้นหาผลคูณขององค์ประกอบทั้งหมดที่อยู่ในเส้นทแยงมุมหลัก แทนที่องค์ประกอบทั้งหมดของแถวที่ห้าและคอลัมน์ที่สองด้วยหมายเลขที่พบ

14. ค้นหาค่าเฉลี่ยเลขคณิตขององค์ประกอบบนเส้นทแยงมุมหลักและค่าเฉลี่ยเลขคณิตบนเส้นทแยงมุมด้านข้าง สลับองค์ประกอบบนเส้นทแยงมุม

15. ค้นหาค่าเฉลี่ยเลขคณิตขององค์ประกอบบวกที่อยู่เหนือเส้นทแยงมุมหลัก แทนที่องค์ประกอบเชิงลบทั้งหมดด้วยหมายเลขที่พบ

16. ค้นหาผลรวมขององค์ประกอบคี่ แทนที่ด้วยหมายเลขที่พบองค์ประกอบทั้งหมดที่อยู่เหนือเส้นทแยงมุมด้านข้าง

17. ค้นหาผลคูณขององค์ประกอบของ i-row และ j-column (i, j- ป้อนจากแป้นพิมพ์ก่อน) แทนที่องค์ประกอบทั้งหมดที่อยู่ด้านล่างเส้นทแยงมุมรองด้วยหมายเลขที่พบ

18. ค้นหาผลคูณขององค์ประกอบที่อยู่ในตำแหน่งคู่ (ผลรวมของดัชนี (i+j) สำหรับ X ij เป็นเลขคี่) แทนที่องค์ประกอบทั้งหมดบนเส้นทแยงมุมหลักด้วยตัวเลขที่พบ

19. ค้นหาค่าเฉลี่ยเลขคณิตขององค์ประกอบคี่ แทนที่องค์ประกอบทั้งหมดของเส้นทแยงมุมรองด้วยหมายเลขที่พบ

20. หาผลรวมขององค์ประกอบเลขคู่ทั้งหมดที่อยู่เหนือเส้นทแยงมุมรอง แทนที่องค์ประกอบทั้งหมดของบรรทัดที่สี่ด้วยหมายเลขที่พบ

21. ค้นหาผลคูณขององค์ประกอบที่อยู่เหนือเส้นทแยงมุมหลัก แทนที่องค์ประกอบคี่ทั้งหมดด้วยหมายเลขที่พบ

22. ค้นหาผลรวมขององค์ประกอบที่อยู่ในตำแหน่งคี่ (ผลรวมของดัชนี (i+j) สำหรับ X ij เป็นเลขคี่) แทนที่องค์ประกอบเชิงลบทั้งหมดด้วยหมายเลขที่พบ

23. ค้นหาผลคูณขององค์ประกอบทั้งหมดที่อยู่ในเส้นทแยงมุมหลัก แทนที่องค์ประกอบทั้งหมดของแถวที่ห้าและคอลัมน์ที่สองด้วยหมายเลขที่พบ

24. ค้นหาค่าเฉลี่ยเลขคณิตขององค์ประกอบบนเส้นทแยงมุมหลักและค่าเฉลี่ยเลขคณิตบนเส้นทแยงมุมด้านข้าง สลับองค์ประกอบบนเส้นทแยงมุม

25. ค้นหาค่าเฉลี่ยเลขคณิตขององค์ประกอบบวกที่อยู่เหนือเส้นทแยงมุมหลัก แทนที่องค์ประกอบเชิงลบทั้งหมดด้วยหมายเลขที่พบ

ตัวอย่างเช่น: ค้นหาค่าเฉลี่ยเลขคณิตขององค์ประกอบบนเส้นทแยงมุมหลัก

หลังจากหยุดชั่วคราว:

คำถามเพื่อความปลอดภัย

1. โหมดข้อความคืออะไร และแตกต่างจากโหมดปกติอย่างไร

2. หน้าต่างคืออะไร?

3. จะเลื่อนเคอร์เซอร์ไปยังพิกัดหน้าต่างที่ระบุได้อย่างไร?

4. จะเปลี่ยนแบบอักษร/สีพื้นหลังได้อย่างไร?

การแนะนำ

ทันสมัย อุปกรณ์ทางเทคนิคออกแบบมาเพื่อการควบคุมและระบบอัตโนมัติ ใช้กันอย่างแพร่หลายในวงจรไบนารี่และ ระบบไบนารี่การคำนวณ ทฤษฎีพีชคณิตเชิงตรรกะใช้ในการวิเคราะห์และสังเคราะห์วงจรสวิตชิ่งเชิงผสมและลำดับ

เนื้อหาการบรรยายจะนำเสนอเป็นสามบท บทแรกให้แนวคิดพื้นฐานของทฤษฎีพีชคณิตเชิงตรรกะ และตรวจสอบรูปแบบต่างๆ ของการแทนฟังก์ชันบูลีน บทที่สองกล่าวถึงประเด็นของการลดการแทนฟังก์ชันบูลีนให้เหลือน้อยที่สุด ซึ่งเป็นพื้นฐานสำหรับการสังเคราะห์เชิงนามธรรมของอุปกรณ์ที่ไม่ต่อเนื่อง บทที่สามประกอบด้วยข้อมูลเกี่ยวกับวิธีการนำฟังก์ชันบูลีนไปใช้โดยอาศัยวงจรสวิตชิ่ง ซึ่งเป็นพื้นฐานสำหรับการสังเคราะห์โครงสร้างของอุปกรณ์ที่ไม่ต่อเนื่อง

ในการเขียนบันทึกการบรรยายจะใช้วรรณกรรมดังต่อไปนี้: สำหรับหัวข้อ 1.1 - ; สำหรับข้อ 1.2 – ; สำหรับข้อ 1.3 – ; สำหรับข้อ 2.1 – ; สำหรับข้อ 2.2 – ; สำหรับส่วนที่ 3.1, 3.2 –

ปัญหาด้านวิทยาการคอมพิวเตอร์อีกชุดหนึ่งสำหรับเด็กนักเรียนได้มาถึงแล้ว คราวนี้เราจะมาดูการทำงานกับอาร์เรย์สองมิติในภาษา C++ ปัญหาเหล่านี้ค่อนข้างน่าสนใจ และฉันชอบพวกเขาส่วนใหญ่

ภารกิจที่ 1

ค้นหาดัชนีของการเกิดขึ้นครั้งแรกขององค์ประกอบสูงสุด
รูปแบบการป้อนข้อมูล
โปรแกรมได้รับขนาดอาร์เรย์ n และ m เป็นอินพุต จากนั้นจะมีตัวเลข n บรรทัดละ m n และ m ไม่เกิน 100
รูปแบบเอาต์พุต
พิมพ์ตัวเลขสองตัว: หมายเลขแถวและหมายเลขคอลัมน์ที่มีองค์ประกอบที่ใหญ่ที่สุด อาร์เรย์สองมิติ- หากมีองค์ประกอบดังกล่าวหลายรายการ องค์ประกอบที่มีหมายเลขแถวล่างจะปรากฏขึ้น และหากหมายเลขแถวเท่ากัน องค์ประกอบที่มีหมายเลขคอลัมน์ด้านล่างก็จะปรากฏขึ้น

ข้อมูลตัวอย่าง: 3 4 0 3 2 4 2 3 5 5 5 1 2 3 ผลลัพธ์ตัวอย่าง: 1 2

#รวม ใช้เนมสเปซมาตรฐาน; int main() ( int n, m; cin >> n >> m; int a; // อ่านเพื่อ (int i = 0; i< n; i++) { for (int j = 0; j < m; j++) { cin >> ก[i][เจ];< n; i++) { for (int j = 0; j < m; j++) { if (a[i][j] >) ) int สูงสุด = a, max_i = 0, max_j = 0;<< max_i << " " << max_j; return 0; }

สำหรับ (int i = 0; i

สูงสุด) ( สูงสุด = a[i][j]; max_i = i; max_j = j; ) ) ) พิจารณา

ข้อมูลตัวอย่าง: 5 ผลลัพธ์ตัวอย่าง: * . * . * . * * * . * * * * * . * * * . * . * . *

#รวม ภารกิจที่ 2< n; i++) { for (int j = 0; j < n; j++) { if (i == j || i == n - 1 - j || i == n / 2 || j == n / 2) a[i][j] = 1; else a[i][j] = 0; } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (a[i][j] == 0) cout << "." << " "; else cout << "*" << " "; } cout << endl; } return 0; }

ให้เลขคี่ n ไม่เกิน 15 สร้างอาร์เรย์สองมิติขององค์ประกอบ n×n โดยเติมด้วย "." (แต่ละองค์ประกอบของอาร์เรย์จะเป็นสตริงที่มีอักขระหนึ่งตัว) จากนั้นเติมแถวกลางของอาร์เรย์ คอลัมน์กลางของอาร์เรย์ เส้นทแยงมุมหลัก และเส้นทแยงมุมรองด้วยอักขระ "*" ด้วยเหตุนี้ "*" ในอาร์เรย์จึงควรสร้างรูปดอกจัน แสดงอาร์เรย์ผลลัพธ์บนหน้าจอ โดยแยกองค์ประกอบอาร์เรย์ด้วยช่องว่าง

ใช้เนมสเปซมาตรฐาน; int main() ( int n; cin >>

ข้อมูลตัวอย่าง: 5 ผลลัพธ์ตัวอย่าง: 0 1 2 3 4 1 0 1 2 3 2 1 0 1 2 3 2 1 0 1 4 3 2 1 0

#รวม ภารกิจที่ 3 ให้ตัวเลข n ไม่เกิน 100 สร้างอาร์เรย์ขนาด n×n แล้วเติมตามกฎต่อไปนี้ ควรเขียนตัวเลข 0 บนเส้นทแยงมุมหลัก บนเส้นทแยงมุมสองเส้นที่อยู่ติดกับเส้นทแยงมุมหลักคือตัวเลข 1 บนเส้นทแยงมุมสองเส้นถัดไปคือตัวเลข 2 เป็นต้น< n; i++) { for (int j = 0; j < n; j++) { a[i][j] = (int) abs(i - j); } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cout << a[i][j] << " "; } cout << endl; } return 0; }

#รวม

รับอาร์เรย์สองมิติและตัวเลขสองตัว: i และ j สลับคอลัมน์ที่มีหมายเลข i และ j ในอาร์เรย์
รูปแบบการป้อนข้อมูล
โปรแกรมได้รับเป็นอาร์เรย์อินพุตขนาด n และ m ไม่เกิน 100 จากนั้นเป็นองค์ประกอบอาร์เรย์ ตามด้วยตัวเลข i และ j
รูปแบบเอาต์พุต
พิมพ์ผลลัพธ์

ข้อมูลตัวอย่าง: 0 1 ผลลัพธ์ตัวอย่าง: 12 11 13 14 22 21 23 24 32 31 33 34

#รวม ภารกิจที่ 3 ใช้เนมสเปซมาตรฐาน; int main() ( int n, m, x, y, temp; cin >> n >>< n; i++) { for (int j = 0; j < m; j++) { cin >> ก[i][เจ];< n; i++) { temp = a[i][x]; a[i][x] = a[i][y]; a[i][y] = temp; } // вывод for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cout << a[i][j] << " "; } cout << endl; } return 0; }

) ) cin >> x >> y;

// กำลังประมวลผลสำหรับ (int i = 0; i

ข้อมูลตัวอย่าง: 3 0 1 2 1 2 3 2 3 4 ผลลัพธ์ตัวอย่าง:ปัญหา #5

#รวม ภารกิจที่ 3 ให้ตัวเลข n ไม่เกิน 10 และอาร์เรย์ขนาด n × n ตรวจสอบว่าอาร์เรย์นี้สมมาตรกับเส้นทแยงมุมหลักหรือไม่ พิมพ์คำว่า "YES" หากอาร์เรย์มีความสมมาตร และพิมพ์คำว่า "NO" มิฉะนั้น< n; i++) { for (int j = 0; j < n; j++) { cin >ใช่< n; i++) { for (int j = 0; j < n; j++) { if (a[i][j] != a[j][i]) symmetric = false; } } // вывод if (symmetric) cout << "YES"; else cout << "NO"; return 0; }

ใช้เนมสเปซมาตรฐาน; int main() ( int n; bool symmetric; cin >> n; int a; // กรอก (int i = 0; i

> ก[i][เจ];
) ) // การประมวลผลสมมาตร = จริง;
สำหรับ (int i = 0; i

ปัญหา #6 4 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 1 ให้อาร์เรย์สองมิติสี่เหลี่ยมจตุรัสขนาด n × n และตัวเลข k เขียนองค์ประกอบของเส้นทแยงมุม k ไว้ใต้เส้นทแยงมุมหลัก (เช่น ถ้า k = 1 คุณจะต้องแสดงองค์ประกอบของเส้นทแยงมุมแรกที่อยู่ด้านล่างเส้นหลัก ถ้า k = 2 ดังนั้นเส้นทแยงมุมที่สอง เป็นต้น) 5 1 6 ค่าของ k อาจเป็นลบได้ เช่น ถ้า k = −1 คุณจะต้องแสดงค่าของเส้นทแยงมุมแรกที่วางอยู่เหนือเส้นหลัก ถ้า k = 0 คุณจะต้องส่งออกองค์ประกอบของเส้นทแยงมุมหลัก 4 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 -2 โปรแกรมรับเป็นอินพุตตัวเลข n ไม่เกิน 10 จากนั้นเป็นอาร์เรย์ขนาด n × n ตามด้วยตัวเลข k 3 8

#รวม ตัวอย่างอินพุต 1:< n; i++) { for (int j = 0; j < n; j++) { cin >ตัวอย่างเอาต์พุต 1:< n; i++) { for (int j = 0; j < n; j++) { if (i - j - k == 0) cout << a[i][j] << " "; } } return 0; }

ตัวอย่างอินพุต 2:

ตัวอย่างผลลัพธ์ 2:
ใช้เนมสเปซมาตรฐาน; int main() ( int n, k; cin >> n; int a[n][n]; // กรอก (int i = 0; i

ข้อมูลตัวอย่าง: 3 4 11 12 13 14 21 22 23 24 31 32 33 34 ผลลัพธ์ตัวอย่าง: 11 21 31 12 22 32 13 23 33 14 24 34

#รวม ใช้เนมสเปซมาตรฐาน; int main() ( int n, m, x, y, temp; cin >> n >>< n; i++) { for (int j = 0; j < m; j++) { cin >> < n; i++) { for (int j = 0; j < m; j++) { b[j][i] = a[i][j]; } } // вывод for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { cout << b[i][j] << " "; } cout << endl; } return 0; }

> ก[i][เจ];

) ) cin >> k;
รูปแบบการป้อนข้อมูล
// การประมวลผลและเอาต์พุตสำหรับ (int i = 0; i
รูปแบบเอาต์พุต
โปรแกรมควรพิมพ์หมายเลขแถวที่มีที่นั่งว่างติดกัน k รายการ หากมีแถวดังกล่าวหลายแถว ให้พิมพ์จำนวนแถวที่เหมาะสมที่สุดที่เล็กที่สุด หากไม่มีแถวที่เหมาะสมให้พิมพ์เลข 0

ข้อมูลตัวอย่าง: 3 4 0 1 0 1 1 0 0 1 1 1 1 1 2 ผลลัพธ์ตัวอย่าง: 2

#รวม ใช้เนมสเปซมาตรฐาน; int main() ( int n, m, k, r = 0; cin >> n >> m; int a[n][m]; // กรอก (int i = 0; i< n; i++) { for (int j = 0; j < m; j++) { cin >> ก[i][เจ];< n; i++) { int near_free = 0; for (int j = 0; j < m; j++) { if (a[i][j] == 0) { near_free++; if (near_free == k) { r = i + 1; break; } } else near_free = 0; } if (near_free == k) break; } // вывод cout << r; return 0; }

) ) cin >> k;

// กำลังประมวลผลสำหรับ (int i = 0; i
รูปแบบการป้อนข้อมูล
ปัญหาหมายเลข 9
รูปแบบเอาต์พุต
จากอาร์เรย์สี่เหลี่ยมขนาด n×m หมุน 90 องศาตามเข็มนาฬิกา เขียนผลลัพธ์ลงในอาร์เรย์ m×n ใหม่

ข้อมูลตัวอย่าง: 3 4 11 12 13 14 21 22 23 24 31 32 33 34 ผลลัพธ์ตัวอย่าง: 31 21 11 32 22 12 33 23 13 34 24 14

#รวม ป้อนตัวเลขสองตัว n และ m ซึ่งไม่เกิน 100 จากนั้นจึงเป็นอาร์เรย์ขนาด n×m< n; i++) { for (int j = 0; j < m; j++) { cin >พิมพ์อาร์เรย์ผลลัพธ์ แยกตัวเลขเมื่อส่งออกด้วยช่องว่างเดียว< n; i++) { for (int j = 0; j < m; j++) { b[j] = a[i][j]; } } // вывод for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { cout << b[i][j] << " "; } cout << endl; } return 0; }

ใช้เนมสเปซมาตรฐาน; int main() ( int n, m; cin >> n >> m; int a[n][m]; int b[m][n]; // กรอกสำหรับ (int i = 0; i

> ก[i][เจ];
รูปแบบการป้อนข้อมูล
) ) // กำลังประมวลผลสำหรับ (int i = 0; i
รูปแบบเอาต์พุต

ข้อมูลตัวอย่าง: 3 5 ผลลัพธ์ตัวอย่าง: 1 2 3 4 5 10 9 8 7 6 11 12 13 14 15

#รวม ปัญหาหมายเลข 10< n; i++) { for (int j = 0; j < m; j++) { c++; if (i%2 == 0) a[i][j] = c; else a[i] = c; } } // вывод for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (a[i][j] % 10 == a[i][j]) cout << " "; else if (a[i][j] % 100 == a[i][j]) cout << " "; else if (a[i][j] % 1000 == a[i][j]) cout << " "; cout << a[i][j]; } cout << endl; } return 0; }

เมื่อกำหนดตัวเลข n และ m ให้เติมอาร์เรย์สองมิติขนาด n×m ด้วยตัวเลขตั้งแต่ 1 ถึง n×m “งู” ดังที่แสดงในตัวอย่าง

ป้อนตัวเลขสองตัว n และ m ซึ่งแต่ละตัวไม่เกิน 20
รูปแบบการป้อนข้อมูล

รูปแบบเอาต์พุต
ใช้เนมสเปซมาตรฐาน; int main() ( int n, m, c = 0; cin >> n >> m; int a[n][m]; // การประมวลผลสำหรับ (int i = 0; i

ข้อมูลตัวอย่าง: 3 5 ผลลัพธ์ตัวอย่าง: 1 2 4 7 10 3 5 8 11 13 6 9 12 14 15

#รวม ปัญหาหมายเลข 11< n; min_row++) { if (min_row >เมื่อกำหนดตัวเลข n และ m ให้เติมอาร์เรย์สองมิติขนาด n×m ด้วยตัวเลขตั้งแต่ 1 ถึง n×m “เส้นทแยงมุม” ดังที่แสดงในตัวอย่าง< m; pos++) { row = min_row; for (int col = pos; col >ส่งออกอาร์เรย์ผลลัพธ์โดยจัดสรรอักขระ 4 ตัวสำหรับแต่ละองค์ประกอบ< n) { a = number; number++; row++; } else break; } } } // вывод for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (a[i][j] % 10 == a[i][j]) cout << " "; else if (a[i][j] % 100 == a[i][j]) cout << " "; else if (a[i][j] % 1000 == a[i][j]) cout << " "; cout << a[i][j]; } cout << endl; } return 0; }

ใช้เนมสเปซมาตรฐาน; int main() ( int n, m, pos = 0, แถว = 0; cin >> n >> m; int a[n][m]; // การประมวลผล int start_row = 0; int number = 1; สำหรับ ( int min_row = 0;

0) start_row = ตำแหน่ง - 1;
รูปแบบการป้อนข้อมูล
อย่างอื่น start_row = 0;
รูปแบบเอาต์พุต
ใช้เนมสเปซมาตรฐาน; int main() ( int n, m, c = 0; cin >> n >> m; int a[n][m]; // การประมวลผลสำหรับ (int i = 0; i

ข้อมูลตัวอย่าง: 3 5 ผลลัพธ์ตัวอย่าง: 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8

#รวม สำหรับ (pos = start_row; pos< n; i++) { for (int j = 0; j < m; j++) { a[i][j] = 0; } } for (int i = 0; i < n; i++) { if (i % 2 == 1) sm = 1; else sm = 0; for (int j = sm; j < m; j++) { a[i][j] = number; number++; j++; } } for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if (a[i][j] % 10 == a[i][j]) cout << " "; else if (a[i][j] % 100 == a[i][j]) cout << " "; else if (a[i][j] % 1000 == a[i][j]) cout << " "; cout << a[i][j]; } cout << endl; } return 0; }

= 0; คอลัม--) ( ถ้า (แถว

ปัญหาหมายเลข 12
รูปแบบการป้อนข้อมูล
อย่างอื่น start_row = 0;
รูปแบบเอาต์พุต
ใช้เนมสเปซมาตรฐาน; int main() ( int n, m, c = 0; cin >> n >> m; int a[n][m]; // การประมวลผลสำหรับ (int i = 0; i

ข้อมูลตัวอย่าง: 4 5 ผลลัพธ์ตัวอย่าง: 1 2 3 4 5 14 15 16 17 6 13 20 19 18 7 12 11 10 9 8

#รวม ให้ตัวเลข n และ m เติมอาร์เรย์ n × m ในรูปแบบกระดานหมากรุก โดยเซลล์ที่มีสีหนึ่งจะเติมด้วยศูนย์ และเซลล์ที่มีสีอื่นจะเติมด้วยตัวเลขธรรมชาติจากบนลงล่าง จากซ้ายไปขวา หมายเลข 1 เขียนอยู่ที่มุมซ้ายบน<= n + 1; i++) { for (int j = 0; j <= m + 1; j++) { a[i][j] = -1; } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { a[i][j] = 0; } } int num = 0, row = 1, col = 0; while (num < n * m) { while (a == 0) { col++; num++; a = num; } while (a == 0) { row++; num++; a = num; } while (a == 0) { col--; num++; a = num; } while (a == 0) { row--; num++; a = num; } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { if (a[i][j] % 10 == a[i][j]) cout << " "; else if (a[i][j] % 100 == a[i][j]) cout << " "; else if (a[i][j] % 1000 == a[i][j]) cout << " "; cout << a[i][j]; } cout << endl; } return 0; }

0 0

ป้อนตัวเลขสองตัว n และ m ไม่เกิน 100

งานห้องปฏิบัติการสำหรับโรงเรียนและมหาวิทยาลัยในการแก้ปัญหาการประมวลผลอาร์เรย์สองมิติในภาษา C รายการงานในห้องปฏิบัติการ (การคลิกลิงก์จะนำคุณไปยังวิธีแก้ไขปัญหา ถ้ามี):

งานเพิ่มเติม:

ประสิทธิภาพของโปรแกรมทั้งหมดได้รับการทดสอบใน CodeBlocks 16.01 (MinGW, Windows 10) คุณสามารถเสนอวิธีแก้ปัญหาให้กับโปรแกรมที่ยังไม่ได้รับการแก้ไขและข้อเสนอแนะสำหรับการปรับปรุงโปรแกรมที่มีอยู่ในความคิดเห็นที่ด้านล่างของหน้า

ดาวน์โหลดไฟล์ห้องปฏิบัติการและซอร์สโค้ดทั้งหมดของโปรแกรมในไฟล์เก็บถาวร:


คุณยังสามารถสั่งซื้อโซลูชันสำหรับงานในห้องปฏิบัติการของคุณด้วยภาษา C++ และอื่นๆ อีกมากมาย:

หมายเลข 1: กำหนดอาร์เรย์สองมิติ ค้นหาผลรวมขั้นต่ำขององค์ประกอบของสตริง แก้ไขปัญหาโดยไม่ต้องใช้อาร์เรย์หนึ่งมิติเพิ่มเติม

#รวม ภารกิจที่ 3 ภารกิจที่ 3 int main() ( int *arr; int x, y, i, j, ผลรวม = 0, นาที = 0, minstr = 0; srand(เวลา(NULL)); x = 2 + rand() % 10; y = 2 + rand() % 6; arr = (int*)malloc(x*y*sizeof(int)); printf("อาร์เรย์ %d x %d: \n", x, y);

ลำดับที่ 2: กำหนดพิกัดขององค์ประกอบที่ใกล้เคียงกับค่าเฉลี่ยขององค์ประกอบอาร์เรย์ทั้งหมด

#รวม ภารกิจที่ 3 ภารกิจที่ 3 ภารกิจที่ 3 int main() ( int *arr; int x, y, i, j, minx = 0, miny = 0; float ssum = 0; srand(เวลา(NULL)); x = 1 + rand() % 10; y = 1 + rand() % 7; arr = (int*)malloc(x*y*sizeof(int)); printf("อาร์เรย์ %d x %d: \n", x, y);

ลำดับที่ 9: ให้อาร์เรย์สองมิติของคอลัมน์จำนวนคู่ สลับคอลัมน์ของครึ่งซ้ายของอาร์เรย์กับคอลัมน์ของครึ่งขวา

#รวม ภารกิจที่ 3 ภารกิจที่ 3 int main() ( int *arr; int x, y, i, j, d; srand(เวลา(NULL)); x = 1 + แรนด์() % 10; y = 2 * (1 + แรนด์() % 3 ); arr = (int*)malloc(x*y*sizeof(int)); printf("อาร์เรย์ %d x %d: \n", x, y);

หมายเลข 14: สำหรับแต่ละแถวของอาร์เรย์สองมิติ ให้ค้นหาจำนวนองค์ประกอบที่มีหลักสุดท้ายคือ a

#รวม ภารกิจที่ 3 ภารกิจที่ 3 int main() ( int *arr; int x, y, i, j, a, count; srand(เวลา(NULL)); printf("ป้อน a: "); scanf("%d", &a); x = 1 + rand() % 10; y = 1 + rand() % 7; arr = (int*)malloc(x*y*sizeof(int)); printf("มวล %d x %d: \n", x, y); สำหรับ (i = 0; i

ลำดับที่ 21: รับอาร์เรย์สองมิติb เมื่อพิจารณาว่ามันเป็นเมทริกซ์, ทรานสโพส b

#รวม ภารกิจที่ 3 ภารกิจที่ 3 int main() ( int *arr, *arrT, x, y, i, j; srand(เวลา(NULL)); x = 1 + แรนด์() % 7; y = 1 + แรนด์() % 7; arr = (int*)malloc(x*y*sizeof(int)); printf("เมทริกซ์ %d x %d: \n", x, y);

หมายเลข 1 (เพิ่มเติม): กำหนดอาร์เรย์สองมิติ จัดเรียงบรรทัดตามลำดับที่ไม่ลดลงขององค์ประกอบแรก

#รวม ภารกิจที่ 3 ภารกิจที่ 3 int main() ( int *arr, x, y, i, j, k, d, max = 0; srand(เวลา(NULL)); x = 1 + rand() % 10; y = 1 + rand() % 7; arr = (int*)malloc(x*y*sizeof(int)); printf("อาร์เรย์ %d x %d: \n", x, y)) สูงสุด = j; เค = 0; เค

ลำดับที่ 2 (เพิ่มเติม): พิจารณาว่าเมทริกซ์จตุรัสที่กำหนดเป็นแบบออร์โธนอร์มอลหรือไม่ เช่น โดยผลคูณสเกลาร์ของแต่ละคู่ของสตริงที่แตกต่างกันคือ 0 และผลิตภัณฑ์สเกลาร์ของแต่ละสตริงด้วยตัวมันเองคือ 1

#รวม ภารกิจที่ 3 int main() ( int *arr; int x, i, j, k, sum = 0; printf("ระบุขนาดของเมทริกซ์จตุรัส: "); scanf("%d", &x); arr = (int *)malloc(x*x*sizeof(int)); printf("ป้อนองค์ประกอบของเมทริกซ์ %d x %d: \n", x, x);

หมายเลข 3 (เพิ่มเติม): กำหนดอาร์เรย์สองมิติแบบสี่เหลี่ยม ค้นหาผลรวมขององค์ประกอบของแต่ละเส้นทแยงมุมที่ขนานกับเส้นรอง

#รวม ภารกิจที่ 3 ภารกิจที่ 3 int main() ( int *arr; int x, y, i, j, sum; srand(เวลา(NULL)); x = 2 + rand() % 6; arr = (int*)malloc(x*y* sizeof(int)); printf("อาร์เรย์ %d x %d: \n", x, x);

ปัญหาเกี่ยวกับอาร์เรย์สองมิติ

1) กำหนดอาร์เรย์จำนวนเต็มสองมิติ สร้างโปรแกรม:

ก) การแสดงองค์ประกอบที่มุมขวาบนของอาร์เรย์

b) การแสดงองค์ประกอบที่อยู่ในมุมซ้ายล่างของอาร์เรย์

c) การแสดงองค์ประกอบใด ๆ ของแถวที่สองของอาร์เรย์

d) การแสดงองค์ประกอบใด ๆ ของคอลัมน์ที่สามของอาร์เรย์

e) การแสดงองค์ประกอบอาร์เรย์ใด ๆ บนหน้าจอ

2) กำหนดอาร์เรย์จำนวนเต็มสองมิติ แลกเปลี่ยน:

ก) องค์ประกอบที่อยู่ในมุมบนขวาและมุมซ้ายล่าง

b) องค์ประกอบที่อยู่ในมุมล่างขวาและมุมซ้ายบน

3) จำนวนของเส้นที่ทราบตำแหน่งขององค์ประกอบของเส้นทแยงมุมหลักของอาร์เรย์จำนวนเต็มสองมิติ แสดงค่าขององค์ประกอบนี้

4) จอแสดงผล (ในหนึ่งบรรทัด):

ก) องค์ประกอบทั้งหมดของเส้นทแยงมุมหลักของอาเรย์

b) องค์ประกอบทั้งหมดของเส้นทแยงมุมหลักของอาเรย์ เริ่มต้นด้วยองค์ประกอบที่มุมขวาล่าง

5) แทนที่ค่าขององค์ประกอบทั้งหมดของเส้นทแยงมุมหลักของอาร์เรย์จำนวนเต็มด้วยศูนย์

6) แทนที่ค่าขององค์ประกอบทั้งหมดของเส้นทแยงมุมด้านข้างของอาร์เรย์จำนวนเต็มด้วยค่าเท่ากับ 100

7) กำหนด:

ก) ผลรวมขององค์ประกอบของเส้นทแยงมุมหลักของอาร์เรย์

b) ผลรวมขององค์ประกอบของเส้นทแยงมุมรองของอาเรย์

c) ค่าเฉลี่ยเลขคณิตขององค์ประกอบของเส้นทแยงมุมหลักของอาร์เรย์

d) ค่าเฉลี่ยเลขคณิตขององค์ประกอบของเส้นทแยงมุมรองของอาร์เรย์

e) องค์ประกอบขั้นต่ำ (สูงสุด) ของเส้นทแยงมุมหลักของอาร์เรย์

f) องค์ประกอบสูงสุด (ขั้นต่ำ) ของเส้นทแยงมุมด้านข้างของอาร์เรย์จริง

g) พิกัดขององค์ประกอบสูงสุดแรกของเส้นทแยงมุมหลัก

h) พิกัดขององค์ประกอบขั้นต่ำสุดแรกของเส้นทแยงมุมหลัก

ก) แสดงองค์ประกอบทั้งหมดของแถวที่ห้าของอาร์เรย์

b) แสดงองค์ประกอบทั้งหมดของแถวที่สามของอาร์เรย์ เริ่มต้นด้วยองค์ประกอบสุดท้ายของบรรทัดนี้

c) แสดงองค์ประกอบทั้งหมดของคอลัมน์ที่ s ของอาร์เรย์

d) แทนที่ค่าขององค์ประกอบทั้งหมดของแถวที่สองของอาร์เรย์ด้วยหมายเลข 5

e) แทนที่ค่าขององค์ประกอบทั้งหมดของคอลัมน์ที่ห้าด้วยหมายเลข 10

f) กำหนดองค์ประกอบสูงสุด (ขั้นต่ำ) ของคอลัมน์ที่สาม

9) รับอาร์เรย์จำนวนเต็มสองมิติ สร้างโปรแกรม:

ก) การคำนวณผลคูณของสององค์ประกอบใดๆ ของแถวอาร์เรย์ใดๆ

b) ผลรวมขององค์ประกอบทั้งหมดของแถวใด ๆ ของอาร์เรย์

10) กำหนดอาร์เรย์จำนวนเต็มสองมิติ กำหนด:

ก) ก) ผลรวมขององค์ประกอบในคอลัมน์ใดในอาร์เรย์มีค่าน้อยกว่าในคอลัมน์แรกหรือคอลัมน์สุดท้าย

b) b) เส้นใดที่ผลคูณขององค์ประกอบมีค่ามากกว่าในวินาทีหรือที่สาม

11) กำหนดอาร์เรย์จำนวนเต็มสองมิติขนาด 10 x 10 แสดงส่วนของอาร์เรย์:

ก) ตั้งอยู่เหนือเส้นทแยงมุมหลัก



b) ตั้งอยู่ต่ำกว่าเส้นทแยงมุมหลัก

c) ตั้งอยู่เหนือเส้นทแยงมุมด้านข้าง

d) ตั้งอยู่ด้านล่างเส้นทแยงมุมด้านข้าง

12) รับอาร์เรย์จำนวนเต็มสองมิติ:

ก) ในแต่ละคอลัมน์ค้นหาองค์ประกอบสูงสุด (ขั้นต่ำ)

b) พิกัดขององค์ประกอบสูงสุด (ขั้นต่ำ)

c) ผลรวมขององค์ประกอบคี่ในแต่ละคอลัมน์ (แถว)

d) จำนวนองค์ประกอบที่เป็นทวีคูณของ A หรือ B

e) ค้นหาบรรทัดที่มีผลรวมองค์ประกอบสูงสุด

f) ค้นหาคอลัมน์ที่มีผลรวมองค์ประกอบขั้นต่ำ

  • ทางการศึกษา: เพื่อส่งเสริมการก่อตัวของแนวคิดของอาเรย์สองมิติและคุณสมบัติพื้นฐานของเมทริกซ์จตุรัส
  • พิจารณาการกระทำที่สามารถทำได้กับเมทริกซ์ แนะนำอัลกอริธึมการประมวลผลเมทริกซ์มาตรฐานในภาษาปาสคาล
  • สร้างเงื่อนไขสำหรับการพัฒนาความสามารถในการแก้อัลกอริธึมด้วยอาร์เรย์สองมิติ
  • การพัฒนา:
  • สร้างเงื่อนไขในการพัฒนาทักษะในการทำงานในระยะเวลาที่จำกัด การพัฒนาทักษะการทำงานอิสระ และการพัฒนาทักษะการจดบันทึก

ทางการศึกษา:

เพื่อส่งเสริมการสร้างความสะดวกสบายทางจิตใจในการทำงานในห้องเรียน การพัฒนาความสงบ ทัศนคติที่รับผิดชอบต่องาน และเพิ่มแรงจูงใจในกิจกรรมการศึกษา

ประเภทบทเรียน: รวม

วิธีการสอน: บรรยาย, งานอิสระ

รูปแบบการจัดองค์กร: งานส่วนหน้า งานเดี่ยว

1. ช่วงเวลาขององค์กร

สวัสดี.
มีการรายงานหัวข้อนี้แล้ว
ตั้งเป้าหมายและวัตถุประสงค์ของบทเรียน

2. การปรับปรุงความรู้ที่ได้รับ

ประเด็นหลักของหัวข้อที่แล้วเป็นการพูดด้วยวาจา: “อาร์เรย์หนึ่งมิติ” แบบสำรวจหน้าผากขนาดเล็กเกี่ยวกับคำจำกัดความพื้นฐาน

3. การตั้งเป้าหมาย การตั้งงาน:

  • กำหนดแนวคิดของอาเรย์สองมิติ
  • พิจารณารูปแบบสัญลักษณ์ของอาเรย์สองมิติ
  • พิจารณาคุณสมบัติพื้นฐานของเมทริกซ์จตุรัส
  • พิจารณาการกระทำที่สามารถทำได้กับเมทริกซ์
  • ทำความคุ้นเคยกับอัลกอริธึมการประมวลผลเมทริกซ์ทั่วไปในภาษาปาสคาล
  • สร้างเงื่อนไขสำหรับการพัฒนาความสามารถในการแก้อัลกอริธึมด้วยอาร์เรย์สองมิติ
  • 4. การบรรยาย

    คำนิยาม.

    อาร์เรย์สองมิติคือชุดของข้อมูลที่แต่ละค่าขึ้นอยู่กับตัวเลขสองตัว ซึ่งถือได้ว่าเป็นดัชนีคอลัมน์ในเมทริกซ์

    รูปแบบการบันทึก

    <имя>: อาร์เรย์[n_index_1..in_index_1, n_index_2 ..in_index_2] ของ <тип>

    A: อาร์เรย์ของจำนวนเต็ม;

    ในการใช้องค์ประกอบอาร์เรย์ คุณต้องระบุชื่ออาร์เรย์และดัชนีขององค์ประกอบ ดัชนีแรกสอดคล้องกับหมายเลขแถว ดัชนีที่สองตรงกับหมายเลขคอลัมน์ ตัวอย่างเช่น:

    สำหรับ i:=1 ถึง n ทำ
    สำหรับ j:=1 ถึง n ทำ
    ก:= สุ่ม(100);

    เมื่อเริ่มต้นอาร์เรย์สองมิติ แต่ละบรรทัดจะอยู่ในวงเล็บคู่พิเศษ:

    const a:mas= ((2,3,1,0),
    (1,9,1,3),
    (3,5,7,0));

    อะนาล็อกของอาร์เรย์ปาสคาลในคณิตศาสตร์คือเมทริกซ์ เมทริกซ์ที่มีจำนวนแถวเท่ากับจำนวนคอลัมน์เรียกว่า สแควร์ A(n,n) – เมทริกซ์จตุรัส

    คุณสมบัติพื้นฐานของเมทริกซ์จตุรัส:

    1. เมทริกซ์จตุรัสมีเส้นทแยงมุมหลักและเส้นทแยงมุมด้านข้าง ตัวอย่างเช่น สำหรับเมทริกซ์ A เส้นทแยงมุมหลักจะมีองค์ประกอบ 1,5 และ 9 และเส้นทแยงมุมรองจะมีองค์ประกอบ 3, 5 และ 7

    i=j – องค์ประกอบต่างๆ ตั้งอยู่บนเส้นทแยงมุมหลัก
    i> j – องค์ประกอบอยู่ใต้เส้นทแยงมุมหลัก
    ฉัน i?j – องค์ประกอบต่างๆ อยู่บนเส้นทแยงมุมหลักและอยู่ด้านล่าง
    i+j= n+1– องค์ประกอบจะอยู่ที่เส้นทแยงมุมด้านข้าง
    ฉัน+เจ< n+1– элементы расположены над побочной диагональю;
    i+j> n+1– องค์ประกอบอยู่ใต้เส้นทแยงมุมด้านข้าง

    2. เรียกว่าเมทริกซ์จตุรัสซึ่งองค์ประกอบทั้งหมดไม่รวมองค์ประกอบของเส้นทแยงมุมหลักมีค่าเท่ากับศูนย์ เรียกว่า เมทริกซ์แนวทแยง

    3. เรียกเมทริกซ์แนวทแยงซึ่งองค์ประกอบทั้งหมดบนเส้นทแยงมุมหลักมีค่าเท่ากับ 1 เรียกว่าเมทริกซ์แนวทแยง เมทริกซ์เอกลักษณ์

    4. หากคุณสลับแถวและคอลัมน์ในเมทริกซ์ A (m,n) คุณจะได้เมทริกซ์ A t (m,n) ซึ่งเรียกว่าเมทริกซ์ทรานสโพส

    การดำเนินการพื้นฐานที่สามารถทำได้บนเมทริกซ์

    • สรุป;
    • ค้นหาความแตกต่าง
    • ผลคูณของเมทริกซ์ด้วยจำนวนที่แน่นอน
    • ผลคูณของเมทริกซ์สองตัว

    อัลกอริธึมการประมวลผลเมทริกซ์ทั่วไปใน Pascal

    1. ผลลัพธ์ของเมทริกซ์ในรูปแบบของตาราง:
    2. สำหรับฉัน:= 1 ถึง n ทำ
      เริ่ม
      สำหรับ j:= 1 ถึง m ทำ
      เขียน(ก:4);
      เขียน
      จบ;

    3. การใช้เครื่องกำเนิดตัวเลขสุ่ม:
    4. สุ่ม;
      สำหรับ i:=1 ถึง m ทำ
      เริ่ม
      สำหรับ j:=1 ถึง n ทำ
      เริ่ม
      ก:=สุ่ม(100)-10;
      เขียน(ก:4);
      จบ;
      เขียน;
      จบ;

    5. วิธีที่ 2 ในการแสดงเมทริกซ์ในรูปแบบของตาราง:
    6. สำหรับฉัน:= 1 ถึง n ทำ
      สำหรับ j:= 1 ถึง m ทำ
      ถ้า j>m ให้เขียน (a:4)
      อย่างอื่น writeln(a:4);

    7. ผลรวมของเมทริกซ์:
    8. สำหรับฉัน:= 1 ถึง n ทำ
      เริ่ม
      สำหรับ j:= 1 ถึง m ทำ
      ค:=a+ ข
      จบ;

    9. การย้ายเมทริกซ์เป็นภาพสะท้อนขององค์ประกอบที่สัมพันธ์กับเส้นทแยงมุมหลัก คุณสามารถทำได้โดยการแนะนำอาร์เรย์ใหม่:

    สำหรับฉัน:= 1 ถึง n ทำ
    สำหรับ j:= 1 ถึง n ทำ
    ข=ก;

    5. การควบคุมเบื้องต้น

    “แผนที่โครงร่าง” 2 ตัวเลือก

    1 ตัวเลือก

    1. แก้ไขความไม่ถูกต้องในคำอธิบายของอาร์เรย์สองมิติ:
    2. วาร์
      A= อาร์เรย์ของจำนวนเต็ม;

      ... ... ของอาร์เรย์สองมิติ แต่ละบรรทัดจะอยู่ในวงเล็บคู่เพิ่มเติม:

      const a:mas= ((2,3,1,0),
      (1,9,1,3),
      (3,5,7,0));

    3. กรอกคำจำกัดความที่ขาดหายไป:
    4. การดำเนินการหลักที่สามารถทำได้กับเมทริกซ์คือ: การบวก ผลคูณของเมทริกซ์สองตัว,….,….

    5. กรอกคำจำกัดความที่ขาดหายไป:
    6. เมทริกซ์ที่มีจำนวนแถวเท่ากับจำนวนคอลัมน์เรียกว่า.... -

    7. ค้นหาข้อผิดพลาดในอัลกอริทึม:

    สำหรับฉัน:= 1 ถึง n ทำ
    เริ่ม
    สำหรับ j:= 1 ถึง m ทำ
    ค:=ก+ก
    จบ;

    ตัวเลือกที่ 2

    1. แก้ไขความไม่ถูกต้องในคำอธิบายอาร์เรย์:

    ค่าคงที่
    n=4; ม.=3;
    พิมพ์
    mas:อาร์เรย์ของจำนวนเต็ม;

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

    3. กรอกคำจำกัดความที่ขาดหายไป:
    4. เมทริกซ์แนวทแยงซึ่งองค์ประกอบทั้งหมดบนเส้นทแยงมุมหลักเท่ากับ ... เรียกว่าเมทริกซ์แนวทแยงซึ่งองค์ประกอบทั้งหมดบนเส้นทแยงมุมหลักเท่ากับ ... เมทริกซ์เอกลักษณ์

    5. กรอกคำจำกัดความที่ขาดหายไป:
    6. เรียกว่าเมทริกซ์จตุรัสซึ่งองค์ประกอบทั้งหมดไม่รวมองค์ประกอบของเส้นทแยงมุมหลักมีค่าเท่ากับศูนย์ … … .

    7. ค้นหาข้อผิดพลาดในอัลกอริทึม:

    สุ่ม;
    สำหรับ i:=1 ถึง m ทำ
    เริ่ม
    สำหรับ j:=1 ถึง n ทำ
    เริ่ม
    ก:=สุ่ม(100)-10;
    จบ;
    จบ;

    อัลกอริทึมทำงานทั่วไปอะไร?

    อัลกอริทึมในภาษาปาสคาล

    1. เขียนโปรแกรมที่สำหรับเมทริกซ์จำนวนเต็ม 3x4 ให้หาค่าเฉลี่ยเลขคณิตขององค์ประกอบและจำนวนองค์ประกอบบวกในแต่ละแถว ภาคผนวก 2
    2. โปรแกรมเฉลี่ย_n;
      ค่าคอนส ม.=3;
      n= 4;
      var

      i,j,n_pos_el:จำนวนเต็ม;
      กลาง:จริง;
      เริ่ม
      สำหรับ i:=1 ถึง m ทำ
      สำหรับ j:=1 ถึง n อ่าน(a);
      sred:=0;
      สำหรับ i:=1 ถึง m จะเริ่มต้น
      n_pos_el:=0;
      สำหรับ j:=1 ถึง n ให้เริ่มต้น
      sred:=sred+a;
      ถ้า a>0 แล้ว inc(n_pos_el);
      จบ;
      writeln("V",i,"-oi stroke",n_pos_el,"polozitelnix elementov");
      จบ;
      sred:=sred/m/n;
      writeln("สเรดนี อาริฟเมติเชสโค:",sred:6:2);
      จบ.

    3. เขียนโปรแกรมสำหรับเมทริกซ์จำนวนเต็มสี่เหลี่ยมขนาด 3x4 ให้กำหนดจำนวนคอลัมน์ซ้ายสุดที่มีเฉพาะองค์ประกอบที่เป็นบวก หากไม่มีคอลัมน์ดังกล่าว ข้อความจะปรากฏขึ้น ภาคผนวก 3

    โปรแกรม num_posit;
    ค่าคอนส ม.=3;
    n=4;
    var
    a: อาร์เรย์ของจำนวนเต็ม;
    ฉัน, เจ, num: จำนวนเต็ม;
    all_posit:บูลีน;
    เริ่ม
    สุ่ม;
    สำหรับ i:=1 ถึง m ทำ
    เริ่ม
    สำหรับ j:=1 ถึง n ทำ
    เริ่ม
    ก:=สุ่ม(100)-10;
    เขียน(ก:4);
    จบ;
    เขียน;
    จบ;
    หมายเลข:=0;
    สำหรับ j:=1 ถึง n ให้เริ่มต้น
    all_posit:=จริง;
    สำหรับ i:=1 ถึง m ทำ
    ถ้าก< 0 then
    เริ่ม
    all_posit:=เท็จ;
    หยุดพัก; จบ;
    ถ้า all_posit ให้เริ่มต้น
    หมายเลข:=j; หยุดพัก; จบ;
    จบ;
    ถ้า num = 0 แล้ว
    writeln("Takix stolbcov net")
    อื่น
    writeln("คอลัมน์หมายเลข:",num);
    จบ.

    นักเรียนอัปโหลดไฟล์ในภาษา Pascal วิเคราะห์อัลกอริทึมเหล่านี้ ดูผลลัพธ์ของการทำงานของโปรแกรม และตอบคำถามเพิ่มเติม:

    1. อาร์เรย์สองมิติถูกจัดระเบียบอย่างไร?
    2. ขั้นตอน inc หมายถึงอะไร
    3. ขั้นตอนการหยุดพักหมายถึงอะไร?
    4. เครื่องกำเนิดตัวเลขสุ่มใช้งานอย่างไร?

    6. การพัฒนาทักษะการแก้ปัญหา

    การแก้ปัญหาบนการ์ดแต่ละใบอย่างอิสระในสภาพแวดล้อมแบบอัลกอริธึม

    ตัวอย่างงาน:

    1. รับเมทริกซ์ A ขนาด 5x5 ที่มีองค์ประกอบสุ่ม ค้นหาผลรวมขององค์ประกอบเมทริกซ์ทั้งหมด
    2. แสดงตารางพีทาโกรัส
    3. ค้นหาผลรวมขององค์ประกอบที่เป็นบวกของคอลัมน์ที่ระบุของเมทริกซ์ A ของจำนวนเต็ม 5x5

    7. สรุปบทเรียน การบ้าน

    สรุป.. การประเมินระดับการดูดซึม

    สรุป D/Z งาน:

    สำหรับทุกคน:

    1. กำหนดอาร์เรย์สี่เหลี่ยมสองมิติ ค้นหาหมายเลขบรรทัดที่มีองค์ประกอบทั้งหมดเป็นศูนย์
    2. กำหนดอาร์เรย์สี่เหลี่ยมสองมิติ ค้นหาหมายเลขบรรทัดซึ่งองค์ประกอบในแต่ละองค์ประกอบจะเหมือนกัน
    3. กำหนดองค์ประกอบขั้นต่ำของอาร์เรย์สองมิติ พิมพ์จำนวนบรรทัดที่มีจำนวนองค์ประกอบขั้นต่ำสูงสุด ถ้ามี
    4. รับอาร์เรย์สองมิติ ค้นหาแถวที่มีผลรวมขององค์ประกอบมากที่สุดและน้อยที่สุด

    แสดงสตริงที่พบและผลรวมขององค์ประกอบ

    สำหรับนักเรียนที่มีความเข้าใจเกี่ยวกับอาร์เรย์สองมิติและวิธีแก้ปัญหา:

    ตัวอย่างงาน:

    1. แทนการบรรยาย - การแก้ปัญหาที่ซับซ้อนเพิ่มขึ้น
    2. รับอาร์เรย์สองมิติ แปลงตามกฎต่อไปนี้: ทำให้แถวที่มีหมายเลข N เป็นคอลัมน์ที่มีหมายเลข N และให้คอลัมน์เป็นแถว
    3. ในอาร์เรย์ X สองมิติ ตัวเลขทั้งหมดจะแตกต่างกัน ในแต่ละบรรทัด จะมีการเลือกองค์ประกอบขั้นต่ำ จากนั้นจึงเลือกค่าสูงสุดจากตัวเลขเหล่านี้
    4. พิมพ์หมายเลขบรรทัดของอาร์เรย์ X ซึ่งมีหมายเลขที่เลือกอยู่
    5. รับอาร์เรย์สองมิติ ค้นหาค่าสูงสุดขององค์ประกอบของแถวแรกและแถวสุดท้าย