PDA

View Full Version : Помощ за задача C++!!



wartus
01-19-2010, 10:03
Имам контролно по информатика в момента на ц++ моля ви се някой да ми реши задачата :

Дадена е матрицата A(M,N). Да се разменят местата на реhttp://www.teenproblem.net/forumдоhttp://www.teenproblem.net/forumвеhttp://www.teenproblem.net/forumте, съhttp://www.teenproblem.net/forumдърhttp://www.teenproblem.net/forumжащи най-гоhttp://www.teenproblem.net/forumлемия и най-малкия елемент

Имам 1 час плссссс

II. Права и задължения на потребителите
7. Да слагат пълно и описателно заглавие на темите си.
Moderated by kalpazanka

Chacho
01-19-2010, 10:25
Имам контролно по информатика в момента на ц++ моля ви се някой да ми реши задачата :

Дадена е матрицата A(M,N). Да се разменят местата на реhttp://www.teenproblem.net/forumдоhttp://www.teenproblem.net/forumвеhttp://www.teenproblem.net/forumте, съhttp://www.teenproblem.net/forumдърhttp://www.teenproblem.net/forumжащи най-гоhttp://www.teenproblem.net/forumлемия и най-малкия елемент

Имам 1 час плссссс

Не знам C++, но ще ти опиша алгоритъма:

Двумерна матрица се обхожда със вложени цикли:

i се разхожда по вертикалата
j по хоризонталата

Демек i ще мине от 1 до N, а j oт 1 до М (N-брой на редове, М- брой на колони).

В една променлива ще запазиш номера на реда с най-малкият елемент и в една номера на този с най-големия. Как да стане това:

Първо приемаш, че първия елемент е минималния. min = A(1,1)

Обхождаш целия масив като на всяка стъпка ще сравняваш елемента, на който си в момента с този, който си запазил като минимален. Това означава, че всеки път като срещнеш по-малък елемент, той ще става новия минимален. Също така на всяка промяна на минималния елемент, запазваш номера на реда, като на една променлива присвояваш i.

За да размениш редовете ще ти трябват две неща. Това са номерата на редовете с минималния и максималния елемент, които вече имаш. Сега ще обхождаш само редовете, а не цялата матрица, като на всяка стъпка се извършва размяна между елементите.

Цикълът за обхождане на редовете е само с един брояч (k примерно), а за размяна на елементи ще разменяш : A(k, nom_red_minimal) A(k, nom_red_maximal)


Това е и се надявам, да не съм объркал кое са редове и колони в матрицата. Писал съм А(номер_на_колона,номер_на_р ед), но ти си питай, поне това даскала/даскалицата ще каже.


Дано някой знаещ езика пусне истинският код на програмата