Приветствую, аноны-программисты. Хочу попросить вас помочь решить мне одну задачку:Дана матрица X[6,8]. Упорядочить элементы столбцов матрицы по невозрастанию, а сами столбцы по возрастанию произведения элементов столбцов.Пикрелейтед то, что есть. Заранее благодарствую.
Бамп тянучкой.
Бамп котиком.
Бамп сисечками. Ну помогите, пожалуйста.
Я бы помог, но я уже в пижаме.
Отчаянный бамп.
Еще пару раз бампну и пойду плакать.
>>167864791>>167864858>>167864933Дрочишь на них?
>>167865013Восхищаюсь. Так ты поможешь или нет?
> паскальПТУшное животное не палится. Сажи тупому уебку.
Ты шо даун? Иди спать. Новый год скоро, а ты как сыч за компьютером сидишь.
>>167865044Первый курс БГУИРа, так что не надо тут.
Праграммисты - пидараси!
>>167865037Я тебе помогу, но только не так как ты хочешь, но моя помощь будет более настоящей. Так вот. Бросай учебу которая тебе не нравится.
>>167865157Я согласен если меня назовут пидорасом, лишь бы 300к дали в секунду
>>167864770 (OP)>по невозрастаниюУебать бы тебе лопатой по голове.
Кинешь сотку на киви сделаю
>>167865191ТЫ ЧЁ ЕБАТЬ! НУ ЗАДАЧА ТАКАЯ! КОНЬ ТЫ ЕБАНЫЙ!
Ну че уже сам сделол?
>>167865327Нет еще, жду помощи.
>>167865187да, если они при этом еще и аниме смотрят
>>167865271Твой код - говно;Ты - говно;И тот кто написал такое задание используя "по невозрастанию" - тоже говно.
Дайте имя, ананасы https://m.yeptube.com/ru/video/181635/interracial-teen-takes-2-bbc-webcam-interracial-amateur-pt2
>>167864770 (OP)Гугли сортировку массива. Это так сложно?
>>167865191А как правильно ?
>>167865340>>167865201
>>167865379По убыванию
Что именно тебе непонятно? Сортировка элементов столбцов или сортировка самих столбцов? И да, нах ты заменяешь все нулевые элементы единицами? Это обговорено в задании? Если да, можно же просто задавать их random(9)+1
>>167865401Тут ты не прав. Есть убывание, а есть невозрастание.
>>167865426Есть другой красивый способ убрать нули из массива?
>>167865432>Тут ты не прав. Есть убывание, а есть невозрастание.Какая нафиг разница? Порядок одинаковых элементов по-любому значения не имеет, поскольку они одинаковые. И вообще, есть ascending, есть descending - точка.
>>167865446x[i,j]:=random(9)+1;Будут инты от 1 до 10.
>>167865470Неубывание допускает равенство элементов последовательности, возрастание - нет.
>>167865470Если последовательность 1,2,3,3,5 возрастающая, значит 3<3. Если неубывающая, то все ок.
>>167865480Спасибо, анон. А что скажешь насчет сортировки?
>>167865543Если размеры не слишком большие, пузырек - наше все (ну или любой другой несложный метод).
>>167865525>>167865492Какой смысл различать возрастающие и не убывающие последовательности? Алгоритмы сортировки работают одинаково в обоих случаях.
>>167865587С точки зрения математической терминологии - разные понятия.
>>167865585Что-то получилось, но всё равно не так.
>>167865646стрелочку поверни
>>1678656463-я строка: m-r, а не m-1
>>167865619>С точки зрения математической терминологии - разные понятия.Посмотрел - так и есть. Но с точки зрения программирования это одно и тоже. Сортировка, как я уже сказал, хорошо работает в обоих случаях. Есть повторяющиеся элементы или нет - ни на что не влияет.
>>167865682А еще количество строк и столбцов не так, не знаешь, как исправить?
>>167865692> с точки зрения программирования - одно и то жеЯ и не говорю, что это не так, просто лучше, как мне кажется, использовать корректные термины.
>>167865720Поменяй значения M и N.
>>167865756>как мне кажется, использовать корректные терминыКонечно лучше. Но мне, как прикладному программисту (или как это там называется), это делать лень.
>>167865776Спасибо тебе, анонче. Спас меня от неминуемой гибели. руку пожал
>>167865849Ты доделал, что ли?
>>167865947Нет еще, а ты поможешь сделать до конца? Там совсем чуть-чуть осталось, с произведением разобарться бы.
>>167865960Самая сложная часть твоего заданияСовсем чуть-чуть
>>167865960Есть одна интересная фишка (костыль) : нужна еще нулевая строка матрицы. В нее записываешь при заполнении произведение элементов каждого столбца. По этой строке уже сортируешь.
>>167865947Произведение элементов столбцов я нашел, а как их отсортировать в порядке возрастания?>>167866005Для меня всё сложно, пока что, хехе.
>>167866019Вот как-то так.
>>167866034 --> >>167866019Переставляешь не только элементы нулевой строки, но и элементы всех остальных строк вместе с ними.
>>167866065А можно попроще немного, а то в 4.30 тяжко соображается.
>>167866107procedure MatrixInput(var x:matrix);var i,j:integer;begin for i:=1 to M do for j:=1 to N do begin x[i,j]:=random(9)+1; x[0,j]:=x[0,j]*x[i,j] endend;Это процедура заполнения матриц. При этом массив надо задать как array[0..M,1..N] of integer;
>>167866166Соре, проебался, забыл, что незначащие пробелы стираются.
>>167866166Чет всё поломалось.
>>167866247А нет, поменял местами M и N, и всё заработало. Но как дальше их отсортировать?
>>167866247Можешь код скинуть?
//Заполняем матрицуFor i:=1 to M do For j:=1 to N do begin x[i,j]:=random(9)+1; x[0,j]:=x[0,j]x[i,j]; end;//Вывод матрицыFor i:=1 to N doBegin For j:=1 to M do Write (' ',x[i,j]:2); Writeln;end;Writeln;For j:=1 to M doBegin p:=1; for i:=1 to N do p:=px[i,j];end;writeln;For j:=1 to N do For r:=1 to M do For i := 1 to m - r do If x[i,j]<x[i+1,j] then Begin t:=x[i,j]; x[i,j]:=x[i+1,j]; x[i+1,j]:=t; end;For i:=1 to N doBegin For j:=1 to M do write(' ', x[i,j]:2); writeln;End;>>167866275
>>167866247Наверное убиваю всё веселье и оказываю "медвежью услугу" вот тут кароче всё работает https://pastebin.com/dANZ4wwRТрикс от анона с нулевой строкой реально годный, если не западло можешь поменять, заодно и разберёшься чё к чему. А то я для это приплёл ещё один массив.
>>167866273Так же, как ты сортировал элементы столбцов, но теперь тебе нужы: два внешних цикла (собственно, сортировка; они такие же как и в сортировке столбцов) и внутренний, в котором ты проходишь по двум столбцам и меняешь элементы. Могу написать и вкинуть, если надо.
>>167866326Было бы очень кстати. Представить себе не можешь, как я тебе благодарен. с:
>>167866348>>167866321
>>167866348Вот, написал. Вроде должно работать.
>>167866484Ну ты голова, анон. Я даже не знаю, как тебе сказать спасибо, ведь ты потратил на меня столько времени, хех. Просто знай, что где-то далеко, челик не вылетит с универа и продолжит учебу. И всё благодаря тебе. Если у тебя ночь, то иди уже дремай, а я пойду разбираться, как это всё работает. Спасибо. с:
>>167866614Оно заработало? Просто мне только что показалось, что я проебался, и там вместо x[k+1,j] должно быть x[k,j+1].
>>167866614Ой, постой. Тут немного неправильно, я подсчитал вручную, и не в том порядке.
>>167866659В выводе матрицы M поменяй с N.
>>167866701Тогда неправильное кол-во столбцов и строк, получается 6 ст. и 8 строк, а надо наоборот. :/
>>167866659Даже элементы столбцов не те. :с
>>167866747Молодой человек, продублирую ссылку на пастебин и сваливаю в закат. https://pastebin.com/dANZ4wwR
>>167866801Спасибо, гляну сейчас.
>>167866747Таак, падажжи ебана...В разделе констант надо M с N поменять.
>>167866845И как у тебя вообще работает вот это? Ты не вылетаешь за границы массива? Ведь строк - M, а столбцов - N:For i:=1 to N doBeginFor j:=1 to M dowrite(' ', x[i,j]:2);writeln;End;Надо ведь так, по идее:For i:=1 to N doBeginFor j:=1 to M dowrite(' ', x[i,j]:2);writeln;End;
>>167866903Должно быть N строк и M столбцов. Может, мы не так поняли друг друга.
>>167866920Блэт. Можешь целиком код вкинуть тогда?
>>167866962Const N=6; M=8;Var X:array [0..M,1..N] of integer; i, j, p, t, r, k, tmp:integer;BeginsetconsoleCP(1251);setconsoleoutputCP(1251);randomize;Writeln('Ìàòðèöà:');Writeln;//Zapolnenie matriciFor i:=1 to M do For j:=1 to N do begin x[i,j]:=random(9)+1; x[0,j]:=x[0,j]*x[i,j]; end;//Vivod matriciFor i:=1 to N doBegin For j:=1 to M do Write (' ',x[i,j]:2); Writeln;end;Writeln;For j:=1 to N do For r:=1 to M do For i := 1 to m - r do If x[i,j]<x[i+1,j] then Begin t:=x[i,j]; x[i,j]:=x[i+1,j]; x[i+1,j]:=t; end;For i:=1 to N dobegin for j:=1 to N-i do if x[0,j+1]>x[0,j] then for k:=0 to M do begin tmp:=x[k+1,j]; x[k,j+1]:=x[k,j]; x[k,j]:=tmp; end;end;For i:=1 to N doBegin For j:=1 to M do write(' ', x[i,j]:2); writeln;End;readlnend.Какая то вот такая штука получается.
Сажи тупому уебку.
>>167866997Вежливо попрошу тебя съебать отсюда.
>>167866994>>167866962ConstN=6;M=8;VarX:array [0..N,1..M] of integer;i, j, p, t, r, k, tmp:integer;BeginsetconsoleCP(1251);setconsoleoutputCP(1251);randomize;Writeln('Ìàòðèöà:');Writeln;//Zapolnenie matriciFor i:=1 to N doFor j:=1 to M dobeginx[i,j]:=random(9)+1;x[0,j]:=x[0,j]*x[i,j];end;//Vivod matriciFor i:=1 to N doBeginFor j:=1 to M doWrite (' ',x[i,j]:2);Writeln;end;Writeln;For j:=1 to M doFor r:=1 to N doFor i := 1 to N - r doIf x[i,j]<x[i+1,j] thenBegint:=x[i,j];x[i,j]:=x[i+1,j];x[i+1,j]:=t;end;For i:=1 to M dobeginfor j:=1 to M-i doif x[0,j+1]>x[0,j] thenfor k:=0 to N dobegintmp:=x[k,j+1];x[k,j+1]:=x[k,j];x[k,j]:=tmp;end;end;For i:=1 to N doBeginFor j:=1 to M dowrite(' ', x[i,j]:2);writeln;End;readlnend.Подправил.
>>167867102Вроде норм, но теперь нету сортировки самих столбцов. (я тебя уже задолбал, наверное)
>>167867179Третий блок кода, начиная с заполнения же.
>>167867209Я думаю он про сортировку столбцов по возрастанию произведения, ты ж заполнение нулевой строки зафакапил.>x[0,j] не инициализируется>x[0,j]:=x[0,j]*x[i,j];
>>167867209Эти цифры - это произведение элементов столбцов по порядку. И, как видишь, они не в ом порядке расставлены. :/
>>167867259Бляяяя, точняк! FreePascal, да и ABC тоже, заполняет эти строки нулями по умолчанию. Надо в самом начале вот это прописать: for j:=1 to M dox[0,j]:=1;Спасибо, анон.
>>167867320Хехе, заработало, теперь уже точно. Спасибо, ананасик. Желаю тебе всего самого доброго и хорошего. :) Доброй ночи/доброго утра всем, тред закрыт.