
- •// Пример 5-3. Работа со строками или столбцами.
- •// Пример 5-4. Отрицательные в строке и максимум побочной диагонали
- •// Пример 5-5. Переносим элементы таблицы в строку.
- •// Пример 5-6. Удаление части таблицы.
- •// Пример 5-9. Удалить заданную строку матрицы
- •// Пример. Максимум побочной диагонали
- •// Пример. Сумма побочной диагонали и ниже
ДВУХМЕРНЫЕ МАССИВЫ
// Пример 5-1
int[,] array = new int[3,3] { {1,2,3}, {4,5,6}, {7,8,9} };
Console.WriteLine("Пример 5-1. ");
int i, j, n, k, l, summa;
// Вывод элементов двухмерного массива
n = 3;
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++) // ;
Console.Write("{0:d} ", array[i, j]);
Console.WriteLine("");
}
// Сумма всех элементов двухмерного массива
summa = 0;
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
summa = summa + array[i, j];
Console.Write("Сумма всех {0:d} ", summa);
Console.WriteLine();
// Сумма всех элементов главной диагонали двухмерного массива
summa = 0;
for (i = 0; i < n; i++)
summa = summa + array[i, i];
// summa += array[i, i];
// вместо summa = summs + array[i, i];
Console.Write("Сумма главной диагонали {0:d} \n", summa);
Console.WriteLine();
array[0, 0] = -1; array[2, 2] = -9;
Console.WriteLine("Изменили массив");
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++) // ; - получим пустой цикл !!!
Console.Write("{0:d} ", array[i, j]);
Console.WriteLine("");
}
// Сумма положительных элементов двухмерного массива
summa = 0;
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
if (array[i, j] > 0) summa = summa + array[i, j];
Console.Write("Сумма положительных элементов\n всей матрицы {0:d}", summa);
Console.WriteLine();
// Console.ReadKey();
// Console.Clear();
// Сумма элементов заданной строки (столбца) двухмерного массива
Console.WriteLine("\nВведите строку: ");
k = int.Parse(Console.ReadLine());
summa = 0;
for (j = 0; j < n; j++)
summa = summa + array[k, j];
Console.Write("сумма элементов строки {0:d} ", summa);
Console.WriteLine();
Console.WriteLine("Введите столбец: ");
l = int.Parse(Console.ReadLine());
summa = 0;
for (i = 0; i < n; i++)
summa = summa + array[i, l];
Console.Write("сумма элементов столбца {0:d}", summa);
// Пример 5-2. Суммируем часть элементов двухмерного массива с проверкой ввода.
int[,] array = new int[3, 3] { {1,2,3}, {4,5,6}, {9,8,7} };
int i, j, n, k, summa;
Console.WriteLine("Пример 5-2. ");
n = 3;
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++) // ;
Console.Write("{0:d} ", array[i, j]);
Console.WriteLine("");
}
summa = 0;
bool indikator=true;
while (indikator)
{
Console.WriteLine("\nВведите строку (сначало неверно): ");
k = int.Parse(Console.ReadLine());
if ((k < 0) || (k >= n))
Console.WriteLine(" Ошибка номера строки");
else
{
summa = 0;
for (j = 0; j < n; j++)
summa = summa + array[k, j];
Console.WriteLine("сумма элементов строки {0:d}",summa);
indikator = false;
}
}
// int s = 0;
int p = 0; summa = 0; int summa1 = 0;
int summa2 = 0; j = (n - 1);
for ( i = 0; i < n; i++)
{
summa += array[i, n - p - 1];
// то же что umma = summa + array[i, n-p-1];
p = p + 1;
// можно вместо p использовать i
summa1 += array[i, (n-1)-i];
// используем уменьшающуюся переменную
summa2 += array[i, j]; j--; // j=j-1
}
Console.WriteLine("сумма элементов побочной диагонали {0:d}", summa);
Console.WriteLine(" другой вариант {0:d}", summa1);
Console.WriteLine("и еще один вариант {0:d}", summa2);
// Пример 5-3. Работа со строками или столбцами.
double[,] A = new double[3,4] { {1.0,1.0,2.0,-1.0},
{4.0,3.0,7.0,-3.0}, {-9.0,5.0,1.0,6.0} };
// {4.0,0.0,7.0,-3.0}, {-9.0,5.0,-1.0,-6.0 } };
double[] b = new double[3];
double[] ds = new double[4];
int i, j, l, n, m; double dSumma = 0.0;
m = 4; n = 3;
for (i = 0; i < n; i++)
{
dSumma = 0.0;
for (j = 0; j < m; j++) dSumma += A[i, j];
b[i] = dSumma;
}
Console.WriteLine(" Суммы по строкам в одномерном массиве:");
for (i = 0; i < n; i++)
{
for(j=0; j<m; j++) Console.Write("{0,5:f2} ",A[i,j]);
Console.Write(" {0,5:f2} ", b[i]);
Console.WriteLine();
}
for (j = 0; j < m; j++)
{
dSumma = 0.0;
for (i = 0; i < n; i++) dSumma += A[i, j];
ds[j] = dSumma;
}
// Console.WriteLine("\n");
Console.WriteLine("Суммы по столбцам в одномерном массиве:");
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
Console.Write("{0,5:f2} ", A[i, j]);
Console.WriteLine();
}
Console.WriteLine("\n");
for (i = 0; i < m; i++)
Console.Write("{0,5:f2} ", ds[i]);
// Пример 5-4. Отрицательные в строке и максимум побочной диагонали
double[,] A4 = new double[3, 3] { { -1.0, 1.0, 2.0 },
// { 4.0, 3.0, 7.0, -3.0 }, { -9.0, 5.0, 1.0, 6.0 } };
{ 4.0, 3.0, 7.0 }, { -9.0, 5.0, -1.0 } };
double[] b4 = new double[3]; double MaxA;
double[] s4 = new double[3];
int[] Nomera = new int[4];
int i, j, n, m, k, l, p;
n = 3; m = 3;
Console.WriteLine("Пример 5-4.");
for ( i = 0; i < n; i++)
{
for (j=0; j<m; j++) Console.Write("{0,5:f2} ", A4[i,j]);
// Console.Write(" {0,5:f2} ", b[i]);
Console.WriteLine();
}
Console.WriteLine("\n Отрицательные значения в строке");
Console.WriteLine("Введите номер строки ");
k = int.Parse(Console.ReadLine());
l = 0;
for (j = 0; j < m; j++) if (A4[k, j] < 0) l = l + 1;
Console.Write("(a(i)<0) количество {0}", l);
// for (j = 0; j < m; j++) if (A4[k, j] < 0) l = l + 1;
// Console.WriteLine("\n {0}", l);
Console.WriteLine("\n\n Максимум побочной диагонали:");
// Максимум побочной
MaxA = A4[0, n - 1]; p = 1;
for ( i = 1; i < n; i++)
{// Console.WriteLine("i {0:d} A {1:f} Max {2:f}",i,A4[i, n - p-1],MaxA);
if (A4[i, n - p - 1] > MaxA)
{ MaxA = A4[i, n - p - 1]; p = p + 1; }
Console.Write("{0:f} {1,3:d} {2,3:d} ", MaxA, p, p);
// Пример 5-5. Переносим элементы таблицы в строку.
int[,] A51 = new int[2, 4] { {1,1,2,-3}, {4,3,7,-3} };
int[] r1 = new int[8];
int i, l, j, n, m;
Console.WriteLine("Пример 5-5.");
Console.WriteLine("Из таблицы в строку (1)");
n = 2; m = 4;
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
Console.Write(" {0,3:d}", A51[i, j]);
Console.WriteLine();
}
Console.WriteLine(" Результат");
l = 0;
for (i = 0; i < n; i++)
for (j = 0; j < m; j++)
{ r1[l] = A51[i, j]; l = l + 1; }
for (i = 0; i < l; i++)
Console.Write(" {0,3:d}", r1[i]);
Console.WriteLine("\n\nИз таблицы в строку (2)");
int[,] A52 = new int[3, 2] { { 1, 1 }, { 4, 3 }, { -9, 5 } };
int[] r2 = new int[6];
for (i = 0; i < 3; i++)
{
for (j = 0; j < 2; j++)
Console.Write(" {0,3:d}", A52[i, j]);
Console.WriteLine();
}
for (j = 0; j < 2; j++)
for (i = 0; i < 3; i++)
{
r2[i + 3 * j] = A52[i, j];
}
Console.WriteLine(" Результат");
for (i = 0; i < 6; i++)
Console.Write(" {0,3:d}", r2[i]);