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

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

Видимо сравниваешь теплое с мягким. Что в массиве-то?
...
Рейтинг: 0 / 0
02.11.2015, 07:40
    #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
02.11.2015, 08:57
    #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
02.11.2015, 11:11
    #39092469
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сбой при сравнении двух элементов массива.
Vadimkaaaне могли бы вы дописать?а вся программу за тебя не написать. Учебник за тебя не почитать?

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

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

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


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

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

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

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

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


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