Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
19 / 19 / 0
Регистрация: 24.05.2011
Сообщений: 27

Исправить ошибки в приложенном коде

29.02.2012, 22:51. Показов 1754. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
н е м о г у понять в чем моя ошибка?! помогите исправить!!!

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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleAppli
{
    class PhoneNumber
    {
        string name;
        int tel;
        public PhoneNumber()
        {
            name = "0";
            tel = 0;
        }
        public PhoneNumber(string n, int t)
        {
            name = n;
            tel = t;
        }
        public string P
        {
            get
            { return name; }
 
            set { name = value; }
        }
        public int T
        {
            get { return tel; }
            set { tel = value; }
        }
    }
    class Friend : PhoneNumber
    {
        string type;
        public Friend()
        {
            type = "0";
        }
        public Friend(string ty, string n, int t)
            : base(n, t)
        {
            type = ty;
        }
 
    }
    class Supplies : PhoneNumber
    {
        string type;
        public Supplies()
        {
            type = "0";
        }
        public Supplies(string ty, string n, int t)
            : base(n, t)
        {
            type = ty;
        }
 
    }
    class PhoneList<T> where T : PhoneNumber
    {
        T[] obj;
        int kolvo;
        public PhoneList()
        {
            obj = new T[0]; // massiv k metodam ( length + 1)
            kolvo = 0;
        }
        public PhoneList(int kol)
        {
            obj = new T[kol];
            kolvo = kol;
        }
        public void ADDvmas(T a)
        {
            T[] dob = new T[obj.Length + 1];
            for (int i = 0; i < obj.Length; i++)
            {
                dob[i] = obj[i];
                dob[dob.Length - 1] = a;
                obj = dob;
            }
            for (int p = 0; p < dob.Length; p++)
            {
                Console.Write(dob[p]);
 
            }
        }
 
        public void Nomer(int phone)
        {
 
            for (int i = 0; i < obj.Length; i++)
 
                if (obj[i].T == phone) Console.WriteLine(obj[i].P);
 
        }
 
        public void Name(string im)
        {
 
            for (int i = 0; i < obj.Length; i++)
                if (obj[i].P == im)
                    Console.WriteLine(obj[i].T);
 
        }
 
    }
 
 
    class Program
    {
        static void Main(string[] args)
        {
 
            PhoneList<PhoneNumber> phoneList = new PhoneList<PhoneNumber>(5);
 
            PhoneNumber a1 = new PhoneNumber("S", 474495);
            PhoneNumber a2 = new PhoneNumber("K", 441563);
            PhoneNumber a3 = new PhoneNumber("N", 237185);
            PhoneNumber a4 = new PhoneNumber("V", 123456);
            masgo.Add(a1);
            pmasgo.Add(a2);
            masgo.Add(a3);
            masgo.Add(a4);
            masgo.Nomer(441563);
 
            masgo.Name("Nа");
 
            Console.ReadKey();
        }
    }
}
 Комментарий модератора 
Описывайте задачу, а не только прилагайте код
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.02.2012, 22:51
Ответы с готовыми решениями:

Найти ошибки в приложенном коде
Вот я написал такую программу: using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms;...

Найти ошибки в приложенном коде
как исправить ошибку? int b,p; double v,v2,dv,m,m2,dm,W; do { ...

Найти ошибки в приложенном коде (Use of unassigned local variable)
Что нужно сделать что бы все работало? Все никак не пойму, делаю переменные в цикле пропадает одна проблема, но появляется другая. И...

18
 Аватар для ayrat_net
84 / 84 / 12
Регистрация: 12.01.2011
Сообщений: 1,049
29.02.2012, 22:52
в 35-ой строке снизу 14-ый символ справа не верный
1
19 / 19 / 0
Регистрация: 24.05.2011
Сообщений: 27
29.02.2012, 23:12  [ТС]
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
static void Main(string[] args)
        {
 
            PhoneList<PhoneNumber> masgo = new PhoneList<PhoneNumber>(5) { };// здесь задать вопрос
 
            PhoneNumber a1 = new PhoneNumber("S", 474495);
            PhoneNumber a2 = new PhoneNumber("K", 441563);
            PhoneNumber a3 = new PhoneNumber("N", 237185);
            PhoneNumber a4 = new PhoneNumber("V", 123456);
            masgo.ADDvmas(a1);
            masgo.ADDvmas(a2);
            masgo.ADDvmas(a3);
            masgo.ADDvmas(a4);
            masgo.Nomer(441563);
 
            masgo.Name("Nа");
 
            Console.ReadKey();
        }
если исправить так !? но все ровно выводит чудно !
 Комментарий модератора 
Используйте теги форматирования кода!
1
 Аватар для ayrat_net
84 / 84 / 12
Регистрация: 12.01.2011
Сообщений: 1,049
29.02.2012, 23:20
Бро. Мой коммент был шуточный.
Дело в том, что кода просят найти ошибку, все выкладывают код ошибки в первую очередь, а потом уже код остальной

Я думаю тут мало кто будет искать то, непонятно что
1
19 / 19 / 0
Регистрация: 24.05.2011
Сообщений: 27
29.02.2012, 23:41  [ТС]
вхаах ... зато я нашла свою ошибку ..но код по прежнему запускаєтся по раковому (
1
 Аватар для ayrat_net
84 / 84 / 12
Регистрация: 12.01.2011
Сообщений: 1,049
29.02.2012, 23:47
Смотри существует несколько типов ошибок:
1) Синтаксические
2) Логические
... (и еще какие то)

Если синтаксическая или ошибка в том, что ты не правильно использовала язык, высылай ошибку или ошибки и мы тебе чем сможем тем поможем

Если ошибка логическая, то рассказывай о том как должна работать часть кода которую ты выложила.
Но тут мало кто тебе поможет, потому разбирать чужой код не интересно, когда и своего кода хватает
1
29.02.2012, 23:47
Лучший ответ Сообщение было отмечено как решение

Решение

Не по теме:

Девчонкам вообще программирование противопоказано )

4
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
29.02.2012, 23:55
Да там не одна ошибка. Во-первых что за бред тут вообще?
C#
1
2
3
4
5
6
7
8
9
PhoneList<PhoneNumber> phoneList = new PhoneList<PhoneNumber>(5);
//-----
 masgo.Add(a1); 
 pmasgo.Add(a2);
 masgo.Add(a3);
 masgo.Add(a4);
 masgo.Nomer(441563);
 
 masgo.Name("Nа");
masgo, pmasgo, так от нефиг делать написано? Даже, если переименовать phoneList (хотя это одно из самых адекватных названий) в masgo, то там нету метода Add. Короче это явно не ваш код, нереально совершить такие ошибки написав самостоятельно остальной код.

Добавлено через 1 минуту
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    class Friend : PhoneNumber
    {
        string type;
        public Friend()
        {
            type = "0";
        }
        public Friend(string ty, string n, int t)
            : base(n, t)
        {
            type = ty;
        }
 
    }
Это типа, чтобы потом обфускатором не заморачиваться? Почему-то как я заметил многие считают нормальным называть пеменные x, ty, zfr, p (а-а-а жесть). Я это считаю вообще быдлокодерским стилем.

Добавлено через 4 минуты
А-а-а, есть ADDvmas. Да какая разница в массив или нет, просто Add и всё.
1
01.03.2012, 00:14

Не по теме:

Цитата Сообщение от sau Посмотреть сообщение
Не по теме:
Девчонкам вообще программирование противопоказано )
sau, по вашему если девушка, то ее место на кухне или аля обучение на экономе и прочему бреду? :gmad:

1
 Аватар для ayrat_net
84 / 84 / 12
Регистрация: 12.01.2011
Сообщений: 1,049
01.03.2012, 00:15
tantemka,

Не по теме:

Не флуди :) или ты хочешь об этом поговорить?

0
01.03.2012, 00:17

Не по теме:

да просто обидно из-за таких вот слов становится(
Флудить не буду)

0
01.03.2012, 00:28

Не по теме:

tantemka,

по вашему если девушка, то ее место на кухне или аля обучение на экономе и прочему бреду?
пуся, "место" девушки рядом с "местом" ее мужчины, а не портить свои красивые глазки за гудящей машинкой и не ломать свою головку о непонятные букавки.

0
 Аватар для агерон
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
01.03.2012, 00:53
Лучший ответ Сообщение было отмечено как решение

Решение

Держи студентка
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication8
{
    public class PhoneRecord
    {
        public string Name { get; set; }
        public string Telphone { get; set; }
 
        public PhoneRecord(string name, string telphone)
        {
            Name = name;
            Telphone = telphone;
        }
    }
 
    public class Friend : PhoneRecord
    {
        string Type { get; set; }
        
        public Friend(string type, string name, string telphone):base(name, telphone)
        { Type = type; }
    }
 
    public static class ExtendedMethods
    {
        public static PhoneRecord FindName(this List<PhoneRecord> phones, string name)
        {
            return phones.First(x => 
            {
                if (string.Compare(x.Name, name, true) == 0)
                {
                    Console.WriteLine("Name: {0}, Telephone: {1}", x.Name, x.Telphone);
                    return true;
                }
                return false;
            });
        }
 
        public static PhoneRecord FindNumber(this List<PhoneRecord> phones, string telphone)
        {
            return phones.First(x =>
            {
                if (string.Compare(x.Telphone, telphone, true) == 0)
                {
                    Console.WriteLine("Name: {0}, Telephone: {1}", x.Name, x.Telphone);
                    return true;
                }
                return false;
            });
        }
    }
    
    class Program
    {
 
        static void Main(string[] args)
        {
            List<PhoneRecord> phones = new List<PhoneRecord>();
 
            PhoneRecord a1 = new PhoneRecord("S", "474495");
            PhoneRecord a2 = new PhoneRecord("K", "441563");
            PhoneRecord a3 = new PhoneRecord("N", "237185");
            PhoneRecord a4 = new PhoneRecord("V", "123456");
            phones.Add(a1);
            phones.Add(a2);
            phones.Add(a3);
            phones.Add(a4);
            phones.FindNumber("441563");
            phones.FindName("N");
            Console.ReadKey();
        }
    }
}
и в следующий раз прикладывай к коду задание того что хочешь получить, а так пользуйся результатами того как я понял твой исходный код

P. S. код писался в MS VS 2008 (.NET 3.5)
3
Злой няш
 Аватар для I2um1
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
01.03.2012, 01:01
Выкинул лишнее:
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
83
84
85
86
87
88
89
90
91
using System;
using System.Linq;
 
namespace ConsoleApplication
{
    class Program
    {
        static void Main()
        {
 
            var phoneList = new PhoneList(2);
            phoneList.Add(new PhoneNumber("Петров", 474495, TypePhoneNumber.Friend));
            phoneList.Add(new PhoneNumber("Ольга", 441563, TypePhoneNumber.Friend));
            phoneList.Add(new PhoneNumber("Иван", 237185, TypePhoneNumber.Friend));
            phoneList.Add(new PhoneNumber("Игорь", 123456, TypePhoneNumber.Supply));
 
            Console.WriteLine(phoneList.Count);
            Console.WriteLine(phoneList[441563]);
            Console.WriteLine(phoneList["Игорь"]);
        }
    }
 
    enum TypePhoneNumber
    {
        Friend,
        Supply
    }
 
    class PhoneNumber
    {
        public PhoneNumber(string name, int number, TypePhoneNumber type)
        {
            Name = name;
            Number = number;
            Type = type;
        }
 
        public string Name { get; set; }
        public int Number { get; set; }
        public TypePhoneNumber Type { get; set; }
 
        public override string ToString()
        {
            return string.Format("{0}: {1} - {2}", Name, Number, Type);
        }
    }
 
    class PhoneList
    {
        const int STEP = 2;
 
        PhoneNumber[] array;
 
        public PhoneList()
            : this(STEP) { }
 
        public PhoneList(int count)
        {
            if (count < 1)
                throw new ArgumentException("Количество элементов не может быть отрицательным.");
            array = new PhoneNumber[count];
            Count = 0;
        }
 
        public int Count { get; set; }
 
        public void Add(PhoneNumber value)
        {
            if (Count == array.Length)
                Extend();
            array[Count++] = value;
        }
 
        public PhoneNumber this[string name]
        {
            get { return array.FirstOrDefault(x => x.Name == name); }
        }
 
        public PhoneNumber this[int number]
        {
            get { return array.FirstOrDefault(x => x.Number == number); }
        }
 
        void Extend()
        {
            var temp = new PhoneNumber[Count + STEP];
            Array.Copy(array, temp, Count);
            array = temp;
        }
    }
}
Без синонимов, лишних переменных, непонятной логики.
1
 Аватар для агерон
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
01.03.2012, 01:55
Так а теперь разберем типичные ошибки в коде....

1) кто вам сказал что значение поля телефон целое? как записать в это поле что то подобное "8(063)893-56-67"? а ведь сейчас у всех есть мобильные

2) класс списка PhoneList - у тебя есть уверенность что твой класс лучше стандартного List<PhoneRecords>? данные постоянно хранить в массиве и постоянно этот масив ремапить это наверное круто?
как его в будущем модифицировать и поддерживать? зачем вручную реализовывать стандартные алгоритмы которые от тестированы и проверены?

3) твои индексаторы
C#
1
2
3
4
5
public PhoneNumber this[int number]
 
и
 
public PhoneNumber this[string name]
для чего они в твоем классе списка? чтобы внести лишнюю путаницу?

4) поиск
Ты уверен что выражения
C#
1
x => x.Name == name и x.Number == number
всегда будут возвращать то что нужно?
что к примеру вернет выражение
C#
1
x => x.Name == name
если x.Name="Иванов" а name="иванов"? ты не подумал?

5) функция PhoneList.Extend не ужели ты думаешь что твой алгоритм перераспределения памяти эфективен? если да то почитай как выделяеться память в тех же стандартных колекциях
1
Злой няш
 Аватар для I2um1
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
01.03.2012, 02:26
агерон, а глянуть начальный код ТС не судьба? И оценить то, что я с ним сделал. Я ставил задачу перед собой привести в норму уже имеющийся код без значительных изменений.

1. А вы не знаете требование программы, так что ничего не можете утверждать. Я руководствовался тем, что взяла ТС.
2. ТС хотела реализовать через массив, я это право не менял. В коде коллекция List<T> вообще-то не использовалась. Да и от куда такая уверенность в эффективности List<T>?
3.
Цитата Сообщение от агерон Посмотреть сообщение
чтобы внести лишнюю путаницу?
Некое соответствие IDictionary<T>. Образовались при фиксе багов.
4. Если данного элемента нет в коллекции, возвращается элемент по умолчанию - самое просто, что можно было продемонстрировать.
5. Я не преследовал цель гнаться за производительностью, так как хотел написать максимально просто.
0
 Аватар для агерон
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
01.03.2012, 08:15
А вы не знаете требование программы, так что ничего не можете утверждать. Я руководствовался тем, что взяла ТС
я тоже руководствовался кодом TC, НО! только чтобы понять что она хотела получить в результате, а не для того чтобы "чучуть" переписать код TC
Да и от куда такая уверенность в эффективности List<T>?
List<T> эффективны уже по 3 причинам:
1. динамически меняют размер
2. эффективно меняют размер. В List изменение идет как newSize=2*OldSize, а это эффективнее чем твое newSize=OldSize+2, если не ошибаюсь, в логорифмической степени, т. е. чем дальше тем эффективнее, не надо десятки и сотни раз делать ресайзы массива данных. если за изначальный размер массива взять 4 элемента то для того чтобы твоей функцией достигнуть размерности в 1000 элементов нужно будет сделать 497 операций ресайза и выделить последовательно память для примерно 500000 элементов (сумма арифметической прогрессии ), но в случае стандартного List<T> ресайз произойдет всего 10 раз (2^10=1024) и сумарное выделение памяти будет примерно 2000 элементов (сумма геометрической прогрессии с показателем 2) как ты видишь стандартный List<T> работает почти в 50 раз быстрее по скорости выделения и почти в 250 раз эффективнее по выделенной памяти чем твой алгоритм реализованный в PhoneList.Extended для 1000 элементов, да упреждая крик о том что у ТС 4 элемента в массиве... ты показываешь порочную практику и данный твой код являеться потенциально "узким местом" а если этих мест в программе будут десятки? или недай бог сотни?
3. класс PhoneList у TC есть кривая реализация стандартного List<T> с 1 фукцией добавления и 2 функциями поиска (которые я реализовал через расширенные методы List<T>)

Дальше...
Некое соответствие IDictionary<T>. Образовались при фиксе багов.
запомни раз и навсегда "старый код" потенциальный источник ошибок и поэтому любой нерабочий или не нужный код ДОЛЖЕН УДАЛЯТЬСЯ, легче потратить полчаса на дописывание нужной функциональности чем мучительно вспоминать что и зачем делает непонятно откуда возникший закоментированный кусок кода
и да подучи как осущевстляется сравнивание не ОБЪЕКТОВ а ЗНАЧЕНИЙ ОБЪЕКТОВ что такое интерфейс IComparer и для он используется
Если данного элемента нет в коллекции, возвращается элемент по умолчанию - самое просто, что можно было продемонстрировать
которого у тебя нет и поэтому возвращается NULL что опять приводит к путанице данные как бы и есть но вот достать их нельзя
Я не преследовал цель гнаться за производительностью, так как хотел написать максимально просто
Знаешь есть выражение простота - хуже воровства... знай чтобы написать код ПРОСТО нужно через себя пропустить сотни и тысячи строк других исходников (зачастую и на других языках) вырабатать свои собственные приемы и только тогда писать ПРОСТОЙ код
0
01.03.2012, 08:48
 Комментарий модератора 
tantemka,
sau, для свободного общения есть личные сообщения
0
Злой няш
 Аватар для I2um1
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
01.03.2012, 15:00
агерон, попробую донести до вас свою точку зрения:
Предположил то, что здесь речь идет о неком телефонном справочнике. Тогда перечислю пару основных требований, которым он должен соответствовать, с небольшими пояснениями:
- хранение большого количества телефонных номеров; (хранить в оперативной памяти не подходит)
- быстрый поиск телефонных номеров. (так как это основная и часто востребованная функциональность справочника)

А теперь по порядку:

Цитата Сообщение от агерон Посмотреть сообщение
а не для того чтобы "чучуть" переписать код TC
Задание звучало "исправить ошибки в приложенном коде", которому я слепо и следовал. Я не приводил со своей точки зрения эффективный код, который решает данную задачу из-за сложности реализации и из-за того, что ТС не привела список требований.

Цитата Сообщение от агерон Посмотреть сообщение
List<T> эффективны уже по 3 причинам
В нашем случае само использование List<T> уже не эффективно. Вы пытаетесь оптимизировать код по производительности не в том месте. Ведь что такое справочник?
Приведу вполне очевидную ситуацию со справочником, который позволяет добавлять и искать нужную информацию:
- вероятность того, что пользователь откроет справочник с целью найти интересующий его номер, вполне может достигать 99% всех случаев;
- вероятность же того, что пользователь открывает справочник с целью добавить новый телефонный номер, ничтожно мало и вполне вероятно, что с трудом достигает 1% всех случаев.
Вот и получается то, что вы оптимизировали участок кода, который довольно редко выполняется. Проще говоря, данной оптимизацией можно спокойно пренебречь.
Чтобы не появилось расхождений смыслов: у вас, ровно как и у меня, поиск выполняется со сложностью O(n), а добавление элемента - O(1).

Цитата Сообщение от агерон Посмотреть сообщение
В List изменение идет как newSize=2*OldSize
Немножко не так:
код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public void Add(T item)
{
    if (this._size == this._items.Length)
    {
        this.EnsureCapacity(this._size + 1);
    }
    this._items[this._size++] = item;
    this._version++;
}
 
private void EnsureCapacity(int min)
{
    if (this._items.Length < min)
    {
        int num = (this._items.Length == 0) ? 4 : (this._items.Length * 2);
        if (num < min)
        {
            num = min;
        }
        this.Capacity = num;
    }
}


Цитата Сообщение от агерон Посмотреть сообщение
В List изменение идет как newSize=2*OldSize, а это эффективнее чем твое newSize=OldSize+2, если не ошибаюсь, в логорифмической степени, т. е. чем дальше тем эффективнее
Да, это эффективнее, но лишь с точки зрения производительности, а не памяти. Я специально сделал "+2", чтобы подчеркнуть неэффективность данного подхода.

Цитата Сообщение от агерон Посмотреть сообщение
3. класс PhoneList у TC есть кривая реализация стандартного List<T>
Значит на то была причина.

Цитата Сообщение от агерон Посмотреть сообщение
запомни раз и навсегда "старый код" потенциальный источник ошибок
Я нигде и не оспаривал этот момент. Но не всегда есть время и средства на переписывание кода с нуля.

Цитата Сообщение от агерон Посмотреть сообщение
легче потратить полчаса на дописывание нужной функциональности чем мучительно вспоминать что и зачем делает непонятно откуда возникший закоментированный кусок кода
Закомментированный кусок кода? Лучше избегать таких вещей. Не ясно к чему эта часть предложения была. Или это просто пример?

Цитата Сообщение от агерон Посмотреть сообщение
поэтому любой нерабочий или не нужный код ДОЛЖЕН УДАЛЯТЬСЯ
Сами говорите и пишите
такой код
C#
1
2
3
4
5
6
7
    public class Friend : PhoneRecord
    {
        string Type { get; set; }
        
        public Friend(string type, string name, string telphone):base(name, telphone)
        { Type = type; }
    }

К слову, вы проглотили еще один класс.

Цитата Сообщение от агерон Посмотреть сообщение
которого у тебя нет и поэтому возвращается NULL что опять приводит к путанице данные как бы и есть но вот достать их нельзя
И что вы предлагаете? Заменить метод на First, чтобы выбрасывалось исключение? Или возвращать список найденных значений? Ведь неизвестно какие поля являются ключевыми. Я настаиваю лишь на том, что код в корне неправильный как у вас, так и у меня. Но лишь с той оглядкой, что я сделал попытку исправить код, что собственно и требовалось, а вы написали код с нуля.

Цитата Сообщение от агерон Посмотреть сообщение
и да подучи как осущевстляется сравнивание не ОБЪЕКТОВ а ЗНАЧЕНИЙ ОБЪЕКТОВ что такое интерфейс IComparer и для он используется
ТС делала обычное сравнение, т.е. я расцениваю вашу попытку как накрутить ненужный функционал. С таким успехом можно было реализовывать полнотекстовый и частичный поиск.

Цитата Сообщение от агерон Посмотреть сообщение
Знаешь есть выражение простота - хуже воровства...
Не редкий случай, когда задачу можно решить двумя способами: простым и сложным. Причем сложный дает некоторый выигрыш в эффективности. Однако за эту эффективность приходится платит: значительно проще сопровождать простой, понятныйочевидный код, легче и быстрее он поддается распараллеливанию и оптимизации, чем более эффективный сложный алгоритм. Имеет место тратить силы и время на оптимизацию сложного алгоритма только в тех случаях, где это востребовано.
На этот счет у меня даже есть цитата: "Программы должны быть написаны так, чтобы их могли читать люди, и лишь иногда так, чтобы их могли выполнять машины." Абельсон и Сассман.

И если речь уже пошла о чистоте кода, то оба ваших метода FindNumber дублируют код, чего следовало избежать.

P.S. Надеюсь я максимально точно описал свою позицию. И это поможет вам понять то, чего я добивался.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.03.2012, 15:00
Помогаю со студенческими работами здесь

Исправить ошибки в коде
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace...

Исправить ошибки в коде
Привет. Помогите пожалуйста. Выдает ошибки помогите исправить. using System; using System.Linq; using System.Text; using...

Исправить ошибки в коде
class Tel { protected string marka; protected int funk; string _marka { get...

Исправить ошибки в коде
Помогите исправить ошибки в коде Задание: Создать файл T1.txt в него вписать отрицательные и положительные числа. Составить...

Исправить ошибки в коде
Помогите исправить ошибки в коде: using System; using System.Collections.Generic; using System.Linq; using System.Text; using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru