Головна

Знаходження кількості елементів з даними властивістю

Завдання на знаходження номерів елементів із заданими властивостями і на знаходження кількості таких елементів у всьому масиві залишаться практично такими ж. У них тільки додасться другий цикл або висновок двох індексів замість одного.

завдання 1. Знайти максимальний елемент масиву і його індекси.

Так як елементи можуть повторюватися, то домовимося, що будемо запам'ятовувати тільки індекси першого максимального елемента. Опишемо процедуру, якої передається масив, і її результатом є значення максимального елемента і індекси першої зустрічі такого значення.

 Procedure Maximum (X: MyArray; n, m: integer; Var Max, Maxi, Maxj: integer); Var i, j: integer; Begin Max: = X [1, 1]; {Припустимо, що максимумом є перший елемент} Maxi: = 1; {В цьому випадку запам'ятаємо перший рядок} Maxj: = 1; {І перший стовпець} for i: = 1 to n do for j: = 1 to m do if X [i, j]> Max {якщо серед елементів масиву знайшовся більший елемент, то} then begin Max: = X [i, j]; {внесемо новий знайдене значення в змінну Мах} Maxi: = i; {І не забудемо запам'ятати індекси рядка} Maxj: = j; {І стовпці цього елемента} end; End;

завдання 2. Знайти кількість негативних елементів в кожному рядку.

Розглянемо кілька способів вирішення цього завдання.

спосіб 1 - Кількість елементів кожного рядка зберігати в одновимірному масиві (Y) відповідної розмірності. Тоді можна описати таку процедуру:

 Procedure KolOtr1 (X: MyArray2; n, m: integer; Var Y: MyArray1); Var i, j: integer; Begin for i: = 1 to n do begin Y [i]: = 0; {Записуємо початкове значення кількості елементів в відповідну колонку осередок} for j: = 1 to m do if X [i, j] <0 {якщо негативний елемент знайдений} then Inc (Y [i]); {То збільшуємо поточне значення на одиницю} end; End;

спосіб 2 - Використовувати лічильник, знаходити кількість елементів рядка і виводити значення на екран.

 Procedure KolOtr2 (X: MyArray2; n, m: integer); Var i, j, k: integer; Begin for i: = 1 to n do begin k: = 0; for j: = 1 to m do if X [i, j] <0 then Inc (k); writeln (i, '-', k); end; End;

питання. Порівняйте запропоновані шляхи вирішення завдання. Який спосіб Вам сподобався більше і чому?

Самостійне вирішення завдань. | Визначити, чи відповідає заданий масив деяким вимогам


Оператори Read і ReadLn | Виберіть із запропонованого нижче списку завдання для самостійного рішення. | Оператор вибору CASE. Вирішення задач. | Загальна форма запису циклу з лічильником | Масиви. | Чи є в даному масиві елементи з даними властивістю? | Вставка одного елемента | Вставка декількох елементів | Перестановка частини масиву | Завдання на використання одновимірних масивів |

© 2016-2022  um.co.ua - учбові матеріали та реферати