Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
прогр 4 лаба.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
134.9 Кб
Скачать

Задание 5

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

Пример входа

2 7 5 6

12 6 3 1

9 4 22 5

Пример вывода

25 28 23 9

28 64 56 41

22 52 19 26

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace _4._5

{

class Program

{

static void Main(string[] args)

{

//создаем двумерный массив:

Console.Write("Задайте размерность двумерного массива x*y ");

Console.Write("\nx:");

int x = int.Parse(Console.ReadLine());

Console.Write("y:");

int y = int.Parse(Console.ReadLine());

int[,] mass = new int[x, y];

//x1 и y1 будут использоваться в качестве координат элемента:

int x1 = 0;

int y1 = 0;

// Записываем элементы в массив:

while (x1 < x)

{

while (y1 < y)

{

Console.Write("Задайте элемент с координатами {0}x{1}:", x1 + 1, y1 +1);

mass[x1, y1] = Convert.ToInt32(Console.ReadLine());

y1++;

}

y1 = 0;

x1++;

}

// Выводим заданный массив на экран:

Console.Write("Заданный массив имеет вид:\n");

x1 = 0;

y1 = 0;

while (x1 < x)

{

while (y1 < y)

{

Console.Write(mass[x1, y1] + " ");

y1++;

}

Console.Write("\n");

x1++;

y1 = 0;

}

//Строим новый массив

int[,] mass2 = new int[x, y];

for (x1 = 0; x1 < x; x1++)

{

for (y1 = 0; y1 < y; y1++)

{

mass2[x1, y1] = 0;

if (x1 - 1 >= 0)

mass2[x1, y1] += mass[x1 - 1, y1];

if (x1 + 1 < x)

mass2[x1, y1] += mass[x1 + 1, y1];

if (y1 - 1 >= 0)

mass2[x1, y1] += mass[x1, y1 - 1];

if (y1 + 1 < y)

mass2[x1, y1] += mass[x1, y1 + 1];

if (x1 - 1 >= 0 & y1 - 1 >= 0)

mass2[x1, y1] += mass[x1 - 1, y1 - 1];

if (x1 + 1 < x & y1 + 1 < y)

mass2[x1, y1] += mass[x1 + 1, y1 + 1];

if (x1 - 1 >= 0 & y1 + 1 < y)

mass2[x1, y1] += mass[x1 - 1, y1 + 1];

if (x1 + 1 < x & y1 - 1 >= 0)

mass2[x1, y1] += mass[x1 + 1, y1 - 1];

}

}

// Выводим новый массив:

Console.Write("\nНовые значения массива:\n");

x1 = 0;

y1 = 0;

while (x1 < x)

{

while (y1 < y)

{

Console.Write(mass2[x1, y1] + " ");

y1++;

}

Console.Write("\n");

x1++;

y1 = 0;

}

Console.ReadKey();

}

}

}