В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
katastep4
katastep4
01.04.2023 03:13 •  Информатика

Как исправить ошибку скрипта в хамачи???

Показать ответ
Ответ:
ernarsailaubek
ernarsailaubek
05.03.2020 19:00
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 оценок)
Ответ:
emma66669
emma66669
16.07.2021 19:37
Type
    LinMass = array [1..1000] of Integer;

var
    A: LinMass;
    N, i, j: Integer;

begin
    Write('Количество элементов массива: ');
    ReadLn(N);
    for I := 1 To N Do
    begin
        Write('Введите A[', I, '] ');ReadLn(A[i]);
    end;
    
    i := 1;
    while (i <= n) do
        if (A[i] >= 100) and (A[i] <= 999) and (A[i] mod 2 = 0) and (A[i] mod i = 0) then begin
            for j := i + 1 to n do
                A[j - 1] := A[j];
            n := n - 1
        end
        else i := i + 1;
    
    for I := 1 To N Do
        write(a[i]:6);
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота