Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как использовать и зачем нужны массивы в c#

Егор Ч Razv Ученик (95), открыт 4 недели назад
Не могу понять зачем нужны массивы, и как их использовать
4 ответа
Дмитрий Терешок Профи (513) 4 недели назад
Массивы нужны для хранения поиндексно упорядоченного набора данных, применений масса
Артём Литвинов Мастер (1154) 4 недели назад
для работы с группой данных, передавать/принимать однотипные наборы данных, например список товаров из базы данных мы получим в виде массива, потом мы его сортируем как нам надо, и выводим, так же в функции например параметры для выполнения функции мы так же указываем кучу параметров в виде массива, ну и т.п., любые операции с данными
Ксения Райт Высший разум (104234) 4 недели назад
Массивы и прочие коллекции данных нужны только в случае обязательного запоминания их компьютером. А просто последовательности данных, например, список простых чисел, вычисленный специально для вывода его на экран, можно оформлять в виде массива, а можно и не оформлять. Для решения алгебраических задач, например, для решения СЛАУ или для обращения матрицы, массивы, конечно же, необходимы. Да вот, кстати, и пример решения СЛАУ методом исключения Гаусса с выбором ведущего элемента по столбцу:
 using System; 
public static class Program
{
public static void Main()
{
double a, b, c, m, max;
int i, j, imax, k, l, n;
Console.Write("a b n » ");
var line = Console.ReadLine().Split(" ");
a = double.Parse(line[0]);
b = double.Parse(line[1]);
n = int.Parse(line[2]);
Random rnd = new Random();
double [,] A = new double [n,n+1];
double [,] B = new double [n,n+1];
double [] X = new double [n];
c = b - a;
for (i = 0; i < n; ++i)
for (j = 0; j <= n; ++j)
B[i,j] = A[i,j] = a + c * rnd.NextDouble();
for (i = 0; i < n - 1; i++)
{
imax = i;
max = Math.Abs(A[i,i]);
for (j = i; j < n; j++)
{
m = Math.Abs(A[j,i]);
if (m > max) { imax = j; max = m; }
}
for (k = i; k <= n; k++)
{
m = A[i,k];
A[i,k] = A[imax,k];
A[imax,k] = m;
}
m = A[i,i];
for (k = i; k <= n; k++) A[i,k] /= m;
for (j = i + 1; j < n; j++)
{
m = A[j,i];
for (k = i; k <= n; k++) A[j,k] -= m * A[i,k];
}
}
X[n - 1] = A[n-1,n] / A[n-1,n-1];
for (i = n - 2; i >= 0; i--)
{
m = 0.0;
for (j = n - 1; j > i; j--) m += A[i,j] * X[j];
X[i] = (A[i,n] - m) / A[i,i];
}
Console.WriteLine("Решение СЛАУ:");
max = 0.0;
imax = -1;
for (i = 0; i < n; ++i)
{
m = 0.0;
for (j = 0; j < n; ++j) m += B[i,j] * X[j];
c = Math.Abs((m-B[i,n])/X[i]);
if (c > max) { max = c; imax = i; }
Console.WriteLine("{0,4:d}){1,22:f14}{2,20:e6}",
i+1, X[i], (m-B[i,n])/X[i]);
}
Console.WriteLine("max error = " + max
+ " » №" + (imax + 1) + " " + X[imax]);
}
}
Видите сколько здесь нужно массивов? Два двумерных массива для хранения расширенной матрицы СЛАУ - один изменяемый, другой неизменяемый для нахождения ошибок вычислений. Один одномерный для хранения вектора решений и ещё один массив строк, разбитый пробельными символами, для ввода данных: диапазона элементов СЛАУ [a;b] (тут все элементы расширенной матрицы СЛАУ выбираются случайным образом из этого диапазона) и порядка системы линейных алгебраических уравнений n. А вектор ошибок, который тоже выводится на экран, даже не оформлен в качестве массива, так как лишний массив тут не нужен...
Krab Bark Искусственный Интеллект (298382) 4 недели назад
Массивы по сути - таблицы. Как использовать таблицы? ;) А где их нет... Но основное применение эти таблицы в программировании находят при использовании в базах данных и в матричном исчислении в расчетах.
Похожие вопросы