Памагите с С#.Вот есть матрица. В ней последний столбец и в нем числа. Надо строки в матрице переставить так, чтобы получилось, что в последнем столбце числа по возрастанию стоят.Как это сделать? Я могу отсортировать только числа в одном столбце, но не могу понять как переставить заодно и строки.Я не спал больше суток и похоже уже не смогу сам додумать. Помогите исправить ошибки.Вот код который сортирует последний столобец. Но как заставить его переставлять строки вместе с числами из последнего столбца? Я уже все перепробовал.for (int i = 0; i < n; i++) { for (int j = 0; j < n - 1; j++) { if (arr2[j + 1, n] < arr2[j, n]) { int t = arr2[j,n]; arr2[j, n] = arr2[j + 1, n]; arr2[j + 1, n] = t; } } }
Похоже я споткнусь на финише и так и не сдам эту лабораторную.
Зачем пары проебывал? Там все рассказывали же.
Думай головой, пидорас. Начинай реализовывать идею с конца. Нахуя вообще поступал, чёрт ебучий? Чтобы по каждому пуку никчемные треды свои создавать? Только что решил эту хуйню в голове. Задавай ответы.
>>166339673Так и представляю, как на С#-парах по байтам рассматривают различные алгоритмы модификаций матриц.
Задачу исходную покажи
>>166339586 (OP)Зачем тебе внешний цикл? Ты же его никак не используешь просто повторяешь внутренний n раз, зачем?
>>166339687Ну как решить? Не выходит переставить строки целиком.
>>166339586 (OP)Отчисляйся, это не твоё, если в таком простом месте разобраться не можешь, то дальше будет только хуже, так что тобi пiзда тiкай з городу
>>166339735Вот и исходная, считай что. Остальное я уже порвал себе сраку и сделал. Осталось расставить строки по порядку и все.
>>166339814Ну я тешу себя мыслью, что я просто не выспался, а не настолько тупой.
>>166339814Дваждую>>166339833Так не бывает. Ты либо можешь решить, либо нет, как бы ты не выспался. Тем более на такой хуйне>>166339807Думай, пидорасина тупая. Пиши костыли, а потом упрощай код.
>>166339757А вот хуй. Без внешнего цикла не робит.
>>166339586 (OP)В виде чего у тебя матрица хранится?
>>166339911>Думай, пидорасина тупая. Ну я тупой. Ни магу. Покажи как надо. Не, серьезно. Если не трудно, не мог бы указать на ошибку. Я на примерах быстрее обучаюсь.
>>166340026двумерный массив int
>>166340041> Ну я тупой. Ни магу. Покажи как надо.Ты нахуя поступал? Если проебываешь пары и тупишь на такой хуйне, значит профессию ты не осилишь, и она тебе неинтересна, поэтому не трать своё и чужое время – отчисляйся нахуй.
>>166340041> я тупой немагуТогда прямо сейчас в деканат, а потом к военкому, чтоб мозгов набраться
Сортируй, блять, крайний столбец обычным пузырьком. А перестановку строк делай тем же самым принципом, но только возми еще один вложенный цикл, чтобы каждый элемент в строчке поменять местами с другим.
>>166340055Кароч. Напиши класс строки Row, в котором будет список элементов матрицы. Напиши статический метод преобразования двухмерного массива в одномерный массив (список) строк. В классе Row создай метод получения крайнего элемента (тот, по значению которого нужно сортировать). И в классе же Row статичный метод преобразования массива (списка) Row в интовый массив.Таким образом ты разделишь свою задачу на меньшие подзадачи и упростишь себе жизнь.
>>166340101>>166340113Ну серьезно. Покажите как надо. Я не вывожу после суток без сна. Блять. Я хуй знает. Отсортировать только последний столбик получается. Но чтобы переставить строку надо там в цикле указать столбец. А стоит вставить цикл и все идет по пизде и больше не работает. Я уже везде куда только можно притулил этот цикл для столбца и нихуя не вышло.
>>166340179Это понятно, но не работает. Отсортировать только последний столбик получается. Но чтобы переставить строку надо там в цикле указать столбец. А стоит вставить цикл и все идет по пизде и больше не работает. Я уже везде куда только можно притулил этот цикл для столбца и нихуя не вышло.for (int i = 0; i < n; i++) { for (int j = 0; j < n - 1; j++) { if (arr2[j + 1, n] < arr2[j, n]) { int t = arr2[j, n]; arr2[j, n] = arr2[j + 1, n]; arr2[j + 1, n] = t; } } }n - это как раз номер столбца. ЧТобы строку переставить надо вместо n цикл с перемнной. Но стоит этот еще один цикл воткнуть куда-то и все накрывается.Не мог бы ты исправить и показать как надо?
>>166340212Это C#, епты бля. Юзай ООП. Я бы показал как, но ближайшая студия на работе.>>166340184-кун
>>1663402121) пиши отдельно метод для перестановки двух столбцов в матрице2) вставляй в if3)... компелируй4)PROFIT
>>166340184Ну пиздец. Я думал как-то проще делается. Вот ведь уже отсортирован столбец, осталось только строки поменять местами вместе с ним.
>>166340287>Перестановки строк *быстрофикс
>>166340262>Юзай ООП.Ты в курсе, что ООП нужно для упрощения разработки больших приложений? И использовать его для приложения ОПа на 50 строчек - это долбоебизм?
>>166340296Твоя задача не столбца отдельно сортировать, а стоки.1) Делим матрицу на строки2) сортируем как нужно3) собираем строки обратно в матрицуТебе просто надо написать методы (и 1 класс), каждый из которых занимается одним своим делом.
>>166340333>для упрощения разработки больших приложенийКто сказал? Запрети мне юзать ооп везде, где я хочу.
>>166340351Запретил тебе за щеку
>>166339586 (OP)Сдохни мразь тупая гнида малолетняя.Нахуй ты суда лезишь она тебя сожрет. Иди на манагера
>>166340259Ты не совсем так сортировку делаешь: один цикл(i) от 0 до n, а внутри него еще один (j) - от следующего элемента (i+1) до n. Внутри этого цикла сравниваешь числа. Если, например, число по индексу j меньше, то меняешь местами строки. Меняешь по тому же принципу, что и в методе сортировки пузырьком, только менять надо не 2 числа местами, а 2n чисел.
>>166340338>1) Делим матрицу на строки>2) сортируем как нужноИ как я это сделаю? Если у меня сейчас не выходит, то как должно получится, если я это решение вынесу в отдельный класс? По волшебству что ли?
>>166339586 (OP) миллион способов решить это говно ебать ты тупой
>>166340417>то меняешь местами строки.В том и суть, что я не могу строки поменять. Не знаю как. Не мог бы ты показать?
>>166339586 (OP)У тебя есть датагрид.роу, в кажой роу есть последняя ячейка, по ней сравнивай, и сортируй строки методом пузырька, например. Либо учи запросы linq, там в один запрос отсортируешь по нужному параметру.
>>166340452Берешь числа из одного массива и перекладываешь в другой. На крестах можно было бы через массива указателей на массив сделать проще, но в шарпе только через цикл
>>166340417Сделал по твоему и не работает даже сортировка в последнем столбце.
>>166340452Только если на словах пояснить могу сейчас. Принцип такой: врубаем цикл по строке (k) и цикл по другой строке (l). t = a[k]; a[k] = a[l]. Ну и так со всеми элементами
>>166340548
нахуя тупому далбоебу помогаете?
>>166340424Пишешь статический метод public static List<Row> getRows(int[][] matrix);Метод вернет список строк.Дальше пишешь метод сортировки строкpublic static void sortRows(List<Row> rows);Этот метод отсортирует строки.Потом пишешь методpublic static int[][] buildMatrix(List<Row> rows);Метод соберет список строк в интовую матрицу.Реализации этих методов сам напишешь?
>>166340602Я мозги разминаю перед работой.
>>166340627Нахуя вы так изъебываетесь, может еще синглтон класс ему написать, чтобы решалось лучше?
>>166340666Сотона, нахуя ему синглтон тут?
>>166340674А нахуя ему 3 статик метода, для задачи в 15 строк?
>>166339735Похоже на симплекс метод.
>>166340655раб ебучий !
>>166340690Затем ему 3 метода, что они будут каждый в 3 строки. Каждый делает свое дело. Не будет неебической лесенки из 15 циклов, в которых заблудиться проще, чем лабиринтах Минотавра.
>>166340627>Дальше пишешь метод сортировки строк>public static void sortRows(List<Row> rows);>Этот метод отсортирует строки.Это там надо будет указывать метку сортировки и прочее. Это я не изучал и это сложно.
>>166340655у тебя есть мозг если ты таким тупым говном разминаешь
>>166340747Какую метку сортировки?
>>166340736>то они будут каждый в 3 строки.Напиши метод сортировки строк, например. Там охуеешь сколько строк.
>>166340772Я люблю порой вернуться в прошлое и вспомнить как сам мучился над простыми задачками.
>>166340787А как ты будешь строки сортировать? По какому признаку?
E
>>166340627хуете какая-то
>>166339586 (OP)Нахуй иди
>>166340821Я бы этот признак вытащил в метод int evaluate() класса Row. А внутри него указал бы свойство/формулу/аллаха, значение которого надо проверять.Сортировка выглядела бы так:public static void sortRows(List<Row> rows) {for (int i = 0; i < rows.size; i++) {for (int k = i; k < rows.size; k++) {if (rows.get(i).evaluate > rows.get(k).evaluate) {Row row1 = rows.get(i);Row row2 = rows.get(k);rows.get(i) = row2;rows.get(k) = row1;}}}
>>166341043>А внутри него указал бы свойство/формулуКакую?
>>166341181Конкретно в твоей задаче, это крайний правый элемент. Значит, у тебяpublic int evaluate() {return this.get(this.size - 1);}
Не ведитесь на зеленого, это уже второй тредж за сегодня.Если это и не тролль, то явно умственно отсталый, ему в прошлом треде кучу решений сбросили.
Ну що, оп, решил свою хуиту?
>>166344038Нет. Все только советы раздают. Которые нихуя не помогают.
>>166345646Ты пробовал методы и классы нахуярить?
Ладно, не хочешь 3 метода - напиши один.public void swapRows(int[][] matrix, int row1, int row2);Метод получает матрицу и два индекса строк. Все, что он делает, это идет по этим строкам и меняет элементы местами.Дальше этот метод вызываешь, когда надо строки свопнуть.Зачем метод? Затем, что 18 вложенных циклов нихуя не внесут ясности в твой код, а разделение задачи на подзадачи приведет к упрощению понимания.
>>166345842Зачем? Классы и методы только все усложняют в таком простом задании.
>>166346234Откуда он индексы строк возьмёт?
>>166346684Смари. Идешь такой по матрице, по последнему столбцу. А как ты идешь? А вот так: matrix[last_col][j]. last_col в данном случае, это индекс столбца, j - индекс строки.Ну вот идешь ты, такой, весь вдоль чиго бано, ну и сравниваешь значения элементов. И тут хуяк! И не по порядку элементы! А ты такой хуяк и вызываешь метод swapRows. И строки известны, и матрица, и Аллах с тобой.Заебца?
Оп, тут тебе никто готовый код не даст, думай по советам, упрощай, юзай Math.Max() вместо ручного сравнения.А не дадут кода потому, что если ты с этим не справишься - дальше будет только хуже.
>>166346894а мне бы готовый, чтобы на примере обучиться.
>>166354963А жаренных гвоздей не хочешь? за косарь напишу
>>166339586 (OP)Решил твою хуйню на sqlselect * from matrix order by lastRow
>>166355553>lastRowlastColumn конечно же
>>166339633Всегда есть свободная касса.
>>166339586 (OP)Ну в сортировке, что ты высрал тебе не элементы столбца надо менять местами, а строки матрицы как тебе уже пояснили. классы, методы , ору с индусов, им гвоздь надо забить, они берут кувалду
>>166339586 (OP)Держи на питонеprint(sorted(matrix, key=lambda x: x[-1]))
>>166356095>а строки матрицы как тебе уже пояснилиЯ и сам знаю, что строки надо. Я не знаю как мне это сделать.
>>166340333>50 строчек>сортировка массиваЧёта проиграл
>>166356276Братишка, ты не можешь две соседних строки свапнуть одним циклом?
>>166339586 (OP)Ты сначала мысли и цель формулировать научись нормально, а потом пиши.
>>166356527Так мне не просто две строки свапнуть, мне надо отсортировать все строки так, чтобы в последнем столбике числа оказались по возрастанию.
дайте пожлста готовое решение
,f