Loading...
Milenski07 avatar Milenski07 2 Точки

Триъгълник от 55 *

 

Здравейте, не мога да си преведа логиката на втория цикъл, който се записва -  for (int j=0; j <i; j++). Какво казваме с него или по-точко какъв е алгоритъмът, с който звездичките се подреждат по правилния начин?
       
            for (int i=1; i<=10; i++)
            {
                for (int j=0; j <i; j++)
                {
                   Console.Write("*");
                }
                Console.WriteLine();


     

Тагове:
0
Programming Basics
Thedi avatar Thedi 200 Точки
Best Answer

Здравей,
Ще ти стане по ясно когато стигнете до лекцията с цикли. Главно това което се селучва е, че първия цикъл отговаря за броя на редовете, а пък втория отговаря за броя на синволите на реда на който е в момента.
Втория се върти толкова на брой пъти колкото е "i" което е брояча на първия. Така втория цикъл който пише синволите ще изпише толкова синвола колкото е броя на реда. При ред 3 ще се изпишат 3 символа, при ред 4 ще се изпишат 4 символа и така нататък.

0
09/01/2018 14:08:22
jackofdiamond596 avatar jackofdiamond596 13 Точки

Здравей,

Както спомена колегата, първият цикъл реално ти описва редовете (rows), а вторият - колоните (column). Идеята е, че втроият брояч следи размера на първия и в зависимост от него прави толкова на брой звездички, а пък първият следи за целия размер на фигурата. Тоест в твоя случай i e височината на фигурата, докато j е широчината на фигурата. За да го тестваш можеш да направиш следното:

          for (int row = 1; row <= 10; row++)
            {
                for (int column = 1; column <= 10; column++)
                {
                    Console.Write("*");
                }

                Console.WriteLine();
            }

Горният код ще ти направи фигура 10х10 и като променяш стойностите на row & column, ще видиш кое каква роля играе.

Rешението на тази задача може да бъде опростено, като използваш следния синтаксис:

            for (int i = 1; i <= 10; i++)
            {
                Console.WriteLine(new string('*', i));  
            }

Горният код ще създаде фигура еквивалентна на онази, която създава твоя код.

"new string(<character>, <count>);" прави следното:

new string('L', 5) => ще ти създаде "LLLLL",

new string('&', 2) => създава "&&"

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

PS: Имаш една липсваща скоба на първия цикъл :D

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