Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
6 / 6 / 0
Регистрация: 06.12.2020
Сообщений: 142

Уменьшение размеров кода

01.03.2021, 13:26. Показов 5701. Ответов 57
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть такой интересный код(это его часть, а так он намного больше), вопрос в том, как уменьшить код, чтоб не было стены на 200+ строк?
C#
1
2
3
4
5
6
7
8
9
10
if (A1.Text != "")
    AB1.Text = YmatrixChis(A1);
if (A2.Text != "")
    AB2.Text = YmatrixChis(A2);
if (A3.Text != "")
    AB3.Text = YmatrixChis(A3);
if (A4.Text != "")
    AB4.Text = YmatrixChis(A4);
if (A5.Text != "")
    AB5.Text = YmatrixChis(A5);
YmatrixChis:
C#
1
2
3
4
string YmatrixChis(params Control[] ctrl)
{
     return ((int.Parse(ctrl[0].Text) * int.Parse(chis.Text))).ToString();
}
AB(число), A(число) это название TextBox`ов
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.03.2021, 13:26
Ответы с готовыми решениями:

Уменьшение размеров кода
AB1.Text = ((int.Parse(A1.Text) * int.Parse(B1.Text)) + (int.Parse(A6.Text) * int.Parse(B2.Text)) + (int.Parse(A11.Text) *...

Уменьшение размера кода
Изучаю C# третий день и решился взяться за программу для расчета ХЭШ кода, который нужен был по учебе, и столкнулся я с тем, что не знаю...

Наследование/уменьшение объема кода
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication10 { ...

57
bite
 Аватар для I can
5009 / 4819 / 852
Регистрация: 13.04.2015
Сообщений: 10,084
29.04.2021, 17:51
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от DarkComet Посмотреть сообщение
можно создавать хоть сколько
Но с таблицей работать всё-равно проще.
0
6 / 6 / 0
Регистрация: 06.12.2020
Сообщений: 142
30.04.2021, 17:47  [ТС]
Я бы не отказался от помощи... даже если бы там была реализовано только возведение матрицы в степень(код где все читается, без всего остального)
0
bite
 Аватар для I can
5009 / 4819 / 852
Регистрация: 13.04.2015
Сообщений: 10,084
30.04.2021, 18:48
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
        // Выполняет умножение одной матрицы на другую.
//
// Вход:
// A1    - первая матрица;
// A2    - вторая матрица;
// M1    - количество строк в первой матрице;
// N1    - количество столбцов в первой матрице и строк во второй;
// N2    - количество столбцов во второй матрице.
//
// Выход:
// Матрица размера M1*N2 являющаяся произведением матриц-аргументов.
//
// Примечание:
// Первая матрица должна содержать как минимум M1 строк и N1 столбцов, а вторая как минимум N1 строк и N2 столбцов.
       static int[,] matrixMul(int[,] A1, int[,] A2, int M1, int N1, int N2) 
        {
         int[,] A = new int[M1,  N2] ;  
          for(int i = 0; i<M1; i++) 
            for(int j = 0; j<N2; j++)
              for (int k = 0 ;k<N1; k++)
                A[i, j] = A[i, j] + A1[i, k]  *  A2[k, j];
             return A;
         }
1
6 / 6 / 0
Регистрация: 06.12.2020
Сообщений: 142
30.04.2021, 19:05  [ТС]
I can, у меня появился вопрос. Как можно числа из pnSourceData.Controls[i].Text перенести в массив?
0
bite
 Аватар для I can
5009 / 4819 / 852
Регистрация: 13.04.2015
Сообщений: 10,084
30.04.2021, 19:32
Сейчас посмотрю.

Добавлено через 13 минут
Это ппц. Лучше заново всё переделать.
0
bite
 Аватар для I can
5009 / 4819 / 852
Регистрация: 13.04.2015
Сообщений: 10,084
30.04.2021, 20:28
Вот, целый час потратил. Сделал заново более-менее по человечески на dataGridView.
Умножение матриц и возведение в степень.
Миниатюры
Уменьшение размеров кода  
Вложения
Тип файла: rar WorkWithMatrix.rar (42.0 Кб, 2 просмотров)
1
bite
 Аватар для I can
5009 / 4819 / 852
Регистрация: 13.04.2015
Сообщений: 10,084
30.04.2021, 20:36
Ошибка в 34-ой строке.
Сейчас
C#
1
for (int j = 0; j < A.GetLength(0); j++)
должно быть
C#
1
for (int j = 0; j < A.GetLength(1); j++)
1
6 / 6 / 0
Регистрация: 06.12.2020
Сообщений: 142
30.04.2021, 22:53  [ТС]
I can, мне кажется что то я делаю не так... pnSourceData.Controls[i].Text.ToArray<int>() - выдает ошибку
"string" не содержит определение для "ToArray", и наиболее подходящий перегруженный метод расширения "Enumerable.ToArray<int>(IEnumerable<int >)" требует наличия получателя типа "IEnumerable<int>".
C#
1
(pnTargetData.Controls[i] as TextBox).Text = matrixMul(pnSourceData.Controls[i].Text.ToArray<int>(), pnSourceData.Controls[i].Text.ToArray<int>(), udX, udX, udY);
Добавлено через 2 часа 15 минут
У меня случилась глюк с браузером... поэтому это сообщение должно быть вместе с 44
0
bite
 Аватар для I can
5009 / 4819 / 852
Регистрация: 13.04.2015
Сообщений: 10,084
01.05.2021, 08:28
Добавил умножение матрицы на число
Миниатюры
Уменьшение размеров кода  
Вложения
Тип файла: rar WorkWithMatrix.rar (46.0 Кб, 3 просмотров)
1
6 / 6 / 0
Регистрация: 06.12.2020
Сообщений: 142
01.05.2021, 09:06  [ТС]
I can, спасибо за код, вы мне очень помогли... можете помочь ещё один раз, я хочу заполнить DGV1 из panel.
C#
1
2
3
4
5
6
            for (int k = 0; k < Convert.ToInt32(pnSourceData.Controls.Count); k++)
            {
                for (int i = 0; i < Convert.ToInt32(textBox1.Text); i++)
                    for (int j = 0; j < Convert.ToInt32(textBox1.Text); j++)
                        dataGridView1.Rows[i].Cells[j].Value = (pnSourceData.Controls[k] as TextBox).Text;
            }
Но во все элементы DGV1 записывается значение из последнего textbox`a panel. можете сказать где я ошибся.
0
bite
 Аватар для I can
5009 / 4819 / 852
Регистрация: 13.04.2015
Сообщений: 10,084
01.05.2021, 09:17
DarkComet, а зачем вы переписываете значения из текстбоксов в таблицу? Зачем эти лишние действия?
Никак не можете расстаться с текстбоксами? Я же дал практически готовую программу.

Добавлено через 3 минуты
Но если неймётся, то можно так
C#
1
2
3
4
5
6
7
               int k = 0;  
                for (int i = 0; i < Convert.ToInt32(textBox1.Text); i++)
                    for (int j = 0; j < Convert.ToInt32(textBox1.Text); j++)//уверены, что  textBox1 ????????????
                             {
                                dataGridView1.Rows[i].Cells[j].Value = (pnSourceData.Controls[k] as TextBox).Text;
                                k++;
                             }
1
01.05.2021, 09:26  [ТС]

Не по теме:

Цитата Сообщение от I can Посмотреть сообщение
Никак не можете расстаться с текстбоксами?
я люблю их, это любовь с первого взгляда :)

0
bite
 Аватар для I can
5009 / 4819 / 852
Регистрация: 13.04.2015
Сообщений: 10,084
01.05.2021, 09:30
Цитата Сообщение от DarkComet Посмотреть сообщение
я люблю их, это любовь с первого взгляда
Порвите с прошлым без сожаления, оно не даёт двигаться вперёд

Добавлено через 1 минуту
Кстати, мой код тоже не идеален. Лучше сделать отдельный класс для работы с матрицами.
1
6 / 6 / 0
Регистрация: 06.12.2020
Сообщений: 142
03.05.2021, 17:27  [ТС]
I can, А если я захочу найти определитель матрицы, то нужно создать кнопку и при нажатии создовать динамический label... и как это написать... видимо мне ещё много нужно узнать о DGV
0
 Аватар для ViterAlex
8953 / 4865 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
05.05.2021, 10:55
Цитата Сообщение от DarkComet Посмотреть сообщение
как это написать
Например, так.
1
6 / 6 / 0
Регистрация: 06.12.2020
Сообщений: 142
05.05.2021, 13:42  [ТС]
ViterAlex, попробовал... ничего не выводит и нет ошибки...
0
 Аватар для ViterAlex
8953 / 4865 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
05.05.2021, 14:58
DarkComet, пробуй ещё
2
05.05.2021, 15:45  [ТС]

Не по теме:

ViterAlex, Прошу прощения за свою глупость, я не заметил, что при нажатии кнопки вообще ничего не происходит. Я все исправил и у меня заработало, спасибо за помощь

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

Вопросы по C# уменьшение написанного кода с Console
Здравствуйте ! У меня такие вопросы : t = int.Parse(Console.ReadLine()); //вводим число Настолько я понимаю, здесь сначала...

Уменьшение строк кода для преобразования даты и времени изменения файла в строку
Мне хотелось бы в конечном итоге переименовать файлы так, чтобы дата и время изменения файла стояли в начале имени файла. Тогда файлы на...

Уменьшение размеров картинки
Здравствуйте, подскажите способы сжатия расширения изображения формата bmp,jpeg в делфи с минимальной потерей качества,какие операторы за...

Уменьшение размеров sysaux
Тестировал создание AWR, в итоге чего sysaux разъелся до 31Гб, снимки удалил (BEGIN ...

уменьшение размеров tablelayoutpanel
Добавляю строки, все нормально , панель увеличивается, но при удалении строк (rowcount-=1) панель уменьшаться не хочет, в результате...


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

Или воспользуйтесь поиском по форуму:
58
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru