Top.Mail.Ru
Ответы
Аватар пользователя
6мес
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Основы программирования на C# , 1 курс

Составить программу, предусматривающую использование компонентов класса DataGridView для ввода или вывода матриц/массивов. Задание размеров матриц/массивов с осуществлять с помощью компонентов класса NumericUpDown

Дан целочисленный массив A размером n, состоящий из элементов больше 0. Сформировать квадратную матрицу B порядка n, в которой элементы, рассчитываются по формуле bij = (ai–aj) / (ai+aj), где i, j = 1…n


Желательно побольше пояснений и поменьше замудрений в коде. Хотелось бы не тупо копи пасту делать , а еще понять что я делаю.

По дате
По рейтингу
Аватар пользователя
Новичок
6мес

Попробую накидать что-то как говнокодер 2-го курса

  1. Создаём новый проект в VisualStudio и выбираем шаблон Windows Forms App (уж сорян если ты не VisualStudio используешь)

  2. Тыкаем в наш редактор формы DataGridView, NumericUpDown и Button.

  3. Т.к размеры матрицы + массива задаются через NumericUpDown, а матрица по условию задачи должна быть квадратной (спасибо), то в Properties нашего NumericUpDown находим параметр Increment и устанавливаем его на 2. В конце концов, если кол-во элементов матрицы нечетное, то матрица не квадратная/Короче упрощаем жизнь себе и не даём испортить её пользователю/злобному преподу.

  4. Переходим к написанию кода, буду использовать нейминг переменных, как учили именно меня.

  5. Код и куча закидываю на pastebin в файл, т.к моя писанина пробила лимит на кол-во символов в ответе :(

  6. https://pastebin.com/LMSsituQ

Аватар пользователя
Искусственный Интеллект
6мес
12345678910111213141516171819
 // создаём экземпляр класса, отвечающего за псевдослучайные числа
var rand = new Random();

// создаём целочисленный массив A размера 10, состоящий из случайных чисел в интервале 1-100
var A = Enumerable.Range(0, 10).Select(_ => rand.Next(1, 101)).ToArray();

// выводим массив на экран
Console.WriteLine("Initial array:");
Console.WriteLine(string.Join(" ", A.Select(x => $"{x,3}")));
Console.WriteLine();
 
// создаём матрицу B
var B = A.Select(a => A.Select(b => 1.0*(a-b)/(a+b)).ToArray()).ToArray();
 
// выводим матрицу B на экран 
Console.WriteLine("Matrix:");
foreach(var line in B)
    Console.WriteLine(string.Join(" ", line.Select(x => $"{x,6:F3} ")));
Console.WriteLine(); 


ну и пара ссылок на использованные конструкции:

https://learn.microsoft.com/ru-ru/dotnet/api/system.linq.enumerable.range?view=net-8.0#system-linq-enumerable-range(system-int32-system-int32)

https://learn.microsoft.com/ru-ru/dotnet/api/system.random.next?view=net-8.0#system-random-next(system-int32-system-int32)

https://learn.microsoft.com/ru-ru/dotnet/api/system.string.join?view=net-8.0#system-string-join(system-string-system-string() )

https://learn.microsoft.com/ru-ru/dotnet/api/system.linq.enumerable.select?view=net-8.0

https://learn.microsoft.com/ru-ru/dotnet/csharp/language-reference/tokens/interpolated