powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Сбой при сравнении двух элементов массива.
16 сообщений из 16, страница 1 из 1
Сбой при сравнении двух элементов массива.
    #39092308
Vadimkaaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытаюсь отсортировать массив
Код: c#
1.
 mass.Sort();

выкидывает ошибку Сбой при сравнении двух элементов массива.
как решить беду ?
...
Рейтинг: 0 / 0
Сбой при сравнении двух элементов массива.
    #39092315
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadimkaaa,

Видимо сравниваешь теплое с мягким. Что в массиве-то?
...
Рейтинг: 0 / 0
Сбой при сравнении двух элементов массива.
    #39092347
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadimkaaa,

для сортировки массива необходим компоратор, обычно его можно задать либо в виде интерфейса IComparable<T> для сортируемых
классов, https://msdn.microsoft.com/ru-ru/library/4d7sx9hd(v=vs.110).aspx
либо через класс компарер
https://msdn.microsoft.com/ru-ru/library/cfttsh47(v=vs.110).aspx
...
Рейтинг: 0 / 0
Сбой при сравнении двух элементов массива.
    #39092370
Vadimkaaa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Mejtes,
никогда не работал с таким... не могли бы вы дописать?
вот код
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
struct ExpertMark
    {
        public int first;
        public double sec;
        public double thr;
        public string four;
    }

    class Delphi
    {
        private double mediana;
        private double max;
        private double min;
        private int index;
        private double kvartul;
        private double foot_lim;
        private double head_lim;
        private double dov_interval;
        private ArrayList mass;

        public  Delphi()
        {
            mass = new ArrayList();
        }



        public void addData(ExpertMark value)
        {
            mass.Add(value);
        }
                   
        public  double serGrouoMark()
        {
            double sum = 0;
            for (int i = 0; i < mass.Count; i++)
            {
                ExpertMark mark = (ExpertMark)mass[i];

                sum += mark.first;
            }
            sum = sum / mass.Count;
            return sum;

        }

        public double serPos()
        {
            double sum = 0;
            for (int i = 1; i < mass.Count; i++)
            {
                ExpertMark mark = (ExpertMark)mass[i];
                sum += mark.sec;

            }
            sum = sum / mass.Count;
            return sum;
        }

        public double serPop()
        {
            double sum = 0;
            for (int i = 1; i < mass.Count - 1; i++)
            {
                
                ExpertMark mark = (ExpertMark)mass[i];
                sum += mark.first * mark.sec;
               

            }

            sum = sum / mass.Count;
            return sum;
        }

        public void SortMass()
        {           
            mass.Sort();
            this.index = (mass.Count / 2) - 1;
            this.min = Convert.ToDouble(mass[0].ToString());
            this.max = Convert.ToDouble(mass[mass.Count - 1].ToString());
        }
...
Рейтинг: 0 / 0
Сбой при сравнении двух элементов массива.
    #39092469
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadimkaaaне могли бы вы дописать?а вся программу за тебя не написать. Учебник за тебя не почитать?

Никто кроме тебя не знает, как сравнить две структуры ExpertMark, сортировщику неизвестно, какая структура больше, а какая меньше, чтобы отсортировать их по возрастанию.

Берешь учебник и читаешь про перегрузку операций "<" и ">" и про интерфейс IComparable

А потом еще читаешь главу про Linq. Что-то мне подсказывает, что здесь вообще можно обойтись без массивов.
...
Рейтинг: 0 / 0
Сбой при сравнении двух элементов массива.
    #39092518
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VadimkaaaRoman Mejtes,
никогда не работал с таким...самое время освоить такое, тем более, что это 0ой уровень :)
...
Рейтинг: 0 / 0
Сбой при сравнении двух элементов массива.
    #39092646
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadimkaaaникогда не работал с таким...


Там все просто, создаешь класс-компаратор, наследуя от IComparer, в нем реализуешь метод Compare(Object, Object), где закладываешь логику сравнения твоих ExpertMark, и затем экземпляр компаратора передаешь метод Sort и скорее бежишь сдавать лабораторку
...
Рейтинг: 0 / 0
Сбой при сравнении двух элементов массива.
    #39092661
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pallaris,

По мне так проще перегрузить операции сравнения. Зато потом можно будет спокойно писать if (a1>a2), не задумываясь об экземпляре компаратора. Правда, не знаю, будет ли работать Sort() с ними, или потребует реализации IComparable, но это тоже просто.
...
Рейтинг: 0 / 0
Сбой при сравнении двух элементов массива.
    #39092663
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman MejtesVadimkaaaRoman Mejtes,
никогда не работал с таким...самое время освоить такое, тем более, что это 0ой уровень :)

осваивать 0ой уровень - себя не уважать!
...
Рейтинг: 0 / 0
Сбой при сравнении двух элементов массива.
    #39092675
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProПо мне так проще перегрузить операции сравнения.

В принципе, при обучении нужно пробовать как можно больше. Будет на хорошем счету у препода, да и башке что-то отложится.
...
Рейтинг: 0 / 0
Сбой при сравнении двух элементов массива.
    #39093199
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WinnipuhRoman Mejtesпропущено...
самое время освоить такое, тем более, что это 0ой уровень :)

осваивать 0ой уровень - себя не уважать!
все когда то были 0ого уровня :) я был лет ~25 subzero просто :)
...
Рейтинг: 0 / 0
Сбой при сравнении двух элементов массива.
    #39093207
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtesвсе когда то были 0ого уровняКогда я нулевого уровня в каком-то вопросе, я читаю учебник, а не задаю дикие вопросы на форуме.
...
Рейтинг: 0 / 0
Сбой при сравнении двух элементов массива.
    #39095329
Фотография Belavik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня у одного возник вопрос, почему Вадимка "все свои" классы Delphi называет?
...
Рейтинг: 0 / 0
Сбой при сравнении двух элементов массива.
    #39095332
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelavikУ меня у одного возник вопрос, почему Вадимка "все свои" классы Delphi называет?
Так проще запомнить имя файла, думаю.
...
Рейтинг: 0 / 0
Сбой при сравнении двух элементов массива.
    #39095333
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AxeleronТак проще запомнить имя файла класса, думаю.
...
Рейтинг: 0 / 0
Сбой при сравнении двух элементов массива.
    #39095350
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Он пишет Дельфи )
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Сбой при сравнении двух элементов массива.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]