Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

Filkolev avatar Filkolev 4482 Точки

В случая може да работиш с матрица, т.е. не назъбен масив, а двумерен.

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

2
antonp1p2 avatar antonp1p2 17 Точки
Aко рaботя с мaтрицa товa ознaчaвa че нa някой редове ще имaм прaзни стойности и броя нa колоните в тaзи мaтрицa ще е дължинaтa нa нa нaй-дългaтa думa оттaм вече въртя в нови мaтрици редовете и колоните и когaто принтирaм мaхaм прaзните стойности... прaвилно ли съм рaзбрaл ?
0
18/05/2015 20:18:05
Filkolev avatar Filkolev 4482 Точки

Когато принтираш си запазваш и празните места, иначе да, мисля, че си ме разбрал.

0
enevlogiev avatar enevlogiev 1168 Точки

Има и вариант изобщо да не въртиш. Примерно подава ти се вход, че трябва да принтираш завъртяна на 180 или 540 градуса ... там където degrees % 360 == 180. Няма нужда да си правиш допълнителен масив, просто правиш следното.

Имаш един цикъл, който обикаля редовете отзад напред (matrix.GetLength(0) - 1) и друг, вложен в него, който прави същото за колоните, тогава пропъртито е GetLength(1) - 1. Принтираш matrix[row, col], и това ще сложи точно елемента, който ти трябва, най-горе вляво.
За другите два кейса може сам да си измислиш логиката, но те уверявам, че има такава : )

1
ZlatinDimitrov avatar ZlatinDimitrov 11 Точки

Здравейте,колеги.По-въпросната задача стигнах до завъртане на (90,180,270,360).Но тук нещо зациклих как при градуси,различни от тези да стигна пак до един от тях.Евентуално деление с остатък?

Идеи,препоръки и забележки ще са от полза.

http://pastebin.com/gWNR9mD6

0
enevlogiev avatar enevlogiev 1168 Точки

Да, точно деление с остатък ти трябва. Виж малко по-нагоре какво съм писал.

1
ZlatinDimitrov avatar ZlatinDimitrov 11 Точки

Точно този коментар съм пропуснал:)Сега вече е 100/100!Мерси колега enevlogiev!

0
antonp1p2 avatar antonp1p2 17 Точки

Ето го моето решение - http://pastebin.com/9C9xMV2w , дано е полезно на някой, дава 100/100 в Джъджа.

Толкова се мъчих с този назъбен масив, а то ставало изключително лесно с проста матрица. Мерси Kolev :)

 

0
19/05/2015 14:02:48
slavek avatar slavek 51 Точки

Докарвам я до 40 точки тази задача. Ето го и кода http://pastebin.com/LMsw0xf2. Не знам къде греша. Ако може малко помощ.

 

0
21/05/2015 22:25:17
GalyaGeorgieva avatar GalyaGeorgieva 88 Точки
  •      Аз съм си направила swich case: 0, 1, 2, 3  -> за четирите позиции (0 , 90, 180, 270 degrees), ако градусите са повече от 360 с остатък от деление ги изчислявам в кой case попадат.
  •     От там нататък има 4 метода и обхождам матрицата по 4 различни начина според case.

п.с. правя матрица като хвана дължината на най-дългата дума и я направя за широчина, респ. височина на матрицата в в зависимост от градусите и пълня със спейс където не ми стига дължината на думата.
КОД за StringMatrixRotation

0
26/05/2015 09:50:48
LoKSET avatar LoKSET 160 Точки

И моето решение е доста подобно на повечето. Единствено за 180 градусовото въртене реших да разнообразя - не бях ривърсвал лист от листове :D

for (int i = 0; i < array.Count; i++)
                    {
                        array[i].Reverse();
                    }
array.Reverse();

0
zisov4eto avatar zisov4eto 19 Точки

Моето решение се различава от тези, които видях тук за това ще дам линк ако на някой му е интересно.

Не е най-качественето като бързодействие. Правят се някои излишни стъпки - наясно съм. Както казах качвам го само, защото е малко по различно от тези, които видях.

https://github.com/zisov4eto/SoftUniRepository/tree/master/C%23/Exams/ExamProblemsPractice/02.StringMatrixRotation

1
17/05/2016 22:17:54
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.