Насоки за решаване на задачата чрез loops на C#
Здравейте, колеги!
Може ли да ми дадете насоки как да започна с решението на задачата, в която трябва да начертая фигурите от картинката?
Благодаря Ви предварително!
https://ibb.co/gU7a8T
Здравейте, колеги!
Може ли да ми дадете насоки как да започна с решението на задачата, в която трябва да начертая фигурите от картинката?
Благодаря Ви предварително!
https://ibb.co/gU7a8T
Здравей, ето решение: https://pastebin.com/UpGkwkJq ,което не е четливо като на Веско, но като схванеш логиката всички рисунки се решават на конвейер. Първо намираш зависимостта на ширината фигурата от въведеното число, тя е линейна, обикновено я налучкваш или си решаваш система от две линейни уравнения, в случая ширината = 4 * n - 2.
Следващата стъпка е почваш от горе надолу, когато има свързани редове ги правиш с цикъл (като вътрешния индекс i го ползваш за последователностите, като гледаш всеки ред сумата от символите да е 4 * n - 2 , независимо от i, т.е като разкриеш скобите винаги i се съкращава). и т.н. всички се решават по този елементарен начин, номера е да свикнеш да боравиш с индексите.
P.S. История с цвета на опашката е интересна, понеже цветовете в конзолата са 16, струва ми се, че тук почват от 4-ти цвят (DarkCyan) и намаля номера, после превърта се надявам, леко съм далтонист и не съм сигурен. Това е оцветената версия: https://pastebin.com/ULzVm6kQ
Добре, ама ние тази картинка как да я видим като тя май е на твоя компютър. Дай линк към условието на задачата.
https://ibb.co/gU7a8T Заповядай и се извинявам, не обърнах внимание!
Ами добре беше да дадеш и условието, за да видим какъв вход може да подава. Аз я направих да работи само с нечетни числа от 1, ако и четни ще се подават тогава трябва да се променя. Ето това е решението - https://pastebin.com/jpPUmzpV , описал съм с коментари коя част какво прави. По принцип тези задачи се решават най-лесно като си ги разделиш на части и ги правиш една по една. new string() е много полезен, защото ти спестява доста циклене когато имаме повтарящи се символи. А Replace() методът пък е чудесен, защото в комбинация с new string може да повтаряш не само символи ами цели думи или каквото там се изисква. Виж аз на някои места слагам звездички с new string и после тези звездички ги замествам с Replace("*", "*=") примерно. И най-важното е да схванеш, точно как нараства фигурата спрямо подаденото число от вън.
Много ти благодаря, успях до известна степен да се ориентирам в кода, но някои от техниките все още не ги умея, за съжаление, наистина ти благодаря! :)
Много благодаря за разяснението и помощта, колега, едно не можах обаче да осмисля и това е .Replace и каква е функцията на този оператор? Предполагам замества стойности или се бъркам ?
str1.Replace(str2, str3) - това заменя всички низове str2 съдържащи се в str1 със str3. В случая ни помага и спестява код, понеже например искаш да създадеш низ от n пъти низ str3, трябва или да използваш цикли и конкатенация, или цикли и стрингбилдер и т.н. а понеже имаме new string(char1, n) - прави низ от n пъти char1, и веднага в този низ заменяме char1 със str3. За char1 може да се използва произволен символ. Тази процедура просто спестява код ( 4-5 реда). Просто все още няма овърлоад new string(str, n) :)