Loading...
stefism1 avatar stefism1 28 Точки

Nested Loops - Exercise. Задача 02. Number Pyramid - C#

Здравейте!
След доста успешно решени задачи, включително и тези от пробния изпит, логиката на въпросната задача продължава да ми убягва и продължавам да немога да си обясня как действа точно кода. Дебъгвах сумати пъти и нещо ми убягва и немога да разбера обяснението, което е дадено и това си е. За съжаление тази задача не я решихме и в курса по C#.
Може ли някой да даде възможно най-просто написания код с решение за нея, както и обяснение стъпка по стъпка какво точно се случва и къде, по възможност също обяснено по-ясно?
Ако някой знае да има видео от по-стари курсове, където да обясняват задачата нагледно, още по-добре.
Мерси предварително за отделеното време!

0
Programming Basics
e_panova avatar e_panova 51 Точки
Best Answer

https://pastebin.com/iU5JcFsw

Това е моят код. Погледни го, може би наименованието на променливите ми, ще ти помогне да го осмислиш по-добре.

Ще се опитам да ти го обясня. Външният цикъл отговаря за минаването на нов ред. Стойността на променливата row в него е всъщност редът, на който печатаме числата в момента и с всяко следващо влизане в първия фор цикъл печатаме на нов ред. На първия ред печатаме 1 число, на втория -  2 числа, на третия - 3 числа и т.н. (докато не стигнем до числото n), т.е. номерът на реда съвпада с броя числа, които печатаме на него. Затова във вътрешния цикъл печатаме числа, докато те не станат равни на номера на реда.(numbersPerRow <= row). След всяко печатане, увеличаваме променливата numberForPrint с единица. Щом променливата numberPerRow стане равна на row, не влизаме повече във втория цикъл. Отиваме на нов ред след командата Console.WriteLine(), влизаме в условието на първия цикъл и увеличаваме row с единица. Влизаме в първия цикъл и след това в условието на втория цикъл, където numbersPerRow = 1; numbersPerRow <= row, numbersPerRow++ , като тук вече row е 1 повече и следователно ще влезем във втория цикъл 1 път повече от предходния път и ще печатаме следващите поредни числа, докато броят им стане = на реда, на който се печатат. Щом числото, което предстои да печатаме, стане по голямо от n, излизаме от втория цикъл, а след това и от първия.

Съвсем накратко, цикъл 1 ти позволява на всяко негово завъртане, увеличавайки row,  да увеличаваш броя на числата (numbersPerRow), които да печаташ на един ред в цикъл 2, докато numbersPerRow<=row.

0
stefism1 avatar stefism1 28 Точки

Благодаря!

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