ДВУМЕРНЫЕ МАССИВЫ. ОБРАБОТКА С УСЛОВИЕМ Pascal ABC #6
Если сумма элементов побочной диагонали массива A(n,n)
положительна, то найти количество нечетных элементов, иначе –
найти среднее арифметическое отрицательных элементов массива.
NAпишите пожалуйста программу на языке Pascal abc
Для решения данной задачи можно воспользоваться следующим алгоритмом на PascalABC.NET:
1. Вычислить сумму элементов побочной диагонали.
2. Проверить, положительна ли сумма.
- Если сумма положительна, подсчитать количество нечётных элементов в массиве.
- Если сумма не положительна, найти среднее арифметическое отрицательных элементов массива.
Пример программы:
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. **Вывод результата:**
- В зависимости от условия выводится либо количество нечётных элементов, либо среднее арифметическое отрицательных элементов.
Попробуйте ввести разные массивы, чтобы протестировать программу!
Это какой класс?