ตัวอย่างการแก้ปัญหาอาร์เรย์สองมิติ ปัญหาสำหรับการแก้ปัญหาอิสระ กำหนดอาร์เรย์สองมิติของจำนวนจริง กำหนดอาร์เรย์สองมิติ
รับอาร์เรย์ 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
รูปแบบเอาต์พุต
พิมพ์ตัวเลขสองตัว: หมายเลขแถวและหมายเลขคอลัมน์ที่มีองค์ประกอบที่ใหญ่ที่สุด อาร์เรย์สองมิติ- หากมีองค์ประกอบดังกล่าวหลายรายการ องค์ประกอบที่มีหมายเลขแถวล่างจะปรากฏขึ้น และหากหมายเลขแถวเท่ากัน องค์ประกอบที่มีหมายเลขคอลัมน์ด้านล่างก็จะปรากฏขึ้น
#รวม
สำหรับ (int i = 0; i
สูงสุด) ( สูงสุด = a[i][j]; max_i = i; max_j = j; ) ) ) พิจารณา
ข้อมูลตัวอย่าง: 5 ผลลัพธ์ตัวอย่าง: * . * . * . * * * . * * * * * . * * * . * . * . *#รวม
ให้เลขคี่ 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#รวม
#รวม
รับอาร์เรย์สองมิติและตัวเลขสองตัว: i และ j สลับคอลัมน์ที่มีหมายเลข i และ j ในอาร์เรย์
รูปแบบการป้อนข้อมูล
โปรแกรมได้รับเป็นอาร์เรย์อินพุตขนาด n และ m ไม่เกิน 100 จากนั้นเป็นองค์ประกอบอาร์เรย์ ตามด้วยตัวเลข i และ j
รูปแบบเอาต์พุต
พิมพ์ผลลัพธ์
#รวม
) ) cin >> x >> y;
// กำลังประมวลผลสำหรับ (int i = 0; i
ข้อมูลตัวอย่าง: 3 0 1 2 1 2 3 2 3 4 ผลลัพธ์ตัวอย่าง:ปัญหา #5#รวม
ใช้เนมสเปซมาตรฐาน; int main() ( int n; bool symmetric; cin >> n; int a; // กรอก (int i = 0; i
> ก[i][เจ];
) ) // การประมวลผลสมมาตร = จริง;
สำหรับ (int i = 0; i
#รวม
ตัวอย่างอินพุต 2:
ตัวอย่างผลลัพธ์ 2:
ใช้เนมสเปซมาตรฐาน; int main() ( int n, k; cin >> n; int a[n][n]; // กรอก (int i = 0; i
#รวม
> ก[i][เจ];
) ) cin >> k;
รูปแบบการป้อนข้อมูล
// การประมวลผลและเอาต์พุตสำหรับ (int i = 0; i
รูปแบบเอาต์พุต
โปรแกรมควรพิมพ์หมายเลขแถวที่มีที่นั่งว่างติดกัน k รายการ หากมีแถวดังกล่าวหลายแถว ให้พิมพ์จำนวนแถวที่เหมาะสมที่สุดที่เล็กที่สุด หากไม่มีแถวที่เหมาะสมให้พิมพ์เลข 0
#รวม
) ) cin >> k;
// กำลังประมวลผลสำหรับ (int i = 0; i
รูปแบบการป้อนข้อมูล
ปัญหาหมายเลข 9
รูปแบบเอาต์พุต
จากอาร์เรย์สี่เหลี่ยมขนาด n×m หมุน 90 องศาตามเข็มนาฬิกา เขียนผลลัพธ์ลงในอาร์เรย์ m×n ใหม่
#รวม
ใช้เนมสเปซมาตรฐาน; 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
รูปแบบเอาต์พุต
#รวม
เมื่อกำหนดตัวเลข 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
#รวม
ใช้เนมสเปซมาตรฐาน; 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
#รวม
= 0; คอลัม--) ( ถ้า (แถว
ปัญหาหมายเลข 12
รูปแบบการป้อนข้อมูล
อย่างอื่น start_row = 0;
รูปแบบเอาต์พุต
ใช้เนมสเปซมาตรฐาน; int main() ( int n, m, c = 0; cin >> n >> m; int a[n][m]; // การประมวลผลสำหรับ (int i = 0; i
#รวม
0 0 |
ป้อนตัวเลขสองตัว n และ m ไม่เกิน 100
งานห้องปฏิบัติการสำหรับโรงเรียนและมหาวิทยาลัยในการแก้ปัญหาการประมวลผลอาร์เรย์สองมิติในภาษา C รายการงานในห้องปฏิบัติการ (การคลิกลิงก์จะนำคุณไปยังวิธีแก้ไขปัญหา ถ้ามี):
งานเพิ่มเติม:ประสิทธิภาพของโปรแกรมทั้งหมดได้รับการทดสอบใน CodeBlocks 16.01 (MinGW, Windows 10) คุณสามารถเสนอวิธีแก้ปัญหาให้กับโปรแกรมที่ยังไม่ได้รับการแก้ไขและข้อเสนอแนะสำหรับการปรับปรุงโปรแกรมที่มีอยู่ในความคิดเห็นที่ด้านล่างของหน้า
ดาวน์โหลดไฟล์ห้องปฏิบัติการและซอร์สโค้ดทั้งหมดของโปรแกรมในไฟล์เก็บถาวร:
คุณยังสามารถสั่งซื้อโซลูชันสำหรับงานในห้องปฏิบัติการของคุณด้วยภาษา C++ และอื่นๆ อีกมากมาย:
หมายเลข 1: กำหนดอาร์เรย์สองมิติ ค้นหาผลรวมขั้นต่ำขององค์ประกอบของสตริง แก้ไขปัญหาโดยไม่ต้องใช้อาร์เรย์หนึ่งมิติเพิ่มเติม
#รวมลำดับที่ 2: กำหนดพิกัดขององค์ประกอบที่ใกล้เคียงกับค่าเฉลี่ยขององค์ประกอบอาร์เรย์ทั้งหมด
#รวมลำดับที่ 9: ให้อาร์เรย์สองมิติของคอลัมน์จำนวนคู่ สลับคอลัมน์ของครึ่งซ้ายของอาร์เรย์กับคอลัมน์ของครึ่งขวา
#รวมหมายเลข 14: สำหรับแต่ละแถวของอาร์เรย์สองมิติ ให้ค้นหาจำนวนองค์ประกอบที่มีหลักสุดท้ายคือ a
#รวมลำดับที่ 21: รับอาร์เรย์สองมิติb เมื่อพิจารณาว่ามันเป็นเมทริกซ์, ทรานสโพส b
#รวมหมายเลข 1 (เพิ่มเติม): กำหนดอาร์เรย์สองมิติ จัดเรียงบรรทัดตามลำดับที่ไม่ลดลงขององค์ประกอบแรก
#รวมลำดับที่ 2 (เพิ่มเติม): พิจารณาว่าเมทริกซ์จตุรัสที่กำหนดเป็นแบบออร์โธนอร์มอลหรือไม่ เช่น โดยผลคูณสเกลาร์ของแต่ละคู่ของสตริงที่แตกต่างกันคือ 0 และผลิตภัณฑ์สเกลาร์ของแต่ละสตริงด้วยตัวมันเองคือ 1
#รวมหมายเลข 3 (เพิ่มเติม): กำหนดอาร์เรย์สองมิติแบบสี่เหลี่ยม ค้นหาผลรวมขององค์ประกอบของแต่ละเส้นทแยงมุมที่ขนานกับเส้นรอง
#รวมปัญหาเกี่ยวกับอาร์เรย์สองมิติ
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= n+1– องค์ประกอบจะอยู่ที่เส้นทแยงมุมด้านข้าง
ฉัน+เจ< n+1– элементы расположены над побочной
диагональю;
i+j> n+1– องค์ประกอบอยู่ใต้เส้นทแยงมุมด้านข้าง
2. เรียกว่าเมทริกซ์จตุรัสซึ่งองค์ประกอบทั้งหมดไม่รวมองค์ประกอบของเส้นทแยงมุมหลักมีค่าเท่ากับศูนย์ เรียกว่า เมทริกซ์แนวทแยง
3. เรียกเมทริกซ์แนวทแยงซึ่งองค์ประกอบทั้งหมดบนเส้นทแยงมุมหลักมีค่าเท่ากับ 1 เรียกว่าเมทริกซ์แนวทแยง เมทริกซ์เอกลักษณ์
4. หากคุณสลับแถวและคอลัมน์ในเมทริกซ์ A (m,n) คุณจะได้เมทริกซ์ A t (m,n) ซึ่งเรียกว่าเมทริกซ์ทรานสโพส
การดำเนินการพื้นฐานที่สามารถทำได้บนเมทริกซ์
- สรุป;
- ค้นหาความแตกต่าง
- ผลคูณของเมทริกซ์ด้วยจำนวนที่แน่นอน
- ผลคูณของเมทริกซ์สองตัว
อัลกอริธึมการประมวลผลเมทริกซ์ทั่วไปใน Pascal
- ผลลัพธ์ของเมทริกซ์ในรูปแบบของตาราง:
- การใช้เครื่องกำเนิดตัวเลขสุ่ม:
- วิธีที่ 2 ในการแสดงเมทริกซ์ในรูปแบบของตาราง:
- ผลรวมของเมทริกซ์:
- การย้ายเมทริกซ์เป็นภาพสะท้อนขององค์ประกอบที่สัมพันธ์กับเส้นทแยงมุมหลัก คุณสามารถทำได้โดยการแนะนำอาร์เรย์ใหม่:
สำหรับฉัน:= 1 ถึง n ทำ
เริ่ม
สำหรับ j:= 1 ถึง m ทำ
เขียน(ก:4);
เขียน
จบ;
สุ่ม;
สำหรับ i:=1 ถึง m ทำ
เริ่ม
สำหรับ j:=1 ถึง n ทำ
เริ่ม
ก:=สุ่ม(100)-10;
เขียน(ก:4);
จบ;
เขียน;
จบ;
สำหรับฉัน:= 1 ถึง n ทำ
สำหรับ j:= 1 ถึง m ทำ
ถ้า j>m ให้เขียน (a:4)
อย่างอื่น writeln(a:4);
สำหรับฉัน:= 1 ถึง n ทำ
เริ่ม
สำหรับ j:= 1 ถึง m ทำ
ค:=a+ ข
จบ;
สำหรับฉัน:= 1 ถึง n ทำ
สำหรับ j:= 1 ถึง n ทำ
ข=ก;
5. การควบคุมเบื้องต้น
“แผนที่โครงร่าง” 2 ตัวเลือก
1 ตัวเลือก
- แก้ไขความไม่ถูกต้องในคำอธิบายของอาร์เรย์สองมิติ:
- กรอกคำจำกัดความที่ขาดหายไป:
- กรอกคำจำกัดความที่ขาดหายไป:
- ค้นหาข้อผิดพลาดในอัลกอริทึม:
วาร์
A= อาร์เรย์ของจำนวนเต็ม;
... ... ของอาร์เรย์สองมิติ แต่ละบรรทัดจะอยู่ในวงเล็บคู่เพิ่มเติม:
const a:mas= ((2,3,1,0),
(1,9,1,3),
(3,5,7,0));
การดำเนินการหลักที่สามารถทำได้กับเมทริกซ์คือ: การบวก ผลคูณของเมทริกซ์สองตัว,….,….
เมทริกซ์ที่มีจำนวนแถวเท่ากับจำนวนคอลัมน์เรียกว่า.... -
สำหรับฉัน:= 1 ถึง n ทำ
เริ่ม
สำหรับ j:= 1 ถึง m ทำ
ค:=ก+ก
จบ;
ตัวเลือกที่ 2
- แก้ไขความไม่ถูกต้องในคำอธิบายอาร์เรย์:
ค่าคงที่
n=4; ม.=3;
พิมพ์
mas:อาร์เรย์ของจำนวนเต็ม;
- กรอกคำจำกัดความที่ขาดหายไป:
- กรอกคำจำกัดความที่ขาดหายไป:
- กรอกคำจำกัดความที่ขาดหายไป:
- ค้นหาข้อผิดพลาดในอัลกอริทึม:
...... คือชุดของข้อมูล แต่ละค่าขึ้นอยู่กับตัวเลขสองตัว ซึ่งถือได้ว่าเป็นดัชนีของคอลัมน์ในเมทริกซ์
เมทริกซ์แนวทแยงซึ่งองค์ประกอบทั้งหมดบนเส้นทแยงมุมหลักเท่ากับ ... เรียกว่าเมทริกซ์แนวทแยงซึ่งองค์ประกอบทั้งหมดบนเส้นทแยงมุมหลักเท่ากับ ... เมทริกซ์เอกลักษณ์
เรียกว่าเมทริกซ์จตุรัสซึ่งองค์ประกอบทั้งหมดไม่รวมองค์ประกอบของเส้นทแยงมุมหลักมีค่าเท่ากับศูนย์ … … .
สุ่ม;
สำหรับ i:=1 ถึง m ทำ
เริ่ม
สำหรับ j:=1 ถึง n ทำ
เริ่ม
ก:=สุ่ม(100)-10;
จบ;
จบ;
อัลกอริทึมทำงานทั่วไปอะไร?
อัลกอริทึมในภาษาปาสคาล
- เขียนโปรแกรมที่สำหรับเมทริกซ์จำนวนเต็ม 3x4 ให้หาค่าเฉลี่ยเลขคณิตขององค์ประกอบและจำนวนองค์ประกอบบวกในแต่ละแถว ภาคผนวก 2
- เขียนโปรแกรมสำหรับเมทริกซ์จำนวนเต็มสี่เหลี่ยมขนาด 3x4 ให้กำหนดจำนวนคอลัมน์ซ้ายสุดที่มีเฉพาะองค์ประกอบที่เป็นบวก หากไม่มีคอลัมน์ดังกล่าว ข้อความจะปรากฏขึ้น ภาคผนวก 3
โปรแกรมเฉลี่ย_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);
จบ.
โปรแกรม 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 วิเคราะห์อัลกอริทึมเหล่านี้ ดูผลลัพธ์ของการทำงานของโปรแกรม และตอบคำถามเพิ่มเติม:
- อาร์เรย์สองมิติถูกจัดระเบียบอย่างไร?
- ขั้นตอน inc หมายถึงอะไร
- ขั้นตอนการหยุดพักหมายถึงอะไร?
- เครื่องกำเนิดตัวเลขสุ่มใช้งานอย่างไร?
6. การพัฒนาทักษะการแก้ปัญหา
การแก้ปัญหาบนการ์ดแต่ละใบอย่างอิสระในสภาพแวดล้อมแบบอัลกอริธึม
ตัวอย่างงาน:
- รับเมทริกซ์ A ขนาด 5x5 ที่มีองค์ประกอบสุ่ม ค้นหาผลรวมขององค์ประกอบเมทริกซ์ทั้งหมด
- แสดงตารางพีทาโกรัส
- ค้นหาผลรวมขององค์ประกอบที่เป็นบวกของคอลัมน์ที่ระบุของเมทริกซ์ A ของจำนวนเต็ม 5x5
7. สรุปบทเรียน การบ้าน
สรุป.. การประเมินระดับการดูดซึม
สรุป D/Z งาน:
สำหรับทุกคน:
- กำหนดอาร์เรย์สี่เหลี่ยมสองมิติ ค้นหาหมายเลขบรรทัดที่มีองค์ประกอบทั้งหมดเป็นศูนย์
- กำหนดอาร์เรย์สี่เหลี่ยมสองมิติ ค้นหาหมายเลขบรรทัดซึ่งองค์ประกอบในแต่ละองค์ประกอบจะเหมือนกัน
- กำหนดองค์ประกอบขั้นต่ำของอาร์เรย์สองมิติ พิมพ์จำนวนบรรทัดที่มีจำนวนองค์ประกอบขั้นต่ำสูงสุด ถ้ามี
- รับอาร์เรย์สองมิติ ค้นหาแถวที่มีผลรวมขององค์ประกอบมากที่สุดและน้อยที่สุด
แสดงสตริงที่พบและผลรวมขององค์ประกอบ
สำหรับนักเรียนที่มีความเข้าใจเกี่ยวกับอาร์เรย์สองมิติและวิธีแก้ปัญหา:
ตัวอย่างงาน:
- แทนการบรรยาย - การแก้ปัญหาที่ซับซ้อนเพิ่มขึ้น
- รับอาร์เรย์สองมิติ แปลงตามกฎต่อไปนี้: ทำให้แถวที่มีหมายเลข N เป็นคอลัมน์ที่มีหมายเลข N และให้คอลัมน์เป็นแถว
- ในอาร์เรย์ X สองมิติ ตัวเลขทั้งหมดจะแตกต่างกัน ในแต่ละบรรทัด จะมีการเลือกองค์ประกอบขั้นต่ำ จากนั้นจึงเลือกค่าสูงสุดจากตัวเลขเหล่านี้
- พิมพ์หมายเลขบรรทัดของอาร์เรย์ X ซึ่งมีหมายเลขที่เลือกอยู่
- รับอาร์เรย์สองมิติ ค้นหาค่าสูงสุดขององค์ประกอบของแถวแรกและแถวสุดท้าย