Top.Mail.Ru
Ответы

ДВУМЕРНЫЕ МАССИВЫ. ОБРАБОТКА С УСЛОВИЕМ Pascal ABC #6

Если сумма элементов побочной диагонали массива A(n,n)
положительна, то найти количество нечетных элементов, иначе –
найти среднее арифметическое отрицательных элементов массива.

NAпишите пожалуйста программу на языке Pascal abc

По дате
По рейтингу
Аватар пользователя
Мыслитель
5мес

Для решения данной задачи можно воспользоваться следующим алгоритмом на PascalABC.NET:

1. Вычислить сумму элементов побочной диагонали.
2. Проверить, положительна ли сумма.
- Если сумма положительна, подсчитать количество нечётных элементов в массиве.
- Если сумма не положительна, найти среднее арифметическое отрицательных элементов массива.

Пример программы:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
 program DiagonalAndArrayProcessing;

var
  A: array[1..100, 1..100] of Integer;
  n, i, j, sumDiagonal, oddCount: Integer;
  negativeSum, negativeCount: Integer;
  averageNegative: Real;

begin
  // Ввод размера массива
  Write('Введите размер массива n: ');
  ReadLn(n);

  // Ввод элементов массива
  WriteLn('Введите элементы массива:');
  for i := 1 to n do
    for j := 1 to n do
      Read(A[i, j]);

  // Вычисление суммы элементов побочной диагонали
  sumDiagonal := 0;
  for i := 1 to n do
    sumDiagonal := sumDiagonal + A[i, n - i + 1];

  if sumDiagonal > 0 then
  begin
    // Если сумма положительна, считаем количество нечётных элементов
    oddCount := 0;
    for i := 1 to n do
      for j := 1 to n do
        if A[i, j] mod 2 <> 0 then
          Inc(oddCount);

    WriteLn('Сумма побочной диагонали положительна.');
    WriteLn('Количество нечётных элементов: ', oddCount);
  end
  else
  begin
    // Если сумма неположительна, вычисляем среднее арифметическое отрицательных элементов
    negativeSum := 0;
    negativeCount := 0;

    for i := 1 to n do
      for j := 1 to n do
        if A[i, j] < 0 then
        begin
          negativeSum := negativeSum + A[i, j];
          Inc(negativeCount);
        end;

    if negativeCount > 0 then
    begin
      averageNegative := negativeSum / negativeCount;
      WriteLn('Сумма побочной диагонали неположительна.');
      WriteLn('Среднее арифметическое отрицательных элементов: ', averageNegative:0:2);
    end
    else
      WriteLn('В массиве нет отрицательных элементов.');
  end;
end. 


### Объяснение кода:
1. **Ввод данных:**
- Пользователь вводит размер массива `n`.
- Затем вводит элементы массива размером `n x n`.

2. **Сумма побочной диагонали:**
- Побочная диагональ состоит из элементов, для которых выполняется условие: `j = n - i + 1`.

3. **Обработка массива:**
- Если сумма положительна, считается количество нечётных элементов в массиве (элемент нечётный, если `A[i, j] mod 2 <> 0`).
- Если сумма не положительна, находятся отрицательные элементы, их сумма и количество, после чего вычисляется среднее арифметическое.

4. **Вывод результата:**
- В зависимости от условия выводится либо количество нечётных элементов, либо среднее арифметическое отрицательных элементов.

Попробуйте ввести разные массивы, чтобы протестировать программу!

Аватар пользователя
Оракул
5мес

Это какой класс?