Quote (Tatiana) Я понемаю что ересь Ну раз понимаете то надо было преподу так и сказать сразу... Ладно, проехали, предположим количество (-) и (+) элементов одинаково и нам абсолютно пофиг что с чем менять, главное что бы (+) и (-) элементы стояли наоборот. For i = 1 to N For j = 1 to M B(i,j) = 0 Next j Next i For i = 1 to N For j = 1 to M If ((A(i,j) < 0) and (B(i,j) = 0)) Then METKA = 0 For k = 1 to N For l = 1 to M If ((A(k,l) > 0) and (B(k,l) = 0) and (METKA = 0)) Then BUFER = A(k,l) A(k,l) = A(i,j) A(i,j) = BUFER B(i,j) = 1 B(k,l) = 1 METKA = 1 End If Next l Next k End If Next j Next i Немного пояснений B - тоже матрица NxM по которой проверяем менялся элемент до этого местом или нет. BUFER - буферная переменная. METKA - служит для того что бы смена местами произошла один раз за цикл. P.S. На Qbasic до этого не писал, так что если ошибки в синтаксисе то строго не судите, важен только алгоритм.
Motherboard: K9N Ultra; Processor: AMD Athlon X2 5000+ 2600 Mhz; RAM DDR2 800 Mhz 2*2048 Mb; Video: GeForce 9500GT 512 Mb DDR2; GNU/Linux openSUSE 11.2
Изменил GreatEvilGod - Пятница, 05.02.2010, 17:41 |