|
задачка на С++ | ☑ | ||
---|---|---|---|---|
0
men47
20.12.12
✎
09:06
|
Здравствуйте, есть задачка вот такая
Дана целочисленная квадратная матрица. Определить: • произведение элементов в тех строках, которые не содержат отрицательных элемен-тов; • отсортировать по возрастанию строку с минимальной суммой среди сумм элементов строк матрицы. не могу никак додумать 2 задание (отсортировать) была мысль через 1-номерный массив ///////////////////////////////////////////////////////////////// y=0; for (i = 1; i <= n; i++) { y = 0; for (j = 1; j <= m; j++) { y = a[i][j] + y; } c[i] = y; } printf("\n"); ///////////////////////////////////////////////////////////////// но не могу додумать как их выравнивать=)) подкиньте идейку=) пожалуйста |
|||
1
Mikeware
20.12.12
✎
09:10
|
школота поперла....
|
|||
2
Ёпрст
20.12.12
✎
09:11
|
И кто тут про алгоритмические задачки спрашивал ?
ЗЫ: ©NS был в чем то прав, на счет сортировки |
|||
3
zak555
20.12.12
✎
09:13
|
(0) массивы начинаются с индекса 0
|
|||
4
men47
20.12.12
✎
09:13
|
(1) я не тот тип, чтобы агрится, но если ты умом не блещешь, и кроме как "школота поперла..." предложить ничего не можешь... не флуди, пожалуйста
|
|||
5
zak555
20.12.12
✎
09:14
|
(1) почему школота ?
в нике год рождения |
|||
6
Undefined vs NULL
20.12.12
✎
09:15
|
(5) у тебя?
|
|||
7
men47
20.12.12
✎
09:15
|
(3) ну да это я знаю....
я делал как то задачку на счет повторения элементов, но там проще было.... закидываем в 1-номерный массив сколько повторяется... и потом выравниваем по этим цифрам... а тут, что-то пока не могу додумать... |
|||
8
zak555
20.12.12
✎
09:17
|
(6) у автора
|
|||
9
Undefined vs NULL
20.12.12
✎
09:18
|
||||
10
zak555
20.12.12
✎
09:28
|
> но не могу додумать как их выравнивать
что выравнивать ? |
|||
11
SeregaMW
20.12.12
✎
09:30
|
(0) Тут спецов по Си пруд пруди!
|
|||
12
dmpl
20.12.12
✎
09:32
|
(0) Создай структуру из указателя на строку массива и суммы строки. Создай массив из этих структур. Вычисли сумму строк, заполни массив структур этой суммой, найди среди них строку с минимальной суммой. Воспользовавшись указателем на строку отсортируй строку.
|
|||
13
ковер
20.12.12
✎
09:32
|
(0) а куле там массив сортировать, пузырьковую сортировку юзай, самая легкая.
|
|||
14
ковер
20.12.12
✎
09:34
|
(12) зачем такой огород городить?
|
|||
15
zak555
20.12.12
✎
09:34
|
(12) зачем структура указателей ?
|
|||
16
dmpl
20.12.12
✎
09:35
|
(14) Дык тебе сначала надо найти строку с минимальной суммой, и только потом ее сортировать.
|
|||
17
dmpl
20.12.12
✎
09:35
|
(15) Так изящнее.
|
|||
18
ковер
20.12.12
✎
09:35
|
(16) мне ненужно искать это нужно ТС
|
|||
19
ковер
20.12.12
✎
09:38
|
(17) нужно в программировании применять принцип KISS - keep it simple stupid что означает "делай проще дурачок"
|
|||
20
dmpl
20.12.12
✎
09:39
|
(19) Это задачка не для практики, а чтобы показать знание языка. Тут надо как раз использовать как можно больше его возможностей.
|
|||
21
Mikeware
20.12.12
✎
09:57
|
(5) потому, что школота. Тупые студенты, у которых не хватает ума почитать учебник, и не хватает фантазии представить расположение объектов массива в памяти...
зы. в карточке у него год рождения... (4) Эта задача решается в уме, в 17 строк. Только решение я выкладывать, естественно, не буду, потому как стране нужны _рабочие_ руки, а армии нужны солдаты... |
|||
22
zak555
20.12.12
✎
10:37
|
(21) сортировку в вузах проходят ? о_О
|
|||
23
ковер
20.12.12
✎
10:43
|
(21) давай свое решение
|
|||
25
ковер
20.12.12
✎
10:45
|
(22) "сортировку в вузах проходят ?" для тебя стало это откровением?
|
|||
26
Mikeware
20.12.12
✎
10:53
|
(22) По-идее, да. в разделе оценки сложности алгоритмов.
|
|||
27
dmpl
20.12.12
✎
10:56
|
(24) А как же KISS? Почему не выделил второй цикл фигурными скобками? Опять же, зачем summa обнулять в конце цикла, а не в начале?
|
|||
28
Mikeware
20.12.12
✎
10:56
|
(23) не обессудь, твое решение я удалил. ибо пусть ТС доходит своим умом, или миздует в армию...
|
|||
29
sda553
20.12.12
✎
10:57
|
(24) Слишком тупо. Хочется какой то изюминки в решении.
|
|||
30
sda553
20.12.12
✎
10:58
|
(28) Вообще то в армию ходят все независимо от ума.
|
|||
31
ковер
20.12.12
✎
11:01
|
(27)(29) главное работает :)
(28) я хотел помочь человеку |
|||
32
zak555
20.12.12
✎
11:02
|
(25) я думал, что в школе это изучают
|
|||
33
Mikeware
20.12.12
✎
11:02
|
(27) 1. а смысла нет - все равно в цикле один оператор. его можно даже в сам оператор цикла загнать, в приращение.
2. непринципиально. (30) институты сейчас - в основном не для образования, а для законного уклонения от армии... |
|||
34
Mikeware
20.12.12
✎
11:04
|
(32) в школе - только пузырек. да и то, излишество - это в школе учить... Только как факультатив....
|
|||
35
ковер
20.12.12
✎
11:05
|
(32) не звезди не учат в школе сортировку.
|
|||
36
Ёпрст
20.12.12
✎
11:06
|
(35) та ну ?
всё проходят и функции сложности алгоритма в том числе. |
|||
37
Ёпрст
20.12.12
✎
11:06
|
по крайней мере, в 9 классе у нас было это всё
|
|||
38
dmpl
20.12.12
✎
11:07
|
(29) Ну, изюминку я в (12) описал. Хотя можно еще круче сделать - создать класс сортировки всех строк матрицы, на основании этого класса создать дочерний класс сортировки строки с минимальной суммой. Ну и т.д. и т.п., насколько фантазии хватит.
(33) Дык выше речь шла про KISS, а отсутствие скобок и обнуление суммы в конце цикла уменьшает читаемость кода и повышает вероятность ошибки. Не зря во многих правилах оформления кода специально указывается использовать фигурные скобки даже когда этого не требуется, чтобы выделить логический блок. В т.ч. и когда в цикле всего 1 строка. Кроме того, если компилятор не очень умный, то 2 инициализации - это 2 кода инициализации + значение типа int в сегменте data, которое будет храниться в исполняемом файле. |
|||
39
zak555
20.12.12
✎
11:08
|
(26) я таких дисциплин не слышал
|
|||
40
zak555
20.12.12
✎
11:08
|
(28) может человек после армии пришёл, поступил в вуз, а тут затык
|
|||
41
zak555
20.12.12
✎
11:09
|
(37) это в каком году ?
|
|||
42
ковер
20.12.12
✎
11:11
|
(38) зачем фигурные скобки в цикле если один оператор? или ты меня щас просто обос.рать хочешь? выложи свое крутое изящное решение.
|
|||
43
Ёпрст
20.12.12
✎
11:11
|
(41) я так сразу и не вспомню.
ЗЫ: физмат школа была, урок информатики :)) |
|||
44
ковер
20.12.12
✎
11:12
|
(43) не все в физматах учились :) в обычной школе не проходят, это факт.
|
|||
45
zak555
20.12.12
✎
11:12
|
(43) при каком вузе ?
|
|||
46
zak555
20.12.12
✎
11:13
|
(44) в обычных школах не у всех была информатика
|
|||
47
ковер
20.12.12
✎
11:14
|
(46) у тебя когнитивный диссонанс см(32)
|
|||
48
Ёпрст
20.12.12
✎
11:14
|
(44) да проходят, информатика есть у всех.
Примитив с массивами и сортировками у всех есть.. |
|||
49
badboychik
20.12.12
✎
11:15
|
а у нас на первом уроке информатики в 11 классе была такая задача: поменять у двух переменных значения, без использования третьей
|
|||
50
zak555
20.12.12
✎
11:15
|
(47) у меня не было в школе, у других была -- видел их учебник - там была сортировка
|
|||
51
dmpl
20.12.12
✎
11:19
|
(42) Затем, что по идеологии KISS надо. Иначе stupid может посчитать, что там и if () выполняется в том же цикле, что и суммирование. Особенно при таком стиле проставления скобок (когда открывающая и закрывающая скобки находятся на разных позициях по горизонтали).
P.S. Если бы я хотел обос.рать - то в первую очередь обратил бы внимание на использование константы 5 в стольких местах, вместо 2 переменных или же вместо #define'ов, определяющих размеры массива. Ведь если массив станет 6x6 - в твоем коде придется в 7 местах одни и те же изменения вносить. Т.е., имеем грубейшее нарушение правил написания расширяемых программ. Но поскольку в данном случае на понимание это не влияет - я и не указал на это. |
|||
52
ERWINS
20.12.12
✎
11:25
|
Фон Нейман у меня 20 докторов наук которые могут доказать корректность, сходимость и универсальной пузырьковой сортировки и нет ни одного человека который может ее реализовать...
|
|||
53
ERWINS
20.12.12
✎
11:26
|
(9) быстрая сортировка это туфта... ее уже много лет никто не применяет
|
|||
54
Mikeware
20.12.12
✎
11:27
|
(42) ну какое в задницу "изящное решение" у примитивнейшей задачи?
кроме единственного простого - остальные уже усложненные и извращенные. |
|||
55
Mikeware
20.12.12
✎
11:28
|
(53) во как?
|
|||
56
ERWINS
20.12.12
✎
11:29
|
(55) да... в худшем случае у нее производительность квадрат... и такой случай не редкость
|
|||
57
bolder
20.12.12
✎
11:36
|
(0) А вот зачем вам еще один массив вводить?Неужели не понятно, что нужно найти лишь индекс строки где сумма минимальна?
|
|||
58
dmpl
20.12.12
✎
11:39
|
(57) На будущее - вдруг потребуется сортировка по сумме строк ;)
|
|||
59
Mikeware
20.12.12
✎
11:44
|
(56) вообще-то, нужно знать, когда и что применять..
для того, собственно, и изучают разные способы сортировки. например, в дизассемблировании для разбора ссылок квиксорт показывает лучшие результаты. а для сортировки событий в коечном автомате мне хватает пузырька... |
|||
60
Mikeware
20.12.12
✎
11:45
|
(58) усовершенствованный метод гаусса.... :-)
|
|||
61
zak555
20.12.12
✎
11:54
|
> была мысль через 1-номерный массив
надо вводить массив размерностью [n][1][1][1] 1 - номер строки исходного массива 2 - сумма строки исходной матрицы 3 - флаг, когда в исходной строке нет отрицательных телемостов 4 - произведение элементов строки |
|||
62
sda553
20.12.12
✎
15:14
|
(61) Просто три к любой размерности добавить колонки добавить.
Я бы при решении 2 написал бы matrix->SortLine(Matrix->GetLineWithMinSum()); А потом бы придумал все остальное. |
|||
63
HeroShima
20.12.12
✎
15:18
|
белый и пушистый..
|
|||
64
program1Cer
20.12.12
✎
15:29
|
(54) Может. Решить за минимальное количество итераций например =)
|
|||
65
Mikeware
20.12.12
✎
15:46
|
(64) это уже дополнительные требования, типа "миимальное количество итераций", "максимальное быстродействие", "минимальный объем занимаемой памяти", использование специфических библиотек, минимальное использование памяти данных, работа с комплексными числами, и многия, многия, многия...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |