15:51

хелп

Если у вас и седьмой блин комом, к черту блины - пеките комочки!

Ааааааааыыыыыыыыыыщ Т.Т У меня сломался мозг, разлетелись болтики

 

Задача на экзамен (ну блин как завернут, так завернут!!):

 

Дана матрица. найти сумму модулей отрицательных нечетных элементов в столбцах с положительными элементами на побочной диагонали!!!

Я условие читала раза 4, что понять его Т.Т

 

Дорогая,  madhat87 , если ты вдруг будешь свободна)) напиши здесь, я бы хотела спросить у тебя кое-что по задачам, мне один моментик уточнить надо. Я тебе там кинула в аську еще собщение, чтоб наверняка))



@темы: аыыыыыыыыыыыыыы, учёба

Комментарии
06.06.2010 в 17:21

виртуальный приключенец
Ты бы стразу изложила проблему :) Если реально думаешь, что я еще хоть что-то помню :)))
06.06.2010 в 17:28

Если у вас и седьмой блин комом, к черту блины - пеките комочки!
Задача: Дана действительная матрица. упорядочик строки по возрастанию первых элементов каждой строки

Решение, которое есть:

' Gambas class file

PUBLIC n AS Integer
PUBLIC m AS Integer
PUBLIC A AS Integer[]

PUBLIC SUB escbtn_Click()
ME.CLOSE
END

PUBLIC SUB makemas_Click()
DIM i, j AS Integer

m = InputBox("Задайте количество столбцов")
n = InputBox("Задайте количество строк")
A = NEW Integer[](n, m)
tv1.Columns.Count = m
tv1.Rows.Count = n

tv2.Columns.Count = m
tv2.Rows.Count = n

RANDOMIZE
FOR i = 0 TO n - 1
FOR j = 0 TO m - 1
A[i, j] = Rnd(20)
tv1[i, j].Text = A[i, j]
NEXT
NEXT
END

PUBLIC SUB solve_Click()
DIM c, mmin, num, i, j, k AS Integer
c = 0
FOR i = 0 TO n - 1
mmin = a[i, 0]
k = i

FOR j = 0 TO n - 1
IF a[j, 0] > mmin THEN
mmin = a[j, 0]
k = j
ENDIF

FOR c = 0 TO m - 1
num = a[k, c]
a[k, c] = a[i, c]
a[i, c] = num
NEXT
k = i

NEXT
NEXT

FOR i = 0 TO n - 1
FOR j = 0 TO m - 1
tv2[i, j].Text = a[i, j]
NEXT
NEXT


END

* курсивный кусок кода мне вообще непонятен
06.06.2010 в 17:35

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

виртуальный приключенец
То, что выделено курсивом, это стандартный неумный алгоритм сортировки массива. Только меняются местами в этой сортировке не элементы массива, а строки матрицы.
06.06.2010 в 17:50

Если у вас и седьмой блин комом, к черту блины - пеките комочки!
madhat87 ну что сделаешь, если там нет комментов(

я думала, ты мне поможешь понять принцип, логику что ли...В принципе, если ты не помнишь этого, как никак уже столько времени прошло, то ничего же не поделаешь))
Буду надеяться, что ее не достанется на экзамене))

Вот смотри:

c = 0
FOR i = 0 TO n - 1
(тут я поняла, что она присваивает минимальной переменной(mmin) число из первой строки.)
mmin = a[i, 0]
k = i


FOR j = 0 TO n - 1 (тут мне не понятно, почему не выходя из первого цикла она сравнивает опять первый эл. с мин. и перезаписывает, при условии a[j, 0] > mmin )
IF a[j, 0] > mmin THEN
mmin = a[j, 0]
k = j
ENDIF


FOR c = 0 TO m - 1
(тут я ваще не поняла, что этим тут делает, что-то перезаписывает, и все в том же первом цикле.)
num = a[k, c]
a[k, c] = a[i, c]
a[i, c] = num
NEXT
k = i

NEXT
NEXT

06.06.2010 в 17:54

Если у вас и седьмой блин комом, к черту блины - пеките комочки!
madhat87 если есть более простой вариант сортироваки, скажи мие пожаалуста)

я хотела записать эти первый числа строк в отдельный массив, распределить их и потом, находить одинаковый элемент уже в строках матрицы, и дописывать остальные элементы из матрицы в результат..

такое можно провернуть?
06.06.2010 в 18:25

виртуальный приключенец
SunSplashes
Методов сортировки тьма. Но на маленьких задачах они ничем не отличаются. Разве что более оптимальные методы обычно более сложные для понимания. Если этот метод у тебя все сортирует, то не вижу смысла что либо менять. Когда ты обычно сортируешь массив, то внутри цикла, ты не только ищешь более мелкий элемент, но и меняешь элементы местами. Тут же тебе надо менять местами не элементы а сроки в матрице. Для замены элементов обычно вводят временную переменную (обменную), в которую записывается одно из значений, которое участвует в обмене. Тут я бы завела одномерный массив для тех же целей. Но переписывать туда ты будет уже строку.