Julia28122002
05.02.2021 06:54

Створити програму склад. 1. Вхід для адміністратора(Адміни зберігаються в об’єктах) 2. Панель меню(коли увійшов адміністратор): a. Додати товар b. Вивести всі товари c. Вивести товари які є в наявності d. Вивести яких немає в наявності e. Пошук товару по назві f. Видалення товару g. Пошук товару по даті поступлення на склад h. Пошук по ціні товару i. Пошук по країні виробнику j. Пошук по категорії k. Вихід(редірект на форму входу) 3. Товари матимуть такі властивості: a. Назва b. Ціна c. Категорія(техніка, продукти…) d. Дата поступлення на склад e. Країна виробник Увага! Товари та адміни мають зберігатись в об'єктах. Буде плюсом, якщо використаєте Jquery

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
antoshkaromanov
02.12.2022 14:39
Using System;
using System.Linq;
using System.Text;

namespace Test1
{
    class Program
    {
        static string file_name = "PrResh.txt";
        static bool handfree = true;  //определяет вручную ли вводятся данные или рандомом

        static void Main()
        {
            Console.WriteLine("Введите размеры матрицы (строки x столбцы)");
            int rows = Convert.ToInt32(Console.ReadLine());
            int columns = Convert.ToInt32(Console.ReadLine());

            var M = InitMatrix(rows, columns, handfree);

            int Reply;
            do
            {
                Console.WriteLine();
                Console.WriteLine("Выбирите метод решения:");
                Console.WriteLine("1. Критерий Сэвиджа");
                Console.WriteLine("2. Критерий Гермейера");
                Console.WriteLine("3. Выход");
                Reply = Convert.ToInt32(Console.ReadLine());

                switch (Reply)
                {
                    case 1:
                        {
                            SavageCriterion(M);
                            break;
                        }
                    case 2:
                        {
                            var Q = new double[M.GetLength(1)];
                            if (handfree)
                            {
                                var r = new Random(DateTime.Now.Millisecond);

                                for (var j = 0; j < Q.Length; j++)
                                {
                                    Q[j] = r.NextDouble();
                                }
                            }
                            else {
                                Console.WriteLine("Введите вероятности");
                                for (var j = 0; j < Q.Length; j++)
                                {
                                    Q[j] = Convert.ToDouble(Console.Read());
                                }
                            }

                            GermeierCriterion(M, Q);
                            break;
                        }
                    default:
                        {
                            Reply = -1;
                            break;
                        }

                }

            } while (Reply > 0);

            Console.ReadKey();

        }

        static double[,] InitMatrix(int rows, int columns, bool handfree = false)
        {
            var M = new double[rows, columns];

            var sb = new StringBuilder();
            sb.AppendLine("Матрица [" + rows + "x" + columns + "] :");

            if (handfree)
            {
                var random = new Random(DateTime.Now.Millisecond);
                for (var i = 0; i < rows; i++)
                {
                    for (var j = 0; j < columns; j++)
                    {
                        M[i, j] = random.NextDouble() * random.Next(-50, 50);
                        sb.Append(M[i, j] + " ");
                    }
                    sb.AppendLine();
                }
            }
            else {
                for (var i = 0; i < rows; i++)
                {
                    for (var j = 0; j < columns; j++)
                    {
                        Console.Write("M[" + i + ", " + j + "] = ");
                        M[i, j] = Convert.ToDouble(Console.Read());
                        sb.Append(M[i, j] + " ");
                    }
                    Console.WriteLine();
                    sb.AppendLine();
                }
            }

            OutputToConsoleAndLog(sb.ToString());
            return M;
        }

        static double SavageCriterion(double[,] M)
        {
            OutputToConsoleAndLog("Критерий Сэвиджа.");
            OutputToConsoleAndLog("Наибольшее значение каждого столбца.");
            var max = new double[M.GetLength(1)];
            for (var j = 0; j < max.Length; j++)
            {
                max[j] = M[0, j];
                for (var i = 1; i < M.GetLength(0); i++)
                {
                    if (max[j] < M[i, j])
                        max[j] = M[i, j];
                }
                OutputToConsoleAndLog("Max[" + j + " столбца] = " + max[j]);

            }

            OutputToConsoleAndLog("Вычтем из наибольшего значения столбца, каждое значение столбца.");
            OutputToConsoleAndLog("Сформируем новую матрицу из полученных значений.");
            var sb = new StringBuilder();

            for (var i = 0; i < M.GetLength(0); i++)
            {
                for (var j = 0; j < M.GetLength(1); j++)
                {
                    M[i, j] = max[j] - M[i, j];
                    sb.Append(M[i, j] + " ");
                }
                sb.AppendLine();
            }
            OutputToConsoleAndLog(sb.ToString());

            OutputToConsoleAndLog("Наибольшее значение каждой строки.");
            max = new double[M.GetLength(0)];

            for (var i = 0; i < M.GetLength(0); i++)
            {
                max[i] = M[i, 0];
                for (var j = 0; j < M.GetLength(1); j++)
                {
                    if (max[i] < M[i, j])
                        max[i] = M[i, j];
                }
                OutputToConsoleAndLog("Max[" + i + " строки] = " + max[i]);
            }

            OutputToConsoleAndLog("ответ: " + max.Last());
            return max.Last();
        }

        static double GermeierCriterion(double[,] M, double[] Q)
        {
            OutputToConsoleAndLog("Критерий Гермейера.");
            OutputToConsoleAndLog("Для решения необходимы сведенья о вероятности принятия каждого решения.");
            OutputToConsoleAndLog("Вероятности принятия решения:");
            for (var j = 0; j < Q.Length; j++)
            {
                OutputToConsoleAndLog("Q[" + j + "] = " + Q[j]);
            }

            var max = M[0, 0];
            for (var i = 0; i < M.GetLength(0); i++)
            {
                for (var j = 0; j < M.GetLength(1); j++)
                {
                    if (max < M[i, j]) max = M[i, j];
                }
            }

            OutputToConsoleAndLog("Наибольшее значение в матрице = " + max);
            max += 1;
            OutputToConsoleAndLog("Необходимо из каждого элемента матрицы вычесть " + max);
            OutputToConsoleAndLog("Полученная матрица:");
            var sb = new StringBuilder();

            for (var i = 0; i < M.GetLength(0); i++)
            {
                for (var j = 0; j < M.GetLength(1); j++)
                {
                    M[i, j] -= max;
                    sb.Append(M[i, j] + " ");
                    M[i, j] *= Q[j];
                }
                sb.AppendLine();
            }
            OutputToConsoleAndLog(sb.ToString());

            OutputToConsoleAndLog("Умножаем каждый элемент матрицы на соответствующую вероятность.");
            OutputToConsoleAndLog("Выбираем наименьший результат каждой строки.");
            var min = new double[M.GetLength(0)];

            for (var i = 0; i < M.GetLength(0); i++)
            {
                M[i, 0] *= Q[0];
                min[i] = M[i, 0];
                for (var j = 1; j < M.GetLength(1); j++)
                {
                    M[i, j] *= Q[j];
                    if (min[i] > M[i, j]) min[i] = M[i, j];
                }
                OutputToConsoleAndLog("Min[" + i + " строки] = " + min[i]);
            }

            OutputToConsoleAndLog("ответ: " + min.Max());
            return min.Max();
        }

        static void OutputToConsoleAndLog(string text)
        {
            Console.WriteLine(text);
            using (var file = new System.IO.StreamWriter(file_name, true))
            {
                file.WriteLine(text);
            }
        }

    }
}
0,0(0 оценок)
Ответ:
Ertadaysma
08.06.2020 14:36
Массив - это однородный, упорядоченный структурированный тип данных с прямым доступом к элементам. К любому элементу массива можно обратиться, указав имя массива и индекс элемента в массиве. 

Если в массиве для обращения к элементам используется только один порядковый номер, то такой массив называется линейным, или одномерным. Одномерный массив можно представить в виде таблицы, в которой существует только одна строка. 

Количество индексов элементов массива определяет размерность массива. 

Массивы с двумя индексами называют двумерными. Такие массивы можно представить в виде таблицы, в которой номер строки соответствует первому индексу, а номер ячейки в строке (номер столбца) - второму индексу. 
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота