Пример #1
0
    unsafe static public void SimpleMassiveObjective(double *hospital, int rows, int columns)
    {
        bool is_exist = false;

        Console.WriteLine("Всего в больнице {0} палат\n", rows);
        for (int i = 0; i < rows; i++)
        {
            Console.WriteLine("В палате {0} находится {1} коек(и).\n", i + 1, columns);
            for (int j = 0; j < columns; j++)
            {
                if (hospital[i * columns + j] != 0 || hospital[i * columns + j] > 0)
                {
                    counter++;
                    Console.WriteLine("В койке {0} лежит пациент с температурой {1}", j + 1, hospital[i * columns + j]);
                }
            }
        }
        patient[] patient_list = new patient[counter];
        Console.WriteLine("\nИнформация о пациентах с одинаковой температурой\n");
        double *check = stackalloc double[counter];

        for (int i = 0; i < rows; i++)
        {
            for (int j = 0; j < columns; j++)
            {
                for (int y = 0; y < counter; y++)
                {
                    if (check[y] == hospital[i * columns + j])
                    {
                        is_exist = true;
                    }
                }
                if (!is_exist)
                {
                    for (int p = 0; p < counter; p++)
                    {
                        if (check[p] == 0)
                        {
                            check[p] = hospital[i * columns + j]; break;
                        }
                    }
                }
                is_exist = false;
            }
        }
        for (int l = 0; l < patient_list.Length; l++)
        {
            fixed(patient *pointerPatient = &patient_list[l])
            {
                pointerPatient->ward = -1; pointerPatient->cot = -1;
            }
        }
        for (int p = 0; p < counter; p++)
        {
            for (int i = 0; i < rows; i++)
            {
                for (int j = 0; j < columns; j++)
                {
                    if (check[p] == hospital[i * columns + j])
                    {
                        SolvingTaskMassive.EnterIntoStruct(i, j, hospital[i * columns + j], ref patient_list);
                    }
                }
            }
        }
        int counter_for_out = 0;

        for (int i = 0; i < counter; i++)
        {
            for (int j = 0; j < patient_list.Length; j++)
            {
                if (check[i] == patient_list[j].temp)
                {
                    counter_for_out++;
                }
            }
            if (counter_for_out >= 2)
            {
                Console.WriteLine("Пациенты с одинаковой температурой равной {0}\n", check[i]);
                for (int y = 0; y < patient_list.Length; y++)
                {
                    if (check[i] == patient_list[y].temp)
                    {
                        Console.WriteLine("Пациент в палате {0} на койке {1}", patient_list[y].ward + 1, patient_list[y].cot + 1);
                    }
                }
            }
            counter_for_out = 0;
        }
    }
Пример #2
0
    static public void SimpleMassiveObjective(double[,] hospital)
    {
        bool is_exist = false;

        Console.WriteLine("Всего в больнице {0} палат\n", hospital.Length);
        for (int i = 0; i < hospital.GetLength(0); i++)
        {
            Console.WriteLine("В палате {0} находится {1} коек(и).\n", i + 1, hospital.GetLength(0));
            for (int j = 0; j < hospital.GetLength(1); j++)
            {
                if (hospital[i, j] != 0 || hospital[i, j] > 0)
                {
                    counter++;
                    Console.WriteLine("В койке {0} лежит пациент с температурой {1}", j + 1, hospital[i, j]);
                }
            }
        }
        patient[] patient_list = new patient[counter];
        Console.WriteLine("\nИнформация о пациентах с одинаковой температурой\n");
        double[] check = new double[counter];
        for (int i = 0; i < hospital.GetLength(0); i++)
        {
            for (int j = 0; j < hospital.GetLength(1); j++)
            {
                for (int y = 0; y < check.Length; y++)
                {
                    if (check[y] == hospital[i, j])
                    {
                        is_exist = true;
                    }
                }
                if (!is_exist)
                {
                    for (int p = 0; p < check.Length; p++)
                    {
                        if (check[p] == 0)
                        {
                            check[p] = hospital[i, j]; break;
                        }
                    }
                }
                is_exist = false;
            }
        }
        for (int l = 0; l < patient_list.Length; l++)
        {
            patient_list[l].ward = -1; patient_list[l].cot = -1;
        }
        for (int p = 0; p < check.Length; p++)
        {
            for (int i = 0; i < hospital.GetLength(0); i++)
            {
                for (int j = 0; j < hospital.GetLength(1); j++)
                {
                    if (check[p] == hospital[i, j])
                    {
                        SolvingTaskMassive.EnterIntoStruct(i, j, hospital[i, j], ref patient_list);
                    }
                }
            }
        }
        int counter_for_out = 0;

        for (int i = 0; i < check.Length; i++)
        {
            for (int j = 0; j < patient_list.Length; j++)
            {
                if (check[i] == patient_list[j].temp)
                {
                    counter_for_out++;
                }
            }
            if (counter_for_out >= 2)
            {
                Console.WriteLine("Пациенты с одинаковой температурой равной {0}\n", check[i]);
                for (int y = 0; y < patient_list.Length; y++)
                {
                    if (check[i] == patient_list[y].temp)
                    {
                        Console.WriteLine("Пациент в палате {0} на койке {1}", patient_list[y].ward + 1, patient_list[y].cot + 1);
                    }
                }
            }
            counter_for_out = 0;
        }
    }