|
|||
Инициализация многомерных массивовИнициализация многомерных массивов Для инициализации многомерного массива достаточно заключить в фигурные скобки список инициализаторов каждого его размера: Первое значение в каждом ряду сохраняется на первой позиции в массиве, второе значение — на второй позиции и т.д. Обратите внимание на то, что блоки инициализаторов разделяются запятыми, а после завершающей эти блоки закрывающей фигурной скобки ставится точка с запятой. Ниже в качестве примера приведена общая форма инициализации двумерного массива (4 строки, 2 столбца): int[,] myArr = { {1,10}, {2,20}, {3,30}, {4,40} }; Перейдем к рассмотрению примеров решения задач, где применяются массивы и циклы. Задача «Три цикла» Требуется найти сумму и произведение N элементов массива, используя три варианта циклов (for, while, do-while). Тогда наша программа может быть написана так: using System; namespace циклы { class Program { static double [] a= new double[1000]; static void Main(string[] args) { int n = InputA(); Console.WriteLine("сумма_F = {0}",sumF(n)); Console.WriteLine("сумма_W = {0}",sumW(n)); Console.WriteLine("сумма_D = {0}",sumD(n)); Console.WriteLine("произведение_F = {0}",multyF(n)); Console.WriteLine("произведение_W = {0}",multyW(n)); Console.WriteLine("произведение_D = {0}",multyD(n)); Console.ReadKey(); } // Ввод размерности и массива static int InputA() { int n; Console.Write("Ввести кол-во элементов:"); n = Convert.ToInt32(Console.ReadLine()); for (int i = 0; i < n; i++) { Console.Write("a[{0}]=", i); a[i] = Convert.ToDouble(Console.ReadLine()); } return n; } // Сумма через цикл For static double sumF(int n) { double s = 0; for (int k = 0; k < n; k++) s = s + a[k]; return s; } // Сумма через цикл While static double sumW(int n) { double s=0; int k=0; while (k < n) { s = s + a[k]; k++; } return s; } // Сумма через цикл Do-while static double sumD(int n) { double s = 0; int k = 0; do { s = s + a[k]; k++; } while (k <= n); return s; } // Произведение через цикл For static double multyF(int n) { double p = 1; for (int k = 0; k < n; k++) p = p * a[k]; return p; } // Произведение через цикл While static double multyW(int n) { double p = 1; int k = 0; while (k < n) { p = p * a[k]; k++; } return p; } // Произведение через цикл For static double multyD(int n) { double p = 1; int k = 0; do { p = p * a[k]; k++; } while (k < n); return p; } } } Результат: Задание. Сравните алгоритмы вычисления суммы и произведения и циклы между собой, найдите общее и различия.
|
|||
|