Вот возможный код решения задачи на C#:csharpCopy codeint M = 5; // количество строкint N = 3; // количество столбцовint D = 2; // множитель для геометрической прогрессииint[] numbers = { 1, 2, 4 }; // исходный набор чиселint[,] matrix = new int[M, N];// первая строка матрицы совпадает с исходным набором чиселfor (int j = 0; j < N; j++){ matrix[0, j] = numbers[j];}// остальные строки формируются на основе предыдущих строкfor (int i = 1; i < M; i++){ for (int j = 0; j < N; j++) { matrix[i, j] = matrix[i - 1, j] * D; }}// вывод матрицы на экранfor (int i = 0; i < M; i++){ for (int j = 0; j < N; j++) { Console.Write("{0,5}", matrix[i, j]); } Console.WriteLine();}В этом коде мы задаем значения переменных M, N и D, а также исходный набор чисел numbers. Затем мы создаем двумерный массив matrix размера M × N и заполняем его значениями.Первая строка матрицы совпадает с исходным набором чисел. Для остальных строк мы используем циклы, чтобы заполнить каждый элемент матрицы значением из предыдущей строки, умноженным на D.Наконец, мы выводим матрицу на экран, используя двойной цикл for и метод Console.Write для выравнивания значений столбцов.