Loading...
AlexanderPetkov27 avatar AlexanderPetkov27 1 Точки

Задача крепост Drawing with loops

Здравейте, 

нa задача 14 не мога да разбера на n= на колко?, трябва да се увеличава знак  "_" посредата на първия и последния ред. 

в примерните входове в условието се появява при n=5 после при n=8. 

Тагове:
0
Programming Basics 30/11/2017 18:13:03
Jeliozver avatar Jeliozver 356 Точки

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

Това би трябвало да свърши работа.

https://pastebin.com/Pxd23sqd

0
paveliliev90 avatar paveliliev90 74 Точки

https://pastebin.com/6Pfi1ssc

Заповядай едно примерно решение.

n * 2 - 2 * (n / 2) - 4 Това е формулата по която намираш средната част. Не е много лесно да се сети човек сам за нея. Дано съм ти помогнал!

0
traykova44 avatar traykova44 93 Точки

Здравейте, не намирам тема, в която да са посочени поне някои от основните формули при чертаенето на фигури с цикли.

като среда, определен ред, да проусне н брой позиции или редове и тн.

Можете ли да дадете такива приципни.

0
02/12/2017 13:56:01
pako13bg avatar pako13bg 0 Точки

Това са едни от любимите ми задачи. Не знам дали ще ти помогне това, но първо като видиш фигурата е необходимо да си я разделиш на няколко части хоризонтално. Всяка част трябва да ти е от приблизително еднакви на пръв поглед редове. Обикновенно първия и последния ред направо си ги принтиш, но в повечето случаи са и в цикли. Второ нещо е да си изведеш променливи за символите, още в началото. Имам предвид за символите на реда. За всяка отделна част от фигурата броиш редовете и ги съпоставяш с числото въведено на конзолата, гледаш всичките ти дадени примери и си нацелваш формулата с "n", която да ти важи за всички примери. Редовете са ти нужни за цикъла за тази част от фигурата. След това гледаш първия ред на частта на която си се спрял и броиш символите, сравняваш всиките ти дадени примери, за да видиш, коя формула ще ти дейстава за всеки символ, местата на символите, ще си подредиш с плейсхолдърите в командата за принтене. При задаването на цикъла обърни внимание и на колоните, на които определените символи ще трябва да мърдат. Взависимост от това с колко стъпки се местят символите, под командата за принтене нареждаш променливите на символите съответно със стъпките, които си преброил ( пример: dots--; , stars++; , dots+2; , -2;. Не забравяй в командата по-горе, след плейсхолдърите, в new string-a, да задаваш правилно повторението на символа на първия ти ред от всеки цикъл. Ако символите са ти еднакви във всяка част или в две поредни части от фигурата , не забравяй, че като ти проключи цикъла на съответната част, ти се запазват бройките на символите от последното завъртане на цикъла, което нещо го ползваш за следващия ти цикъл.

Не знам дали го обясних правилно, но при мен работи, ето и пример със задачата за чертане на брадвата: https://pastebin.com/pihNB0KP

0
traykova44 avatar traykova44 93 Точки

Да! Несъмнено, ми е от полза отговора ти, за което много ти благодаря!

Има неща, които не ги разбрах съвсем на 100%, но в процес на писане се надявам, че и те ще ми станат ясни.

:)

0
traykova44 avatar traykova44 93 Точки

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

задачата е Знак СТОП и кода ми https://pastebin.com/RJKGBNhD

Благодаря!

0
02/12/2017 21:56:54
pako13bg avatar pako13bg 0 Точки

Редовете на втората част на фигурата в цикъла са зададени n-2, а те са равни точно на n. Цикъла трябва да започне от 1 и да се върти до n. Зададените променливи в началото няма да ти работят за всички примери. Когато се създават променливи трябва да се гледат показаните примери да работят за всички. Не е нужно да се създават променливи за всеки ред на цикъла ( излишни са w и b). В задачата се искат други символи на изхода ( в задачата се иска '.' , а не '*'). Трябва да преработиш кода.

0
traykova44 avatar traykova44 93 Точки

pako13bg  Отново ти благодаря! Ще поразгледам първо.Дано ми се получат.За сега единствено успешно направих задача Пеперуда със 100 т.

:)

0
kiril270405 avatar kiril270405 0 Точки

Привет, това е моето решение за задачата https://pastebin.com/qCXkbHML при което ми изрисува крепостта както е показано по условие,но джъдж дава ми 30/100.Някакви идеи къде може да е грешката. 

0
Pazzo avatar Pazzo 158 Точки

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

Конкретни "основни" формули за решаване на този тип задачи наистина няма, тъй като всяка картинка си е индивидуална и си изисква да се изведе закономерността за изобразяване на отделните елементи от нея. 

Можете да видите тук моето решение на конкретната задача. В профила ми в гитхъб има и доста други решения на задачите от курса и от изпитите. Смея да кажа че тези задачи в началото и на мен ми бяха "WTF?!?", но след каато в някакъв момент чувек им схване идеята, стават доста приятни и интересни.

0
Elena123456 avatar Elena123456 235 Точки

Здравейте, понеже днес бях на път да се отчая от тази задача, се чувствам задължена да споделя простата логика за изчисляване средната част на крепостта. Това са именно печатането на "-" и следователно на празното пространство под тях в края на крепостта. Формулата си е пред нас, само трябва малко да се загледаме повече. :)

Дължината по условие на крепостта е 2*n, като винаги имаме общо на брой на един ред 4 наклонени черти: "/", "\","/","\", а формулат за печатане "^" е n/2 и при четно и при нечетно n.   "^" се повтарят по 2 пъти- от лявата и от дяснат част на крепостта. Следователно средната част на крепостта ще се получи, като от общата дължина (2*n) извадим 4, защото наклонените черти са общо толкова, и след като извадим и общия брой на "^" (2*n/2), т.е. var mid=2*n - (2*n/2) - 4.

Поздрави!

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