Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Нахождение количества элементов с данным свойством

Тема. Понятие двумерного массива. Описание типа массива. Формирование значений элементов массива случайным образом. | Изменение значений некоторых элементов, удовлетворяющих заданному свойству | Задачи для самостоятельного решения | Вставка строк и столбцов | Задачи для самостоятельного решения | Задачи для самостоятельного решения | Тема. Самостоятельное решение задач. | Тема. Контрольная работа | Графические программы с применением массивов. |


Читайте также:
  1. I. Название и местонахождение
  2. IX. РАСПОЛОЖЕНИЕ ЭЛЕМЕНТОВ И УСТРОЙСТВ АВТОМАТА ТЯГИ
  3. Анализ содержания жиров, степени их окисленности и количества транс-изомеров в жирах и жирных кислотах
  4. Анализ токсичных элементов в пробе пищевого продукта
  5. Атомно-абсорбционный метод определения тяжелых металлов и токсичных элементов в пищевых продуктах и пищевом сырье
  6. Блок элементов
  7. Будь преданным

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

Задача 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;

Вопрос. Сравните предложенные способы решения задачи. Какой способ Вам понравился больше и почему?


Дата добавления: 2015-10-02; просмотров: 60 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Формирование значений элементов массива случайным образом и с клавиатуры и вывод их на экран| Определить, отвечает ли заданный массив некоторым требованиям

mybiblioteka.su - 2015-2024 год. (0.005 сек.)