Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2011, 20:05   #1
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию как сделать код более качественным

У меня есть программа но она очень тупо написана. Я ее писал методом тыка. Впринципе она работает но мне хотелось бы знать как ее можно сократить и вообще чтоб она не была такой тупой Можно не писать код а просто дать какие-то определенные советы. Я попробую дальше сам, хотя от кода тоже не против

п.с. перевод гугл транслейт
п.п.с. visual c# wpf
Вложения
Тип файла: zip sa_l1_wpf.zip (75.7 Кб, 10 просмотров)
rUs_LAN вне форума Ответить с цитированием
Старый 18.11.2011, 18:19   #2
Prizrak86
Форумчанин
 
Аватар для Prizrak86
 
Регистрация: 15.10.2011
Сообщений: 139
По умолчанию

Цитата:
Сообщение от rUs_LAN Посмотреть сообщение
У меня есть программа но она очень тупо написана. Я ее писал методом тыка. Впринципе она работает но мне хотелось бы знать как ее можно сократить и вообще чтоб она не была такой тупой Можно не писать код а просто дать какие-то определенные советы. Я попробую дальше сам, хотя от кода тоже не против

п.с. перевод гугл транслейт
п.п.с. visual c# wpf
что то у меня как то с ошибками открывается проект, выложи сюда исходник.
Программист это не профессия, программист - это образ жизни.
Prizrak86 вне форума Ответить с цитированием
Старый 20.11.2011, 12:33   #3
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 823
По умолчанию

То, что бросилось в глаза:
Дублирование кода, код можно сократить раза в 2, к примеру:
Цитата:
w1[i] = Math.Pow(a1[i, 1] * a1[i, 2] * a1[i, 3] * a1[i, 4], 1 / 4.0) / (Math.Pow(a1[1, 1] * a1[1, 2] * a1[1, 3] * a1[1, 4], 1 / 4.0) +
Math.Pow(a1[2, 1] * a1[2, 2] * a1[2, 3] * a1[2, 4], 1 / 4.0) + Math.Pow(a1[3, 1] * a1[3, 2] * a1[3, 3] * a1[3, 4], 1 / 4.0) +
Math.Pow(a1[4, 1] * a1[4, 2] * a1[4, 3] * a1[4, 4], 1 / 4.0));
Вынести в функцию, передавать в нее параметры, а не писать одно и то же 5 раз подряд. Еще пример дублирования:
Код:
 h = 1;

            for (i = 1; i < 5; i++)
            {
                for (j = 1; j < 5; j++)
                {
                    if (i == j) a5[i, j] = 1;
                    if (j > i) { a5[i, j] = nm[5,h]; h++; }
                    if (j < i) { a5[i, j] = 1 / a5[j, i]; }

                }
            }
Так же написан 5 раз подряд. Вот еще:
Код:
 for (i = 1; i < 5; i++)
            {
                for (j = 1; j < 5; j++)
                {
                    Console.Write("{0:f2}\t", a3[i, j]);
                    row[i] = row[i] + "   " + string.Format("{0:0.000}", a3[i, j]);
                }
                row[i] = row[i] + "\t w[" + i + "]=" + string.Format("{0:0.0000}", w3[i]);
                vMatrix.Items.Add(row[i]);

            }
Вместо массивов, я бы использовал коллекцию, проще, эффективней, можно с linq побаловаться. После того, как все лишнее из кода уйдет можно разобрать остальное.
Не давай организму поблажки, каждый день тренируй его в шашки..

Последний раз редактировалось Скарам; 20.11.2011 в 12:36.
Скарам вне форума Ответить с цитированием
Старый 23.11.2011, 14:28   #4
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

Создал 2 функции, но пришлось использовать массивы массивов. Вы не могли показать простенький пример работы с коллекциями.

файл .7z.zip проблемы с кодрыровкой в zip.
Вложения
Тип файла: zip sa_l1_wpf.zip (593.0 Кб, 3 просмотров)
rUs_LAN вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать видимым код моего баннера? iiwanc HTML и CSS 1 17.07.2011 14:08
Как сделать функцию MessageBox более умной assch Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 06.06.2011 22:50
Как сделать обработчик более универсальным? k1r1ch Общие вопросы Delphi 3 11.10.2009 19:17
Как вам код, и есть ли более простые решения ? SuBwooFer PHP 1 10.09.2009 15:08
Как сделать более точные координаты мышки xGroupers Общие вопросы Delphi 7 24.04.2008 23:02