Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
5_двухмерные массивы (1).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
448.51 Кб
Скачать

ДВУХМЕРНЫЕ МАССИВЫ

// Пример 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]);